基于STM32的多型号舵机调试器设计*
2020-08-13王世伟江汇洋
王世伟 杨 越 高 城 江汇洋
(淮南师范学院机械与电气工程学院 安徽淮南 232038)
舵机以其调试方便、控制简单和精度高的优势,被广泛应用到了小型机器人位姿调试和航模飞行姿态调试之中[1]。为了实现精确的姿态控制,就必须提高舵机角度控制的精度,基于此,学者们研究出了多种性能优异的控制系统,并设计制作出了不同的舵机调试器[2-7]。但是,现有舵机工作电压一般为5V~8.4V,而且舵机调节参数也不相同,因此为实现不同类型舵机的快速调试,需设计一种新型的舵机调试器。文章以STM32单片机为核心,设计了一种高精度舵机调试器,实现了不同类型舵机的同时调试。
1舵机控制原理
舵机是一种角位置伺服电机,一般通过脉宽调制(PWM)信号进行控制,由电机、减速器、电位器和控制电路四部分组成,通过输出端的电位器检测转动角度,实现精确地角度转动控制[8-9]。图1为舵机的控制原理框图,由调试器所产生的PWM信号通过舵机的控制信号线传送至控制电路后,舵机输出轴会转动至对应角度,该角度与PWM信号的脉宽成正比。
图1 舵机控制原理图
以180°舵机为例,转角从-90°~+90°之间变化,则相应控制脉宽为0.5ms~2.5ms,控制脉宽为1.5ms时,输出轴转角为0°。
2调试器硬件设计
为了实现不同型号舵机角度的同时调试,文章以STM32单片机为核心,设计舵机调试器硬件系统结构如图2所示,以调压电路实现舵机驱动电压调节,以按键电路实现舵机通道选择和功能确认。
图2 舵机调试器硬件系统结构
2.1主控电路设计
舵机调试器采用意法半导体集团生产32位单片机STM32F103RBT6微调试器作为控制芯片。
该单片机内核为ARM公司的高性能Cortex-M3,数据的运算能力为1.25DMips/MHz,同时配备有1μs的双12位ADC,4兆位/秒的UART,18兆位/秒的SPI,18MHz的I/O翻转速度,而且功耗非常低。基于此,文章设计了如图3所示的主控电路,并且为了提高定时器精度,实现对舵机角度的高精度控制,外接了8M晶振。
图3 STM32主控部分电路
2.2电源电路
舵机调试器电源电路部分如图4所示,采用外部供电方式,STM32F103RBT6型单片机的供电电压为2.0V~3.6V,因此选用高性能线性稳压器AMS1117。舵机供电电路采用简单高效的降压调节器LM2576TV-ADJ,实现对串口舵机的电压调节。
图4 电源电路
2.3去耦电路
为了降低元件耦合到电源端的噪声,间接减少其他元件受此元件噪声的影响,在稳压器AMS1117端设计了如图5所示的去耦电路,使用电容保证稳定的供电电压。
图5 去耦电路
2.4其他电路设计
显示电路采用节能型OLED显示器,与LCD相比,OLED具有不需要背光,而且能够主动发光,在很大视角范围内画面是不会显示失真的优点,其上下左右四个视角宽度超过170°。
舵机以串行形式接入到舵机调试器中,如图6(a)所示为舵机引脚外接排针电路。为了实现复位功能,避免出现故障无法消除,设计了如图6(b)复位电路。
图6 舵机串口电路
3舵机调试器软件设计
舵机调试器软件设计采用C语言编程,在Keil5集成开发环境下进行编译,主要包括初始化参数设定、通道选择、OLED显示和电压调节等功能实现,调试器控制流程如图7所示。
图7 舵机调试器主程序流程图
4实验验证
为验证所设计舵机调试器的功能,研制了如图8(a)所示的舵机调试器样机,并搭建了如图8(b)所示的串口输出波形检测实验环境和如图8(c)所示的不同类型舵机实际角度精确控制实验环境。
图8 实验样机与实验环境
4.1正角度控制实验
通过舵机调试器控制,4个舵机角度依次为0°、30°、60°和90°,控制效果如图9(a)所示,各角度所对应的示波器检测波形如图9(b)所示。
图9 正角度值实验验证
4.2负角度控制实验
通过舵机调试器控制,4个舵机角度依次为0°、-30°、-60°和-90°,控制效果如图10(a)所示,各角度所对应的示波器检测波形如图10(b)所示。
图10 负角度值实验验证
由图9和图10所示的正负角度控制效果可以看出,文章所设计的舵机调试器能够同时实现不同型号舵机的精确角度控制。
5结论
文章针对不同型号舵机的精确控制问题,设计了一种基于STM32单片机的舵机调试器的软件和硬件,并制作了调试器样机,进行了实验验证。实验结果表明,文章所设计的舵机调试器能够实现不同型号舵机的精确角度控制,解决了实际应用中的舵机控制问题。