标题: 2023年电赛E题思路和代码分享 openMV设计运动目标控制与自动追踪系统 [打印本页]

作者: diogenescask    时间: 2024-11-15 12:26
标题: 2023年电赛E题思路和代码分享 openMV设计运动目标控制与自动追踪系统
项目使用K210与 openMV设计了一个运动目标控制与自动追踪系统。系统包括使用深度学习进行识别激光位置,其中红色激光笔模拟运动目标、绿色激光笔指示自动追踪,并将识别到的位置信息控制舵机移动。通过K210和stm32串口通信实现图像处理和舵机运动控制功能,实现了红色光斑的位置控制以及绿色光斑的自动追踪功能。实验结果表明,系统能够较准确追踪红色光斑,在规定的时间内完成移动和复位功能。本设计可应用于各种需要目标追踪的场景,具有较高的实用性和可扩展性。
1.基本要求
(1)复位功能。红色光斑能从屏幕任意位置回到原点。
(2)运动目标控制系统。红色光斑能在30秒内沿屏幕四周边线顺时针移动一周,移动时光斑中心距边线距离≤2cm。
(3)用约1.8cm宽的黑色电工胶带沿A4纸四边贴一个长方形,构成A4靶纸。将此 A4 靶纸贴在屏幕自定的位置。启动运动目标控制系统,红色光斑能在30 秒内沿胶带顺时针移动一周。
(4)用约1.8cm宽的黑色电工胶带沿A4纸四边贴一个长方形,构成A4靶纸。将此A4靶纸贴在屏幕自定的位置。启动运动目标控制系统,红色光斑能在30秒内沿胶带顺时针移动一周。
2.发挥要求
(1)运动目标位置复位,一键启动自动追踪系统,控制绿色光斑能在2秒 内追踪红色光斑,追踪成功发出连续声光提示。此时两个光斑中心距离应≤3cm。
(2)运动目标重复基本要求(3)、(4)的动作。绿色激光笔发射端可以放置在其放置线段的任意位置,同时启动运动目标及自动追踪系统,绿色光斑能自动追踪红色光斑。启动系统2秒后,应追踪成功,发出连续声光提示。
3. 程序设计
3.1.stm32控制舵机运动
Stm32使用pid算法同时控制x轴与y轴的移动,将x轴与y轴的各个参数进行pid运算,再将角度返回给单片机,从而可以进行控制。舵机采用pwm进行控制,由于考虑其稳定性,需要将舵机旋转速度变慢,也就是说要将pwm波分成很多小段再每一段延迟一定秒数输出,故程序将要进行旋转的a角度与b角度进行了除以n(n很大),在一个执行n次的循环中每次将舵机x轴旋转a/n度,y轴旋转b/n度,实现舵机的平稳运行。
3.2.k210识别矩形并返回四角的像素坐标
调用库函数识别矩形,并返回四个角的像素坐标。设计实验计算得到k210镜头的焦距后,计算所识别到的每两个像素坐标之间的角度,通过相似三角形得到实际坐标的位置,再控制舵机的运动。
3.3.openmv识别红色激光并跟踪
通过不断调整颜色阈值,再对摄像头进行曝光调节,关闭图像处理,再使用二值化的方法对图像进行处理,使得摄像头能够稳定的识别到红色激光点。识别到激光点以后,以摄像机中心为原点,计算识别到的激光点的坐标与原点的坐标差,再使用openmv控制两个舵机运动,通过每一帧图像与上一帧图像的对比,产生角度差,再使用pid算法控制两个舵机运动从而实现跟踪。
3.4.原理图

见图片

图片1.jpg (152.27 KB, 下载次数: 0)

图片1.jpg

E题代码.7z

184.27 KB, 下载次数: 0, 下载积分: 黑币 -5






欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1