如果想要控制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
這邊看對照表
前面兩個為馬達的角度
後面兩個為馬達的速度
再來看到詳細的說明
極限設定為 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)
0 留言:
張貼留言