空间仿壁虎机器人的驱动程序有:舵机、直流电动机、姿态传感器、无线串口、力传感器和测距传感器驱动程序。
1.舵机驱动程序
STM32使用了4个定时器来控制16个舵机,分别为定时器1、2、4、8,每个定时器都可以产生4路PWM信号。以定时器2为例详细介绍PWM输出的方法。定时器2是一个16位的自动重装载计数器,内部有一个16位可编程的预分频器,其分频系数可为1~65536内的任意值;它有4个独立通道以边缘或中间对齐模式生成PWM信号,该信号的频率由TIMx_ARR确定,占空比由TIMx_CCRx确定。将定时器2配置为比较、PWM输出,使每个通道都能够独立地工作在PWM模式并输出一路PWM。
将定时器2设置为向上计数的PWM2模式,以边缘对齐的方式产生PWM信号,高电平有效,以通道1为例其工作机制为:在向上计数时,一旦TIM2_CNT<TIM2_CCR1时,通道1对应的引脚输出为低电平;随着定时器不断向上计数,当TIM2_CNT>TIM2_CCR1时,定时器2通道1对应的引脚输出电平翻转至高电平;当计数值递增至重装值时,通道1对应的引脚输出电平再次翻转为低电平。定时器2重新装载计数值计数,重复以上过程。定时器2通道1的PWM输出原理如图5.12所示。
图5.12 PWM输出原理
STM32使用外部8 MHz的晶振作为时钟输入源,通过PLL选择位预先选择后续PLL分支的外部晶振作为输入时钟,设置外部晶振为1分频,选择分频后的外部晶振作为PLL倍频的时钟源,得到PLL的时钟源为:8 MHz/1=8 MHz。设置PLL倍频数为9倍频,选择经过PLL倍频所输出的时钟作为系统时钟源,得到系统时钟源为8 MHz×9=72 MHz。设置AHB总线分频数为1分频,此时频率仍为72 MHz。设置APB1总线为2分频,此时通用定时器的时钟将要乘以2,所以通用定时器的驱动时钟源仍然是72 MHz。设置APB2总线分频数为1分频,此时频率为72 MHz,时钟到达APB2总线外设,所以此时高级定时器的驱动时钟也为72 MHz。其时钟配置如图5.13所示。
为了能够使舵机运动,必须使定时器产生一个周期为20 ms的PWM信号,所以先对定时器进行100分频,并设置重装值为14 400。舵机在零度位置时,需要一个持续1.5 ms高电平的脉宽信号,此时的占空比为1.5 ms/20 ms=7.5%,故应将此时的比较值设置为14 400×(1-7.5%)=13 320。舵机每顺时针转动一度,需要将比较值减小8,转到90°时,比较值为12 600。舵机每逆时针旋转一度,需要将比较值增加8,转到-90°时,比较值为14 040。
空间仿壁虎机器人舵机驱动程序有:
(1)时钟配置程序:主要配置RCC寄存器组,主时钟为72 MHz,配置PCLK2为主时钟的1分频,PCLK1为主时钟的2分频。由于使用了重映射功能,因此还需打开复用时钟;
(2)配置GPIO程序:由于有些定时器PWM输出引脚和模拟输入引脚重合,因此需要使用重映射功能将定时器PWM信号输出映射到其他引脚上,此时需要将相应的引脚配置为复用推挽输出。由于该控制系统采用的调试系统为SWD串行接口,因此还需要将JTAG-DP失能,SW-DP使能。
图5.13 时钟配置(www.daowen.com)
(3)配置定时器程序:主要配置定时器时基单元,将计数重载值设置为14400,预分频值为100。配置定时器的各个通道,将其设置为向上计数、PWM2输出模式,使能重装载寄存器。
2.直流电动机驱动程序
空间仿壁虎机器人的尾部安装有一个直流电动机,通过控制直流电动机加减速,可以调整机器人的姿态。通过STM32的定时器输出不同占空比的PWM信号,可以控制直流电动机电枢电压接通与断开的时间,进而达到控制直流电动机速度的目的。其PWM输出原理与舵机相同。
3.姿态传感器驱动程序
姿态传感器和STM32采用串口通信,启动后需要单片机发送相应的输入报文,来设置其数据输出方式,输出的数据由单片机中断接收。
4.无线串口驱动程序
无线串口主要用于单片机和PC进行无线通信以及输出调试信息,采用串口通信方式。通过PC发送的指令由单片机中断接收。
5.力传感器驱动程序
力传感器驱动程序主要负责控制STM32的模/数转换器,采集力传感的16路模拟电压信号。为了提高CPU的工作效率,将采集到的电压数据通过DMA传输到SRAM。其驱动程序主要包括:配置ADC时钟为PCLK2的6分频、打开ADC和DMA的时钟、配置相应的GPIO引脚为模拟输入模式以及配置ADC和DMA寄存器组。
6.测距传感器驱动程序
测距传感器主要负责测量空间仿壁虎机器人离目标平面的距离。驱动程序主要包括:时钟配置以及GPIO配置。
基于STM32的空间仿壁虎机器人控制系统完成之后,为了提高稳定性,保证实时性,还需要在STM32上进行嵌入式操作系统uC/OS-Ⅲ的移植。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。