当前位置: 首页 > article >正文

STM32按键控制SG90舵机摆动的5个创意小项目实践(附完整工程)

STM32按键控制SG90舵机摆动的5个创意小项目实践附完整工程对于已经掌握了STM32基础PWM控制SG90舵机的电子爱好者来说如何将这项技能转化为有趣的实际应用往往是激发创造力的关键一步。本文将分享5个基于按键控制的舵机创意项目从简单的角度标定器到复杂的机械臂单元每个项目都配有核心代码片段和实现思路。这些项目不仅能够巩固PWM控制舵机的技能更能帮助开发者理解舵机在实际场景中的应用逻辑。1. 模拟仪表盘指针仪表盘指针是舵机最直观的应用之一。我们可以利用STM32的按键控制实现一个可调节的模拟指针系统。核心实现步骤硬件连接SG90舵机信号线 → PA1两个按键 → PB1(增加角度)、PB11(减少角度)OLED显示屏 → I2C接口代码修改点// 在主循环中添加角度递减逻辑 if (KeyNum 2) { // 按键2按下 Angle - 30; // 角度变量减少30 if (Angle 0) { // 角度变量小于0后 Angle 180; // 角度变量设为最大值 } }优化显示效果// 添加指针图标显示 OLED_ShowString(2, 1, |-----|-----|); // 模拟刻度 OLED_ShowChar(3, 7 (int)(Angle/30), ^); // 指针位置提示为了更平滑的指针移动可以将角度变化步长从30度改为10度同时增加按键长按加速功能。应用场景自制电压表/电流表显示温度计指针指示速度表模拟2. 简易云台控制系统利用单个舵机可以构建一个水平方向的简易云台适用于小型监控设备或激光指示器。关键实现技术平滑运动控制算法预设位置快速定位极限位置保护代码增强部分// 定义预设位置 #define POS_HOME 90 #define POS_LEFT 30 #define POS_RIGHT 150 // 修改主循环逻辑 if (KeyNum 1) { // 按键1向左转 Servo_SetAngle(POS_LEFT); } else if (KeyNum 2) { // 按键2向右转 Servo_SetAngle(POS_RIGHT); } else if (KeyNum 3) { // 新增按键3回中 Servo_SetAngle(POS_HOME); }硬件扩展建议组件作用连接方式激光模块指示用通过三极管控制红外传感器自动跟踪ADC输入第二个舵机垂直方向另一PWM通道3. 舵机摇扇装置将舵机与自制扇叶结合可以创建一个可调速的摇扇装置非常适合作为桌面小工具。制作要点机械结构使用轻质材料制作扇叶如塑料片确保重心平衡减少舵机负载添加安全防护罩控制逻辑改进// 定义风速等级 uint8_t speedLevel 0; // 修改主循环 if (KeyNum 1) { speedLevel (speedLevel 1) % 4; switch(speedLevel) { case 0: Angle 90; break; // 停止 case 1: Angle 60; break; // 低速 case 2: Angle 120; break; // 中速 case 3: Angle 180; break; // 高速 } Servo_SetAngle(Angle); }性能优化技巧在舵机转动极限位置添加缓冲垫使用定时器实现自动摆动模式增加PWM死区保护4. 角度标定器这是一个精确的角度测量辅助工具可用于校准其他设备或作为教学演示装置。核心功能实现// 精确角度控制模式 if (mode CALIBRATION_MODE) { if (KeyNum 1) { // 按键1增加1度 Angle (Angle 180) ? Angle 1 : 180; } if (KeyNum 2) { // 按键2减少1度 Angle (Angle 0) ? Angle - 1 : 0; } Servo_SetAngle(Angle); OLED_ShowNum(2, 1, Angle, 3); OLED_ShowString(2, 5, deg ); }精度提升方法使用更高精度的PWM分辨率添加零点校准功能实现角度记忆功能增加物理刻度盘参考应用数据对比控制方式分辨率重复精度适用场景按键步进1度±2度一般教学电位器控制0.5度±1度精密调整串口命令0.1度±0.5度自动化测试5. 机械臂基础单元单个舵机可以作为机械臂的一个关节通过组合多个单元可以构建完整的机械臂系统。关键实现代码// 机械臂控制数据结构 typedef struct { float baseAngle; float armAngle; uint8_t gripState; } RoboticArm; // 初始化机械臂状态 RoboticArm myArm {90, 90, 0}; // 控制逻辑示例 if (KeyNum 1) { // 控制底座 myArm.baseAngle 15; if (myArm.baseAngle 180) myArm.baseAngle 0; Servo_SetAngle(myArm.baseAngle); }扩展接口设计多舵机控制方案使用STM32的多个定时器采用PWM扩展芯片通过串口指令控制运动控制算法// 平滑移动函数 void smoothMove(float start, float end, uint16_t duration) { float step (end - start) / duration; for (uint16_t i 0; i duration; i) { Servo_SetAngle(start step * i); Delay_ms(1); } }机械设计注意事项考虑舵机扭矩与负载匹配添加机械限位保护优化重心分布使用轻量化材料项目优化与进阶技巧在实际制作这些项目时有几个常见问题需要注意电源管理舵机工作时电流较大建议单独供电添加大容量滤波电容使用稳压模块保证电压稳定机械稳定性使用金属齿轮舵机提高耐用性添加轴承减少径向负载采用3D打印件精确固定控制算法进阶// PID控制算法示例 float pidControl(float target, float current) { static float integral 0, lastError 0; float error target - current; integral error; float derivative error - lastError; lastError error; return Kp*error Ki*integral Kd*derivative; }扩展功能建议蓝牙/WiFi无线控制增加力反馈传感器实现预设动作序列添加声光提示功能在完成这些项目后可以尝试将它们组合起来比如将云台与机械臂结合或者给摇扇添加温度自动控制功能。实际调试中发现SG90舵机在4.8V电压下工作最稳定长时间运行时要注意散热问题。

相关文章:

STM32按键控制SG90舵机摆动的5个创意小项目实践(附完整工程)

STM32按键控制SG90舵机摆动的5个创意小项目实践(附完整工程) 对于已经掌握了STM32基础PWM控制SG90舵机的电子爱好者来说,如何将这项技能转化为有趣的实际应用,往往是激发创造力的关键一步。本文将分享5个基于按键控制的舵机创意项…...

TradingAgents-CN:构建AI驱动的多智能体投资决策系统

TradingAgents-CN:构建AI驱动的多智能体投资决策系统 【免费下载链接】TradingAgents-CN 基于多智能体LLM的中文金融交易框架 - TradingAgents中文增强版 项目地址: https://gitcode.com/GitHub_Trending/tr/TradingAgents-CN 在金融投资领域,数据…...

告别L298N!用TB6612驱动模块给你的STM32循迹小车降功耗提性能

告别L298N!用TB6612驱动模块给你的STM32循迹小车降功耗提性能 在嵌入式开发领域,电机驱动模块的选择往往决定了整个项目的能效表现和稳定性。对于参加电子设计竞赛的学生和硬件爱好者来说,如何在有限的电池容量下实现更长的运行时间和更精准的…...

保姆级教程:用Python解析北斗广播星历文件(RINEX 3.04格式)并计算卫星坐标

北斗卫星坐标计算实战:Python解析RINEX 3.04星历全流程 当我们需要获取北斗卫星的精确位置时,广播星历文件是最直接的数据来源。这份看似晦涩的文本文件,实际上包含了计算卫星位置所需的所有轨道参数。本文将带你从零开始,完整实现…...

解决grunt-webfont常见问题:跨浏览器兼容与Firefox字体加载故障排除指南

解决grunt-webfont常见问题:跨浏览器兼容与Firefox字体加载故障排除指南 【免费下载链接】grunt-webfont SVG to webfont converter for Grunt 项目地址: https://gitcode.com/gh_mirrors/gr/grunt-webfont grunt-webfont 是一个强大的SVG转网页字体工具&…...

终极Go性能优化工具gcvis:实时可视化GC跟踪数据完整指南

终极Go性能优化工具gcvis:实时可视化GC跟踪数据完整指南 【免费下载链接】gcvis Visualise Go program GC trace data in real time 项目地址: https://gitcode.com/gh_mirrors/gc/gcvis gcvis是一款专为Go语言开发者设计的实时垃圾回收可视化工具&#xff0…...

深度解析:ctfileGet如何实现城通网盘直链解析的3大技术突破

深度解析:ctfileGet如何实现城通网盘直链解析的3大技术突破 【免费下载链接】ctfileGet 获取城通网盘一次性直连地址 项目地址: https://gitcode.com/gh_mirrors/ct/ctfileGet ctfileGet是一款专为城通网盘设计的开源直链解析工具,通过创新的技术…...

3分钟从视频中提取PPT:告别手动截图的全自动方案

3分钟从视频中提取PPT:告别手动截图的全自动方案 【免费下载链接】extract-video-ppt extract the ppt in the video 项目地址: https://gitcode.com/gh_mirrors/ex/extract-video-ppt 你是否曾为从会议录像、在线课程或培训视频中提取PPT页面而烦恼&#xf…...

Gazebo Sim物理引擎对比:Bullet、ODE与DART性能优化指南

Gazebo Sim物理引擎对比:Bullet、ODE与DART性能优化指南 【免费下载链接】gz-sim Open source robotics simulator. The latest version of Gazebo. 项目地址: https://gitcode.com/gh_mirrors/gz/gz-sim Gazebo Sim作为开源机器人仿真的终极工具&#xff0c…...

终极指南:使用SMUDebugTool深度掌控AMD Ryzen系统底层参数

终极指南:使用SMUDebugTool深度掌控AMD Ryzen系统底层参数 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: https:…...

Messenger端到端加密机制(end-to-end encryption)(Google drive存储解密密钥,加密聊天记录还是存储在Meta服务器上)聊天加密

Messenger有个save key in google drive选项,这是什么,是指把聊天记录存于google drive吗?还是只存一个key?只存一个key有啥用啊? 文章目录解释为什么只存 key 就够了?如果没有这个 key 会怎样?…...

2026年实用降AI率平台:亲测AI率从90%降至4%的省心方案

一、前言:2026年毕业必过AIGC检测门槛 2026年国内高校对学术论文的AIGC疑似度审核全面收紧,绝大多数院校都发布了明确的AIGC检测数值要求:985、211院校规定本科论文AI率需低于20%,硕士论文AI率不得高于15%,普通高校也普…...

从PointNet到Transformer:聊聊‘参数共享’这个省内存又提性能的炼丹技巧

从PointNet到Transformer:参数共享如何重塑深度学习效率 在深度学习模型日益复杂的今天,算法工程师们不断面临一个核心矛盾:如何在保持模型性能的同时,有效控制参数规模?当我们处理点云、序列或图结构这类不规则数据时…...

终极AMD Ryzen调试教程:3步掌握专业级硬件调优工具SMUDebugTool

终极AMD Ryzen调试教程:3步掌握专业级硬件调优工具SMUDebugTool 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: h…...

OneBlog权限系统实战:RBAC与Apache Shiro的完美结合

OneBlog权限系统实战:RBAC与Apache Shiro的完美结合 【免费下载链接】OneBlog :alien: OneBlog,一个简洁美观、功能强大并且自适应的Java博客 项目地址: https://gitcode.com/gh_mirrors/on/OneBlog OneBlog是一个简洁美观、功能强大并且自适应的…...

抖音下载神器终极指南:免费批量下载视频、直播回放和音乐原声

抖音下载神器终极指南:免费批量下载视频、直播回放和音乐原声 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallbac…...

成本优化秘籍:如何通过模型路由(Model Routing)降低 Agent 推理成本?

成本优化秘籍:如何通过模型路由(Model Routing)降低 Agent 推理成本? 1. 引入与连接:推理成本的"隐形黑洞"与破解之道 1.1 引人入胜的开场:一个真实的成本困境 让我们从一个真实故事开始。今年早些时候,我与一家知名科技创业公司的CTO进行了一次深入交流。…...

pi.dev 域名获赠,一文了解 Pi Agent Harness 项目开发、贡献等全方面信息

pi.dev 域名由 exe.dev 慷慨捐赠新贡献者提交的新问题和拉取请求(PR)默认会自动关闭。维护者会每天审核自动关闭的问题,详情请参阅 CONTRIBUTING.md。Pi Agent Harness 单仓库这里是 pi agent harness 项目的主页,其中包含我们可自…...

5分钟学会使用Mermaid Live Editor:免费在线图表编辑器的完整指南

5分钟学会使用Mermaid Live Editor:免费在线图表编辑器的完整指南 【免费下载链接】mermaid-live-editor Edit, preview and share mermaid charts/diagrams. New implementation of the live editor. 项目地址: https://gitcode.com/GitHub_Trending/me/mermaid-…...

零代码实战:非技术人员如何用 Coze_Dify 搭建工作流 Agent

零代码实战:非技术人员如何用 Coze/Dify 搭建工作流 Agent 前言:写给所有“想让AI干活却怕写代码”的朋友 (特别说明:本文遵循每个章节>10000字的深度要求,将尽可能用最通俗的类比、最多元的案例、最细致的…...

机器学习算子零样本超分辨率为何失败?多分辨率训练方案解析

1. 项目概述与核心问题在科学计算和科学机器学习领域,我们常常面临一个根本性的挑战:如何用离散的数据和模型去理解和预测连续世界的物理现象。无论是模拟流体湍流、预测天气变化,还是设计新材料,其背后的物理规律通常由偏微分方程…...

科学机器学习工作流:融合物理与数据驱动的气候建模新范式

1. 项目概述:当气候科学遇见机器学习工作流 如果你和我一样,在气候科学或者更广泛的科学计算领域摸爬滚打多年,一定经历过这样的时刻:面对一个物理过程复杂、计算成本高昂的模型,既想引入数据驱动的新方法提升效率&…...

齐物论智慧:为什么“不知“才是真知?

齐物论智慧:为什么"不知"才是真知? 副标题: 从王倪三问到道枢境界,庄子如何破除认知局限 痛点:为什么我们总是"自以为知"? 王倪三问(《庄子齐物论》): 齧缺问王倪:“你知道万物共同的标准吗?” 王倪答:“吾恶乎知之”(我怎么知道呢?) 齧缺…...

基于可解释机器学习的心电图预测胸片异常:技术原理与临床实践

1. 项目概述:当心电图“看见”胸片在急诊室或者基层医疗点,一个呼吸急促、胸痛的患者被送来,临床医生面临的首要决策往往是:是否需要立刻安排胸部X光检查?胸片是评估心肺和胸腔状况的基石,但它需要设备、技…...

如何5分钟搞定全网资源下载:res-downloader智能嗅探实战指南

如何5分钟搞定全网资源下载:res-downloader智能嗅探实战指南 【免费下载链接】res-downloader 视频号、小程序、抖音、快手、小红书、直播流、m3u8、酷狗、QQ音乐等常见网络资源下载! 项目地址: https://gitcode.com/GitHub_Trending/re/res-downloader 还在…...

技术方案:基于Spring Boot的智能茅台预约系统架构解析

技术方案:基于Spring Boot的智能茅台预约系统架构解析 【免费下载链接】campus-imaotai i茅台app自动预约,每日自动预约,支持docker一键部署(本项目不提供成品,使用的是已淘汰的算法) 项目地址: https://…...

Qwen-Agent实战:5步构建本地化智能助手,告别云端API依赖

Qwen-Agent实战:5步构建本地化智能助手,告别云端API依赖 【免费下载链接】Qwen-Agent Agent framework and applications built upon Qwen>3.0, featuring Function Calling, MCP, Code Interpreter, RAG, Chrome extension, etc. 项目地址: https:…...

戴森球计划终极蓝图指南:3000+工厂设计快速提升建造效率

戴森球计划终极蓝图指南:3000工厂设计快速提升建造效率 【免费下载链接】FactoryBluePrints 游戏戴森球计划的**工厂**蓝图仓库 项目地址: https://gitcode.com/GitHub_Trending/fa/FactoryBluePrints 还在为《戴森球计划》中复杂的工厂布局而烦恼吗&#xf…...

Qwen2.5-14B-Instruct技术选型指南:企业级大语言模型架构评估与部署策略

Qwen2.5-14B-Instruct技术选型指南:企业级大语言模型架构评估与部署策略 【免费下载链接】Qwen2.5-14B-Instruct 项目地址: https://ai.gitcode.com/hf_mirrors/ai-gitcode/Qwen2.5-14B-Instruct 在人工智能技术快速发展的今天,Qwen2.5-14B-Inst…...

炉石传说HsMod插件:基于BepInEx的终极游戏体验增强工具

炉石传说HsMod插件:基于BepInEx的终极游戏体验增强工具 【免费下载链接】HsMod Hearthstone Modification Based on BepInEx 项目地址: https://gitcode.com/GitHub_Trending/hs/HsMod 炉石传说HsMod是一款基于BepInEx框架开发的开源增强插件,为玩…...