版本协议

OpenAtom OHL 1.0

标签
标准版
#第11届立创电赛#气浮式小球稳定悬浮控制系统

创建时间:1个月前

30 0

描述

<div> <p style="line-height:1.8;"> </p> <h3 style="line-height:1.8;">* 1、项目功能介绍</h3> <hr> <p style="line-height:1.8;"><span style="color:#95a5a6;font-size:14px;">本项目设计并实现了一套基于 STM32 单片机的乒乓球气流悬浮控制系统。系统通过风机产生向上的气流,使乒乓球能够在透明管道或竖直风道中悬浮,并利用超声波传感器实时测量乒乓球的高度。单片机根据目标高度和实际高度之间的误差,通过 PID 控制算法自动调节风机 PWM 输出,从而改变风机转速,实现乒乓球高度的自动稳定控制。<br>本项目主要由 STM32 主控模块、超声波测距模块、风机驱动模块、按键/串口控制模块、TJC 串口屏显示模块以及 PID 控制算法组成。系统启动后,超声波模块周期性采集乒乓球当前位置,将测得的距离转换为实际高度;STM32 对高度数据进行滤波处理,减少超声波测量抖动对控制效果的影响;随后控制程序计算当前高度与目标高度之间的误差,并根据误差大小输出对应的 PWM 信号,控制风机转速,使乒乓球逐渐趋近并稳定在设定高度。<br>在控制算法方面,本项目采用 PID 闭环控制。比例项用于根据当前误差快速调节风机输出,积分项用于减小长期稳定误差,微分项用于抑制高度变化过快造成的超调和震荡。为了提高系统稳定性,程序中还加入了启动油门、PWM 输出限幅、积分限幅、目标高度切换保护、测量高度有效范围判断等处理方式,避免风机输出突变或传感器异常值导致系统失控。<br>系统支持固定高度控制功能。用户可以通过串口或屏幕设置目标高度,例如 10 cm、20 cm、30 cm 等,系统会自动调节风机,使乒乓球稳定悬浮在对应高度附近。为了便于观察控制过程,TJC 串口屏上设计了实时高度显示和曲线显示界面,能够显示当前高度、目标高度、误差变化以及乒乓球高度随时间变化的趋势。曲线坐标系设置为 0 cm 到 50 cm,用户可以直观看到乒乓球上升、下降以及稳定过程。<br>本项目还设计了“跟手模式”。在该模式下,系统额外安装一个超声波传感器用于检测人手的位置。当串口发送指定指令后,系统进入跟手模式,第二个超声波传感器测得的手部距离会被转换为新的目标高度,乒乓球会跟随手的位置上下移动。为了避免手部轻微抖动导致乒乓球剧烈震荡,程序中对跟手目标值进行了滤波和限速处理,使目标高度变化更加平滑,从而提升跟随效果和观感。<br>本项目解决的核心问题是如何让一个轻质小球在气流中实现稳定悬浮,并能根据目标高度自动调整位置。项目涉及传感器测距、信号滤波、PWM 电机控制、PID 闭环控制、串口通信、屏幕可视化显示和人机交互等内容。通过该系统,可以直观展示自动控制中“检测-计算-执行-反馈”的闭环过程,具有较强的演示性、实践性和教学意义。</span></p> <p style="line-height:1.8;"> </p> <p style="line-height:1.8;"><span style="color:#95a5a6;font-size:14px;">注:可以是解决生活/工作中的某个问题、为某个人群/场景设计的方案、毕业设计/课程设计/DIY项目/纯属炫酷项目等。主要描述在电路设计、算法编写、系统搭建等方面做了什么、实现的核心功能、解决了什么问题。</span></p> <p style="line-height:1.8;"> </p> <h3 style="line-height:1.8;">*2、项目属性</h3> <hr> <p style="line-height:1.8;"> </p> <p style="line-height:1.8;"><span style="color:#95a5a6;font-size:14px;">注:请说明项目是否首次公开;项目是否为原创;项目是否曾经在其他比赛中获奖,若有获奖则叙述获奖详情;项目是否在学校参加过答辩。本项目为课程设计/校赛 DIY 实践项目,属于嵌入式控制与自动控制方向的综合应用项目。项目以 STM32 单片机为核心控制器,结合超声波测距、PWM 风机调速、PID 控制算法和串口屏显示,实现了一个可实际运行、可调试、可展示的乒乓球悬浮控制系统。<br>本项目目前为团队自主设计和调试完成的作品,主要硬件结构、控制程序、PID 参数调试、超声波高度换算、屏幕显示界面和跟手功能均由项目成员根据实际实验效果逐步完成。项目具有一定原创性,虽然乒乓球悬浮演示属于常见控制类实验形式,但本项目在原有基础上加入了实时高度曲线显示、串口控制、卡尔曼/滤波处理、启动油门保护、目标高度切换处理以及跟手控制功能,使系统不仅能够实现固定高度悬浮,还能够根据外部手势距离进行动态跟随控制。<br>项目目前主要用于学校课程设计、校赛作品展示和嵌入式控制实验展示。该项目尚未在其他公开比赛中获奖,也未进行过正式公开发布。项目后续可继续优化 PID 参数、提升超声波测距稳定性、优化风道结构、增加更多交互模式,并可扩展为自动控制教学演示平台。</span></p> <p style="line-height:1.8;"> </p> <h3 style="line-height:1.8;">* 3、开源协议</h3> <hr> <p style="line-height:1.8;"><span style="color:#95a5a6;font-size:14px;">请输入内容…</span></p> <p>本项目计划采用 <strong>GPL-3.0 开源协议</strong> 进行开源。项目开源内容主要包括 STM32 控制程序、超声波测距程序、PID 高度控制算法、串口通信程序、TJC 串口屏显示逻辑以及相关说明文档。项目中的核心控制逻辑、传感器数据处理方法和人机交互流程均可供学习、研究和二次开发使用。</p> <p>本项目的核心功能为乒乓球气流悬浮高度控制,包括超声波高度检测、目标高度设定、PID 闭环调节、PWM 风机控制和实时曲线显示。这些功能均由项目成员根据实际硬件平台和调试结果完成,不是直接复制现成开源项目的核心代码。项目中使用的 STM32 HAL 库、CMSIS 数学库、TJC 串口屏通信方式、超声波模块基础测距原理等属于常见嵌入式开发工具和通用模块使用方式,仅作为项目实现的基础支撑,不作为本项目的原创核心功能声明。</p> <p>若项目后续公开发布,将在代码仓库中保留完整的开源协议文件,并明确说明各部分内容的来源。对于 STM32 HAL 库、CMSIS 库、Keil/CubeMX 自动生成代码等第三方基础代码,将遵循其原有许可协议;对于项目成员自行编写的高度测量、滤波处理、PID 控制、串口指令解析、跟手模式控制和屏幕显示逻辑,将统一按照 GPL-3.0 协议开放。</p> <p>选择 GPL-3.0 协议的原因是希望项目在被学习、修改和二次开发时,仍然保持开源属性。任何基于本项目代码进行修改、移植或再次发布的版本,也应在 GPL-3.0 协议要求下继续公开相应源码,并保留原作者和项目说明信息。这样既方便其他同学学习嵌入式闭环控制系统的设计方法,也可以避免项目核心代码在二次使用后变成封闭代码。</p> <p>本项目没有直接引用其他开源项目的完整电路或完整源码作为核心功能实现。如果后续加入第三方开源模块、算法库或参考电路,将在项目文档中注明来源、作者、链接和对应协议,并确保其协议与 GPL-3.0 兼容。项目使用的市场通用硬件模块,如 STM32 开发板、超声波传感器、风机、电调/驱动模块和串口屏等,仅作为硬件平台使用,不涉及对其内部固件或商业模块代码的再发布。</p> <p>综上,本项目核心功能开放比例预计超过 80%,开源内容能够覆盖系统的主要控制流程和关键算法逻辑。项目开源后,其他使用者可以根据公开代码复现系统功能,也可以在此基础上继续扩展固定高度控制、跟手控制、曲线显示、参数调节、远程通信等功能。</p> <p> </p> <p style="line-height:1.8;"><span style="color:#95a5a6;font-size:14px;">注:利他即利己,请认真阅读下述内容。</span></p> <ol style="line-height:1.8;"> <li style="line-height:1.8;"><span style="color:#95a5a6;font-size:14px;">拥抱开源,赋予项目无限价值。建议项目核心功能开源80%以上;</span></li> <li style="line-height:1.8;"><span style="color:#95a5a6;font-size:14px;">若某一部分功能不可替代且删掉之后项目无法解决对应的问题,则这一部分实现的功能就是项目的核心功能;比如设计了一台电子负载且设计了一款上位机软件监控功率变化,则电子负载为核心功能,上位机软件为辅助功能;比如电子负载中使用了一款隔离485模块与上位机通信,则此485模块实现的通讯功能为辅助功能; </span></li> <li style="line-height:1.8;"><span style="font-size:14px;color:#95a5a6;">项目应选择适合自己的<span style="text-decoration:underline;"><a href="/posts/98fdb2accd754af7b51990790db3b47a" target="_blank">开源协议</a></span>,若项目引用其他开源项目,应注明来源并遵循原作者的开源协议规定;原创项目推荐使用GPL3.0开源协议;</span></li> <li style="line-height:1.8;"><span style="color:#95a5a6;font-size:14px;">直接引用开源项目的原电路或原代码实现的功能不可作为自己项目的核心功能、使用市场上通用模块直接实现的功能不可作为自己项目的核心功能。</span></li> </ol> <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 style="line-height:1.8;"><span style="color:#95a5a6;font-size:14px;">请输入内容…</span></p> <p> </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;"><span style="color:#95a5a6;font-size:14px;">请输入内容…</span></p> <p> </p> <pre> </pre> <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;"><span style="color:#95a5a6;font-size:14px;">请输入内容…本项目使用 STM32 单片机开发板作为主控,搭配两个超声波测距模块、一个直流高速风机、风机驱动模块、TJC 串口屏、电源模块、透明风道和乒乓球等器件完成系统搭建。其中一个超声波模块安装在风道顶部,用于测量乒乓球当前位置;另一个超声波模块用于跟手模式,测量人手距离并转换为目标高度。STM32 根据测距结果进行 PID 运算,并通过 PWM 控制风机驱动模块,从而调节风机转速,实现乒乓球高度控制。TJC 串口屏用于显示系统状态、实时高度和曲线变化。系统还需要使用 ST-Link 下载器、USB 转 TTL 模块、杜邦线、滤波电容、降压模块、支架、底板、螺丝等辅助材料完成连接、供电、固定和调试。</span></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;"> </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,单个视频大小限50M内;</span></p> <p style="line-height:1.8;"><span style="color:#95a5a6;font-size:14px;">视频标题:立创电赛:{项目名称}-{视频模块名称};如立创电赛:《自动驾驶》-团队介绍。</span></p> <p style="line-height:1.8;"><span style="color:#95a5a6;font-size:14px;">视频冲榜:项目制作过程中,可随时录制视频上传至B站、小红书、视频号、抖音号,<a style="text-decoration:underline;" href="https://doc.weixin.qq.com/smartsheet/form/1_wpmhMpBwAAfrKELBBSNdSqJrorjTQE8Q_600d71" target="_blank">冲榜人气奖励 ></a>,优秀项目可获得立创官方全域曝光机会;</span></p> <p style="line-height:1.8;"> </p> <p style="line-height:1.8;"><span style="font-size:14px;"><a style="text-decoration:underline;" href="/posts/b2b65ad17ac34080a318a5ab47a632c2" target="_blank">前往查看更多详情 ></a></span></p> <p style="line-height:1.8;"> </p> </div>

文档

BOM

暂无

附件

暂无

成员

评论(0)

  • 表情
    emoji
    小嘉工作篇
    小嘉日常篇
  • 图片
成功
工程所有者当前已关闭评论
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