news 2026/9/28 8:01:11

【CanMV K210】电机控制 角度舵机 PWM 开合扫描与门锁拨片

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【CanMV K210】电机控制 角度舵机 PWM 开合扫描与门锁拨片

在智能硬件项目中,舵机经常承担“把程序动作变成机械动作”的角色。LED 能展示状态,蜂鸣器能发出提示,而舵机可以让设备产生真实的转动效果。智能垃圾桶自动开盖、门锁拨片切换、摄像头云台转向、小型机械臂摆动,这些看起来像产品功能的动作,本质上都离不开 PWM 信号对角度舵机的控制。

本实验使用 CanMV K210 / MaixPy 环境控制一颗角度舵机。程序将舵机信号线连接到 IO6,通过Timer和PWM输出 50Hz 控制信号,再把舵机角度抽象成-90° ~ 90°的范围。代码中不仅包含固定角度转动和平滑扫描,还封装了“打开”“关闭”“回中”“释放 PWM”等动作方法,并通过智能垃圾桶和门锁拨片两个场景演示舵机在真实项目中的应用思路。

学习目标说明
理解舵机控制方式认识角度舵机如何通过 PWM 信号转动到指定位置
掌握 PWM 输出使用Timer和PWM在 IO6 输出 50Hz 控制信号
理解角度映射将-90° ~ 90°的角度范围转换成对应 PWM 占空比
学会动作封装把打开、关闭、回中、平滑转动等动作封装成类方法
建立执行器思维将舵机控制扩展到垃圾桶开盖、门锁拨片、云台转向等项目场景

这个实验的重点不是让舵机简单转一下,而是理解“角度参数、PWM 占空比、机械动作”之间的对应关系。屏幕中的角度数值会变成舵机摇臂的真实位置,函数调用会变成开合、扫描、锁定、解锁等动作,这正是智能硬件执行器控制的基础。

文章目录

  • 理论基础
  • 硬件设施
  • 软件代码
  • 扩展应用
  • 总结

理论基础

角度舵机和普通直流电机的控制方式不同。普通直流电机更关注转动方向和速度,通电后会持续旋转;角度舵机更关注目标位置,程序通过 PWM 信号告诉舵机转到某个角度,并保持在对应位置。这个特性让舵机非常适合做开盖、拨片、转向、限位和小型机械结构控制。

PWM 可以理解成一种周期性高低电平信号。当前实验中,程序设置SERVO_FREQ = 50,表示 PWM 频率为 50Hz,对应周期约为 20ms。舵机并不是根据普通 GPIO 的 0 或 1 判断角度,而是根据每个周期内高电平持续时间的比例来调整转轴位置。代码中使用MIN_DUTY = 2.5和MAX_DUTY = 12.5,把占空比范围映射到-90° ~ 90°的教学角度范围。

本实验中的Servo类把底层 PWM 输出封装成更容易理解的角度控制方法。程序调用set_angle(45)时,并不是直接把数字 45 发送给舵机,而是先通过angle_to_duty()把 45° 换算成对应占空比,再由 PWM 对象在 IO6 输出控制信号。舵机内部根据 PWM 信号调整转轴位置,最终表现为真实机械转动。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/28 8:01:03

【CanMV K210】通信扩展 DS1302 实时时钟读取与 RAM 通信

在智能硬件项目中,时间并不是一个装饰字段。数据采集设备需要记录采样时间,门禁系统需要保存刷卡时间,环境监测设备需要形成日志,离线运行的控制器也需要在没有网络的情况下知道当前年月日和时分秒。对于嵌入式开发而言,实时时钟模块的价值就在于让设备具备独立计时能力,…

作者头像 李华
网站建设 2026/9/28 7:59:45

C++分布式计算库选型与实践:从原理到性能调优

先说结论:如果你打算在计算密集型、延迟敏感或者资源受限的环境里搞分布式计算,直接用C写核心链路,绕开C反而要付出更大的代价。网上讨论"分布式计算选什么语言"时,最常见的结论是"用Python/Java快速开发&#xff…

作者头像 李华
网站建设 2026/9/28 7:58:59

C++符号混淆实战:从名称修饰到二进制信息隐藏

我最早意识到 C 符号是个问题,是在一次处理线上崩溃日志的时候。游戏客户端上线后玩家反馈偶发闪退,拉回来的 callstack 里清清楚楚写着GameServer::PackageHandler::ProcessPacket(std::string const&),往下是整套调用链,哪个…

作者头像 李华
网站建设 2026/9/28 7:57:52

路演报名投票小程序系统搭建:并发防刷与榜单实时统计实战

很多人对“路演系统”的第一反应是:这不就是个报名工具吗?可真上手做的时候才发现,报名只是开胃菜,投票模块才是最容易让人翻车的重头戏。我自己带过的项目里,凡是“演出报名投票”类的需求,最后十有八九都…

作者头像 李华
网站建设 2026/9/28 7:57:18

Spring容器启动流程:BeanDefinition、实例化与循环依赖深度拆解

做Java后端的朋友,不管你是刚写业务代码的初级工程师,还是已经独立带模块的资深开发,Spring容器启动流程都是绕不开的关卡。CRUD写得再多,注解记得再熟,真遇到“Bean怎么多了一个”“为什么启动就报循环依赖”“Spring…

作者头像 李华