32路舵機控制-基礎指令

從 YFRobotwiki
在2024年6月20日 (四) 16:49由Allblue對話 | 貢獻所做的修訂版本

(差異) ←上個修訂 | 最新修訂 (差異) | 下一修訂→ (差異)
跳到: 導覽搜尋

舵機控制 -- 基礎指令

控制指令

單個舵機和舵機群運動命令

# <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 電子工作室