32路舵机控制-基础指令

来自YFRobotwiki
2019年3月6日 (三) 16:53Allblue讨论 | 贡献的版本

跳转至: 导航搜索

舵机控制 -- 基础指令

控制指令

单个舵机和舵机群运动命令

# <ch> P <pw> S <spd>... # <ch> P <pw> S <spd> T <time><cr>

<ch> :舵机通道号,0 – 31。

<pw> :脉冲宽度,单位微秒(us),500 – 2500。

<spd> :单通道的运动速度,单位us/秒。(可选)

<cr> :结束回车符,ASCII码中的13。(必选)

<esc> :取消当前的命令,ASCI码中的27。


单个舵机运动示例:

  #5 P1600 S750 <cr>

通道5将以750us/秒的速度移动到1600us位置。为了更好的理解速度这个概念,举个例子,当舵机从-90度到0度时,脉冲宽度为1ms时间即1000us,也就是说1000us脉冲宽度舵机就会转90度,那么100us/秒的速度就表示舵机花10秒的时间就可以转到90度,2000us/秒的速度就表示舵机花0.5秒的时间就可以转到90度。公式:运行时间(秒)=脉冲宽度(us)/速度(us/秒)。

  #5 P1600 T1000 <cr>

通道5将在1秒内从任何位置移动到1600us位置。 舵机群运动实例:

  #5 P1600 #10 P750 T2500 <cr>

通道5移动到1600us位置,通道10移动到750us的位置,2个都同时在2500us内完成,这个命令能协调多个舵机的速度,即使2个舵机的初始位置相差很远,都可以使他们同时开始转动并同时停止到指定位置上。这条命令非常适合人形双足机器人多舵机同时运动,可自动协调所有舵机的速度,完成复杂步态的同步。 你可以使用该命令进行速度和时间组合,组合必须根据下面的规则: 1.所有通道的开始和结束将同时完成。 2.如果某个通道指定了速度,那么它将不会快于指定速度(可以根据需要调节移动速度)。 3.如果某个通道指定了时间,那么它将在指定的时间移动到指定位置(可根据需要调节移动时间)。

  #5 P1600 #17 P750 S500 #2 P2250 T2000 <cr>

通道5移动到1600us位置,通道17移动到750us的位置,通道2机移动到2250us的位置,整个动作需要2000us,但是通道17的舵机不会按500us/秒的速度运行,这个需要取决于通道17的初始位置。假设通道17的初始位置在2000us,它被指定移动1250us,超过500us/秒的限制,那么他将至少花2500us完成动作,再假设通道17初始位置在1000us,只需要它移动250us,那么在500us/秒以内,那么他将花2000us完成动作。 注意:第一条定位命令不能包含速度和时间的,格式为“# <ch> P <pw>”,例如先发送一条“#0 P1500 <cr>”指令,确定舵机位置后,才可以发送带有速度和时间控制的指令,否则会发生不可意料的动作。



英文PDF文档
其中包含指令:Pulse Offset(脉冲偏移),Discrete Output(离散输出),Byte Output(字节输出),Query Movement Status(查询状态),Query Pulse Width(查询脉冲宽度),Read Digital Inputs(读取数字输入),Read Analog Inputs(读取模拟输入),Get Software Version(获取版本)...... 以上指令为不常用指令,文档中有详细解释,需要了解自行查看文档。




返回首页

更多建议和问题欢迎反馈至 YFRobot论坛

购买方式:YFRobot 电子工作室