双葉電子のロボット用サーボモータRS304MDを動かしてみた。
双葉電子のロボット用サーボモータRS304MD-FFを入手。バルク版なので安かった。
TTLコマンド(シリアル)方式/PWM方式両方に使える。
普通のRCサーボモータと比べるとだいぶ小さい。
USBシリアル変換モジュールと接続して、Windows7 PCで動作確認した。
USBシリアル変換モジュールとRS304MDの接続はこんな感じ。
念のため、RS304MDの電源はUSBシリアル変換モジュールから取らずに別電源にしている。
私が使用したUSB-シリアル変換モジュールはこれだが、残念ながらもう販売終了している。同等品はあるらしい。
C#でシリアルコマンドを送信するテスト用ツールを作って、USBシリアル変換モジュール経由でサーボモータを動かしてみた。
こういう便利なツールもあるようだが、私の環境(Windows7 64bit)では動かなかった。
シリアルコマンドの詳細は、ここからをダウンロードできる“RS303MR/RS304MD取扱説明書”に載っている。
トルクONだとこんな感じ。簡単。
-----途中省略、要点のみ-----------------------------------------------------------------------
byte[] trqOn = { 0xFA, 0xAF, 0x01, 0x00, 0x24, 0x01, 0x01, 0x01, 0x24 };
serialPort1.Write(trqOn, 0, trqOn.Length);
---------------------------------------------------------------------------------------------
TTLシリアルコマンド方式のサーボだと、間にマイコンを挟まなくてもUSBシリアル変換モジュールだけでPCから動かせるから楽だ。
RS304MDの通信速度変更もうまくいった。
次は、Android端末にUSBシリアル変換モジュールをつないでこのサーボを動かしてみたい。
Android端末(ICONIA TAB A500)にUSB-シリアル変換モジュールをつないで、RS304MDを動かしてみた。
ここのAndroid3.1用FTDIドライバを使わせていただいた。
ただし、このドライバはまだ9600bpsしか使えないので、事前にRS304MDの通信速度を変更しておく必要がある。
(最新版は9600-230400bpsに対応) 2011.11.25追記
トルクONだとこんな感じ。
----途中省略、要点のみ----------------------------------------------------------------------
byte[] trqOn = {(byte)0xFA, (byte)(byte)0xAF,(byte)0x01,(byte)0x00,(byte)0x24,(byte)0x01,(byte)0x01,(byte)0x01,(byte)0x24 };
mSerial.write(trqOn,trqOn.length);
------------------------------------------------------------------------------------------
以前Processingで作ったサーボ制御用のUIをRS304MD用に改造してみた。
ProcessingでSerialを使うとなぜか起動が異常に遅くてイライラ。(環境はWindows7 64bit)
Runしてから画面が出るまで1~2分もかかる。
原因判明、controlP5とSerialを組み合わせるとこの現象が起きるようだ。
Windows7のXPモードを使えば正常に動くことも分かった。 (2011.12.09追記)
本当はAndroid版のUIもProcessingで作りたいのだが、controlP5がまだAndroidに対応していないので保留中。
しょうがないのでProcessingを使わずにAndroid版のUIを作ってみた。
動画はこちら。
―以上―
ここを参考にさせていただいた。
・Arduinoでロボゼロのサーボを動かしてみよう!(2) <- 型番は異なるが、ロボゼロのサーボはRS304MDと同等品らしい。