RoBoard魔人的機器人日誌

2011/10/1

[教學] Bioloid AX-12馬達如何傳輸

如果想要控制Bioloid AX-12馬達

首先必須先了解Bioloid AX-12馬達是如何傳輸的

可以看AX-12的datasheet比較容易理解




正如上圖

首先會先傳兩個0XFF告訴馬達要開始了

然後第三個指令封包ID 是要確認傳送給此ID的馬達

接著為LENGTH 是告訴馬達開始接收連續幾個封包

INSTRUCTION是決定要讀出,寫入等

接下來的幾個是下指令的部分

首先是指令的Address 可以把他想成程式中的指標

然後接下來的是將Address指到的後面N個改為給的值

最後的CHECK SUM正如datasheet寫的 將前面所有的值相加做not











舉個例子應該會比較好懂些
假如我傳入這串指令
0xff, 0xff, 0x01, 0x07, 0x03, 0x1e, 0x00, 0x02, 0x00, 0x02, 0x00

他的意思是對ID:1的馬達座寫入
寫入的Address為0x1e 後面有4個值0x00, 0x02, 0x00, 0x02
這邊看對照表





前面兩個為馬達的角度

後面兩個為馬達的速度

再來看到詳細的說明


這邊提到0x1e與0x1f為馬達角度 最高0~300度
極限設定為 0x000~0x3ff

這邊提醒下 前面提到0x1e為L 低電位 0x1f為H 高電位
所以連續兩個封包0x00, 0x02 在機器中是讀為0x200的角度
所以轉到會150度的地方



然後這邊是說 馬達的轉速為0x000~0x3ff

和前面一樣0x20為L 低電位 0x21為H 高電位
所以連續兩個封包0x00, 0x02 在機器中是讀為0x200的速度

所以馬達會用最中等的速度轉動




最後一個CHECK SUM我沒有計算出來
不過算式是很簡單的
~(0x01 + 0x07 + 0x03 + 0x1e + 0x00 + 0x02 + 0x00 + 0x02)
Share:

0 留言:

張貼留言

技術提供:Blogger.

追蹤者