省二【F题—西北大学】0414队—智能送药小车
为了实现智能送药小车可以模拟完成在医院药房与病房间药品的送取作业,我们选用单片机系统。设计以STM32F103 单片机和 2.5V-15V 转 3.3V 5V 固定输出小体积电源模块为核心。
标签
2021电赛
F题
西北大学
更新2021-12-21
西北大学
4587

为了实现智能送药小车可以模拟完成在医院药房与病房间药品的送取作业,我们选用单片机系统。设计以 STM32F103 单片机和 2.5V-15V 转 3.3V 5V 固定输出小体积电源模块为核心,将 OpenMV 和灰度传感器得到的信息进行处理和判别,然后给 TB6612 电机驱动器发出指令,控制送药小车,使将单个载重 200g 药品的送药小车根据走廊上的标识信息自动识别、巡径运送药品到指定的近、中、远端的药房,点亮红色指示灯,并在人工卸载物品、指示灯熄灭之后返回病房,返回药房后,点亮绿色指示灯。要求运送和返回的时间均小于 20s。

关键词:STM32F103,OpenMV 模块,灰度传感器,FSR 薄膜压力传感器

一.系统方案

本系统主要由主控制芯片模块、外部传感器模块、OpenMV 模块、方向控制部件、电机驱动模块、电源模块组成,下面分别论证这几个模块的选择。其中系统总框图如图 1 所示:

Fr0983e3OZbWfcQkljNT7IC8yylM

1、主控制芯片的论证与选择

其中,根据题目要求,控制芯片主要用于各个传感器信号的接收、处理和判别,包括电机的转速、控制舵机的转向等。为此推出以下几种方案:

方案一:采用 ATMEL 公司的 AT80C51 作为系统控制器

AT80C51 便宜,稳定,开发简单,通用性好号,但是其程序存储器很小,大大限制了程序功能的实现,而且速度也不快。

方案二:采用具有精简指令集的混合信号处理器 MSP430F247

MSP430 单片机称之为混合信号处理器,是由于其针对实际应用需求,将多个不同功能的模拟电路、数字电路模块和微处理器集成在一个芯片上,以提供单片机解决方案。该系列单片机多应用于需要电池供电的便携式仪器仪表中。

方案三:采用高性能的单片机 STM32F103Z

STM32 系列专为要求高性能、低成本、低功耗的嵌入式应用设计的 ARMCortex®-M0,M0+,M3, M4 和 M7 内核。我们选用的是 STM32F103Z,其拥有一流的外设 1μs 的双 12 位 ADC,4 兆位/秒的 UART,18 兆位/秒的 SPI,18MHz 的 I/O翻转速度;其低功耗,在 72MHz 时消耗 36mA(所有外设处于工作状态),待机时下降到 2μA;并且附有最大的集成度,包括复位电路、低电压检测、调压器、精确的 RC 振荡器等,以及简单的结构和易用的工具。综合以上几种方案,最终选用方案三。

2.外部传感器的论证与选择

(1)巡径模块的论证与选择

方案一:采用利用远红外线范围的感度的红外线传感器

红外线传感器包括光学系统、检测元件和转换电路。红外传感器只能识别黑白两种颜色,不可以识别红色。由于我们送药路径设置中外部由黑色线粘贴,而路径中间是由红色线粘贴,为了巡径寻找房间,我们不采用不可以识别红色线红外传感器。

方案二:采用可以检测不同颜色的灰度值的灰度传感器

灰度传感器是数字传感器。灰度传感器利用不同颜色的检测面对光的反射程度不同,光敏电阻对不同检测面返回的光其阻值也不同的原理进行颜色深浅检测。在有效的检测距离内,发光二极管发出白光,照射在检测面上,检测面反射部分光线,光敏电阻检测此光线的强度并将其转换为小车可以识别的信号。

综合本题具体要求,选用方案二。

(2)重物检测模块的论证

FSR 是著名 Interlink Electronics 公司生产的一款重量轻,体积小,感测精度高,超薄型电阻式压力传感器。这款压力传感器是将施加在 FSR 传感器薄膜区域的压力转换成电阻值的变化,从而获得压力信息。压力越大,电阻越低。其允许用在压力 100g-10kg 的场合。选用 FSR 压力传感器来检测是否承载重物,可以更适合的符合本题要求。选用 FSR 薄膜压力传感器线性电压转换模块检测是否承载重物符合题意。

3.OpenMV 模块的论证与选择

方案一:采用低成本,功能强大的 OpenMV 模块

OpenMV 是一个开源,低成本,功能强大的机器视觉模块。以 STM32F427CPU 为核心,集成了 OV7725 摄像头芯片,在小巧的硬件模块上,用 C 语言高效地实现了核心机器视觉算法,提供 Python 编程接口。使用者们可以用 Python 语言使用OpenMV 提供的机器视觉功能,为自己的产品和发明增加有特色的竞争力。OpenMV 上的机器视觉算法包括寻找色块、人脸检测、眼球跟踪、边缘检测、标志跟踪等。可以用来实现非法入侵检测、产品的残次品筛选、跟踪固定的标记物等。使用者仅需要写一些简单的 Python 代码,即可轻松的完成各种机器视觉相关的任务。小巧的设计,使得 OpenMV 可以用到很多创意的产品上。

方案二:利用 k210 系列开发板编程识别图片

K210 芯片具有双核 64 位处理器,并自带独立 FPU;有一块 KPU 用于神经网络加速单元;还有一块 APU 用于语音数据处理。芯片具有视觉和听觉处理能力,功耗低,性能高的特点。但其价格高,编程复杂。

综合上述论证,故选择方案一。

4.方向控制部件的论证与选择

方案一:采用可以将电脉冲转化为角位移的步进电机

当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(即步进角)。这时可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时还可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的,以此可以实现送药小车在识别不同病房后的转弯并进入病房。

方案二:采用拥有高转速的直流电机

直流电机是能实现直流电能和机械能互相转换的电机。当它作电动机运行时是直流电动机,将电能转换为机械能;作发电机运行时是直流发电机,将机械能转换为电能。但直流电机的转矩比较大,不易完成小角度的转动。

方案三:采用交流电机

交流电机结构简单,制造方便,比较牢固,容易做成高转速、高电压、大电流、大容量的电机。交流电机功率的覆盖范围很大,从几瓦到几十万千瓦、甚至上百万千瓦,但交流电机是用于实现机械能和交流电能相互转换的机械,不能用于实现小车转向。

综合考虑采用方案一。

5.电机驱动模块的论证与选择

方案一:选用操作简便的 L298N

L298N 通过控制主控芯片上的 I/O 输入端,直接通过电源来调节输出电压,即可实现电机的正转、反转、停止,由于电路简单,使用方便。

方案二:选用 TB6612 电机驱动模块

TB6612FNG 是东芝半导体公司生产的一款直流电机驱动器件,它具有大电流MOSFET-H 桥结构,双通道电路输出,可同时驱动 2 个电机。也许大家更熟悉L298N,其实这两者的使用基本一致的。而且,相比 L298N 的热耗性和外围二极管续流电路,它无需外加散热片,外围电路简单,只需外接电源滤波电容就可以直接驱动电机,利于减小系统尺寸。

通过上述论证,故选择方案二。

6.供电部件的论证与选择

方案一:12V 锂电池直接供电

12V 锂电池可以给单片机供电,但由于本电路灯光模块及其他部分所需电压信号较多,单片机供电不便,同时,单片机输出电压通常在 3.3V,无法满足所有需求。

方案二:12V 锂电池与 DC-DC 自动升降压模块 2.5V-15V 转 3.3V 5V 固定输出小体积电源模块共同供电

通过锂电池给两个自动升降压模块供电,两个自动升降压模块分别将锂电池提供的 12V 电压转换成 3.3V 和 5V 的电压输出。同时,可以根据需求,在其前面引入适量排针,提供多路供电,使使用更加灵活。

综合以上两种方案,选择方案二。

二、系统理论分析

2.1 重物检测模块

FSR 薄膜式压力传感器工作原理当被测介质压力(P1)作用于弹性不锈钢膜片一侧时,弹性膜片受到压力作用产生变形,位于另一面的惠斯顿电桥桥臂电阻薄膜的几何尺寸发生相应的变形,阻值随之相应改变,电桥因阻值改变而产生与压力成线性比例的输出信号,将此信号经放大调节等处理,再传输给处理电路(通常是 A/D 转换和 CPU)显示或执行。

2.2 灰度传感器模块

灰度传感器是模拟传感器,有一只发光二极管和一只光敏电阻,安装在同一面上。灰度传感器利用不同颜色的检测面对光的反射程度不同,光敏电阻对不同检测面返回的光其阻值也不同的原理进行颜色深浅检测。在有效的检测距离内,发光二极管发出白光,照射在检测面上,检测面反射部分光线,光敏电阻检测此光线的强度并将其转换为单片机可以识别的 01 信号。

2.3 OpenMV 原理

核心部分就是 STM32H743 的最小系统,外围加上电源模块以及摄像头接口就可以做最基本的应用。

利用 OpenMV 模块实现图像采集、图像处理以及控制功能。由 OpenMV 模块上的摄像头(感光元件 OV7725)采集图像并通过 OpenMV 模块上单片机进行一系列处理,对图像进行预处理、二值化,拟合直线后,调用 PID 算法程序得到输出值,然后通过电机驱动板控制电机转动,进而控制小车行驶情况,达到目标的效果。

其中图 2 为 OpenMV 模块连接图:

FrBXIWudL62arJyrk3iXIjiJ1PJi

其中,核心部分的最小系统 STM32H743 的系统原理图如图 3 所示:

Fmz-bTYxOTX2qbLrZA0bHYFgcGG7

2.4 电机驱动模块

我们采用可控小车速度和方向的 TB6612 电机驱动模块。TB6612 电机驱动模块是一款用于驱动电机转动的模块,其具有两个通道输出,可同时控制两个电机,每个电机可输出 1.2 A 的电机驱动电流,启动的峰值电流可达 2 A/3.2 A,能够满足大部分电机的需求,并且可以实现正反转以及制动的功能,具有低压检测电路和热停机保护电路,能够有效保护电源和电路。TB6612 电机驱动模块的连接原理图如图 4 所示:

FpUQXkwCQwWYjgSe0djrBkVXtpP7

图4

其中 TB6612 是双驱动,也就是可以驱动两个电机,其结构原理图如图 5 所示:

FmCIefDwp27tVtNZ4Zvc6hQRSo4Y

三、电路与程序设计

3.1 电路的设计

3.1.1 系统总体框图

整个系统由 12v 锂电池和电源模块供电,STM32F103Z 接收灰度传感器,OpenMV,中午检测模块收集的信号,通过程序控制小车的行驶速度,行进方向和指示灯的颜色。

下图为系统总体框图:

FofOJgdS-3dKfge4HZLcc2acweoL

3.1.2 主控制器的选取

根据所选设计方案的需求,选取一片 STM32F103Z 芯片,实现对 OpenMV 和压力模块采集信息的处理,从而实现电机转向,控制小车行驶。如图 6 为 STM32F103Z

结构示意图:

FhNRXS86X63nHYSmF5Jxr3wjKYuV

3.1.3 重物检测与指示灯控制系统

Fkx9BwvmQ_mCWTT7civFL4pDEAJP

如图7通过FSR薄膜压力传感器线性电压转换模块识别是否负重,有重物时,输出低电平,信号通过反相器和单片机提供的高电平进行相与,导通发光二极管,此时红灯亮;无重物时,传感器输出高电平,信号直接和单片机提供的高电平信号相与,导通发光二极管,此时绿灯亮。具体电路图如图 8 所示:

FkmfciVUjD4lIkICTajJBa6RhmWg

其中电路中使用 74LS04 和 74LS08 芯片实现电路逻辑,并增加两个 100Ω的电阻限流,FSR 薄膜压力传感器线性电压转换模块原理图如图 9 所示:

FlG459sDf3ed6gtWH5848DBYdtmA

3.1.4 寻迹系统

1)寻迹与停车

灰度传感器识别红色与白色色差,当识别到红色时,灰度传感器给单片机一个 1信号,小车向前行驶,当中间的灰度传感器识别到白色时,灰度传感器传给单片机一个 0 信号,小车修正行动轨迹,当四个灰度传感器中有三个识别到黑色时,单片机给出停车指令,电机实现反向制动,使小车停在虚线内。

2)转向与识别

先给 OpenMV 识别数字图标,在行驶过程中不断扫描路面,当扫描到给出的数字图标时进行转向。

寻迹系统的框图如图 10 所示:

FjEqs5z1YkGJhoq3cncUQAAoF_r6

3.2、程序的设计

(1)程序流程图:

本题主程序流程图如图 11 所示:

FpPOo3oGzZQLXHzZUM3zKgEUvGk9

2)程序功能描述

1.当单片机接收到灰度传感器与 OpenMV 的检测信号后控制电机的左转、右转和停车实现寻迹。

2.当单片机接收到 FSR 薄膜压力传感器的信号时,控制小车的启动与指示灯的颜色。

3)程序的设计思路

1.寻迹转弯与停车设计思路:

当中间两个灰度传感器都接受到信号时,两个灰度传感器输出高电平,控制小车直行;当 OpenMV 识别到图片信号时,控制小车左转右转;当三个及三个以上灰度传感器识别不到信号时,灰度传感器输出低电平,控制小车停止。

2.重物检测模块控制小车启动与指示灯颜色设计思路:

当检测到有重物时,FSR 薄膜压力传感器给单片机 PE4 端口输入一个低电平信号,单片机的 PB5 端口输出高电平点亮红灯;当未检测到重物时,压力传感器给单片机 PE4 端口输入一个高电平信号,点亮绿灯。

四、测试方案与测试结果

1、测试方案

(1)硬件测试

FSR 薄膜压力传感器:通过其原理,当被测介质压力(P1)作用于弹性不锈钢膜片一侧时,弹性膜片受到压力作用产生变形,位于另一面的惠斯顿电桥桥臂电阻薄膜的几何尺寸发生相应的变形,阻值随之相应改变。由此,我们通过按压给FSR 薄膜压力传感器一个力,在 FSR 薄膜压力传感器另一端用数字万用表连接看电阻的变化。通过测试,当给 FSR 薄膜压力传感器一个力时,电阻变小,则 FSR薄膜压力传感器性能正常。

灰度传感器的测试:灰度传感器利用不同颜色的检测面对光的反射程度不同,光敏电阻对不同检测面返回的光其阻值也不同的原理进行颜色深浅检测。通过原理,我们依旧用电脑进行测试,由于题中要求运送中线为红色,而边线为黑色,所以只要测试是否可以检测出红白色差以及黑白色差即可。通过测试,灰度传感器检测到白色时不亮灯,当转到红色或者黑色时,灰度传感器上的小灯亮起,说明灰度传感器性能正常。

OpenMV 模块的测试:由 OpenMV 模块上的摄像头(感光元件 OV7725)采集图像并通过 OpenMV 模块上单片机进行一系列处理。在此,我们对摄像头进行了测试,通过与电脑连接并用摄像头来识别数字 1-8,通过测试,数字 1-8 全部可以识别,则 OpenMV 性能正常。并记录如下表格:

FtThBatEk3JowMOpVhimI1JBt2E6

(2)小车整体运行测试:

实现各部分的功能后,进行小车的运行测试,将小车放往已经铺好的布上进行测试,经过多次测试,小车通过 OpenMV 模块、灰度传感器的色差识别以及图形识别可以进行判断是否转弯进入病房,通过 FSR 薄膜压力传感器模块可以识别是否有物体放在小车上,从而决定是否运行。通过上列测试,送药小车的基本功能均可以实现。

(3)硬件软件联调:(如下图所示)

FlHhEQN4uyoqTPnPPoRwXSDPhj6i

2、测试条件与仪器

测试条件:检查多次,硬件电路保证无虚焊,软件参数根据本小车进行调试。

测试仪器:高精度的模拟示波器,数字示波器,数字万用表,指针式万用表,模拟赛道。

五、参考文献

[1]黄志芳,陈泽锐,何梓杰,宋世杰.基于 STM32 的智能交互式平衡小车[J].电子设计工程,2021,29(14):29-33.

[2]张文青,龙奕帆.基于OpenMV视觉模块的智能小车巡线系统设计[J].集成电路应用,2021,38(10):232-233.

[3]赵建,陈波,马洁,杜金鑫.自动往返小车报告.

[4]https://blog.csdn.net/mvdevice/article/details/52849449

六、附录

Fssc0uPnG0MvyUeRgYoGnI8Vn2Vd

Fg3k79u5P5erT3KEDXfY4RInSneY

Fpy8hzGz0-LF7dfxGDUy-BGoJtgn

附件下载
openmv识别数字以及和STM32串口通信代码.py
团队介绍
西北大学
评论
0 / 100
查看更多
目录
硬禾服务号
关注最新动态
0512-67862536
info@eetree.cn
江苏省苏州市苏州工业园区新平街388号腾飞创新园A2幢815室
苏州硬禾信息科技有限公司
Copyright © 2024 苏州硬禾信息科技有限公司 All Rights Reserved 苏ICP备19040198号