2021 年全国大学生电子设计竞赛
智能送药小车(F 题)
【本科组】
2021 年 11 月 7 日
摘要
本系统采用 STM32F407ZGT6 自制 PCB 电路板作为主控,与 NVIDIA 开发板进
行串口通信,控制 OPENMV 深度学习,通过智能自学习,识别数字,通过采集的
角度值与平衡位置进行比较,使用 PID 算法,从而达到控制编码电机的目的,实
现全场定位。其工作过程为:摄像头采集手持数字进行自学习,确认送药的病房
后,可将识别出的病房号显示在 OLED 屏上,使用灰度传感器进行循线,通过角
度传感器陀螺仪和编码电机的协同前进,智能识别道路上的路牌并进行判断,将
药物送达指定位置。
关键字:STM32F407、NVIDIA、OPENMV、全场定位、灰度模块、Jetson Nano
处理器
目录
一、引言
.....................................................................................................
1
1.设计任务
...........................................................................................
1
2.设计要求
...........................................................................................
1
二、设计方案
.............................................................................................
2
2.1 整体设计方案选择
.......................................................................
2
2.2 器件选型
.......................................................................................
2
2.2.1 主控的论证与选择
.............................................................
2
2.2.2 摄像头模块的论证与选择
.................................................
2
2.2.3 电机的选择
..........................................................................
2
三、理论分析与计算
.................................................................................
3
四、电路与程序设计
.................................................................................
4
五、系统测试
.............................................................................................
6
5.1 测试项目指标及测试方法
...........................................................
6
5.1.1 测试项目指标
.....................................................................
6
5.1.2 测试方法
.............................................................................
6
5.2 测试过程及结果分析
...................................................................
7
六、结论
.....................................................................................................
8
七、 参考文献
...........................................................................................
8
附录
..............................................................................................................
9
1
一、引言
1.设计任务
设计并制作智能送药小车,模拟完成在医院药房与病房间药品的送取作
业。院区走廊两侧的墙体由黑实线表示。走廊地面上画有居中的红实线,并
放置标识病房号的黑色数字可移动纸张。药房和近端病房号(1、2 号)位置
固定不变,中部病房和远端病房号(3-8 号)测试时随机设定。工作过程:
参赛者手动将小车摆放在药房处(车头投影在门口区域内,面向病房),手
持数字标号纸张由小车识别病房号,将约 200g 药品一次性装载到送药小车
上;小车检测到药品装载完成后自动开始运送;小车根据走廊上的标识信息
自动识别、寻径将药品送到指定病房(车头投影在门口区域内),点亮红色
指示灯,等待卸载药品;病房处人工卸载药品后,小车自动熄灭红色指示灯,
开始返回;小车自动返回到药房(车头投影在门口区域内,面向药房)后,
点亮绿色指示灯。
2.设计要求
基本要求 1.单个小车运送药品到指定的近端病房并返回到药房。要求运
送和返回时间均小于 20s,超时扣分。2.单个小车运送药品到指定的中部病
房并返回到药房。要求运送和返回时间均小于 20s,超时扣分。3.单个小车
运送药品到指定的远端病房并返回到药房。要求运送和返回时间均小于 20s,
超时扣分。
发挥部分 1.两个小车协同运送药品到同一指定的中部病房。小车 1 识别
病房号装载药品后开始运送,到达病房后等待卸载药品;然后,小车 2 识别
病房号装载药品后启动运送,到达自选暂停点后暂停,点亮黄色指示灯,等
待小车 1 卸载;小车 1 卸载药品,开始返回,同时控制小车 2 熄灭黄色指示
灯并继续运送。要求从小车 2 启动运送开始,到小车 1 返回到药房且小车 2
到达病房的总时间(不包括小车 2 黄灯亮时的暂停时间)越短越好,超过 60s
计 0 分。2.两个小车协同到不同的远端病房送、取药品,小车 1 送药,小车
2 取药。小车 1 识别病房号装载药品后开始运送,小车 2 于药房处识别病房
号等待小车 1 的取药开始指令;小车 1 到达病房后卸载药品,开始返回,同
时向小车 2 发送启动取药指令;小车 2 收到取药指令后开始启动,到达病房
后停止,亮红色指示灯。要求从小车 1 返回开始,到小车 1 返回到药房且小
2
车 2 到达取药病房的总时间越短越好,超过 60s 计 0 分。
二、设计方案
2.1 整体设计方案选择
本设计以 STM32F407 芯片和编码电机为核心制作小车,通过 OPENMV
摄像头识别病房号,将数据发送给 NVIDIA 控制装置。NVIDIA 与 STM32
之间使用串口通信进行数据传输。小车 1 通过蓝牙通信模块发送给小车
2 行走指令,通过矢量合成算法来处理并计算得出小车各个轮胎所需求
的转速,再由 PID 算法控制 PWM 的占空比,从而调整转速,实现小车的
转向与前进。灰度传感器用于寻迹,OLED 屏可显示药房号。
2.2 器件选型
2.2.1 主控的论证与选择
方案一:STM32F103。STM32F103 系列芯片具有功耗低、片内资源丰富等优点,
但是该芯片使用不够灵活,操作复杂。
方案二:STM32F407。STM32F407 单片机是 STM32 系列的 32 位单片机,自带
18 通道 ADC(12 位)、两通道 DAC(8 位或 12 位可选),在处理运
算时,STM32F4 的速度快于 STM32F1,使用更加便捷。
综上,我们选择的引脚口更加丰富,运行速度更快的 F4 芯片。
2.2.2 摄像头模块的论证与选择
方案一:OPEN CV。像素 30W,在对黑白图像的处理上性能优良。但是在实际
操作中很难区别一些相似数字,例如 5 和 8,3 和 8。
方案二:OPEN MV。OPENMV 是一种开源机器视觉模块,支持颜色跟踪、脸部
检测等功能,此外还有相关外设可以选择,方便使用者进行 功能拓
展。OPENMV 以 STM32F407CPU 为核心,并且提供 Python 编程接口,
可以利用 Python 语言增加功能,兼容 LINUX 系统,为摄像头的机器
学习识别功能提供了便捷。
综上,由于 OPENMV 的优势明显,我们选择此摄像头来作为视觉识别模块。
2.2.3 电机的选择
方案一:电机采用直流减速电机,直流减速电机转动力矩大,装配简单
方案二:电机采用直流减速编码电机,较精密,既可检测角度位移,又