基于STM32的智能物料搬运小车的设计
2021-10-30何宗志李海华崔志远李鹏飞
何宗志 李海华 张 琳 崔志远 李鹏飞
(河南科技大学机电工程学院,河南洛阳 471003)
1 比赛场地、物料尺寸及放置要求
1.1 比赛场地
赛场采用近水平铺设,尺寸为4 800 mm×2 400 mm的长方形平面区域,如图1所示。
图1 比赛场地(单位:mm)
赛场周围设有挡板(无高度限制,颜色和高度不做任何要求,仅作为场地边界),由于边界挡板的不确定性,故不适合用边界测距的方式确定小车的位置。赛道地面为亚光白色或浅黄色等浅色底色,路线有线宽为20 mm、线中心距为300 mm的黑色方格组成。比赛场地内,设置半成品区、精加工区、原料区、粗加工区、出发区、返回区、库存区。决赛时拆除挡板。
1.2 比赛所搬运的物料
搬运的物料模型图由solidworks绘制,利用3d打印机用三种不同颜色(红、绿、蓝)PLA耗材打印出模型。
搬运的物料所放置的原料区和库存区的尺寸(长×宽×高)为580 mm×145 mm×(80~100)mm双层货架,白色哑光,原料区的高度为100 mm,物料采用颜色识别,库存区货架高度为80~100 mm,采用条形码识别物料放置位置。
物料尺寸、原料区和库存区如图2、图3所示。
图2 物料尺寸(单位:mm)
图3 原料、库存区(单位:mm)
1.3 物料放置的要求
依据小车放置的物料接触的最外一圈色环,通过查表得出分数,如表1所示。
表1 环号及环尺寸
2 系统设计
2.1 主控制器
主控芯片采用STM32F103ZET6,为中等容量增强型,32位基于ARM核心的128 kB字节闪存微控制器USB、CAN,7个定时器、2个ADC、9个通信接口、2个12位模数转换器,1 μs转换时间(多达16个输入通道);ARM 32位的Cortex™-M3 CPU(最高72 MHz工作频率),内核为Cortex-M3,该款处理器适合处理大量信息和同时控制多个硬件,能够较好地处理此次比赛。
Cortex-M3模块如图3所示。
图4 Cortex-M3模块
2.2 颜色识别与捕捉设计
匹配原装进口芯片TCS3200的颜色识别传感器,8引脚SOIC表面贴片式封装。
芯片集成64个光电二极管,其中16个光电二极管(带红色滤波器)、16个光电二极管(绿色滤波器)、16个光电二极管(蓝色滤波器)、16个光电二极管(无任何滤波器)。64个二极管可以用于接收全部的光信息。由于光电二极管为交叉排列式,能够有效保证入射光辐射的均匀性,提高颜色识别的精确性。
2.3 电源模块设计
采用12 V锂电池分别为直流减速电机和单片机以及传感器供电,除了给电机提供12 V电源以外,其余电压供电方式采用L7812CV三端电源稳压模块进行供电。提供正常工作的5 V直流电压给单片机,提供正常工作的7.2 V直流电压给数字电机(机械手组件)。
2.4 灰度传感器巡线设计
采用四路灰度传感器,X轴和Y轴方向各装一个,用于循迹和记录小车所处位置。采用进口聚光高亮LED,前置发光探头设计,可在一定范围内抵抗巡线赛;场地灯光和环境光的干扰;配合四路线性可调电阻,灵敏度、稳定性更高。数字信号以1或0输出,编程控制简单;根据场地光线等情况调节信号灵敏度。电压比较器有两个电压输入,一个为接收管的电压,一个为电位器输入的基准电压,根据接收管2种色的电压值调节基准电压。
2.5 超声波避障设计
避障模块采用超声波避障模块HC-SR04,在一定距离内能够高效地检测障碍物与小车的距离,并将检测的距离与程序设定的安全距离进行判定,判断是否需要启动自动避障动作。对外界发送40 kHz的工作频率,可自行设定每秒发射超声波的次数(过高会加重单片机内核运算负荷,过低会导致距离检测不及时,无法地避障)。超声波模块将反射时间输入给单片机内核,单片机将时间带入声波和距离计算公式,即可计算小车与障碍物的距离,有效躲避障碍物。
3 系统软件设计
3.1 系统整体软件设计思路
软件流程如图5所示。
图5 软件流程
采用配备双霍尔磁性编码器775减速直流电机码盘的直流减速电机。根据比赛赛道建立绝对坐标系和相对坐标系,单片机根据传感器和电机采集的数据进行计算,得出小车所处位置,让小车执行相应的指令。执行指令过程中,通过小车自身传感器配以PI算法产生中断对指令的执行进行微调,更好地完成任务。执行的任务有采用GM65条形码/二维码扫描识别模块扫描二维码接受任务和扫描条形码确定物品;内部算法定位,用配以颜色识别模块和距离传感器的机械臂(20 kg数字舵机)抓取物品运送到指定区域;单片机读取速度并控制速度最终计算出行驶的距离,确定小车自身所处位置,采用两个四路灰度传感器循迹并识别路线;执行的任务通过LCD1602字符液晶屏显示。
3.2 搬运目标颜色识别软件设计
本设计利用TCS3200D颜色传感器模块对搬运目标进行识别。对TCS3200D颜色传感器模块进行初始化,即进行白平衡设置;单片机通过传感器采集搬运物品反射光线的信息;通过程序进行三基色分离,通过RGB中三种颜色设置的参数值范围识别颜色。软件程序流程如图6所示。
图6 软件程序流程
4 结语
程序高效地安排了程序运行时间,有效提高了程序运行的速率,编译的程序能够快速发现错误并修改,满足了比赛中遇到比赛任务改变的情况。小车在赛道上运行平稳,能够有效执行任务。软、硬件均经过多次测试,保障在运行稳定,出现问题时内部检测系统能够及时报错,便于修改。