APP下载

基于OPENMV的智能送药小车设计

2022-06-02杨晓峰柳笑辰王佳奇

电大理工 2022年1期
关键词:循迹巡线小车

杨晓峰 柳笑辰 王佳奇

(辽宁大学,辽宁沈阳 110031)

0 引言

在全球疫情日益严峻的背景下,传统的人工药品运输方式愈加难以适应疫情防控与救治所需求的非接触式医疗,智能化、小型化的配送药品系统成为实现非接触式医疗的重要环节。在智能车设计方面,李婕提出了一种基于STM32的无线视频监控智能小车的设计方案[1],张磊设计了一种智能小车控制系统[2],潘元骁对基于Arduino的智能小车自动避障系统进行了设计与研究[3]。本文介绍了一台可以实现自动识别、取药、送药的智能送药小车,可以成为一种非接触式医疗的解决方案。

本方案对小车的电路系统、软件系统进行了设计与制作,并进行实际测试与分析。

1 方案设计及论证

1.1 设计目标与任务

设计并制作智能送药小车,模拟完成在医院药房与病房间药品的送取作业。院区结构如图1所示。药房和近端病院房号(1、2号)位置固定不变,中部病房和远端病房号(3~8号)测试时随机设定。

图1 院区结构示意图

工作要求:使用者手动将小车摆放在药房处(车头投影在门口区域内,面向病房),手持数字标号纸张由小车识别病房号,将约200 g药品一次性装载到送药小车上;小车检测到药品装载完成后自动开始运送;小车根据走廊上的标识信息自动识别、寻径将药品送到指定病房(车头投影在门口区域内),点亮红色指示灯,等待卸载药品;病房处人工卸载药品后,小车红色指示灯自动熄灭,开始返回;小车自动返回到药房(车头投影在门口区域内,面向药房)后,点亮绿色指示灯。

根据设计目标与任务,提出以下两种方案:

1.2 方案一

方案一结构框图如图2所示。该方案采用STM32F103C8T6作为主控芯片,整车的电路基于万用板连接,利用一个OPENMV H7 PLUS进行图像处理(包括数字图片识别、红线循迹、停车点识别等),与STM32使用UART通信协议进行通信,使用TB6612FNG驱动两部直流电机,使用OLED屏幕显示操作提示,OLED与STM32采用IIC通信协议进行通信,加之HWZ020型舵机实现转向功能,采用按键(6×6×4.3直插型)检测药品是否放置。

图2 方案一结构框图

1.3 方案二

本方案使用一片OPENMV H7进行红线循迹,使用一片OPENMV H7 PLUS进行数字图片识别,使用亚博智能出品的三路寻迹模块识别停车点,利用TCRT5000红外传感器检测判断药品是否放置[4],其余设计与方案一相同。其结构框图如图3。

图3 方案二结构框图

1.4 方案分析与选择

方案一的优势在于所用元器件数量少,在硬件电路设计与实现方面易于设计与实现,减轻了整车机械结构的复杂度,更易于加工。另外,由于元器件数量少,成本较低。

然而其缺点为OPENMV承担了数字识别、红线循迹、停车点识别等多种功能,由于其算力有限,而数字识别又需要占用大量算力资源,所以容易导致OPENMV运行时卡顿严重、帧率降低。且由于巡线、数字识别所需要的角度与位置存在区别,在摄像头位置、角度调节问题上会存在较大困难。由于小车颠簸干扰,使用按键识别药品可能会发生药品掉落的情况。

方案二的优点在于使用两片OPENMV分别解决巡线、数字识别需求,用三路巡线模块解决停车点识别问题,大大地降低了单一模块的工作量,有足够的算力来处理数字识别。且由于多模块的使用,使得整车更模块化,可替代性极高。另外,使用TCRT5000红外传感器,配合定制的配件可以解决检测药品是否放置的问题。

方案二的缺点在于整车使用多种不同的模块,在设计电路时,需要设计多种供电电压,还需考虑各模块的实际位置与方向,以便于万用板焊接与模块之间接线。模块与MCU之间需使用不同的通信接口,也加大了程序设计的难度。

综上所述,认为方案二更适合本题目需求,故择之。

2 理论分析

方案二涉及的理论包括:采用何种方法解决数字识别问题、采用何种方法解决自动巡径问题。

2.1 数字识别方法

利用Keras建立NN模型进行数字识别,采用机器学习建立模型的方法进行数字识别。使用在线建模网站Edge Impulse建立模型,只需要用OPENMV采集一定数量的数字照片上传至网站进行监督学习,将经训练的机器学习模型置于OPENMV中,测试识别准确率,对准确率较低的数字加大采样量再次上传,得到新的模型。

在十字路口同时识别4个数字时,利用OPENMV,根据返回图像的横纵坐标,以110%的误差余量确定划分区域作为感兴趣区,划分出4个数字的大概位置,对每个感兴趣区内的内容进行识别。

2.2 自动寻径方法

使用OPENMV官方提供的例程文件中的线性回归算法,在调整颜色阈值后,将目标颜色调整为红色即可实时得到当前画面中路径的斜率,然后通过串口将信息传至MCU进行处理,通过斜率计算出舵机需要转向的角度并换算为对应的PWM波占空比,从而改变小车前进方向。

3 电路与程序设计

3.1 电路设计

电源设计:采用LMS2596模块作为整车电源,将电池提供的12 V电压通过BUCK电路、LDO电路降压至5 V、3.3 V供各个模块使用。由于本电路不涉及高频成分,所以未设置数字电源与数字地。接地方面本板采用了混合接地的方式[5]。原理图如图4。

图4 电源模块原理图

电机驱动模块TB6612,可以同时控制两个直流电机,STM32通过向其输出不同的0、1组合控制电机正转反转,通过调节输出PWM波占空比调节电机转速[6]。原理图如图5。

图5 电机驱动模块原理图

OLED模块通过IIC协议与STM32进行通讯,其中SCL为时钟,SDA为数据线。三路巡线模块是亚博智能出品的模拟量红外巡线模块,集成了三路红外传感器,可以返回0~125的模拟值。HWZ020型舵机,5 V供电,最大转角在45°到135°,通过调节PWM波占空比改变角度。OPENMV是由星瞳科技代理的带有摄像头的单片机,可以进行简单的图像处理,H7 PLUS以上版本可以装载神经网络模型进行机器学习。控制核心电路连接如图6[7]。STM32引脚连接情况见表1。

表 1 STM32引脚连接情况

图6 控制核心电路原理图

3.2 程序设计

OPENMV巡红线程序利用一个无限循环抓取图像,并逐帧计算斜率发送至控制核心[8]。程序流程图如图7。OPENMV数字识别程序利用一个无限循环抓取图像,若为初次识别,则利用神经网络更新窗口数组元素,将结果发送给MCU。若非初次识别,则将捕捉的图像按照感兴趣区进行分割处理,结果传送给MCU[9]。程序流程图如图8。程序共四个进程,分别为取药、送药、卸药、返回。主程序程序流程图如图9。

图7 OPENMV巡红线程序流程图

图8 OPENMV数字识别程序流程图

图9 主程序程序流程图

4 实验分析

整车如图10所示。

图10 整车图

4.1 数字识别测试

测试目的:测试OPENMV识别数字成功率。

测试条件:OPENMV H7 PLUS连接PC机。

测试内容:使用OPENMV H7 PLUS对放置于地面的数字图片进行识别。

测试步骤:

(1)连接PC机,将训练成功的模型程序下载至OPENMV H7 PLUS;

(2)将OPENMV H7 PLUS放置在摄像头上端点距地面10 cm处,与水平面呈30°角位置,点击运行程序;

(3)记录返回PC的数字,重复上述步骤100次(不重复点击运行程序);

(4)更换数字0~9,重复上述步骤。

测试结果如表2所示。

表2 数字识别测试结果

结果分析:1、3、4、6、8识别成功率较高,2、5、7识别成功率较低,原因为2、5、7这三个数字与其他数字存在普遍的共同特征,OPENMV算力有限,在帧率降低到一定程度下,仍然无法准确识别。

4.2 自动巡径测试

安装 OPENMV H7,未安装OPENMV H7 PLUS,小车可独立运行时。

测试目的:测试巡线算法在实际场地的应用效果。

测试条件:OPENMV H7脱机运行,小车可独立运行。

测试内容:在安装OPENMV H7后,使小车在场地上循迹。

测试步骤:

(1)将循迹并向左转的程序下载至OPENMV H7中,阈值设置为180,断开与PC的连接;

(2)在最近的路口处放置X个数字图片;

(3)将小车放置在场地的“药房”处,打开开关,让小车启动;

(4)观察小车转弯情况,若不压线,则记录本次舵机转向阈值,将循迹并向右转的程序下载至OPENMV H7中,阈值设置为180,断开与PC的连接,重复2、3、4步骤;若压线,则减小该值,重复2、3、4步骤;

(5)令X=0,2,4,重复上述步骤。

测试结果如表3所示。

表3 自动循迹测试结果

测试结果分析:数字的出现对巡线用OPENMV的干扰不大,小车可以在宽30 cm的走廊内不压线地转弯。

5 小结

从测试结果可以看出,对于智能送药的要求,本车都能够实现,并且功能完善。在完成基本要求和发挥部分功能的基础上,系统还实现了一些自由发挥的功能,包括实时字符、图形显示,蓝牙通信等,可扩展性强。

在本设计中,杨晓峰提出了整体设计方案,柳笑辰、王佳奇参与了方案的讨论与分析。柳笑辰编写了STM32的驱动程序、OPENMV识别数字、巡径的程序;王佳奇设计并制作了电路部分,组装整车。所有人参与了整车的测试,共同完成了论文的编写。

猜你喜欢

循迹巡线小车
基于DFT算法的电力巡检无人机循迹检测系统设计
大车拉小车
自制小车来比赛
小型无人机在电网运检维护工作中的应用
出没风波里,踏浪去巡线
浅谈基于机器视觉和姿态检测的循迹智能车
刘老师想开小车
无人机在电力巡线中的应用模式研究
两轮自平衡小车的设计与实现
智能差分循迹小车设计