2011/08/28(日)PCからRS405CB/RS406CBを制御する
2011/08/28 13:08
いろんなパラメータがあって安全装置も入っているこの素敵サーボをJavaとPythonで制御するライブラリを書いたので,サーボの使い方と一緒に置いておきます.
配線
RS405CB/RS406CB取扱説明書より
数珠繋ぎは6つまでということに注意です.
サーボにIDを振る
このサーボはサーボ同士を繋げていって一本の配線で6つのサーボまでを制御することができます.そのためにはそれぞれのサーボにIDを付けてあげなければいけないので,その作業を行います.
まずはこちらのサンプルプログラムからVB版をダウンロードします.
ソフトを起動して,電池や安定化電源の電源を入れた後,以下の手順を実行します.
- RSC-U485のささっているポートを選ぶ(コントロールパネル>システム>デバイスマネージャで確認できる)
- 画像2のボタンを押す(自動で設定が読み込まれるはず)
- 適当なサーボIDを選択し,setボタンを押す
- 画像4のボタンを押し,書き込みが終了した旨のメッセージを待つ
設定やパラメータなどもここから弄れます.
プログラム
試したい盛りでgithubなんぞ使ってますが,いまひとつ操作に慣れてない感じですね.RSC_U485_Java
RSC_U485_Python
あらかじめ,Java版の場合はrxtxを,Python版の場合はpyserialをインストールして置いてください.
クラスの使い方はコードに入ってるドキュメントを見れば大体わかると信じてます.
Java版だとこういった感じで使用します.
public static void main(String[] args) { RSC_U485 servo = new RSC_U485("COM17", 115200); System.out.println("ID1のサーボのトルクをオン"); servo.torque(1, true); System.out.println("最高速度で100度の位置へ回転"); servo.move(1, 1000, 0); try { Thread.sleep(500);//しばし待つ } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println("現在角度:"+servo.getAngle(1)); System.out.println("1秒かけて0度の位置へ"); servo.move(1, 0, 100); try { Thread.sleep(1000);//しばし待つ } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println("現在角度:"+servo.getAngle(1)); }ちなみにJavaとPythonで書いたのはWindowsからもUbuntuからも制御したかったのが理由なのですが,
UbuntuでRSC-U485を認識させる
2012/1/13追記この記事のコメントで,以下のようにすることでUbuntuでもRSC-U485が認識することをまえださんから教えていただきました.
ありがとうございます!
Ubuntu 9.10 では RS-U485 を
# modprobe ftdi_sio vendor=0x1115 product=0x0008
で認識しました.
資料
説明書サンプルプログラム