【F题—东莞理工学院】文宇队—智能送药小车
本控制系统设计的是一款基于STM32F407VGT6控制器的智能送药小车;小车定位于智能医药自动化领域;电源12V由电池供电,经过DC-DC与LDO处理,分出5V和3V3给不同模组供电。
标签
2021电赛
F题
东莞理工学院
更新2021-12-23
东莞理工学院
5476

摘要:本控制系统设计的是一款基于STM32F407VGT6控制器的智能送药小车;小车定位于智能医药自动化领域;电源12V由电池供电,经过DC-DC与LDO处理,分出5V和3V3给不同模组供电;小车采用牛眼轮,亚克力板,小车车轮等搭建机械结构;电机采用直流有刷电机与A4950驱动。在场地上,控制器通过K210执行训练好的模型进行目标检测,获取病房号,根据不同病房号获取路径信息;获得病房号后感应取药;取药后,根据程序中的路径信息,通过分块识别算法,实现循迹和转弯,到达病房后,再次通过K210识别病房号卸载,其中转弯过程以及循迹过程采用PID控制。小车之间通过无线模块实现通信。

关键字:STM32F407VGT6、数字识别、轨迹循迹、PID

一、设计任务与要求 1、设计任务

设计并制作智能送药小车,模拟完成在医院药房与病房间药品的送取作业。 院区结构示意如图 1 所示。院区走廊两侧的墙体由黑实线表示。走廊地面上画有居中的红实线,并放置标识病房号的黑色数字可移动纸张。药房和近端病房号(1、2 号)如图 1 所示位置固定不变,中部病房和远端病房号(3-8 号)测试时随机设定。

FtSAk7ZQhU8ry-5a8QW9XG9CVlW3

2、工作流程

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

3、设计要求

基本要求:

①单个小车运送药品到指定的近端病房并返回到药房。要求运送和返回时间均小于 20s,超时扣分;

②单个小车运送药品到指定的中部病房并返回到药房。要求运送和返回时间均小于 20s,超时扣分; 

③单个小车运送药品到指定的远端病房并返回到药房。要求运送和返回

时间均小于 20s,超时扣分。

发挥部分:

①两个小车协同运送药品到同一指定的中部病房。小车 1 识别病房号装载药品后开始运送,到达病房后等待卸载药品;然后,小车 2 识别病房号装载药品后启动运送,到达自选暂停点后暂停,点亮黄色指示灯,等待小车 1 卸载;小车 1 卸载药品,开始返回,同时控制小车 2 熄灭黄色指示灯并继续运送。要求从小车 2 启动运送开始,到小车 1 返回到药房且小车 2 到达病房的总时间(不包括小车 2 黄灯亮时的暂停时间)越短越好,超过 60s 计 0 分。

②两个小车协同到不同的远端病房送、取药品,小车 1 送药,小车 2 取药。小车 1 识别病房号装载药品后开始运送,小车 2 于药房处识别病房号等待小 车 1 的取药开始指令;小车 1 到达病房后卸载药品,开始返回,同时向小车 2 发送启动取药指令;小车 2 收到取药指令后开始启动,到达病房后停止,亮红色指示灯。要求从小车 1 返回开始,到小车 1 返回到药房且小车 2 到达取药病房的总时间越短越好,超过 60s 计 0 分。

二、系统方案 1、系统结构

系统包括STM32F407VGT6单片机;视觉传感器模块,无线收发模块,电源模块,电机组成。出于体积考虑,电源采用DC-DC芯片TMI3253SH把12V降压至5V,5V再经由LDO芯片ME6211A33M3G-N转至3V3。

2、方案比较与选择 (1)控制器比较与选择

方案一:TI核心板

使用TI公司 的MSP432P401R芯片,主频48MHZ,LQFP封装版本含有84个GPIO。控制部分多达四个 16 位计时器,每个都具有多达五个捕获、比较 PWM 功能,其中两个 32 位计时器,每个都具有中断生成功能芯片。传感器部分:多达四个 eUSCI_A 模块,支持自动波特率检测的 UART,SPI,多达四个 eUSCI_B 模块,I2C(支持多从器件寻址),SPI。具有16为ADC外设,24个输入通道。开发生态较相比ST逊色,参考资源比STM32 MCU少;没有统一的开发环境,难以使用。

方案二:stm32核心板

使用ST公司的STM32F407VGT6芯片,主频168MHZ,82个GPIO。控制部分含有具有14个16位定时器,除基本定时器,每路都有2或4路PWM输出,共28路PWM输出。传感器部分:含有3路I2C,3路SPI,串口含有6个,14个16位计数器,全部具有中断功能。ST开发具有良好的开发生态和资源环境,参考资源最多,配置调试方便,3个ADC外设均支持10路以上的16位ADC采集。大多数芯片手册含有现成的中文资料,易查找。

根据赛题对控制系统芯片的要求,综上所述,STM32F407无论是主频还是外设资源上,都比MSP432P401R更优,开发生态良好,故选用STM32F407作为主控芯片作为系统的核心。

(2)电机比较与选择

方案一:直流有刷电机

有刷电机采用机械换向,结构简单,价格便宜,运行平稳,起、制动效果好,控制精度高,有刷电机通常和减速箱、译码器一起使用,使的电机的输出功率更大,控制精度更高,控制精度可以达到0.01毫米,几乎可以让运动部件停在任何想要的地方。缺点就是因为电刷和换向器之间有摩擦,效率低。市场上的有刷电机驱动IC体积小。

方案二:步进电机

该类电机是一种把脉冲信号转换成相应角位移或线位移的电动机,同时还有扭矩大的特点,步进电机在做位置控制要求高,低转速的场合非常合适。除此之外,还有分辨率高(一般步距角1.8°),驱动器制作成本低的优点。当然步进电机无法做到速度突变过猛,对PWM的频率选择要求高,低速时会共振,高速时产生噪声,转矩波动大,丢步等问题,步进电机驱动器占的体积大。

方案三:舵机

舵机是一种位置伺服的驱动器,PWM频率一般在250Hz左右,具有响应速度快,位置(角度)控制精准的优点(比步进电机精准),其选型是看其能转过的最大角度以及输出力矩大小,无法像电机那样不断旋转,因此无法取代电机,不适用于该题小车的制作,仅用于固定安装视觉模组。

方案四:直流无刷电机

无刷电机相比有刷电机少了换向器,采用电子换向。旋转无噪声,速度快,寿命长,还能实现力矩控制,在性能方面完全优于有刷电机,但单个的无刷电机控制系统复杂,不仅要位置传感,还需要电流采样,同时占用3对互补PWM,算法上还需要使用SVPWM;而且方波控制的精度低,不能发挥无刷电机的性能。无刷电机驱动板体积一般较大,电机本身和驱动板价格都比上述电机更昂贵。

从开发成本,开发难度综合考虑,采用直流有刷电机制作送药小车,使用简单,开发快捷。

(3)视觉识别模块比较和选择

方案一: STM32直接驱动OV2640,OV5640,OV7725系列摄像头

采用摄像OV2640+stm32f4芯片,OV2640摄像头模块,采用1/4寸的OV2640百万高清CMOS传感器制作,具有高灵敏度、高灵活性、支持JPEG输出等特点,并且可以支持曝光、白平衡、色度、饱和度、对比度等众多参数设置,支持JPEG/RGB565格式输出,可以满足不同场合需求,但是要实现图像的跟随,ov2640虽然像素高,但是stm32f4得168M的频率并不能让它处于高帧数运行,如果要实现机器视觉,需要很多的图像处理算法,这大大加大了处理器的频率需求,同时机器视觉所需要的许多图像处理算法也需要自行编写,这会增加我们的工作量,而且本次设计也不需要太高像素的摄像头,太高像素的摄像头为后期的数据处理增大了很多工作量,所以本次设计不采用OV2640等直接驱动摄像头写识别算法。

方案二:K210视觉硬件

K210是由一家叫做嘉楠的公司推出的一款MCU,其特色在于芯片架构中包含了一个自研的神经网络硬件加速器KPU,可以高性能地进行卷积神经网络运算。K210的算力其实是相当可观的。根据嘉楠官方的描述,K210的KPU算力有0.8TOPS,作为对比,拥有128个CUDA单元GPU的英伟达Jetson Nano的算力是0.47TFLOPS ;而最新的树莓派4只有不到0.1TFLOPS ,得以见得其算力之强大,可稳定完成人脸检测、物体识别、播放视频、声场成像、3D渲染等功能。因此非常适合用于解决本题的数字识别难题,同时数据发送支持串口,数据交互方便。

方案三:OpenMV视觉硬件

OpenMV是一个开源,低成本,功能强大的机器视觉模块。以STM32FH7芯片为核心,集成了OV7725摄像头芯片,在小巧的硬件模块上,用C语言高效地实现了核心机器视觉算法,提供Python编程接口。而且Openmv是开源的,这意味着我们可以查看它的内部算法,在它的基础上做修改,这对我们的开发是很方便的。同时与一般方案,自行把摄像接到普通的stm32f4系列的单片机上,然后花大量时间写算法相比Openmv更具优势,这可以缩短我们与机器视觉和距离,不仅可以出色的完成任务,而且为我们本次设计节省大量时间,所以本次设计采用Openmv。

考虑到运行神经网络会占用大量性能,识别帧率不佳,很难做到两种模式共同运行,故选择两种视觉识别模组,K210做数字识别,OPENMV用做红线循迹识别。

(4)无线收发模块比较和选择

方案一:蓝牙模块

使用汇承HC05模块或JDY-31模块。蓝牙可以通过蓝牙协议主机与从机互联,实现无线传输,有防辐射,环保的优点,但不同设备间协议可能不兼容;在使用经验上,HC05经常出现无法调试的情况,JDY-31无主机功能;

方案二:ESP32核心板

ESP32功耗高,价格适中,可以通过开启AP+STA模式,开启局域网,从机设备只需要连接主机开启的WIFI,实现无线透传,在传输距离方面优于蓝牙,主机连接从机高效稳定,缺点是功耗太高。

方案三:NRF24L01无线模块

NRF24L01是使用SPI通信的无线模块,体积小,价格便宜,功耗低,在空中传输的速率达到1Mbs,2.4ghz频段,最大支持传输32有效字节宽度,更适合小数据无线传输,足够满足遥控器的需求,与单片机为SPI通信,传输稳定,有现成成熟方案。

综合考虑,使用NRF24L01无线模块进行无线通信。

(5)循迹模块比较和选择

方案一:TCRT5000红外反射管循迹模块

TCRT5000 传感器的红外发射二极管不断发射红外线,当发射出的红外线没有被反射回来或被反射回来但强度不够大时,红外接收管一直处于关断状态,此时模块的输出端为高电平,指示二极管一直处于熄灭状态;被检测物体出现在检测范围内时,红外线被反射回来且强度足够大,红外接收管饱和,此时模块的输出端为低电平,指示二极管被点亮,即可判断循到轨迹。在循迹这块中,我们原打算使用TCRT5000的输出不同的模拟量来判断红线循迹,但经过仔细测量发现,该模块对黑线外反射强度均不强,模拟量输出没有明显区别,故此该方案舍弃,仅用来识别边缘轨迹与判断是否到达目的地;

方案二:TCS3200颜色传感器

TCS3200颜色传感器是一款全彩的颜色检测器,包括了一块TAOS TCS3200RGB感应芯片和4个白光LED灯,TCS3200能在一定的范围内检测和测量几乎所有的可见光.通常所看到的物体颜色,实际上是物体表面吸收了照射到它上面的白光(日光)中的一部分有色成分,而反射出的另一部分有色光在人眼中的反应。由上面的三原色感应原理可知,如果知道构成各种颜色的三原色的值,就能够知道所测试物体的颜色。对于TCS3200D 来说,当选定一个颜色滤波器时,它只允许某种特定的原色通过,阻止其它原色的通过。通过该原理,我们可以通过判断识别到红色,来判断路线,通过PID调节来跟踪路线。然而,调试发现,TCS3200颜色传感器效率较低,导致反应不及时,故此放弃次方案;

方案三:OpenMV视觉循迹

OpenMV模块可以运行视觉算法识别功能,可对各种颜色进行识别,并得到目标色块坐标;通过色块融合,将区域划分为上,下,左,右四个区域,分别识别色块,得到红色轨迹在各区域的位置;并通过比较区域来确定巡线路径;

综合考虑,经过测试,可以稳定获得轨迹方向与坐标,以便后续PID跟踪调试,故选用此方案。

三、理论分析与计算 2.1 数字识别方法

使用开源的目标检测框架yolov3,对各种角度的数字1到8进行模型训练,最终获得该模型的神经网络文件并将其转为为能利用k210高达0.8TPOS算力的kmodel模型文件,拷进K210模组挂载的SD卡中。在程序中,导入该kmodel模型文件,便可一次性识别多个数字,读取对象,可知道具体识别出的是哪个数字,数字的中心位置在区域的哪个坐标。数字中心位置的计算公式:

Fi5TKH_mZIS36JSsew_4fIbE2XSc

2.2 分块识别算法

对OpenMV摄像头拍到的图片进行高斯滤波,形态学操作后二值化处理,在图片中定义对各ROI区域,可划分为上,下,左,右,中间五个区域,在其中找红色阈值的ROI块,根据识别各个ROI块的结果,进一步判断红色直线的坐标位置,根据五个区域识别的结果,若在5五个区域中都识别到红色块,则认为在十字路口;若在左,中,右,下四个区域都识别到红色,则认为在T字路口,其他情况可下发给发给STM32F407以进一步处理。

2.3 循迹算法

FuN9mJNYK2b52kz1Hw4jGZ9qb5pR

STM32F407主控根据摄像头模块传来的数据进行PID控制,往左右偏时根据累加PID计算出值加减输出给电机的PWM值,使小车能够进行平稳的红线循迹,在遇到十字路口时,根据识别出的数字准确转向要去往的病房处,到达病房等待卸载药物完成后往回继续循迹回到药房。

四、电路与程序设计 1、电路设计 (1)最小系统模块电路

此次设计我们采用STM32F407VGT6单片机,它是基于高性能的ARM Cortex-M4 32位RISC内核, 运行频率高达168MHz. Cortex-M4内核具有一个浮点单元(FPU)单精度, 支持所有ARM单精度数据处理指令和数据类型. 它还执行全套的DSP指令, 并包含一个存储器保护单元, 加强应用的安全性. STM32F407VGT6融合了高速内嵌存储器(闪存存储器高达1Mbyte, 高达192K字节 SRAM), 高达4K字节备用SRAM, 以及一个加强范围的输入输出, 外部设备连接至两个APB总线, 三个AHB总线和一个32位多AHB总线矩阵。

(2)电源电路设计

FttjuB1Rxlx6CNbviZ7JIKCBNbOS

(3)电机驱动电路设计

FimybxyGyumxqzTxqUJRjEzvjMIg

(4)外部通信电路

FuHACaj5tVrGr2rvN5TvIbD8Kquw

2、程序结构与设计

FsxjWYmZppNCY8z_WyiO8rMfkjQB

图(7)程序逻辑框架

五、系统方案与测试结果 1、测试方案

①硬件检测:采用电源、万用表,示波器等对电路板连接情况测试;

②基础部分检测:基础部分的三个要求;

③发挥部分检测:发挥部分的两个要求。

2、测试使用仪器

RIGOL示波器(DS1104)、PC个人电脑、万用表;

3、测试结果与误差分析

(1)小车1能够正常识别近端病房数字,并且根据识别到的1,2号病房,到达指定的近端病房;在拿取物品后,正常返回到药房;

(2)小车1能够正常识别中部、远部病房数字,并且根据识别到的病房号,到达指定的中部、远部病房;在拿取物品后,正常返回到药房;

(3)小车1在识别到中部或远部病房数字后,根据识别到的病房号,到达指定的中部、远部病房;让小车1在识别到中部或远部病房数字后,根据识别到的病房号,到达指定的中部、远部病房对应停止处;小车1被拿取物品后,开始原路返回药房,并通过无线通信让小车2继续运动,前往目标病房。

六、结论

本次完成智能送料小车题目,由OpenMV与K210视觉识别模块对图像进行处理并返回关键信息给单片机,用于指引小车完成任务。在调试代码和硬件过程中碰到不少问题,比如选择循红线方案;编写与调试各种通信协议过程中,因为各种疏忽,经常出现异常情况;多次调整数字识别模型后,识别仍然效果不佳,常出现误判的情况。

这次比赛让我们受益良多,无论是团队合作精神还是对细节的谨慎处理,都让我们进一步体会到了电子设计的挑战性。“纸上得来终觉浅,绝知此事要躬行。”除了课本的知识,我们深知实践能力的重要性,更在比赛中获得了许多宝贵的经验。

参考文献

[1].黄智伟.全国大学生电子设计竞赛训练教程。电子工业出版社,2010

[2].张淑清.嵌入式单片机STM32设计及应用技术。国防工业出版社,2015

[3].王广雄.控制系统设计[M]。宇航出版社,1992

[4].王彤.PC机在测量和控制中的应用[M],哈尔滨工业大学出版社。1995

[5].刘豹.现代控制理论,机械工业出版社.2004

[6].秦永元.惯性导航[M]第一版,北京科学出版社。2005

[7].王冬来,吕强,刘峰.小型四轴飞行器动力学参数测定方法设计[J],科技出版社。2011

团队介绍
东莞理工学院
评论
0 / 100
查看更多
目录
硬禾服务号
关注最新动态
0512-67862536
info@eetree.cn
江苏省苏州市苏州工业园区新平街388号腾飞创新园A2幢815室
苏州硬禾信息科技有限公司
Copyright © 2024 苏州硬禾信息科技有限公司 All Rights Reserved 苏ICP备19040198号