关 闭

新闻中心

EEPW首页 > 工控自动化 > 设计应用 > 多通道舵机控制器设计

多通道舵机控制器设计

作者: 时间:2011-01-20 来源:网络 收藏


本文的设计中,采用P1口作为舵机信号输出控制端口,分别对应CH1~CH8通道,在晶振为12 MHz,采用定时器方式1工作方式。
舵机软件控制分为两个部分,即主程序和中断服务程序。主程序完成定时器初始化、串口信令解析、舵机位置刷新的工作。设置各通道序号为i,当前定时器脉宽定时为Time,Tab[i]为各通道最新定时值。定时器初始化进行定时器工作模式及初值设置,各舵机位置初始化使所有舵机的位置定在0°的位置,使舵机处于等待指令的状态。串口信令程序将接收到的指令解析,并随时提取信令中各通道舵机的最新值。舵机位置刷新程序实时计算最新舵量并修改每个通道的定时值Tab[i],供定制中断服务程序调用。中断程序流程图如图5所示。
中断复位程序依次修改各个通道对应I/0口的输出电平,并依次加载下一通道的定时器计数值,通道号计数指针累加。当计数指针为8时表明各通道输出结束,剩余时间I/O口全部置0,下一轮循环开始。

3 串行通信协议的设计
为了满足上位机对舵机的实时控制,可以设计一个简单通用的控制协议。从便于输出控制的角度来考虑,可以设置单通道控制和多通道控制两个信令,采用二进制命令行格式,固定帧长。
本文采用基于短帧的协议设计思想,每个舵机动作对应的控制信号是一帧一帧发送的,动作的分解和步长由功能强大的上位机完成,而下位机只负责完成对应的偏转角度执行。一个标准的串行通信短帧包含帧首、数据和帧尾几部分,每个部分可以根据实际需要定义。
(1)帧首,表示本数据帧的开始,用于数据帧的同步和控制的类型属于串口通信协议,并为下位机是否接收此数据帧的标志。一般可以设0xFE为单通道控制帧,0xFF为多通道控制帧。
(2)数据,表示上位机通过串口要控制的舵机输出通道号以及通道所对应的舵量偏转值。
(3)帧尾,表示此帧信号的结束,一般可以用0xF0表示。
单通道控制信令较为简单,如图6所示,其帧首为0xFE,CHn表示该帧所控制的通道号,Dn则表示所控制的通道对应的舵量偏转值,0xF0作为该帧结束的标志。例如,当帧数据为“FE 01 5A F0”时,表示CH1通道信号置于中位(90°=0x5A)。
c.JPG

多通道控制信令格式如图7所示,帧首为0xFF,其控制命令的数据长度可以每个字节对应一个通道,±90°可以用数字0~180表示,对应二进制数为0x00~0XB4。例如,当帧数据为“FF 5A 5A 5A 5A 78 78 3C 3C FO”时,则表示CH1~CH4通道都居中,CH5,CH6为+30°;CH7,CH8为-30°。

4 结语
本文所提出的多路舵机的设计方法是以微处理器为核心,利用定时器中断实现了对多路舵机的控制信号输出,并可以实现上位机与下位机的通信控制,可适用于机器人、无人机等需要控制多个舵机的场合,以及其他需要产生多路PWM系统。

本文引用地址:https://www.eepw.com.cn/article/162491.htm
三相异步电动机相关文章:三相异步电动机原理

上一页 1 2 3 下一页

关键词: 控制器

评论


相关推荐

技术专区

关闭