描述
<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>
评论(1)