理论教育 如何优化驱动程序来支持仿壁虎机器人的测距传感器?

如何优化驱动程序来支持仿壁虎机器人的测距传感器?

时间:2023-06-27 理论教育 版权反馈
【摘要】:6.测距传感器驱动程序测距传感器主要负责测量空间仿壁虎机器人离目标平面的距离。

如何优化驱动程序来支持仿壁虎机器人的测距传感器?

空间仿壁虎机器人的驱动程序有:舵机直流电动机、姿态传感器、无线串口、力传感器和测距传感器驱动程序。

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-Ⅲ的移植。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈