MARY-XB基板、XBeeシリーズ1、XBeeエクスプローラUSB、XBeeエクスプローラ5Vマイコン用 入手。
まず、X-CTUで設定をしてXBeeの単体動作確認。OK。
XBeeの設定はここを参考にさせていただいた。
いよいよ、XBee + フタバのシリアルコマンドサーボRS304MDで実験。
サーボ側には、XBeeエクスプローラ5Vマイコン用を使用。
ここの回路を参考にさせていただいた。
PC側(Win7)にはXBeeエクスプローラUSBを使用。
C#で作った動作確認プログラムでRS304MDの制御コマンドを送って動作確認した。
RS304MDのコマンド通信に関してはここを参考にさせていただいた。
【C#プログラム 要点のみ】
//---------途中省略---------------------------------------------------------------
//トルクON
byte[] trqOn = { 0xFA, 0xAF, 0x01, 0x00, 0x24, 0x01, 0x01, 0x01, 0x24 };
//時計回り144度
byte[] cw144 = {0xFA, 0xAF, 0x01, 0x00, 0x1E, 0x02, 0x01, 0xA0, 0x05, 0xB9};
//反時計回り144度
byte[] ccw144 = { 0xFA, 0xAF, 0x01, 0x00, 0x1E, 0x02, 0x01, 0x60, 0xFA, 0x86 };
//---------途中省略---------------------------------------------------------------
private void send_Cmd(int id, byte[] cmd)
{
cmd[2] = (byte)id;
byte sum = cmd[2];
for (int i = 3; i < cmd.Length - 1; i++)
{
sum ^= cmd[i];
}
cmd[cmd.Length - 1] = sum;
serialPort1.Write(cmd, 0, cmd.Length);
}
private void button1_Click(object sender, EventArgs e)
{
if (serialPort1.IsOpen) send_Cmd(1, trqOn);
}
private void button2_Click(object sender, EventArgs e)
{
if (serialPort1.IsOpen) send_Cmd(1, cw144);
}
private void button3_Click(object sender, EventArgs e)
{
if (serialPort1.IsOpen) send_Cmd(1, ccw144);
}
//---------以下省略---------------------------------------------------------------
XBeeエクスプローラUSBだとなぜか頻繁にXBeeの接続が切れるので、MARY-XB基板に変更。
この組み合わせだと接続が安定した。
動画はこちら。
XBee + 双葉のシリアルコマンドサーボRS304MDの実験をしてみた。
次は、同じくシリアルコマンド方式のDynamixel AX-12Aを動かしてみた。
回路はRS304MDのときと同じものを使用。
AX-12Aの通信プロトコルはここを参考にさせていただいた。
動画はこちら。
XBee + シリアルコマンドサーボ AX-12Aの実験をしてみた。
一通り動作確認ができたので、小型無線LANカメラとXBee+シリアルコマンドサーボで物体追跡をやってみた。
無線LANカメラはPLANEXのCS-W07G-CYを使用。
サーボモータはシリアルコマンド方式のDynamixel AX-12Aを使用。
画像はPC上のProcessingで処理。PCとサーボモータ間はXBee接続。
無線LANカメラ->無線LAN->PC(Processingで画像処理)->XBee(サーボコマンド)->AX-12Aサーボ、という流れ。
―以上―