基于STM32F407ZET6,的智能小车循迹避障设计
赵焕娣,谭宇飞,秦运柏,李颜帆
(广西师范大学,广西桂林,541004)
随着科技的飞速发展与进步,多学科融合已成为未来科学发展的必然趋势。智能机器人的应用在世界上越来越广泛,逐步在各个领域都有所涉及;
在军事侦察、地质勘测、扫雷排雷等人类作业难度较大的领域以及对恶劣环境的监测工作中都有广泛的应用前景[1]。智能小车作为智能机器人的一个分支集中运用了现代传感器技术、信息融合技术、自动控制等;
本次设计的基于STM32 循迹避障小车属于智能机器人中移动机器人的分支,该小车实现了对周围障碍物的感知并进行躲避,根据激光测距传感器、红外传感器、颜色传感器相互配合统筹实现循迹避障功能。
本次系统主要对移动机器人范畴的循迹避障小车进行设计,经过研究讨论放弃使用8 位单片机作为主控器,改成32 位的STM32F40ZET6 作为本次小车设计的主控器,其主要原因在于32 位单片机具有更高频率的处理速度,能做到实时的数据交互,且在IO 口上具有数量优势,有足够的通信口用于调用各类传感器,最高主频为128MHz 可进行高速的数据传输处理而八位单片机最高主频为20MHz 不满足要求,故选择32 为单片机作为系统的主控器。
本系统的设计思路是用通过颜色传感器来识别赛道中的颜色将路线颜色区分出来并进行路线规划,而颜色传感器中带有灰度识别能很好地区分开白色与其他颜色从而增强对于白色线路的识别,再配合激光测距模块进行避障处理。
系统主要由电机驱动模块、主控模块、语言播报模块、二自由度舵机平台、激光测距模块、颜色传感器模块组成。如图1 所示。
图1 系统总构成
■2.1 硬件电路设计
2.1.1 MUC 主控电路
STM32F407ZET6 单片机是一种集成电路芯片。该芯片具有高达192+4 千字节的SRAM,包括64 千字节的CCM(核心耦合内存)数据RAM,最高主频高达168MHz,最多1 兆字节的闪存可以瞬间烧录代码,灵活的静态内存控制器,支持紧凑型闪存、SRAM、PSRAM、NOR 和NAND 存储器,3 个12 位,2.4 MSPS 高精度A/D 转换器:最多24 个通道可至多接收24 个传感器信号,如图2 所示。
图2 MCU 主控电路
2.1.2 车轮电机驱动电路
本次采用RZ7899 作为小车的电机驱动电路,由上图1中的电机驱动模块组成,用以驱动24V900 转390 减速电机,RZ7899 是一款 DC 双向马达驱动电路,它有两个逻辑输入端子用来控制24V900 转390 减速电机前进、后退及制动。该电路具有良好的抗干扰性,微小的待机电流、低的输出内阻,同时,他还具有内置二极管能释放感性负载的反向冲击电流。其引脚功能如表1 所示。
表1 RZ7899功能表
BI、FI 引脚与主控器随意IO 口相连,FO,BO 引脚与电机相连,给FI 输入高电平BO 输入低电平控制小车前进;
给FI 输入低电平BO 输入高电平控制小车后退;
输出都为高时小车不动;
输出都为低时小车原地旋转可用该功能控制小车左右转。其原理图设计如图3 所示。
图3 电机驱动模块
2.1.3 力臂舵机驱动电路
二自由度可控舵机云台使用重量为15kg 的MG996R 舵机来进行云台的转向控制,该舵机具有大扭矩高精度的特点,配合U 型横梁可以轻松载动10kg 物体,云台采用两个MG996R 舵机来分别控制云台的水平转向以及俯仰角度。舵机通过PWM 脉冲信号的控制才能控制舵机转动,舵机脉冲宽度一般在500~2500μs,而PWM 脉冲信号需要由单片机来控制发出,故需要将舵机与主控器相连。舵机拥有三条线分别为地线、电源线、信号线;
地线与主控器的GND 引脚相连达成共地,电源线与稳压电路输出的3.3V 电源线相连,信号线与主控器的PA6 和PA7 相连。接口原理图如图4 所示。
图4 二自由度舵机云台电路
通过二自由度舵机云台控制小车机械底盘上的平台进行水平旋转。作为后续扩展搭载其他模块使用,舵机通过PWM 脉冲信号控制转动角度,通过主控器发出的不同时间的高电平脉冲,从而控制舵机的转角大小。此舵机转角较大,可调范围达到0~270 度,使用100Hz 的PWM 波控制可以做到0.3sec/(2000 脉宽单位)。
这里使用两路FTM 产生两支同频率的100HzPWM 波。通过调节占空比调节舵机转角。控制过程中关键的一点是,为了能够让云台的角度可以平滑稳定变化,需要PWM 波的占空比缓慢均匀的变化,这里是采用占空比每改变0.01%就延时10ms,使云台可以保证均匀速度的前提下平稳运转。
2.1.4 循迹电路
本次采用BV-LX101 颜色传感器来识别地面的白线,以此来实现循迹功能,BV-LX101 自带三种模式,颜色模式、色标模式、对比模式光强可调,带有输出时间调制功能0.01~9.99s 可调对比市面的其他产品拥有更高的反应力,该模块使用5V 直流供电,与主控器的一个IO 口相连接,输出高控制颜色传感器开启,输出低控制颜色传感器关闭。可从R·G·B LED 三种颜色中选择最佳的颜色搭配。传感器的色标模式装备了“最佳LED 自动选择功能”,以自动选择将色标和底色对比(S/N 比)最大的LED,进行最佳检测。因为不是根据色标和底色的反射光量差距而是根据两者的对比来自动辨别LED,所以能进行更为稳定的检测。并将测得数据通过异步串行通信将识别到的颜色信息传达给主控器处理,以完成循迹的功能。其原理图如图5 所示。
图5 颜色传感器模块
2.1.5 避障电路
本次的避障功能由激光测距传感器完成,基于测距精度的要求,本设计采用的测距模块为MVR 系列的激光测距模块,该模块基于TOF(飞行时间)技术,有独特的结构,其大小仅为一个一元硬币大小,极大地节省了PCB 的设计空间,测距快,室内外工作效果佳。该模块采用850nm 激光光源,使测量距离达到30cm~14m,厘米级精度,控制简单,可以连续测量也可以单次测量。该测距模块经过严谨的温度、环境光及线性补偿,在不同环境下均可得到精准的距离信息。该测距模块自带窄带滤光片能够有效阻挡红外线,消除干扰光,多用于无人机避障、煤料运输测量、移动机器人避障,最远测量距离14 米。
MVR 系列激光测距模块通过异步串口来与主控器进行数据通信,该模块一共有7 个引脚,其中PIN5为模组接收数据引脚、PIN6 为模组发送数据引脚,分别与主控器的PA2 和PA3 相连,用UART 串口与主控器进行实时数据传输,使主控器做出避障判断,原理图如图6 所示。
图6 MVR 系列激光测距模块
MVR 系列激光测距模块带有一个发射镜头和一个接收镜头,测距模块采用红外TOF 技术,通过发射镜头发射红外光信号,经过目标板,反射到接收板上从而完成测距。
测距模块会计算通过调制的红外光信号,在接收镜头接收到反射的光信号后返回到测距模块接收传感器的时间来计算出相对距离。
如图7 所示,假设FOV 投射的距离d1=5m 时的面积为144cm2,此块区域会被线性地测算出距离。如果多个物体被放置在测距模块的FOV 范围之内,会影响到测算的距离。
图7 MVR 系列激光测距模块测距原理
■2.2 软件程序设计
2.2.1 主程序流程图
通过初始化各模块来实现智能小车的软件设计。将各传感器采集信息通过数字信号的形式传输到输入引脚,通过主控器单片机对这些信号进行处理而后控制智能车正常运行,本次使用 Keil μVision4 软件来进行小车软件的编程设计,使用最接近底层的C 语言来进行编码,其主程序流程图如图8 所示。
图8 主程序流程图
本次设计中,规定白线为小车的行进路线,绿色区域为小车到达的终点,其他颜色区域为小车不该行进区域。在系统上电后优先执行系统初始化,初始化中对系统的所有IO口中断配置以及串口配置进行初始化设定,因为颜色传感器是正对着小车的下方,故无需计算颜色传感器检测区域与小车的距离,当颜色传感器识别到白线且激光测距的距离大于3cm 时,才会启动语音播报模块,播报声以滴滴两声作为前行提示目的是提示目前的状态。
2.2.2 颜色传感器实现循迹流程图
本次设计中使用到两个串口,故对颜色传感器和激光测距传感器都设定了从机地址;
颜色传感器的从机地址为0X55,BV-LX101 颜色传感器有一个使能口用于控制其开启和关闭,主机输出高电平开启,输出低电平关闭。在开始通信前主机的PB10 口输高电平确保颜色传感器处于开启状态,而后开始进行串口通信;
当检测到白色、绿色、其他颜色时分别返回三种不同的数据给主机处理以此完成循迹功能,具体流程如图9 所示。
图9 颜色传感器实现循迹流程图
■2.2.3 激光测距传感器实现避障流程图
本次设计中激光测距传感器的从机地址为0X56,该传感器无需控制开启,主要电池保持有电,激光测距传感器便一直处于开启状态。在与主机成功通信后激光测距传感器便会返回所测得的数据,返回的数据为16 进制,以毫米为单位,经过主机程序处理后完成避障的功能,具体操作流程如图10 所示。
图10 激光测距传感器实现避障流程图
本文采用激光测距模块实现了智能小车的自主避障功能,且依据绿、白线对光的反射系数不同来控制智能小车的运动路径,实现了智能小车的循迹功能。通过对智能小车的避障、循迹系统的设计与研发,大大提高了小车的实用价值。
猜你喜欢 激光测距循迹舵机 基于DFT算法的电力巡检无人机循迹检测系统设计湘潭大学自然科学学报(2022年2期)2022-07-28含齿隙弹载舵机的全局反步模糊自适应控制自动化学报(2019年6期)2019-07-23基于LabVIEW的偏振调制激光测距测量控制系统测控技术(2018年6期)2018-11-25基于单片机的智能循迹小车的设计电子测试(2018年15期)2018-09-26基于高压架空线路激光测距的无人机锁定导线巡航研究通信电源技术(2018年5期)2018-08-23基于dsPIC单片机的飞艇舵机控制实现电子制作(2018年1期)2018-04-04基于回波强度的激光测距误差补偿算法研究制导与引信(2017年3期)2017-11-02智能差分循迹小车设计电子制作(2017年1期)2017-05-17基于高速同步485总线通信的多通道舵机控制器设计制造业自动化(2017年2期)2017-03-20基于MC9S12XS128处理器的智能循迹小车分析研究电子制作(2016年11期)2016-11-07