版本协议

Public Domain

标签
专业版
#第十届立创电赛#视觉伺服的激光云台装置

创建时间:1个月前

115 1

视频

  • VID_20250713163528.mp4

  • VID_20250713161310.mp4

描述

<div> <p style="line-height:1.8;">注:* 为必填项</p> <p style="line-height:1.8;"><strong><span style="color:#0093e6;">请在报名阶段填写 ↓</span></strong></p> <p style="line-height:1.8;"> </p> <h3 style="line-height:1.8;">* 1、项目功能介绍</h3> <hr> <p>本项目构建了一个集成了视觉、语音控制和嵌入式技术的智能激光打靶云台系统。</p> <p>其核心功能是让云台能够“看见”、“听懂”并“击中” 目标。具体实现的功能如下:</p> <p>自动目标追踪:OpenMV摄像头作为“眼睛”,实时识别并追踪预设的特定目标,通过算法计算出目标在画面中的坐标。</p> <p>实时云台控制:OpenMV将目标坐标通过串口发送给STM32主控制器。STM32作为“大脑”,根据这些坐标数据,通过PID等控制算法驱动两个舵机(俯仰和偏航)组成的云台,使激光点始终对准目标,实现平滑、准确的自动追踪。</p> <p>精准激光打击:STM32控制一个继电器模块,作为激光器的“开关”。系统可以在自动模式下在锁定目标后自动发射激光,或在手动模式下通过指令控制激光的开启与关闭,模拟打靶效果。</p> <p>多模态人机交互:</p> <p>语音控制:集成ASRPRO语音识别模块,用户可以通过简单的语音命令(如“开始追踪”、“停止”、“发射激光”)来控制整个系统的运行状态,提升了操作的便捷性和科技感。</p> <p>信息显示:OLED显示屏实时显示系统状态信息,如当前模式、目标坐标、舵机角度、激光状态等,方便用户监控。</p> <p>声光指示:LED灯和蜂鸣器提供清晰的系统状态反馈。例如,灯亮表示系统上电,蜂鸣器鸣叫表示目标丢失或收到语音指令,增强了系统的交互性。</p> <p>稳定电源管理:采用12V航模电池供电,通过两个高效的降压模块分别产生6.5V和5V电压,为舵机云台和核心控制电路提供独立、稳定、无干扰的电源,确保系统稳定运行。</p> <p> </p> <h3 style="line-height:1.8;">*2、项目属性</h3> <hr> <p><strong>首次公开状态</strong>:本项目为首次公开</p> <p><strong>获奖情况</strong>:截至目前,项目尚未参与任何正式比赛或评奖活动</p> <h3 style="line-height:1.8;">* 3、开源协议</h3> <hr> <p style="line-height:1.8;">Public Domain</p> <p style="line-height:1.8;"> </p> <p style="line-height:1.8;"><strong><span style="color:#0093e6;">请在竞赛阶段填写 ↓</span></strong></p> <p style="line-height:1.8;"> </p> <h3 style="line-height:1.8;">*4、硬件部分</h3> <hr> <p><strong>实现原理与机制:</strong><br>本系统的硬件核心是“感知-决策-执行” 闭环。</p> <p>感知层:OpenMV摄像头持续捕获图像,运行视觉算法识别目标,并输出其中心点的(X, Y)坐标。</p> <p>决策层:STM32F103等主控芯片接收坐标数据。它将屏幕坐标转换为舵机需要转动的角度,并运用控制算法(如PID)计算出精确的PWM信号以驱动舵机。同时,它解析来自ASRPRO的语音指令,管理OLED显示、LED和蜂鸣器。</p> <p>执行层:</p> <p>云台:两个舵机分别负责水平(偏航)和垂直(俯仰)方向的运动,带动激光头指向目标。</p> <p>激光:STM32通过GPIO输出高低电平控制继电器闭合与断开,从而控制大功率激光模组的供电回路。</p> <p>交互:OLED、LED、蜂鸣器执行主控的显示和提示命令。</p> <p> </p> <p style="line-height:1.8;"><strong>系统连接图:</strong><img src="//image.lceda.cn/pullimage/ZXuAoAMWxy7RJQhWJvidl3mk1g5WG4mm8iCO7v5n.png" width="705" height="498" alt="ZXuAoAMWxy7RJQhWJvidl3mk1g5WG4mm8iCO7v5n.png"></p> <p style="line-height:1.8;"> </p> <h4><strong>硬件清单与注意事项:</strong></h4> <div> <div> <div> </div> </div> <table> <tr> <th>模块</th> <th>关键参数/型号</th> <th>备注与注意事项</th> </tr> <tr> <td>主控制器</td> <td>STM32F103C8T6 (核心板)</td> <td>资源丰富,性价比高。注意IO口的分配,避免冲突。</td> </tr> <tr> <td>视觉模块</td> <td>OpenMV H7 Plus (或OpenMV4)</td> <td>处理能力更强,帧率更高,识别更稳定。</td> </tr> <tr> <td>语音模块</td> <td>ASRPRO</td> <td>需提前烧录指令词条,使用串口与STM32通信。</td> </tr> <tr> <td>云台舵机</td> <td>2x 舵机 (如MG996R)</td> <td>注意:云台舵机供电电压为6.5V,需使用独立的降压模块,避免与逻辑电路(5V)共用,防止电机干扰导致单片机复位。</td> </tr> <tr> <td>激光模块</td> <td>带驱动板的大功率激光头</td> <td>安全第一! 必须连接继电器控制,切勿直视激光,操作时需佩戴防护眼镜。</td> </tr> <tr> <td>显示模块</td> <td>0.96寸 I2C OLED</td> <td>I2C地址通常为0x3C或0x3D,需在代码中确认。</td> </tr> <tr> <td>电源输入</td> <td>12V 航模电池</td> <td>保证容量足够,带载能力满足所有模块需求。</td> </tr> <tr> <td>降压模块1</td> <td>降压模块 (12V to 6.5V)</td> <td>仅用于云台舵机,输出电流需大于两个舵机堵转电流之和。</td> </tr> <tr> <td>降压模块2</td> <td>降压模块 (12V to 5V)</td> <td>为STM32、OpenMV、OLED、ASRPRO等逻辑电路供电。</td> </tr> <tr> <td>其他</td> <td>继电器模块、LED、蜂鸣器、电阻、杜邦线、洞洞板/PCB</td> <td>连接LED需串联限流电阻(220Ω-1kΩ)。</td> </tr> </table> </div> <p style="line-height:1.8;"> </p> <p style="line-height:1.8;"><span style="color:#95a5a6;font-size:14px;"> 注:请前往<span style="text-decoration:underline;"><a href="https://lceda.cn/editor" target="_blank">嘉立创EDA</a> </span>生成/上传设计文件,文件完成后,相关文稿将自动生成至项目详情;这里可以详细说明您的项目实现原理和机制、注意事项、调试方法、测试方法等。推荐图文并茂的形式向别人介绍您的想法。 </span></p> <p style="line-height:1.8;"> </p> <h3 style="line-height:1.8;">*5、软件部分</h3> <hr> <p style="line-height:1.8;"><strong>系统流程图:</strong></p> <p style="line-height:1.8;"><img src="//image.lceda.cn/pullimage/QNrouSc7BsNHmbA6NXfTf60p7Ezvvf4HeBzcT7hC.png" width="496" height="692" alt="QNrouSc7BsNHmbA6NXfTf60p7Ezvvf4HeBzcT7hC.png"></p> <p><strong>功能模块框图:</strong><br>OpenMV端 (MicroPython)</p> <p style="padding-left:40px;">main.py:主程序</p> <p style="padding-left:40px;">sensor模块:图像采集与预处理(镜头畸变校正)</p> <p style="padding-left:40px;">image.find_blobs():色块识别算法</p> <p style="padding-left:40px;">find_max():寻找最大色块函数</p> <p style="padding-left:40px;">UART通信:数据打包与发送</p> <p>STM32端 (C语言)</p> <p style="padding-left:40px;">应用层</p> <p style="padding-left:40px;">main.c:系统初始化与OLED显示</p> <p style="padding-left:40px;">驱动层</p> <p style="padding-left:40px;">usart.c/h:串口通信驱动</p> <p style="padding-left:40px;">USART2_IRQHandler():OpenMV数据接收中断</p> <p style="padding-left:40px;">Data_test():数据包校验函数</p> <p style="padding-left:40px;">Servo.c/h:舵机PWM驱动</p> <p style="padding-left:40px;">PWM_SetCompare_x/y():设置舵机角度</p> <p style="padding-left:40px;">timer.c/h:定时器中断配置</p> <p style="padding-left:40px;">TIM2_IRQHandler():PID控制周期定时</p> <p style="padding-left:40px;">oled.c/h:OLED显示驱动</p> <p style="padding-left:40px;">算法层</p> <p style="padding-left:40px;">pid.c/h:PID控制算法实现</p> <p style="padding-left:40px;">apply_deadband():死区处理函数</p> <p style="padding-left:40px;">PID_x(), PID_y():位置式PD控制器</p> <p style="line-height:1.8;"> </p> <p><strong>关键算法解释:</strong><br>1. 视觉识别算法 (OpenMV端)</p> <p>基于颜色的目标识别:使用find_blobs()函数在RGB色彩空间中找到符合预设颜色阈值red_threshold_01的连通区域。</p> <p>最大色块筛选:通过find_max()函数从所有识别到的色块中选择像素面积最大的一个,避免多个干扰点的影响。</p> <p>镜头畸变校正:使用lens_corr(1.8)函数校正鱼眼镜头产生的图像变形,提高坐标测量的准确性。</p> <p>2. 串口通信协议</p> <p>自定义数据帧格式:[0xA3, 0xB3, X坐标, Y坐标, 0xC3]</p> <p>三重校验机制:</p> <p>帧头1校验 (0xA3)</p> <p>帧头2校验 (0xB3)</p> <p>帧尾校验 (0xC3)</p> <p>数据合理性检查:在STM32端检查坐标值是否在有效范围内(X≤320, Y≤240)</p> <p>3. 位置式PD控制算法</p> <p>控制原理:输出 = Kp × 当前误差 + Kd × 误差变化率<br>死区处理:apply_deadband()函数在误差小于2.5像素时输出为0,避免舵机在目标点附近微小抖动,提高稳定性。</p> <p>参数特点:</p> <p>使用PD控制而非完整的PID,省略了积分项I,避免积分饱和和超调</p> <p>X、Y轴使用不同的PD参数,适应两个舵机不同的机械特性和负载</p> <p>Kd(微分)参数有效抑制了系统振荡,使云台运动更加平滑</p> <p>4. 中断驱动的系统架构</p> <p>串口接收中断:确保及时响应OpenMV发送的坐标数据,不阻塞主程序</p> <p>定时器中断:以固定频率(如100Hz)执行PID计算和舵机控制,保证控制周期的稳定性</p> <h3 style="line-height:1.8;"> </h3> <p><strong>调试技巧与参数整定:</strong><br>PID参数调试步骤:</p> <p>先调P参数:将Kd设为0,逐渐增大Kp直到云台开始快速响应但出现轻微振荡</p> <p>再加入D参数:逐渐增大Kd直到振荡被有效抑制,运动变得平滑</p> <p>微调死区:根据实际需求调整DEADZONE值,平衡精度和稳定性</p> <p>常见问题排查:</p> <p>目标丢失:检查OpenMV颜色阈值,优化光照条件</p> <p>云台振荡:降低Kp或增大Kd参数,增加死区值</p> <p>响应迟钝:增大Kp参数,减小死区值</p> <p>通信异常:检查串口波特率设置和数据包校验逻辑</p> <p style="line-height:1.8;"> </p> <p style="line-height:1.8;"><span style="color:#95a5a6;font-size:14px;">注:若您的项目涉及软件开发,请在附件上传对应的工程源码。这里可以详细说明您的软件流程图、功能模块框图、相关算法的解释或科普、源码结构、编译环境的搭建和配置、源码编译方法、程序烧录方法等。推荐图文并茂的形式向别人介绍您的想法。</span></p> <p style="line-height:1.8;"> </p> <h3 style="line-height:1.8;">*6、BOM清单</h3> <hr> <p style="line-height:1.8;"><img src="//image.lceda.cn/pullimage/5xGFKdu79oaHbKrzRaRkpF9Z7P7mS1z2RHtYJNoO.png" alt="5xGFKdu79oaHbKrzRaRkpF9Z7P7mS1z2RHtYJNoO.png"></p> <p style="line-height:1.8;"> </p> <p style="line-height:1.8;"><span style="color:#95a5a6;font-size:14px;">注:项目涉及的BOM清单。在<span style="text-decoration:underline;"><a href="https://lceda.cn/editor" target="_blank">嘉立创EDA</a> </span>生成/上传设计文件后,BOM将自动生成至项目详情;建议包括型号、品牌、名称、封装、采购渠道、用途等内容。具体内容和形式应以表达清楚项目构成为准。 </span></p> <p style="line-height:1.8;"> </p> <h3 style="line-height:1.8;">*7、大赛LOGO验证</h3> <hr> <p style="line-height:1.8;">logo在右上角<img src="//image.lceda.cn/pullimage/MKvJ9drVpDLWZyp2Uw62r8YVvwM8i0VeFQ0gSYuE.jpeg" width="629" height="588" alt="MKvJ9drVpDLWZyp2Uw62r8YVvwM8i0VeFQ0gSYuE.jpeg"></p> <p style="line-height:1.8;"><span style="color:#95a5a6;font-size:14px;">请上传包含大赛logo的项目图片,logo以丝印形式印刷在PCB上面。</span></p> <p style="line-height:1.8;"><span style="color:#95a5a6;font-size:14px;">点击zip下载大赛logo标识! <span style="text-decoration:underline;"><a href="https://image.lceda.cn/easyedaResource/images/d1bbfd69f9404f56901a0e7b849b7245.rar" target="_blank">(大赛标识).zip</a></span></span></p> <p style="line-height:1.8;"> </p> <h3 style="line-height:1.8;">* 8、演示您的项目并录制成视频上传</h3> <hr> <p style="line-height:1.8;"> </p> <p style="line-height:1.8;"><span style="color:#95a5a6;font-size:14px;">视频要求:请横屏拍摄,分辨率不低于1280×720,格式Mp4/Mov,单个视频大小限100M内;</span></p> <p style="line-height:1.8;"><span style="color:#95a5a6;font-size:14px;">视频标题:立创电赛:{项目名称}-{视频模块名称};如立创电赛:《自动驾驶》-团队介绍。</span></p> <p style="line-height:1.8;"> </p> <p style="line-height:1.8;"><span style="font-size:14px;"><a href="/posts/42551e8f2f2548cabc1c36626a42da94" target="_blank">前往查看更多详情 ></a></span></p> <p style="line-height:1.8;"> </p> </div>

文档

BOM

暂无

附件

附件名 下载
BOM_Board1_Schematic1_2025-10-16.xlsx
源码.rar

成员

评论(1)

  • 表情
    emoji
    小嘉工作篇
    小嘉日常篇
  • 图片
成功
工程所有者当前已关闭评论
立创电赛 回复
<p>工程没有公开哦<img src="//image.lceda.cn/pullimage/8vu55TW0Oo5aoJilpeqSKMFr5C0Gv34uFtO1eek4.webp" alt="图片" /></p>
goToTop
svg-battery svg-battery-wifi svg-books svg-more svg-paste svg-pencil svg-plant svg-ruler svg-share svg-user svg-logo-cn svg-double-arrow