基于MSP432 的智能跟随小车的设计

2022-08-17 09:17刘鸿辉
电子制作 2022年14期
关键词:直流电机遥控红外

刘鸿辉

(西北民族大学,甘肃兰州,730106)

1 系统框架

基于MSP432 的智能跟随小车主要由以下几个部分组成:提供各个模块工作电压的电源模块、对小车进行人工控制的红外遥控模块、对实物图像进行获取的图像采集模块、产生电机驱动信号的电机驱动模块、对所有模块进行控制与结合的智能控制模块。由于各模块的工作电压不同有3.3V、5V、12V 等,因此需要一个电源模块来提供各个模块的工作电压。图像采集模块采用的是ATK-OV7725 图像传感器将采集的图像传输给控制模块进行识别,从而自动跟随到达指定地点。红外遥控模块是为了方便对小车进行人工控制而添加的模块。电机驱动模块提供各电机工作所需的PWM 信号。智能控制模块采用的是由TI 公司生产的MSP432 单片机进行控制。具体系统框架见图1 所示。

图1 系统框架图

2 智能控制模块

智能控制模块采用由TI 公司生产的MSP432 单片机控制。MSP432 是一款32 位的低功耗MCU。MSP432 用与M0+相近的功耗实现了接近Cortex-M4F 的性能。MSP432系列使用Cortex -M4F 内核具有超低功耗、应用设计方便、扩展性好等特点。主要还有以下特点:MSP432 系列MCU具有多个低功率操作模式;具有32 位的Cortex -M4F 架构,针对小封装的嵌入式应用进行了优化;具有优秀的处理能力与快速中断处理能力;符合IEEE754 的浮点运算单元(FPU);使用高效的处理器内核、系统和储存器;对时间苛刻的应用提供可确定的、高性能的处理;储存器保护单元为操作系统提供特权操作模式;串行线调试和串行线跟踪减少调试和跟踪过程中需求的引脚数;集成多种休眠模式,使功耗更低;从ARM7 处理器系列中移植过来,以获得更好的性能和更高的电源效率。其主要的资源有:内核:低功耗内核(可达nA 级);工作频率:48MHz;工作电压范围:1.62~3.7V;运行温度范围:-40C°~85C°;存储器:Flash,128KB 以上、SRAM,32KB 以上;ADC:14 位ADC;通信接口:具有UART、12C、SPI 的通信接口模块;安全特性:具有内部看门狗等安全保护特性;电机控制:具有PWM 功能模块;调试接口:具有JTAG 和SWD 程序写入调试接口等。

智能控制模块的主要功能是:对OV7725 传输来的图像信号进行处理从而得到小车即将运行的方式,例如用来控制前轮方向的舵机的转向、后轮电机的转速等。对红外遥控器传输来的信号进行处理从而修改小车的运行方式。如前进后退、加速减速等。利用MSP432 中的Timer_A 模块的A0 产生的PWM 信号用于后轮两个电机的驱动、A1 产生的PWM 信号用于舵机的驱动。

舵机的控制利用了位置PID 算法。所谓PID 控制,就是对偏差进行比例、积分和微分的控制。PID 由3 个单元组成,分别是比例(P)单元、积分(I)单元、微分(D)单位。在工程实践中,一般P 是必须的,所以衍生出许多组合的PID 控制器,如PD、PI、PID 等。如本次使用的PID 算法:V1=Kongzhi_PID(P1,T1)、P1+=V1。舵机转动的速度根据舵机的位置与即将的转动角度而计算出用V1 表示,利用微分将值分割出很多小区间,并区间的值逐个赋值给控制舵机的寄存器。从而实现了将舵机的转动速度变量变成了PID变量的问题。利用此种算法还可实现。

3 电机驱动模块

■3.1 直流电机

直流电机中固定部分有主磁极与电刷,固定部分总称为定子。转动部分由圆柱形铁心与绕在铁心上的铜制绕组组成,转动部分也称为转子。定子上装设了一对直流励磁磁铁,分别为主磁极N 与S,转子上装设了电枢铁心。电枢铁心上放置了一个电枢线圈(在真正的电机中往往有很多线圈,此处只放置一个线圈举例)线圈两端各连接了两个铜制换向器。两个换向器都固定在定子上且与铁心绝缘,在两个换向器上分别固定有两个电刷,其起到的作用是在电枢转动时将与换向器连接的电枢线圈与外电路构成电气连接。在电刷上施加直流电压U,电枢线圈中的电流方向为N 极下的电枢中有效边中的电流是同一个方向,而S 极下的电枢中有效边的电流是另一个方向。根据左手法则判定,这样两个有效边所受的洛伦兹力的方向一致,电枢开始转动,即电机开始转动。

简介来说,就是把直流电机中的+和-对应接到电池的正负极,电机即可正方向转动。如果是把直流电机中的+和-反对应接到电池的负正极,电机即可反方向转动。电机的转速与外接的直流电压电压是成正比关系(实际上由电枢电流决定)。

总而言之,我们可以调节加在电机上面的直流电压的大小,即可实现直流电机转速的调节,也可以改变直流电机上面所加的直流电压的极性,即可实现电机的换向。

■3.2 直流电机驱动芯片TB6612FNG

直流电机的调速与换向的功能,是由MSP432 单片机来控制的,由于MSP432 单片机的I/O 口的输出功率较低,即带负载能力较弱,而直流电机是感性负载需要大电流来驱动,即需要功率较大,因此需要使用功率放大器来对MSP432 单片机的I/O 口输出的PWM 信号进行功率放大。在这里,我们选择了直流电机驱动芯片TB6612FNG。TB6612FNG 是由东芝半导体公司生产的一款直流电机驱动器件,它有可以双通道输出大电流的MOSFET-H 桥结构,最多可以同时驱动两个直流电机工作。相比传统利用双H桥的电机驱动芯片L298N 来说它具有更低的损耗与更低的发热,并且L298N 还需要外围电路的辅助,而TB6612FNG的外围电路极为简单,只需一个电源滤波器即可。因此使用TB6612FNG 来驱动电机可以大大减小小车的尺寸。其可以接受的PWM 信号输入频率范围较大,0~100 kHz 的频率范围足以满足我们绝大部分的要求。以下是TB6612FNG 的主要参数:最大输入电压:VM=15V、最大输出电流:IOUTM=3.2A。TB6612FNG 具有短路刹车/正反转/停机等功能模式。内置有过热保护电路与低压检测电路。具有良好的电机驱动性能,切成本较低。作为小车的电机驱动芯片再好不过。

4 红外遥控模块

往往在很多复杂的地形需要对小车进行人工的遥控控制,所以需要一个红外遥控模块进行辅助小车的正常运行,防止意外情况的出现,在智能模块编写时对于红外遥控的信息与图像采集模块的信息发生冲突时,会优先于对红外遥控的信息进行处理,防止输出小车失控的情况出现。

小车的红外遥控模块采用一款新型的38kHz 通用的红外遥控器,其采用的是NEC 编码格式,因其是基于无线遥控,因此人们使用起来方便、有效,应用领域也越来越宽。其主要参数为:红外遥控距离:大于8m;发射管红外波长:940nm;晶振频率:455kHz 的晶振;载波频率:38kHz;编码格式:NEC。可以看出此款红外遥控器的功能对于遥控小车来说绰绰有余。红外遥控器要结合红外接收模块使用,它负责将接收红外遥控器发射过来的信息并将其解码成十六进制码,这样才能实现既定的通信。将红外接收模块与Arduino 控制器正确连接,在MSP432 中对接收到的信息进行处理,即可实现红外遥控的效果。

红外遥控器一共有0-9、#号、*号、上下左右共十六个按键。红外遥控器发送给编码器的十六进制数的值为0x00 到0xFF 共十六个十六进制数。而每个数占4 位。其中0x0000 到0x0099 表示0-9,0x00AA 表示# 号,0x00BB表示*号,0x00CC 到0x00FF 表示上下左右。每个数的前两位若为00 则表示只按一下,若前两位为FF 则表示长按。如:红外接收器收到的十六进制数为0xFFAA 即表示#号键长按。在小车的控制中,#号表示小车开机,需要长按,红外接收器收到的十六进制数为0xFFAA;*号表示小车关机,需要长按,红外接收器收到的十六进制数为0xFFBB;上下左右表示小车的行进方向,不长按表示改变运行方向但不改变速度,长按表示改变改变速度不改变运行方向。如:小车此时正在向前运行,点按后键小车改变运行方向向后运行,此时长按后键小车加速,长按前键小车减速。将接收器收到的十六进制数传给单片机,由单片机实现对小车的各种运行状态的控制。

5 图像采集模块

图像采集模块采用的是ATK-OV7725-V11 (其中V11 为版本号)摄像头模块,它是由ALIENTEK 公司推出的一款高性能的有着30W 像素的摄像头模块。该模块采用的是由OV 公司生产的一颗仅1/4 英寸的图像传感器OV7725,其主要的采集像素为:640×480。该图像传感器的体积与以往传感器相比较小、其工作电压为3.3V。该图像传感器利用SCCB 协议总线来控制,可以输出取窗口、整帧、子采样等各种采样方式的分辨率,10 位或者8 位的影像数据输出。其 VGA 图像的输出最高可以达到60 帧/秒。用户可以完全控制图像的质量、输出的数据格式与数据传输的方式。其对图像的处理功能包括伽玛曲线、度、色度、白平衡等,并且都可以使用SCCB 来进行编程控制。OV 公司的图像传感器具有独有的较为先进的传感器技术,通过减少或消除光学上的与电子上的缺陷比如固定图案的托尾、噪声、浮散等,来提高图像的质量,从而得到较为清晰并且稳定的图像。ATKOV7725 模块采用OV7725 传感器作为核心部件,集成了有源晶振和 FIFO,任意一款MCU 都可控制该模块和读取图像。

对于该模块的控制,我们只需要关心两点:如何存储图像数据与如何读取图像数据。

摄像头模块存储图像数据的主要过程为:等待OV7725传感器的第一个帧同步信号发出→FIFO 存储器的写指针置1→FIFO 存储器使能→等待OV7725 传感器的第二个帧同步信号发出→FIFO 存储器写指针禁止。通过以上的5 个主要步骤,即可实现一帧图像数据的存储功能。值得注意的是:FIFO 存储器的写指针禁止操作并不是一定需要进行的,只有当外部的MCU 在读取完当前这一帧图像数据之前并且此时传感器不再采集新的一帧图像数据的时候才需要对FIFO存储器进行写指针禁止的操作。

当FIFO 存储器存储完一帧图像数据以后,就可以进行图像数据的读取工作了。一帧图像数据的读取工作的主要过程为:FIFO 存储器的读指针置0→给FIFO 存储器的读时钟FIFO_RCLK 使能→读指针读取第一个像素数据的高字节→将值传给FIFO_RCLK→读指针读取第一个像素数据的低字节→将值传给FIFO_RCLK→读指针读取第二个像素数据高字节→将值传给FIFO_RCLK→读指针读取剩余的像素数据→一帧图像数据读取完成。

具体过程框图见图2 所示,可以看出,摄像头模块的图像数据读取也十分简单,比如QVGA 模式,RGB565 格式下对于一帧图像数据只需要循环读取320×240×2 次即可实现。将数据传入单片机中进行识别控制就可以实现小车的跟随,例如:在人工的后背上映有一个专门的图案,并且具有一个此小车的专门识别编号,在小车读到数据时,先对编号进行判断,此编号是否为本车的编号,若与本车编号一致,开始核对图案的相似度,若相似度超过90%即可认为需要跟随。再对图像的相对位置进行判断,从而得出小车需要的运行状态。编号一致是为了防止不同小车跟随时出现紊乱现象,图案是为了保证小车能稳定跟随而不被旁边的事物影响。相对位置进行改变小车的运行状态用到了一个特殊的算法,当图案偏左时说明小车偏右方,对图案偏左的角度进行计算,从而得出小车需要转动的角度,根据此时小车的运行速度与角度即可得出此时小车需要改变的运行方式即舵机需要转动的角度与电机需要的速度。此时即可使小车始终位于被跟随者的正后方。当被跟随者消失时,小车会立即停止,并且顶部红灯开始闪烁,并发出轻微的警报声以此来告诉跟随者此时小车失去目标。此外,小车还需要避障功能,当视野中出现会与小车碰撞的物体时,小车会强行改变运行方式,但是不会让被跟随者消失在视野中,若出现无法躲避的物体时小车顶部的蓝灯开始闪烁,并发出轻微的报警声来告诉被跟随者小车无法前进。

图2 图像数据读取与存储过程框图

6 电源模块

由于各个模块的工作电压不同,所以需要一个电源模块来提供各个模块的工作电压。电源模块主要由升压降压模块与稳压模块组成,由于小车配备的电池输出电压为12V 并且可能输出电压不稳定所以需要采用升降压模块与稳压模块进行结合而成的电源模块。

如图3 所示,直流变流电路采用Zeta 斩波电路,因为Zeta 斩波电路可以实现升压也可以实现降压,并且电路简单实现较为简单。交流逆变电路采用桥式逆变电路,只需要两个IGBT 与两个二极管即可实现。全波整流部分采用了全波整流桥式电路,使输出的直流电压不会改变并且电路只需要两个晶闸管即可,实现极为简单。滤波电路采用大电感滤波,只需一个较大的电感即可实现。直流输入12V 的电压将其变为个模块所需的工作电压,由于电压可能出现不稳定的现象,将其作为输入传给桥式逆变电路,通过单片机的控制将输入的直流电变为高频的方波电压。然后将其输入到整流回路进行整流将高频的方波变为直流电输出,最后到滤波回路将带有纹波的直流电变成所需的直流电。主电路采用Zeta 斩波电路进行斩波、后经高频逆变得到高频交流电压,然后整流滤波的方法,该电源在开环时,它的负载特性较差,只有加入负反馈,构成闭环控制后,当外加电源电压或负载变化时,均能自动控制脉冲宽度调制输出信号的占空比,从而维持电源的输出直流电压在一定的范围内保持不变,最终达到了升降压与稳压的效果。

图3 电源模块流程图

7 系统程序设计

系统程序框图如图4 所示,在小车的程序设计中红外控制优先于图像控制,即人工控制高于自动控制。在红外遥控有信息发来时,MSP432 对红外信息优先处理,按照红外遥控信息改变小车的运行状态。小车的避障功能会在红外没有发送信息时起到作用对小车的运动状态进行修正。当需要避障时,MSP432 对前方障碍物的大小及方位进行估算,进而计算出小车需要改变的速度及允许方向,当距离较近时会紧急使用减速程序对小车进行减速操作防止小车碰上障碍物。只有在小车不处于红外控制即处于自动智能跟随行驶MSP432 才会对摄像头信息进行处理而产生新的运动状态从而改变舵机的转向与转速,电机的转速等。

图4 系统程序框图

在程序中,红外接收器将传来的信息转为一个4 位的十六进制数传给MSP432,在程序中有错误信息识别功能,当发来的数不为4 位的十六进制数或者其数与规定的数字不符时会对错误信息进行过滤删除从而不影响小车的正常运行,并内置蜂鸣器低鸣两声告诉操控者信息错误需要重新控制。由于小车可能有时需要进行推拉物品,此时可以选择将避障功能关闭或者使用红外控制。部分可以体现红外控制优先于图像控制的代码如图5 所示。只有当红外控制没有信息传递来时才会启用图像控制,而避障功能的函数内置于TuXiang()函数中,这也就表现了红外控制优于一切自动控制,即人工控制优先。

图5 部分程序示意图

8 结束语

随着科技的不断发展,智能小车代替人工的行业越来越多,搬运仓储行业首当其冲,一款能够跟随人工并且能有红外遥控优先权的小车显得尤为突出。在代替人工以及保证安全的同时,它能做到搬运更多物品,造价低,具有很高的性价比。可见,在不久的将来,智能跟随小车将会在代替人工的企业中发挥着它的价值。

猜你喜欢
直流电机遥控红外
基于模糊自适应ADRC的无刷直流电机控制技术
网红外卖
“资源一号”02卫星可见近红外相机、宽幅红外相机在轨顺利开机成像
闪亮的中国红外『芯』
汤定元:中国红外事业奠基人
基于24V直流电机调速的应用
他是如何遥控引爆的
基于霍尔位置信号的无刷直流电机直接转矩控制
无人侦察遥控飞机
遥控赛车