APP下载

基于STM32的自动循迹布障小车设计*

2022-08-25金爱国金贵阳孙千里胡燕海

南方农机 2022年16期
关键词:主控板微控制器气缸

金爱国 ,金贵阳 ,孙千里 ,胡燕海

(1.宁波职业技术学院智能装备研究所,浙江 宁波 315800;2.宁波大学机械工程与力学学院,浙江 宁波 315211)

0 引言

近年来,智能小车的应用范围越发广泛,涉及生活的方方面面,包括无人驾驶、物料搬运、自动分拣等,大大提高了工作效率与用户体验感[1-3]。而如何控制智能小车沿着预定的轨迹稳定快速运行则是设计的难点所在[4-6]。

课题组基于全国大学生机器人大赛Robotac比赛中的障碍挑战赛项目设计了一款基于PID算法的自动循迹布障小车。该小车基于模块化设计理念,以STM32F429IGT6为主控核心,通过CAN总线分别对直流电机、灰度传感器、电磁阀等进行控制,使小车沿着循迹条快速运行,且在预设的位置完成布障任务[7-8]。

1 小车整体方案设计

为提高自动小车运行的灵活性,车轮选用麦克纳姆轮,以轻易地完成多个角度的移动[9]。通过直流电机对麦克纳姆轮进行控制,每个电机设有独立的电机驱动板。通过改变四个电机的转动方向,可以实现前后左右,左前左后,右前右后等旋转动作。在自动车底盘四周的边缘处依次安装四个8路灰度传感器模块,用于不同方向的循线。小车还搭载了两个电磁阀依次控制两个气缸运动,实现布障功能。为了防止车辆跑偏,在主控板上外接JY61陀螺仪模块,实时纠正车辆的方向[10]。各功能模块并联在CAN总线上,与主控板上的微控制器进行通信,大大提高了自动小车的实时性。自动小车整体结构设计图如图1所示。

图1 自动小车整体结构设计图

如上图所示,将11.1 V锂电池接到电源板上,通过电源板引电至各个模块,分别给主控板、电机驱动模块、电磁阀驱动模块、灰度传感器模块同时供电。主控板通过CAN总线和电机驱动模块、电磁阀驱动模块、灰度传感器模块、JY61陀螺仪进行通信,传输有关数据。

2 各功能模块设计

为提高布障效率和运行可靠性,该循迹小车硬件部分采用模块化设计,包含电源板、主控板、电机驱动模块、电磁阀驱动模块、灰度传感器模块。主控板主要包含微控制器芯片STM32F429IGT6、电源转化模块、液晶显示模块、数据存储模块、CAN收发模块、按键模块、指示灯模块。电机驱动模块包含微控制器芯片STM32F103C8T6、指示灯模块、电压转换模块、按键模块、CAN收发模块等。电磁阀驱动模块包含微控制器芯片STM32F103C8T6、电压转换模块、气缸控制模块、CAN通信模块、指示灯模块。灰度传感器模块包含微控制器芯片STM32F103C8T6、电源稳压部分、8路循迹光敏模块、独立按键、CAN通信模块、指示灯模块。电源板外接11.1 V-2 600 mAh锂电池,设计多路接口,分别给主控板、电机驱动板、电磁阀驱动板供电。电源板单独设计的目的如下:1)减少其主控板的发热量,降低故障率,延长板子使用寿命;2)方便为后续新增加的功能模块提供电源接口。

2.1 主控板设计

主控板设计框图如图2所示。电源转换模块将11.1 V电压转换为5 V和3.3 V的电压,给各部分供电。OLED用于显示自动小车运行状态。独立按键一共有五个,KEY1按键按下时,开始校验自动小车正前方灰度传感器模块,校验完毕时按下KEY5按键。类似地,分别按下KEY2、KEY3、KEY4按键,依次校验自动小车左侧、后方、右侧灰度传感器模块,校验完毕时按下KEY5按键。灰度传感器模块校验值通过SPI总线保存到数据存储器W25Q64中。通过观察指示灯的闪烁情况判断程序是否正常运行。微控制器1通过串口1读取陀螺仪的数据,从而实时修正小车的姿态。微控制器1通过CAN总线与各功能模块进行数据收发。

图2 主控板设计框图

2.2 电机驱动模块设计

电机驱动模块设计框图如图3所示。微控制器1通过CAN总线发送命令给微控制器2,微控制器2通过调节PWM占空比的方式,经过VNH5019芯片放大工作电流,控制直流电机的运动。独立按键模块只有一个按键KEY6,按下KEY6按键可以设置驱动板的ID号。如果是右前方的电机,则需将ID号设为1,ID号沿着逆时针方向递增。通过观察指示灯闪烁次数可以确定驱动板的ID号,通过观察指示灯的闪烁情况可以判断程序是否正常运行。

图3 电机驱动模块设计框图

2.3 电磁阀驱动模块设计

电磁阀驱动模块设计框图如图4所示。微控制器1通过CAN总线发送命令给微控制器3,微控制器3通过输出高低电平控制电磁阀的正向或者反向导通,从而控制气缸的收缩。电磁阀1正向导通,气缸1伸出,反向导通,气缸1缩回;电磁阀2正向导通,气缸2伸出,反向导通,气缸2缩回。通过观察指示灯的闪烁情况判断电磁阀驱动板程序是否正常运行。

图4 电磁阀驱动模块设计框图

2.4 灰度传感器模块设计

灰度传感器模块设计框图如图5所示。微控制器4将采集到的循迹光敏模块的信号通过CAN总线发送给微控制器1,判断小车是否循着白线运动。如有偏差,微控制器1则发送控制命令给微控制器2,通过调节四个电机的转动速度和方向来修正小车位置。

图5 灰度传感器模块设计框图

3 系统性能测试

智能小车运行场地图如图6所示。自动小车可以在不同背景色的地面沿着白线行走,为了提高循线的稳定性,在首次运行之前需要校验灰度传感器模块的灵敏度。具体校验方法如下:以循3 cm白线为例,将小车四个方向上的灰度传感器模块依次放到垂直于白线方向上,按下对应的独立按键,开始校验,来回移动小车,通过观察主控板上液晶显示的UI界面的变化即可完成校验。校验完成之后即可开始循线。运行前,小车停放在启动区,触发启动按键之后,沿着左前方向运动到A点,循到白线之后沿着AB方向快速运动到B点,此时主控板微控制器1通过CAN总线发送命令给电磁阀驱动板上的微控制器3,微控制器3接收到命令之后使电磁阀1正向导通,将气缸1推出,从而完成B点的布障,随后控制 电磁阀1反向导通,将气缸1缩回。之后沿着BC方向运动到C点,微控制器1发送命令给微控制器3,微控制器3收到命令后使电磁阀2正向导通,将气缸2推出,从而完成C点的布障,随后控制电磁阀2反向导通,将气缸2缩回。之后沿着CD方向运动到D点,微控制器1发送命令给微控制器3,微控制器3收到命令之后使电磁阀2正向导通,将气缸2推出,从而完成D点的布障,随后控制电磁阀2反向导通,将气缸2缩回。之后小车沿着DA方向回到A点,停止运动。也可以通过修改程序让小车循环往复地沿着ABCD方向行走。经性能测试,小车布置完所有障碍物只需要10.5 s,且任务完成度为100%。

图6 智能小车运行场地图

4 总结

课题组设计了一款基于STM32的自动循迹布障小车。在硬件电路设计方面,将电源板和主控板单独设计,主要有以下优点:1)减少主控板的发热量,延长板子使用寿命,降低故障率;2)方便后续为新增加的功能模块提供电源接口。同时,为了提高小车与各模块之间通信的实时性,主控模块与各模块之间采用CAN总线进行数据传输。经测试,该智能小车具备快速自动循白线、推杆布障等功能,通过反复调试及算法优化,能够保障小车在10.5 s时稳定地完成所有任务。

猜你喜欢

主控板微控制器气缸
一种快速可靠的主控冗余及切换机制的设计与实现
TASKING针对英飞凌第三代AURIX微控制器推出多核开发环境
壁挂炉主控板工装测试系统设计
重庆轨道交通闸机三杆机芯主控板的技术自主化探究
2014款宾利GT车偶尔加速抖动
一种新型无杆气缸传送一模双件开卷落料模结构
用于高品质电动汽车的分布式并行计算
新型食堂点菜结算装置的设计研究
一种发电站专用的电力输送电缆的架设设备
电磁导向智能车设计探讨