本帖最后由 STCAI-32位8051 于 2023-12-2 08:45 编辑
浙江科技学院 ===获得全国大学生电子设计竞赛2023年, 本科组一等奖
E题: 运动目标控制与自动追踪系统
=== 审核确认中 ,主要控制是STC32G12K128, 但图像算法是用视觉模块OpenMV完成的
===奖金人民币2万元??如不是唯一主控, 会适当打折
=== 因STC32完成了三分之二的角色 ,奖金 【20000*2/3=13500元】
按规定本科组一等奖 奖金人民币2万元 @ STC32G12K128
按规定一等奖奖金人民币1万@STC8H8K64U,所以大家尽量用管脚兼容的STC32位8051
www.STCAIMCU.com 本学期结束前会给广大获奖优秀师生团队发出奖金,回家过个好年 !Your browser does not support video tags.
1:浙江科技学院 三位参赛选手历经四天三夜争分夺秒的紧急筹备,披荆斩棘荣获国一殊荣, 实至名归!恭喜浙江科技学院英姿飒爽的小伙子们!我带领大家一起来了解一下 浙科电赛一队在本次比赛中的精彩花絮 ,如下:
摘要
本作品采用了具备OpenCV功能的开发板,以及以STC32G12K128为核心的硬件平台,构建一个高效的运动目标控制与自动追踪系统。该系统运用视觉识别技术,通过识别屏幕边框、A4靶纸和激光位置等要素,并结合PID控制算法,实现了有效的闭环控制。实验结果表明,本系统能够精确地跟踪红色光斑,能够在规定的时间内完成目标的移动和复位功能,并成功完成了所有基础和扩展部分的任务,具备了可复现性。这项设计具有广泛的应用潜力,可适用于各种需要目标追踪的场景。
1 系统方案及其选择
1.1 总体方案 根据题目要求,本系统分为运动目标控制系统与自动追踪系统 。
运动目标控制系统通过OpenMV得到屏幕四周边线以及A4靶纸内边框对应的路径的坐标位置和红色斑点的位置,也能得到红色斑点和目标坐标的误差,通过PID计算控制量再通过串口把控制量传输给STC32G12K128控制舵机进行运动,同时STC32G12K128也会通过串口把开关状态反馈给OpenMV,从而实现复位和暂停等功能。
自动追踪系统通过USB摄像头采集图像,激光发射器与摄像头始终保持相对静止,通过OpenCV库能找到红色目标和绿色目标,然后再过滤出红色激光和绿激光的位置,计算红色目标距绿激光的误差再过PID可得控制量,同时根据误差以及绿激光的位置可判断是否追踪上,同上通过串口与STC32G12K128进行数据交互,实现对舵机和声光装置的控制和对开关的检测。
1.2 摄像头和主控MCU的选择 在设计激光追踪系统时,对图像的采集和光点的检测是核心问题。市面上可以得到的摄像头种类繁多,分为数字摄像头和模拟摄像头两大类。模拟摄像头可以将视频采集设备产生的模拟视频信号转换成数字信号,进而将其储存在计算机里。模拟摄像头捕捉到的视频信号必须经过特定的视频捕捉卡将模拟信号转换成数字模式,并加以压缩后才可以转换到计算机上运用。数字摄像头可以直接捕捉影像,然后通过串、并口或者USB接口传到计算机里。由于电子竞赛对设备的限制,许多市面上流行的可用于PC的摄像头不在考虑选择的范围之内。
OpenMV是一种低成本,可扩展,使用python驱动的机器视觉模块,其搭载了MicroPython解释器,使其可以在嵌入式端进行python开发。对于激光光点和黑框的检测来说,OpenMV是优先选择。但是实验室中OpenMV数量只有一块,另一块采用一个USB摄像头,连接一块能运行OpenCV-Python的嵌入式开发板来实现图像处理。
要实现对光点的跟踪,需要控制舵机转角,采用PWM信号控制。在实验中发现,无论是OpenMV本身的PWM信号,还是OpenCV-Python开发板提供的PWM输出,都相对不稳定,对舵机控制精度有限。另外,其外设接口较少,难以满足题目要求,因此在本作品实现时,采用了STC32G12K128作为主控芯片。STC32G12K128外设丰富,具有较高的可扩展性。能够输出稳定且精度较高的PWM信号,实现对舵机的精准控制。
综上所述,针对运动目标控制系统,结合OpenMV和STC32G12K128实现系统功能。对于自动追踪系统,我们选择了能运行OpenCV-Python的开发板和STC32G12K128。这些选择是基于设备可用性、性能要求和开发难度等因素的综合考虑。
1.3 云台支架设计
由于实验室中没有成品云台,因此使用舵机自己搭造一个简单的二维舵机云台。该二维舵机云台如图1所示,采用两个舵机实现。底部舵机用于实现水平方向360°旋转,上面一个舵机用于垂直方向180°旋转。
(a)运动目标控制系统云台 (b)自动跟踪系统云台
图1 自制二维云台
舵机是舵机云台的核心单元,其控制精度和控制稳定性对云台的性能产生决定性的影响。实验室中库存舵机较多,有智能车比赛中常见的 S3010 、S-D9舵机,也有一些杂牌小舵机。经实验对比,水平旋转运动舵机选择智能车比赛中常见的S-D9舵机,其负载力矩较大,机械震动较小;垂直方向旋转运动舵机选择R12S短身舵机,其体积较小,重量较轻,且具有较高的控制精度。
在舵机云台的运动过程中,常常会出现较大的震动现象。这种震动不仅会影响舵机本身的精度,还会给控制带来困难。此外,舵机的精度本身就有限,加上随机的震动,使得控制变得更加困难。为了解决这个问题,本作品采用了金属支架结构。与塑料支架相比,金属支架具有较高的强度和稳定性,能够有效减少舵机运动时的震动,提高舵机的控制精度。
1.4 摄像头位置设计 摄像头的安装位置对于识别非常重要。摄像头的位置影响了摄像头的视野大小,影响了摄像头的稳定性。现考虑两种摄像头安装方式:固定安装和非固定安装。
(1)固定安装:将摄像头安装在底座上,这样摄像头便不会随着舵机的移动而一起移动。其主要优点是图像动态模糊少,不容易在移动的时候,对图像处理产生额外的麻烦。动态模糊减少,也意味着摄像头的曝光的时间可以增长,对于在黑暗环境下,曝光时间越长图像越明亮。其缺点是视野范围较为固定。
(2)非固定安装:将摄像头安装在舵机上,这样舵机在移动的时候摄像头也会跟随移动。其主要优点是通过机械调整后,可以使得激光光斑位置处于图像上的中心位置,这样激光的位置便可以很轻松确定,无需复杂的识别。并且这种方式拥有更加灵活更加广阔的视野。而其缺点是传回的图像会有动态模糊,背景位置不确定,给图像处理带来了比较大的困难。
分析系统目标,运动目标控制系统对于环境的鲁棒性要求比较高,并且视野要求不大,可以通过摄像头的机械调焦和放大来实现调节视野。运动目标系统对于控制的精度要求更高。所以综上原因,运动目标控制系统选择固定安装方式。
而自动追踪系统对于环境的依赖较弱,只需要能够看见红色激光即可,无需识别其它的目标。并且自动追踪系统所处的位置比较远离屏幕,为了追踪红色激光,则需要移动比较大舵机角度,所以对视野的要求也比较高。综上原因,自动追踪系统采用非固定安装。
材料准备环节 :
在做运动目标控制系统时,由于他们的实验室是做智能车的,没有专门的采购相关材料,幸运的是经过一番探索,他们还是找到了足够的料,组成了运动目标控制系统V1,显然这套系统太精简了,想驾驭起来比较困难。他们还遇到了几个印象较深的问题:
问题1:单个舵机的瞬时电流能上2A。解决方案:模块独立供电。
问题2:舵机快速运动后急停,纸板会发生形变导致激光抖动。解决方案:让舵机慢慢转,寻找更好的云台支架材料。
问题3:OpenMV控制舵机的信号精度低,舵机的精度也低。解决方案:额外引入MCU来控制舵机,换更好的舵机。(最开始采用的是9克舵机,精度一言难尽。后来拆了实验室里最贵的舵机才解决问题,实际上如果时间够的话通过齿轮组或者自己做舵机主控也可能解决问题)
问题4:红激光不够亮且来不及买了。解决方案:稍稍超点压,选择相信万能的软件选手。
问题5:软件选手反映OpenMV不太好使。解决方案:绿激光考虑用OpenCV。
V2系统来了,它有高性能的OpenMV,合题目的键,足瓦的电源,更好的舵机,以及超高性价比的 STC32G12K128 。
国一,2023电赛E题国一浙江科技学院|证明已开 - 2025全国大学生电子设计竞赛技术支持版块,最高奖100万,一等奖2万,选型 - 国芯论坛-STC全球32位8051爱好者互助交流社区 - STC全球32位8051爱好者互助交流社区 (stcaimcu.com)