« あれこれい〜っぱいで幸せ〜 | トップページ | 「週刊 ロボゼロ」 第4号(1)サーボモーターを胸の中に取り付け »

Arduinoでロボゼロのサーボを動かしてみよう!(4)

今回のArduinoでロボゼロのサーボを動かしてみよう!第4回は「サーボの通信速度を変えてみたい」と思いますhappy01paper

oneArduinoとRS306MDの配線
配線は第2回と同じですpaper

20110308144012_2

two通信速度変更に必要なパケット
変更する速度は38400bpsとして話を進めます。

  1. 通信速度を38400bpsに変更する
  2. ROMに変更を書き込む
  3. サーボを再起動する

の3つです。
第3回で紹介したアプリを使うと簡単にそれらのパケットがわかります。
20110310020106

threeスケッチ
通信速度を変更、ROM書込み、再起動の3つのステップを行いますが、注意事項は、ROMへの書込みには時間がかかるため、1秒以上待ってから再起動を行う必要があります。今回は1.5秒にしてあります。

あと、一連の作業の終了したことがわかるように、LEDがピカピカするようにしてあります。

//-------------------------------------

// baudrate 38400
byte baud38400[] = {0xFA, 0xAF, 0x01, 0x00, 0x06, 0x01, 0x01, 0x04, 0x03};
// ROM Write

byte RomWrite[] = {0xFA, 0xAF, 0x01, 0x40, 0xFF, 0x00, 0x00, 0xBE};
// Servo Restart

byte ServoreStart[] = {0xFA, 0xAF, 0x01, 0x20, 0xFF, 0x00, 0x00, 0xDE};

void setup() {
 
pinMode(13,OUTPUT);
 
Serial.begin(115200); //115200bpsでポートを開く
 
delay(500); //0.5秒待つ
 
Serial.write(baud38400,9);//38400bpsに変更
 
Serial.write(RomWrite,8);//ROMに書込む
 
delay(1500);//重要!ROM書込み1秒以上待つ
 
Serial.write(ServoreStart,8);//再起動
}

void loop() {
delay(1000); //1秒待つ
  for(int i=0; i<5; i++) {  //完了の合図(ピカピカ)
   
digitalWrite(13,HIGH);//LED ON
   delay(200); //0.2秒
   
digitalWrite(13,LOW);//LED OFF
   
delay(200); //0.2秒
 }
}

//-------------------------------------

four通信速度38400bpsで機能するか調べる
第2回のスケッチのSerial.begin(115200);をSerial.begin(38400);に変更したファイルを作り、Arduinoへ転送。ちゃんと回転するか確認して下さい。

さて、ちゃんと回転してくれたでしょうかsign02happy01paper

five通信速度を戻す
38400bpsに変更した通信速度を、元の115200bpsに変更したい場合は、新規スケッチを作成し、上記スケッチをコピペして、Serial.begin(38400);からSerial.begin(115200);に変更したスケッチを動かせば元に戻せますhappy01paper

sixTips
通信速度変更後のROM書込みと再起動は、2つのステップに分けました。マニュアルには2つに分けろと書いてあるのでメーカーが推奨していない(保証外となるかも)方法ですが、2つのステップのフラグを立てて、1回のステップでもできてしまうようです。

//romwriterestart ロム書き込み+再起動
//推奨されないやり方なので、自己責任で行って下さい。

byte romwriterestart[] = {0xFA, 0xAF, 0x01, 0x60, 0xFF, 0x00, 0x00, 0x9E};

各自の責任において行って下さい。

----------------

----------------
にほんブログ村 科学ブログ ロボットへ
にほんブログ村

|

« あれこれい〜っぱいで幸せ〜 | トップページ | 「週刊 ロボゼロ」 第4号(1)サーボモーターを胸の中に取り付け »

Arduino / Processing」カテゴリの記事

週刊 ロボゼロ」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/221673/51079756

この記事へのトラックバック一覧です: Arduinoでロボゼロのサーボを動かしてみよう!(4):

« あれこれい〜っぱいで幸せ〜 | トップページ | 「週刊 ロボゼロ」 第4号(1)サーボモーターを胸の中に取り付け »