版本协议

Public Domain

标签
标准版
#第十届立创电赛#智能多模态感知循迹视觉追踪小车

创建时间:1个月前

88 0

视频

描述

<div class="document"> <h3 class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;">* 1、项目功能介绍</h3> <hr class="horizontal-splitline normal-bold-2"> <p class="ds-markdown-paragraph"><strong>1.</strong></p> <p class="ds-markdown-paragraph"><strong>底盘驱动与运动控制 (MSPM0 核心)</strong></p> <ol> <li style="list-style-type: none;"> <ul> <li> <p class="ds-markdown-paragraph"><strong>功能:</strong> 接收来自上层(树莓派或遥控)的运动指令(速度、方向),控制两个直流驱动电机(通常为差速驱动)。</p> </li> <li> <p class="ds-markdown-paragraph"><strong>技术亮点:</strong></p> <ul> <li> <p class="ds-markdown-paragraph"><strong>MSPM0 优势:</strong> 充分利用 MSPM0 系列微控制器的高性能ARM Cortex-M0+内核、丰富PWM资源(用于电机调速)、高精度ADC(可选用于电流检测/电池监控)、通信接口(UART/SPI/I2C 与云台STM32和树莓派通信)以及低功耗特性。</p> </li> <li> <p class="ds-markdown-paragraph"><strong>电机驱动:</strong> 通过H桥电机驱动芯片TB6612模块,实现电机的正反转、调速和制动控制。</p> </li> <li> <p class="ds-markdown-paragraph"><strong>实时控制:</strong> MSPM0 提供稳定可靠的底层电机控制循环,确保小车运动的实时性和稳定性。</p> </li> <li> <p class="ds-markdown-paragraph"><strong>基础传感器接口:</strong> 可能连接编码器(用于速度/里程反馈)或IMU(用于姿态稳定,可选)。</p> </li> </ul> </li> </ul> </li> <li> <p class="ds-markdown-paragraph"><strong>高精度十二路循迹 (MSPM0 核心)</strong></p> <ul> <li> <p class="ds-markdown-paragraph"><strong>功能:</strong> 利用安装在小车底部的<strong>十二路红外光电传感器阵列</strong>,实时检测地面预设的轨迹线(通常是黑色胶带)。</p> </li> <li> <p class="ds-markdown-paragraph"><strong>技术亮点:</strong></p> <ul> <li> <p class="ds-markdown-paragraph"><strong>高分辨率检测:</strong> 十二路传感器提供远超普通3-5路循迹模块的检测精度和宽度,能更早识别弯道、十字路口、T字路口等复杂路径,并实现更平滑的轨迹跟踪。</p> </li> <li> <p class="ds-markdown-paragraph"><strong>自适应算法:</strong> MSPM0 实时读取所有传感器状态,运行循迹算法PID控制,计算出所需的电机速度差修正量,发送给电机驱动模块,实现精准的沿线和过弯。</p> </li> <li> <p class="ds-markdown-paragraph"><strong>强环境适应性:</strong> 多路传感器可有效抵抗部分传感器误检或光线干扰,提高系统鲁棒性。</p> </li> </ul> </li> </ul> </li> <li> <p class="ds-markdown-paragraph"><strong>步进电机云台控制 (STM32 核心)</strong></p> <ul> <li> <p class="ds-markdown-paragraph"><strong>功能:</strong> 接收树莓派视觉系统计算出的目标位置信息,控制两轴(俯仰Pitch、偏航Yaw)步进电机,驱动摄像头(通常安装在云台上)快速、准确地指向并追踪目标。</p> </li> <li> <p class="ds-markdown-paragraph"><strong>技术亮点:</strong></p> <ul> <li> <p class="ds-markdown-paragraph"><strong>STM32 优势:</strong> 利用STM32(如STM32F4系列)的高主频、丰富定时器资源(精确步进电机脉冲生成)、浮点运算单元(复杂运动学计算)和高速通信接口(与树莓派通信)。</p> </li> <li> <p class="ds-markdown-paragraph"><strong>高精度定位:</strong> 步进电机提供开环位置控制精度,结合细分驱动技术,实现云台平稳、精准的运动。</p> </li> <li> <p class="ds-markdown-paragraph"><strong>闭环控制 (可选):</strong> 可加入编码器或电位器反馈,实现更精确的闭环位置控制。</p> </li> <li> <p class="ds-markdown-paragraph"><strong>运动规划:</strong> STM32 执行平滑的运动轨迹规划算法,避免云台运动抖动。</p> </li> </ul> </li> </ul> </li> <li> <p class="ds-markdown-paragraph"><strong>视觉感知与决策 (树莓派 + OpenCV)</strong></p> <ul> <li> <p class="ds-markdown-paragraph"><strong>功能:</strong> 通过云台上的摄像头捕获实时图像/视频流,运行基于<strong>OpenCV</strong>的计算机视觉算法。</p> </li> <li> <p class="ds-markdown-paragraph"><strong>主要视觉任务:</strong></p> <ul> <li> <p class="ds-markdown-paragraph"><strong>目标检测与追踪:</strong> 识别并持续跟踪特定的目标物体(如色块、人脸、ArUco标记、特定形状物体等)。</p> </li> <li> <p class="ds-markdown-paragraph"><strong>环境感知 (可选):</strong> 识别障碍物、识别特定标志等。</p> </li> </ul> </li> <li> <p class="ds-markdown-paragraph"><strong>决策与指令下发:</strong></p> <ul> <li> <p class="ds-markdown-paragraph">根据视觉识别结果,计算出云台需要转动的角度(发送给STM32云台控制器)。</p> </li> <li> <p class="ds-markdown-paragraph">根据高级任务需求(如追踪时需移动底盘),生成底盘运动指令(发送给MSPM0主控制器)。<strong>强大算力:</strong> 树莓派(如3B+/4B)提供运行复杂CV算法所需的计算能力。</p> <ul> <li> <p class="ds-markdown-paragraph"><strong>OpenCV 生态:</strong> 利用成熟的OpenCV库实现高效的图像处理、特征提取、目标识别与追踪算法(如颜色过滤、模板匹配、Haar级联、深度学习模型等)。</p> </li> </ul> <p> </p> </li> </ul> </li> </ul> </li> </ol> <h3 class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;">*2、项目属性</h3> <ul> <li> <p class="ds-markdown-paragraph"><strong>首次公开</strong>:是</p> </li> <li> <p class="ds-markdown-paragraph"><strong>原创性</strong>:是(结合了开源技术但整体架构为原创设计)</p> </li> <li> <p class="ds-markdown-paragraph"><strong>获奖历史</strong>:无</p> </li> <li> <p class="ds-markdown-paragraph"><strong>答辩经历</strong>:无</p> </li> </ul> <h3 class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;">* 3、开源协议</h3> <hr class="horizontal-splitline normal-bold-2"> <div> <p>GPL-3.0 的核心在于<strong>开源</strong>,而非限制商业用途。用户可以自由地将软件用于商业目的,但必须遵守以下规则:</p> </div> <div> <ol class="b_dList"> <li> <p><strong>源码开放</strong>:分发时必须提供源代码,确保接收者能够自由修改和使用。</p> </li> <li> <p><strong>许可证传递性</strong>:任何基于 GPL 软件的修改版本也必须遵守 GPL 协议,确保自由的延续。</p> </li> <li> <p><strong>专利保护</strong>:贡献者自动授予专利许可,防止专利诉讼破坏开源生态。</p> </li> <li> <p><strong>破解允许</strong>:用户可以自由破解软件的技术限制</p> </li> </ol> </div> <h3 class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;">*4、硬件部分</h3> <hr class="horizontal-splitline normal-bold-2"> <p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt">MSPM0开发板</p> <p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt">STM32F407ZET6</p> <p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt">2个370电机</p> <p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt">万向轮</p> <p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt">树莓派</p> <p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt">12路循迹模块</p> <p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt">*5、软件部分</p> <hr class="horizontal-splitline normal-bold-2"> <div> <div>主要代码</div> <div>void TIMER_OTHER_INST_IRQHandler(void)//</div> <div> {</div> <br> <div>    switch (DL_TimerA_getPendingInterrupt(TIMER_OTHER_INST))</div> <div>    {</div> <div>        case DL_TIMERA_IIDX_LOAD://1ms进入一次</div> <div>        {</div> <div>            static uint16_t key_scanf=0,key_fw=0;</div> <div>            if(++key_scanf>=5)</div> <div>            {</div> <div>                key_scanf=0;</div> <div>                KeyScan();</div> <div>            }</div> <br> <div>            static uint16_t count=0;</div> <div>            count++;</div> <div>            if(count>=6)</div> <div>            {</div> <div>                count=0;</div> <div>                speed_R=get_encoder_count_A();//A右 B左</div> <div>                speed_L=get_encoder_count_B();</div> <div>                speedr_ptd.Actual=get_encoder_count_A();</div> <div>                speedl_ptd.Actual=get_encoder_count_B();</div> <br> <div>                if(start_motor_flag==1 && biaozhi==0)</div> <div>                {</div> <div>                    PID_Updata(&speedr_ptd);</div> <div>                    PID_Updata(&speedl_ptd);</div> <div>                    line.Actual=line_result();</div> <div>                    PID_Updata(&line);</div> <div>                    moto1=speedr_ptd.Out+240+line.Out;</div> <div>                    moto2=speedl_ptd.Out+240-line.Out;</div> <div>                    Load(moto1,moto2);</div> <div>                }</div> <div>                else if(start_motor_flag==1 && biaozhi==1)</div> <div>                {</div> <div>                    Load(195,-130);//moto1:200,moto2:-160</div> <div>                    if(line_result()>=-1&&line_result()3,=3000)</div> <div>            // {</div> <div>            //     count1=0;</div> <div>            //     flag_jishu=0;//可以消耗圈数</div> <div>            // }</div> <div>        }break;</div> <div>        default:break;</div> <div>    }</div> <div>}</div> </div> <h3 class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;">*6、BOM清单</h3> <hr class="horizontal-splitline normal-bold-2"> <p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;"><span style="color: #95a5a6; font-size: 14px;">请输入内容…</span></p> <p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;"> </p> <p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" 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 class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;"> </p> <h3 class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;">*7、大赛LOGO验证</h3> <hr class="horizontal-splitline normal-bold-2"> <p style="line-height: 1.8;"> </p> <p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;"><span style="color: #95a5a6; font-size: 14px;">请上传包含大赛logo的项目图片,logo以丝印形式印刷在PCB上面。</span></p> <p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" 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 class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;"> </p> <h3 class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;">* 8、演示您的项目并录制成视频上传</h3> <hr class="horizontal-splitline normal-bold-2"> <p style="line-height: 1.8;"> </p> <p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;"><span style="color: #95a5a6; font-size: 14px;">视频要求:请横屏拍摄,分辨率不低于1280×720,格式Mp4/Mov,单个视频大小限100M内;</span></p> <p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;"><span style="color: #95a5a6; font-size: 14px;">视频标题:立创电赛:{项目名称}-{视频模块名称};如立创电赛:《自动驾驶》-团队介绍。</span></p> <p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;"> </p> <p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;"><span style="font-size: 14px;"><a href="/posts/42551e8f2f2548cabc1c36626a42da94" target="_blank">前往查看更多详情 ></a></span></p> <p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;"> </p> </div>

文档

BOM

暂无

附件

暂无

评论(1)

  • 表情
    emoji
    小嘉工作篇
    小嘉日常篇
  • 图片
成功
工程所有者当前已关闭评论
legosg 回复
&lt;p&gt;哇塞,大佬~[emojis:色]&lt;/p&gt;
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