【开发教程5】疯壳·人形街舞机器人-舵机的基本控制

本文介绍了如何使用IAP15W4K61S4单片机控制舵机,详细讲解了舵机的基本原理、硬件设计和软件设计,包括PWM脉宽调制控制和定时器T0的使用,最终实现人形机器人摇头动作。

多自由度人形双足舞蹈机器人
——疯壳·机器人开发系列
舵机的基本控制


1 舵机简介

本章,我们将使用 IAP15W4K61S4 单片机控制舵机的转动。


图 1
一般来说,舵机由舵盘、减速齿轮组、位置反馈电位计、直流电机、控制电路组成。
它的输入线一共 3 条,电源线、地线和控制线。

 

舵机是通过 PWM 脉宽调节角度,周期为 20ms,占空比 0.5ms 到 2.5ms 的脉宽电平对应舵机 0 度到 180 度角度范围。因此,我们就可以通过 IAP15W4K61S4 单片机产生不同占空比的方波,来控制舵机轴的不同位置,从而控制舵机的转动。

2 硬件设计
由于单片机在实际中的输出电流很小,本次就使用了 74HC244 来增加输出电流。另外,机器人的头部舵机的信号线是通过 P27 与 74HC244 相连间接控制的。


图 2
3软件设计

 

本次我们是通过定时器 T0 控制 IO 口输出高低电平的时间来输出 PWM。首先,我们介绍一下 IO 口以及定时器相关寄存器。
(1)数据寄存器 Px

Px 对应的输入输出数据,以 P0 为例,如下图所示:


图 3
(2)模式寄存器

 

每个引脚对应的两个模式寄存器

### TonyBot机器人舞蹈动作包下载与编程 TonyBot作为一款人形街舞机器人,其核心功能在于通过预设的动作包实现复杂的舞蹈动作。为了实现这一目标,通常需要完成以下几个方面的操作: #### 1. 动作包的设计原理 动作包本质上是一系列舵机控制指令的集合,这些指令定义了机器人的关节角度随时间的变化规律。在实际应用中,可以通过编写自定义代码或者使用现成的动作库来驱动机器人执行特定动作[^1]。 #### 2. 使用robotCtrl进行在线调试 对于IAP15W4K61S5单片机而言,在线调试模式允许开发者通过上位机软件`robotCtrl`发送固定格式的字符串命令到单片机。这使得开发人员可以实时调整舵机的角度参数并观察效果。因此,如果要创建新的舞蹈动作,可以从修改现有串口协议入手,确保每条消息都能被正确解析并映射至相应的硬件行为。 #### 3. 自定义编译动作序列 假设已经掌握了基本的通讯机制,则下一步便是设计具体的运动轨迹。以下是Python伪代码示例用于说明如何构建简单的周期性摆臂动作: ```python def tony_dance(): arm_angle = 0 while True: # 增加手臂位置直到最大偏转角 if arm_angle < MAX_ARM_ANGLE: send_command(f"SET ARM {arm_angle}") arm_angle += STEP_SIZE elif arm_angle >= MAX_ARM_ANGLE: # 减少手臂位置回到初始状态 send_command(f"RESET ARM {arm_angle}") arm_angle -= STEP_SIZE delay(INTERVAL_TIME) ``` 上述片段展示了基础逻辑框架;然而实际项目可能涉及更多细节考量比如同步多组肢体协调运作等问题。 #### 4. 寻找开源资源 目前互联网上有不少爱好者分享了自己的作品供他人学习参考。例如GitHub平台上存在多个关于仿生学移动装置的研究成果以及配套源码可供借鉴。搜索关键词如“tonybot dance routine”可能会发现一些有价值的链接地址指向详细的文档描述或者是视频演示文件等等。 #### 注意事项 - 确认所使用的微控制器型号及其支持的功能集。 - 测试阶段务必小心谨慎以免损坏设备组件。 - 如果计划长期保存某些特别喜欢的姿态组合考虑将其固化进固件内部而非仅仅依赖外部配置加载方式。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值