2024年全国大学生电子设计竞赛(TI杯)
2024年7月17日
摘要:本项目由微处理器MSPM0G3507,编码器电机驱动,OPENMV、K210视觉处理单元,红外药品检测单元,ZIGBEE无限透传单元,OLED显示,红绿黄三色LED构成。系统运行由两部分组成:智能送药小车的单车控制部分和双车联动部分,小车的单车控制部分由K210识别目标病房,OPENMV识别指引线,通过红外传识别药品,通过串口收发送数据到MSPM0,由MSPM0控制电机的转动以此达到小车进入目标病房和取药回到起始点的目的,双车联动通过OPENMV记录路口数目,ZIGBEE互传,实时共享双车的实际位置达到主车控制从车到达目标病房的双车协调送取药目标任务。
关键词: MSPM0G3507;K210视觉处理;智能送药小车。
目 录
一、系统方案设计与论证
1. 电机选取
方案一:利用步进电机能够精准的控制小车的前进、后退、转向和自转,不需要过多的PID调制就可以达到所预期的目标速度和小车的运动轨迹,但对于本项目单个步进电机的体积过大,加上其他基本部件会超过项目要求的最大高度。
方案二:利用霍尔编码器电机,通过编码器返还的实时脉冲数,通过PID的实时计算修正,达到小车的预期运动轨迹,体积适中,PID调节难度适中,能够满足本项目对电机控制的全部需求。
综上所述故选方案二。
2. 字模识别
方案一:利用K210进行对应的模型训练,识别字模的准确率可达75%,价格较低,操作难易度适中,满足本项目字模识别所需的精度要求。
方案二:利用V831进行模型训练,识别字模的准确率可达89%,价格较高,操作难易程度较高,远远满足本项目字模识别所需的精度要求。
综上所述故选方案一。
方案一:利用OPENMV视觉传感器对指示线识别,通过串口收发数据给MSPM0,达到实时PID调节控制小车的姿态和预期运动轨迹。指示线识别的准确率可达85%,满足本项目的各种标志位的识别,以及本项目所需的各种标志位之间互相协调。
方案二:利用灰度对指示线识别,通过软件I2C给MSPM0发送数据,达到实时控制小车的运行轨迹。指示线识别的准确率可达95%,软件I2C的操作难度较大。
综上所述故选方案一。
方案一:利用HX771重力传感器识别药品,达到检测药品是否获取的目的。价格较低,精确度较低。
方案二:利用红外传感器检测药品。价格较低,精准度较高,环境要求较低。
综上所述故选方案二。
方案一:利用ZIGBEE无限透传,进行双车数据互传,达到双车联动、实时数据共享的目的。传输速率有250Kbps、范围较大、AES加密安全级别高。
方案二:利用蓝牙5.0达到双车通信的目的。传输速率2Mbps、范围较小、通信安全级别较低。
综上所述故选方案一。
- 小车结构
方案一:利用前轮舵机舵机转向,后轮双电机提供动力,在小车的长方形底板上构建所需的模块,达到小车的总体稳定的目的。体积较大,在出库入库易出界,灵活性较低。
方案二:利用双电机差速转向和同速直行,两个辅助轮增加小车的稳定性,在圆形底板上构建模块,达到小车的总体稳定的目的。体积较小,小车灵活,易操作,体积在项目的要求之内。
综上所述故选方案二。
二、总体方案描述
图1 系统整体框图
本系统以超低功耗单片机MSPM0G3507为控制核心,小车采用OPENMV视觉识别,K210模型识别,红外传感器,霍尔编码器电机驱动,ZIGBEE无线透传构成。单片机输出PWM波经过直流电机驱动控制两个霍尔编码器,使小车获得运动动力。K210识别目标病房,得到小车的预期运动轨迹,通过霍尔编码器和OPENMV判断指引线坐标得到小车的实时运动情况,利用PID计算实时调整,形成信号反馈回路。组成闭环控制系统。
1.单车指定病房送药
本项目将八个病房分为近、中、远端三类病房,而实际操作中将其分为中端和远端两类病房,中端病房部分包括项目中的近端和中端病房。对中端病房送药,首先通过K210识别目标病房,OPENMV记录小车通过的路口数小于3判断小车需要送药的病房为中端病房,识别进目标病房并进入目标病房的目的,取药后通过进入目标病房记录的数据进行回到起点的目的。对远端病房送药,通过K210识别目标病房,OPENMV记录小车通过路口数大于2判断小车所需要送药的病房为远端病房,在最后第3个路口进行左转到达远端左方病房,如果目标病房在其中则进入,不在则自转到达右方远端进行最后的识别进入目标送药病房的目的,取药后通过进入目标病房记录的数据进行回到起点的目的。单车远端送药逻辑图如图2所示
图2 远端送药逻辑图
一车中端病房送药,一车K210识别目标病房,到达目标病房后通过ZIGBEE命令二车开始运动到达目标病房的对立病房,当一车取药通过路口后,命令二车开始运动到达目标病房,取药后回到起点。
一车远端病房送药,一车K210识别目标病房,一车通过第三个路口后左转判断目标病房是否在左边,在左边直接到达目标病房并停车,不在左边病房则自转向右边巡逻,进入目标病房。一车停在目标药房,取药后命令二车快速启动运动到第三个路口,一车从第三路口出来,命令二车则向第三路一车的对立面避让,一车回到起点,二车继续向前运动识别目标病房并运动到目标病房进行取药。
双车联动远端送取药逻辑图如图3所示。
图3 双车远端送取药逻辑图
- PID巡线求解
公式1 增量式PID公式
一车二车均利用增量式和位置式并行PID控制,通过OPENMV发送给MSPM0G3507的指示线中心点X坐标与预期目标值进行差分、微分、积分计算得到预期控制PWM控制,加上编码器返还的实时电机转动实况,进行差分、积分、微分计算预期控制PWM,形成闭环实时控制。实时增量式PID公式如公式1所示。实时位置式PID公式如公式2所示。
公式2
通过OPENMV得到指示线的实际CX坐标与小车运动的目标CX做差得到位置式的Err,编码器得到小车实时运动速度与预取运动速度做差得到增量式的Err,通过本次和上次的误差得到增量式和位置式的微分差值,最后经过Kp、Kd系数来调节差分和微分的比例,将最后的PID_out和Increment_val进行求和最终达到实时调节小车运行轨迹和速度的目的。
1. 稳压电路模块
由于直流电机做执行机构,所以需要有给直流电机供电的电源,并且为了防止电机转动带来的电流对单片机的影响,单片机供电和电机供电要分开。所以选用7805稳压芯片输出5V稳定电压给单片机供电。稳压电路模块原理图如图4所示。
图4 稳压电路模块原理图
五、软件设计流程
为了保证整个程序的联会性,以及各功能之间不相互影响单车送药软件设计主要划分为中端和远端送药,主要通过OPENMV识别小车经过的路口数判断目标病房为远端还是近端病房,为了使小车的每一个运动动作前后之间不互相影响采用了开关定时器的方式,最终达到能够准确的控制小车完成目标要求的运动。
单车送药程序流程图如图5所示。
中端病房送程序采用一车到达目标病房后,命令二车到达对向病房进行避让,当一车出病房到达指示线十字路口,命令二车开始向目标病房运动,二车到达目标病房取药后,通过进行与记录相反的转向后快速回到起点。远端病房程序采用一车判断,命令二车对向避让的方式进行错车避让,二车避让后进行目标病房取药程序。
双车送取药联动程序流程图如图6所示。
图5 单车送药程序流程图 图6 双车送取药联动程序流程图
六、测试方案与测试结果
1.测试所用仪器
序号 | 仪器名称 |
1 | 秒表 |
2 | 卷尺 |
2.测试方案
(1)单车目标近端病房送药,单车进行病房1,病房2反复切换目标送药。小车开始启动时即开始计时,观察小车是否超越界线,小车返还起点并停止运动时停止计时。
测量次数 | 目标病房 | 实际到达病房 | 花费时间 |
1 | 1 | 1 | 12.67 |
2 | 2 | 2 | 13.98 |
3 | 2 | 2 | 12.70 |
4 | 1 | 1 | 13 |
5 | 1 | 1 | 10.55 |
6 | 1 | 1 | 11.90 |
7 | 2 | 2 | 12 |
(2)单车目标中端病房送药,单车进行中端病房送药并不断随机变换中端病房房号。小车开始启动时即开始计时,小车返还起点并停止计时。
测试次数 | 目标病房 | 实际到达病房 | 花费时间 |
1 | 3 | 3 | 16.89 |
2 | 6 | 6 | 17.98 |
3 | 7 | 7 | 17.77 |
4 | 8 | 8 | 15.99 |
5 | 4 | 4 | 18.32 |
6 | 5 | 5 | 14.99 |
7 | 7 | 7 | 18.90 |
(3)单车目标远端病房送药,单车进行远端病房送药并不断随机变换远端病房房号。小车开始启动时即开始计时,小车返还起点并停止计时。
测试次数 | 目标病房 | 实际到达病房 | 花费时间 |
1 | 6 | 6 | 32 |
2 | 8 | 8 | 31.89 |
3 | 7 | 7 | 29.88 |
4 | 4 | 4 | 36.66 |
5 | 3 | 3 | 31.11 |
6 | 6 | 6 | 30.88 |
7 | 5 | 5 | 38.51 |
(4)双车中端送药,二车运动后开始计时,一车到达起点二车到达病房停止计时。
测试次数 | 目标病房 | 实际到达病房 | 花费时间 |
1 | 3 | 3 | 20 |
2 | 6 | 6 | 28.01 |
3 | 7 | 7 | 21.22 |
4 | 5 | 5 | 26.66 |
5 | 4 | 4 | 21.11 |
6 | 8 | 8 | 20.18 |
7 | 3 | 3 | 18.51 |
- 双车远端送取药,一车返还时开始计时,二车到达目标病房取药后开始停止计时。
测试次数 | 目标病房 | 实际到达病房 | 花费时间 |
1 | 6 | 6 | 30 |
2 | 8 | 8 | 32.01 |
3 | 6 | 6 | 31.92 |
4 | 7 | 7 | 36.36 |
5 | 5 | 5 | 31.31 |
6 | 4 | 4 | 30.68 |
7 | 3 | 3 | 38.09 |
3.误差分析
小车在运行过程中返还的中心点的坐标会受到光照强弱的影响,会导致小车的运行轨迹受到影响,导致时间上下有所起伏。
七、参考文献
- 张立婷,钟杨福,黄辉等.基于物联网的无人智慧药房系统[J], 机电信息, 2023.10.23:10.19541.
- 徐贤,高小慧,李羽婷等.基于STM32单片机的智能送药小车设计[J],信息科技,2024.6.27:10.16589.