« 「週刊 ロボゼロ」 第7号(1)上腕部と前腕部の組み立て | トップページ | iPad2が届きましたo(*^▽^*)o »

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

このシリーズも今回で10回目となりましたhappy01paper

今回はロングパケットを使って2つのサーボを同時に動かしてみたいと思いますhappy01paper

oneサーボの設定
今回のサンプルスケッチ(下記)では、2つのサーボを使います。サーボのIDはデフォルトではどれも「1」なので、2つのサーボのIDが重ならない様にあらかじめ変更しておく必要があります。

サーボのIDの変更方法は、前回「Arduinoでロボゼロのサーボを動かしてみよう!(9) 」でやってみましたので、それを参考にやってみて下さい。

twoArduinoとの配線
今回のサンプルスケッチ(下記)ではデジタル1番ポートを使うので、普通に2つサーボが繋がる様にブレッドボードを使って繋げるか(左)、先日作ったArduinoのシールドを使ってつなげる(右)で配線します
20110411004412 20110411004416

threeロングパケット

基本形はショートパケットと同じで、

Header, ID, Flag, Address, Length, Count, Data, CheckSumで、

  • IDはゼロ
  • Flagもゼロ
  • LengthはID+データのバイト数
  • Countは、サーボ数
  • Data部分はID+データID+データID+データ、、と表記する

という形になります。下記のサンプルスケッチには、対応する上記の色を付けてみましたpaper

fourサンプルスケッチ
このサンプルスケッチでは、通信速度38400bpsでID=13に設定した2つのサーボを用いています。通信速度が異なる場合や、ID番号が異なる場合は変更が必要です。

//-----------------------------------
// ロングパケットで複数個のサーボを動かす
// サーボが動けば、変更成功!
//
// シグナル=デジタルポート1番
// ID=1,3
// 2011/4/10
// Copyright 2011 Micono Utilities
//-----------------------------------


// Torque ON
byte trqOn[] = {0xFA, 0xAF, 0x00, 0x00, 0x24, 0x02, 0x02, 0x01, 0x01, 0x03, 0x01, 0x26};//12
// Rotate Random
byte rrs[] = {0xFA, 0xAF, 0x00, 0x00, 0x1E, 0x03, 0x02, 0x01, 0x5A, 0x00, 0x03, 0xA6, 0xFF, 0x1E};//14

void setup() {
 
Serial.begin(38400);  // 通信速度を設定
 
delay(500);
 
Serial.write(trqOn,12);
}


void loop() {
 
//ID1のサーボ
 
int deg=random(-1400,1400);//-140度から140度のランダム
  rrs[8]=
lowByte(deg);//Little Endian
  rrs[9]=
highByte(deg);//Little Endian
 
//ID3のサーボ
  deg=random(-1400,1400);
//-140度から140度のランダム
  rrs[11]=
lowByte(deg);//Little Endian
  rrs[12]=
highByte(deg);//Little Endian
  calcCheckSum(rrs,14);
 
Serial.write(rrs,14);
 
delay(2000);//待つ
}


void calcCheckSum(byte pkt[], byte n) {    // チェックサムの設定
 
int sum = 0;
 
for(int i=2; i<n-1; i++){
    sum = sum ^ pkt[i];
  }
  pkt[n-1]=sum;
}

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

さて、今回は以上です。また次回をお楽しみにhappy01paper

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

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

|

« 「週刊 ロボゼロ」 第7号(1)上腕部と前腕部の組み立て | トップページ | iPad2が届きましたo(*^▽^*)o »

Arduino / Processing」カテゴリの記事

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

コメント

コメントを書く



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




トラックバック

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

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

« 「週刊 ロボゼロ」 第7号(1)上腕部と前腕部の組み立て | トップページ | iPad2が届きましたo(*^▽^*)o »