竞赛选题
摘要: 采用 STM32F407VET6开发板作为主控模块,设计了主要包含超声测距模块、OpenMV 模块、舵机云台模块、OLED 显示模块、按键模块和电源模块的送药小车系统。系统通过 OpenMV 进行图像处理,通过openmv识别红线通过发送给单片机再通过PWM控制调控电机,使其达到目标位置;识别方面,利用openmv自主学习原理识别阿拉伯数字并发送给stm32主控板通过超声模块识别药品是否装上;控制方式采用 PID 算法,比例环节进行快速响应,积分环节实现无静差,微分环节减小超调,加快动态响应,能很好实现将小车移向目标点。经后期测试,系统首先识别要运送的药房编号,其次识别有无药品被装载,再沿红线进行循迹将药品送入指定药房。;该系统性能可靠,技术指标满足设计要求。
关键词:STM32F407VET6开发板;OpenMV;机器视觉模板匹配;PWM控制;PID 控制;超声测距;电动小车。
系统方案设计方案主要内容(需满足赛题中内容要求)
1、设计方案工作原理
1.1 小车控制模块
方案一:openmv采用的是最新的stm32H7芯片,采用openmv一体化控制,识别数字同时识别红线运用pid算法控制电机转动 ,通过单片机显示状态,但是这样的话openmv的运算量过大,时间过长,误差较大,不能及时处理数据导致误差增大,且openmv的引脚不够,插线有问题;
方案二:STM32F407VET6单片机作为主控,通过openmv识别数字和红线,传给STM32F407VET6,再通过STM32F407VET6控制电机,这样大大减少openmv的处理,增加识别速度,提高准确度,引脚够多不用担心引脚不够用的情况;
综合以上两种方案,我们选择了方案二,采用 STM32F407VET6 单片机作为 控制器。
1.2 循迹模块
方案一:采用红外循迹。红外循迹程序简单易调,价格低廉,安装方便,可以稳定的识别黑线进行循迹,但是由于本次实验循迹的目标对象是红线,红外循迹的感光不易调,所以不适合本次比赛的循迹。
方案二:采用openmv图像处理进行循迹,采用感兴趣区颜色识别将照片分为5个小部分,相当于5路寻迹模块,当同时扫到时为十字路口,进行转弯判断。该循迹稳定且易调,只需要对openmv程序中的阈值进行适当调整即可进行红线循迹,而且openmv的视觉处理还可以识别十字路口等复杂的情况,缺点是openmv对图像处理的知识够多,上手较难。
综合以上两种方案,我们选择了方案二,采用openmv图像处理作为循迹模块。
1.3 电机驱动模块
方案一:采用专用芯片L298N作为电机驱动芯片,L298N是一个具有高电压大电流的全桥驱动芯片,它相应频率高,一片L298N可以分别控制两个直流电机,而且还带有控制使能端。用该芯片作为电机驱动,操作方便,稳定性好,性能优良。
方案二:对于直流电机用分离元件构成驱动电路,结构简单,价格低廉,在实际应用中很广泛,但在应用中不够稳定。
方案三:采用达林顿管组成的H型PWM电路,用单片机控制达林顿管使之工作在占空比可调的开关状态,可精确调整电动机的转速。这种电路工作在饱和截止模式下,一般用起来不大经济,且难于控制。
由于电力电子器件只工作在开关状态,主电路损耗较小,要求精度较高,所以选择方案一。
2、核心部件电路设计
电机驱动原理图
3、系统软件设计分析
3.1 软件设计
软件部分采用模块化程序设计的方法,将单片机上添加操作系统,使程序更加模块化化,系统包括信息采样,信息通信,信息处理等模块openmv数字识别采用灰度图,巡线采用RGB565,用状态标志的思想在灰度图与彩图之间切换,单片机给openmv发送高电平切换模式; 当openmv五个感光区同时为一使STM32F407VET6控制电机停下进行转弯前进倒车等程序
3.2 程序流程图
4、竞赛工作环境条件
4.1 测试环境:
地点:实验室
时间:2021年11月7日
温度:20℃
4.2 测试仪器:
多功能数字万用表、STM32F407VET6单片机、秒表、计算机,示波器。
4.3 测试方法:
先让摄像头先后对数字1、2进行识别,检测药品装载后在规定时间内将药品送到指定药房,1号药房送药测试
次数 |
小车实际跑一圈的平均速度 |
小车理论跑一圈的平均速度 |
误差 |
1 |
0.09m/s |
0.08m/s |
0.01m/s |
2 |
0.10m/s |
0.08m/s |
0.02m/s |
3 |
0.11m/s |
0.08m/s |
0.03m/s |
4.4 误差分析:
因为控制器的时间是通过内部定时器定时实现的,所以精度高,显示时间准,其与秒表实测值之间的微小误差是由测量误差所引起的。另外,小车采用直流电机,不能短时间急转和大弧度转弯,所以导致速度控制不够精确和稳定,这也极大的造成了误差。再加上跑道是直接使用实验室地板,所以地面的摩擦力也对小车的速度造成了影响从而导致了误差。最后就是在数据的处理时,由于人工的测量与计算,肯定存在着误差,从而导致了与理论值的偏差。
5、原理图
6、作品成效总结分析
经过测试,本系统识别药房循迹送药时,能够准确识别药房,循迹红线,其中通过openmv图像处理以及stm32f407vet6单片机数据处理可以有效判断十字路口的转弯情况;在装载药品和卸载药品时,可以通过超声模块有效判断药品的情况。本系统可满足送药小车基本任务要求。 通过本次比赛我们团队深入理解了循迹小车以及openmv识别药房的原理,并对电子设 计领域产生了极大的兴趣,同时这次比赛锻炼了我们的团队合作能力。虽然比赛 的时间有限,但是我们的研究并不会因为这次的大赛而结束,我们会在已经实现 的基础上作进一步的研究,完善其功能。
7、参考资料及文献
[1]陈炳和.计算机控制系统基础.北京:北京航天航空大学出版社,2001.
[2]杨和平等.单片机原理与应用.北京:机械工业出版社,2008.
[3]张菊鹏等.计算机硬件技术基础(第二版).北京:清华大学出版社,2000.
[4]阎石.数字电子技术基础(第五版).北京:高等教育出版社,1998.
[5]童诗白等.模拟电子技术基础(第四版).高等教育出版社,2010.
[6]Openmv星瞳科技论坛
[7]正点原子论坛
8、作品照片: