描述
<div class="document">
<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;"><strong><span style="color: #0093e6;">请在报名阶段填写 ↓</span></strong></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;">* 1、项目功能介绍</h3>
<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;"> 项目名称:基于STM32F407VET6的智能目标随动系统</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;"> 解决问题:传统手动跟踪耗时费力,且容易丢失目标。本系统通过图像识别算法自动识别目标,并通过双轴云台实现实时跟踪,解决人工跟踪的痛点。</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;">*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>
<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>
<p> </p>
<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;"><strong><span style="color: #0093e6;">请在竞赛阶段填写 ↓</span></strong></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;">*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" 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 pap-left-indent-1.6em" 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;">*5、软件部分</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;">graph TD<br>A[图像采集] --> B[目标检测]<br>B --> C[位置计算]<br>C --> D[PID控制]<br>D --> E[串口通信]<br>E --> F[电机驱动]<br>F --> G[云台运动]<br>H[用户界面] --> A<br>H --> G</p>
<ol>
<li>
<p class="ds-markdown-paragraph"><strong>OpenCV处理模块</strong>(Python)</p>
<ul>
<li>
<p class="ds-markdown-paragraph">图像采集与预处理</p>
</li>
<li>
<p class="ds-markdown-paragraph">目标检测算法(人脸识别+颜色识别)</p>
</li>
<li>
<p class="ds-markdown-paragraph">目标位置计算</p>
</li>
</ul>
</li>
<li>
<p class="ds-markdown-paragraph"><strong>通信模块</strong>(Python+C)</p>
<ul>
<li>
<p class="ds-markdown-paragraph">自定义串口协议设计</p>
</li>
<li>
<p class="ds-markdown-paragraph">数据打包/解包</p>
</li>
</ul>
</li>
<li>
<p class="ds-markdown-paragraph"><strong>电机控制模块</strong>(C)</p>
<ul>
<li>
<p class="ds-markdown-paragraph">步进电机驱动</p>
</li>
<li>
<p class="ds-markdown-paragraph">PID位置控制</p>
</li>
<li>
<p class="ds-markdown-paragraph">运动轨迹规划</p>
</li>
</ul>
</li>
<li>
<p class="ds-markdown-paragraph"><strong>用户界面模块</strong>(Python)</p>
<ul>
<li>
<p class="ds-markdown-paragraph">实时视频显示</p>
</li>
<li>
<p class="ds-markdown-paragraph">目标跟踪状态</p>
</li>
<li>
<p class="ds-markdown-paragraph">系统控制面板</p>
</li>
</ul>
</li>
<li> </li>
</ol>
<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;">def detect_target(frame):<br> # 人脸检测<br> gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)<br> faces = face_cascade.detectMultiScale(gray, 1.3, 5)<br> <br> if len(faces) > 0:<br> # 返回最大的人脸<br> (x, y, w, h) = max(faces, key=lambda f: f[2]*f[3])<br> return (x + w//2, y + h//2), 'face'<br> <br> # 颜色检测(绿色物体)<br> hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)<br> mask = cv2.inRange(hsv, lower_green, upper_green)<br> contours, _ = cv2.findContours(mask, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)<br> <br> if contours:<br> c = max(contours, key=cv2.contourArea)<br> ((x, y), radius) = cv2.minEnclosingCircle(c)<br> if radius > 10:<br> return (int(x), int(y)), 'color'<br> <br> return None, None</p>
<h4>PID控制算法(STM32端)</h4>
<p>typedef struct {<br> float Kp, Ki, Kd;<br> float integral;<br> float prev_error;<br>} PIDController;</p>
<p>float pid_update(PIDController* pid, float setpoint, float measurement) {<br> float error = setpoint - measurement;<br> <br> // 比例项<br> float P = pid->Kp * error;<br> <br> // 积分项(带抗饱和)<br> pid->integral += error;<br> if (pid->integral > INTEGRAL_LIMIT) pid->integral = INTEGRAL_LIMIT;<br> else if (pid->integral integral = -INTEGRAL_LIMIT;<br> float I = pid->Ki * pid->integral;<br> <br> // 微分项<br> float D = pid->Kd * (error - pid->prev_error);<br> pid->prev_error = error;<br> <br> return P + I + D;<br>}</p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt pap-left-indent-1.6em" 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 pap-left-indent-1.6em" style="line-height: 1.8;">Smart-Tracking-System/<br>├── opencv_processing/ # OpenCV处理程序<br>│ ├── main.py # 主程序<br>│ ├── target_detection.py # 目标检测算法<br>│ ├── serial_comm.py # 串口通信模块<br>│ └── ui.py # 用户界面<br>│<br>├── stm32_firmware/ # STM32固件<br>│ ├── Core/ # 核心文件<br>│ ├── Drivers/ # HAL驱动<br>│ ├── Stepper/ # 步进电机驱动<br>│ │ ├── stepper.c<br>│ │ └── stepper.h<br>│ ├── PID/ # PID算法<br>│ │ ├── pid.c<br>│ │ └── pid.h<br>│ └── main.c # 主程序<br>│<br>└── 3d_models/ # 云台3D模型<br> ├── base.stl<br> ├── x_axis.stl<br> └── y_axis.stl</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;">*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>
评论(0)