仕事でRotrics DexArmを触る機会があったのでメモ。素人丸出しなところだらけですので、ご指摘頂けると嬉しいです m(_ _)m
まずは、MacにRotrics Studioをダウンロードして使おうとしたのですが、どうしてもUSB接続した本体を認識しません。VCPドライバが必要なのかも?と思ってインストールしてみましたが、これも有効化できず断念(私のMacBook Proの問題)。Linux版のStudioはまだ無さそうです。SDKもどうもまだ開発中のようで何も無い…。
付属のコントローラからは動かせるので、一応遊べるのですが、これではタダの高価なラジコン…。
ということで少し路線を変更して、シリアル通信でGCodeを流し込む作戦。今回、Linux機としてRaspberryPiを用意していました。付属のUSBコードを接続して、lsusb
コマンドで見てみると、デバイスが認識されています!
STMicroelectronics Virtual COM Port
- 参考: LinuxのUSB
Screenコマンドで、以下のように接続が可能です。
screen /dev/ttyACM0 115200
エコーバックがないので、ちょっと使いづらいです(設定方法がある??)。
まとめて動かすには、Pythonのserialモジュールが便利です。
#!/usr/bin/env python3
import serial, time
s = serial.Serial("/dev/ttyACM0",115200)
def w(gcode):
s.write(gcode.encode('utf-8')+b'\r\n')
while (not s.read()): pass
#main function
def main():
# アームを初期位置に
w("M1111")
time.sleep(1)
# 動作速度の設定(8000が最大??)
w("G0 F8000")
# アームを指定した座標まで動かす
w("G0 X150Y0Z100")
w('G0 X0Y300Z0')
w('G0 X0Y-300Z0')
w('G0 X150Y150Z0')
w('G0 X150Y-150Z0')
w('G0 X300Y0Z0')
w('G0 X200Y0Z50')
if __name__ == '__main__':
main()
(2020.09.08更新)gcodeを書き込んだ後、serial.readを挟むと安定して動くようになりました。
めっちゃ魅力的な製品なんですが、もう少しお手軽に制御できるライブラリなどが出てくると良いかな、と思いました。