32路舵机控制-基础指令:修訂版本之間的差異
第 39 行: | 第 39 行: | ||
<br><br> | <br><br> | ||
[http://www.yfrobot.com.cn/wiki/images/d/d8/Ssc-32.pdf '''英文PDF文档'''] | [http://www.yfrobot.com.cn/wiki/images/d/d8/Ssc-32.pdf '''英文PDF文档'''] | ||
− | |||
<br> | <br> | ||
2024年6月20日 (四) 16:49的最新修訂版本
舵機控制 -- 基礎指令
控制指令
單個舵機和舵機群運動命令
# <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>」指令,確定舵機位置後,才可以發送帶有速度和時間控制的指令,否則會發生不可意料的動作。
其中包含指令:Pulse Offset(脈衝偏移),Discrete Output(離散輸出),Byte Output(位元組輸出),Query Movement Status(查詢狀態),Query Pulse Width(查詢脈衝寬度),Read Digital Inputs(讀取數字輸入),Read Analog Inputs(讀取模擬輸入),Get Software Version(獲取版本)......
以上指令為不常用指令,文檔中有詳細解釋,需要了解自行查看文檔。
更多建議和問題歡迎反饋至 YFRobot論壇
購買方式:YFRobot 電子工作室