Re: The history of "M&Y"

Team "M&Y" and "花鳥風月"
the soliloquy of the father
毎日更新!

Arduinoねた その66 もういちどR1350N

2015-02-18 | Arduinoねた

以前に購入した R1350N ですが・・・

サンプルプログラムが動作することを確認して、それ以降放置していました。

 

先日、「ハイテク、ロ-テク」の記事を書いた後に・・・

そういえば、M&Yも高価なジャイロセンサーを使っていたなぁ

というのを思い出して、その技術を安価に実現できないか研究をしてみようと考えました。

 

まず・・・M&Yのロボットに搭載していたジャイロセンサーは CruizCore® XG1300L というものです。発売当時は、結構話題になりました。日本でも普通に買えていたのですが・・・いつのまにか簡単には購入できなくなったようです。正確には購入できなくなったわけではなく「簡単に購入ができない」です。

XG1300L は MICROINFINITY という会社(韓国の会社!?)の製品ですが、日本支社をクローズしてしまったのが原因のようです。

で、今、普通に買うとしたら、本社(韓国!?)から個人輸入するしかなさそうです。

CruizCore® XG1300L

ここで購入すると、価格85USD+送料25USDで合計110USDなのですが・・・

今は円安なので、結構な値段ですよね。(以前は 9,000円位で購入したような記憶が・・・)

 

で・・・その XG1300L の中身と思われるモジュールも売られています。

それが、R1350Nです。

CruizCore® R1350N

X1300Lに比べて、こちらの方が安いと思うのですが・・・価格は 170USD もします。

 

しかし・・・何故か・・・この R1350N は、スイッチサイエンスで 3,394円 で販売されています。

この価格のからくりが、良く分かりません。

でも、とにかく、私たちはスイッチサイエンスで購入しました。

 

ここまでで、長い前置きが終了です。(苦笑)

 

これまで、スイッチサイエンスのHPにあった(リンクされていた)記事のサンプルプログラムを動作させて「動いた、動いた」と満足していたのですが・・・そろそろ、ちゃんと動作を理解しようと重い腰を上げました。

 

R1350NとArduinoはシリアル通信で接続します。

接続は簡単で、R1350Nには、VCCとGND、そして TX を Arduino の RX0 に接続します。

つまり、電源とGND以外には、配線は1本だけです。

ただし、この1本が曲者で、この線(RX0に接続した線)を外さないと、Arduinoへの書き込みができません。

ですから、Arduinoへの書き込みの度に、RX0への配線を外します。(面倒くさい・・・です)

 

R1350Nは 115200bps のシリアル通信をします。

一組のデータは15バイトです。

1-2: 信号の始まり 0x00AA

3: インデックス

4-5: 角度(0.01度単位で100倍した値)

6-7: 角速度(0.01度/秒単位で100倍した値)

8-9: x軸加速度(1mg単位)

10-11: y軸加速度(1mg単位)

12-13: z軸加速度(1mg単位)

14: 予約

15: チェックサム(3-14バイトのデータの合計の下位バイト)

となります。

 

サンプルプログラムを解析(するほどでもないけど)した結果・・・

・シリアル通信で、データの受信を待ち

・最初の2バイトが 0xaa,0x00 であることを確認して

・残りの13バイトを取り込む

・最後にチェックサムを確認して取り込んだ13バイトが正しい場合に、LCDに値を表示する

単純に書くとこのような動きですね。

 

これを、自分なりに整理して簡略化したのが、以下のプログラムです。

 

#include < LiquidCrystal.h >
byte buffer[15];
LiquidCrystal lcd(6,7,8,9,10,11,12);

void setup() {
  Serial.begin(115200);
  lcd.begin(16, 2);
}

void loop() {
  byte data;
  int sum,i;
  static int state = 0;
  static int index = 0;
  while(Serial.available() == 0);
  data = Serial.read();
  if(state == 0) {
    if(data == 0xaa)
      state++;
  }
  else if(state == 1) {
    if (data == 0x00)
      state++;
    else {
      state = 0;
      index = 0;
    } 
  }
  else {
    buffer[index++] = data;
    if (index >= 13) {
      sum = 0;
      for (i = 0; i < 11; i++)
        sum += buffer[i];
      if ((sum & 0xff) == buffer[12]) {
        lcd.clear();
        lcd.setCursor(0,0);
        lcd.print("A:");
        lcd.print((buffer[2] << 8) | buffer[1],DEC);
        delay(100);
        Serial.flush();
      }
      state = 0;
      index = 0;
    }
  }
}

 

これで、角度(×100の値)がLCDに表示されます。

ただし、上に書いたように、Arduinoへの書き込みの時には RX0 の配線を外して、書き込みが終わったら RX0 を接続します。その後に R1350N の電源を入れなおすと、やっと正しく動作します。

 

で、実際に動作しているところを見てみると・・・このセンサーは優秀ですよね。

普通のジャイロセンサーなら、見ていると少しづつ値がズレていきます。(ドリフトと言うのでしたっけ!?)

でも、R1350Nは、時間が経過しても、ほとんどズレません。

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Rescue Line 2015 2.4 Inspection

2015-02-18 | Rescue Rules 2015

次のお題は「点検」です。

 

2.4 Inspection

2.4.1 The robots will be examined by a panel of referees before the start of the tournament and at other times during the competition to ensure that they meet the constraints described.

2.4.2 It is highly unlikely that a team will be able to legally use a robot identical to another team’s robot from previous years, or use a robot that is identical to another team’s robot.

2.4.3 It is the responsibility of teams to have their robots re-inspected, if their robots are modified at any time during the tournament.

2.4.4 Students will be asked to explain the operation of their robot, in order to verify that construction and programming of the robot is their own work.

2.4.5 Students will be asked about their preparation efforts, and may be requested to answer surveys and participate in videotaped interviews for research purposes.

2.4.6 All teams must fill a web form that will be provided once the team is officially registered, and should be submitted at least one week prior to the competition. The purpose of this document is to allow judges to be better prepared for the interviews. For sample documentation, please refer to the "Description of Materials Template" at the official RCJ website under Rescue rules. Information about how to submit your document will be announced prior to the competition to the teams.

2.4.7 All teams have to submit their codes prior to the competition. The code is never shared with other teams without the team’s permission.

 

2.4.1 ロボットは競技の前や競技の待ち時間に、上に書かれた制約をきちんと満たしているかどうかを運営委員会が確認します。

2.4.2 (過去も含む)他のチームのロボットと同一のロボットを使うことはできません。

2.4.3 競技会の期間中にロボットを改造した場合は、チームの責任において再検査を受けなければなりません。

2.4.4 チームメンバーは、ロボットとプログラミングについて説明し、ロボットが自分たちの創作物であることを証明します。

2.4.5 チームメンバーは、これまでの活動についての質疑や、研究目的のビデオ撮影やインタビューに対応します。

2.4.6 参加チームは、チームが正式に登録されたら、競技会の1週間前までにWEBのフォームに情報を入力しなければなりません。この情報は競技会の運営者がインタビューのときに参考にします。文書のサンプルは公式RCJのサイトのルールと共に「Description of Materials Template」として提示されます。提出の方法は競技会の前に提示されます。

2.4.7 チームは、競技の前にプログラムを提出します。提示されたプログラムはチームの許可無しでは他のチームに提示されることはありません。

 

まあ、こんな感じでしょうかねぇ。

 

日本の大会でいうところの「車検」というヤツです。

まあ、当たり前のことが列挙されています。

2.4.1は、インタビューをやって、これまでに書いて来たような制約事項がきちんと守られているか競技の運営者が確認します。ということです。

2.4.2は、新しく追加された項目です。他のチームと全く同じ(同一のという表現)ロボットを使うことはできません。ついでに、以前の(昨年より前の)他のチームのロボットと同じでもダメです。こんなルールが加わるということは、他のチームと同じロボットで参加するチームがある(あった)ということなんでしょうねぇ。でも、実際にこの項目に抵触するかどうかを判断することはできるのでしょうか!? 2台のロボットを並べて比べたら、(同じと)判断できるかもしれませんが・・・LEGOのロボットなら、簡単にアレンジができてしまいます。これも、性善説に従ったルールにしかなりませんよね。

ちなみに、このルールを初めて読んだ時にちょっとあせりました。「前年と同じロボットで参加できない」と勘違いしていたので・・・

2.4.3 ロボットを改造した場合は再車検を受けなさい・・・ということです。まあ、日本の大会では結構律儀に守っていますが・・・世界大会では、(改造したから)再車検を受けているのを見たことがありません。

2.4.4 2.4.5 は、インタビューでの説明の話です。ここは、ずっと変わっていないと思うのですが・・・この部分に引っかかって、何度もインタビューを受ける、というには世界大会では普通にあるようです。ちゃんと活動をしていないのか、単に説明ができないだけなのか・・・「M&Y」も「花鳥風月」もインタビューで困ったことは一回もありませんでした。なのですが・・・他のチームのブログなどを読むと、結構ツッコミを入れられていたり、即興でプログラミングをさせられたりしています。

2.4.6は、情報の事前提出のことだと思います。これは2014年ルールから始まったヤツですね。先日の関東ブロック大会のときにも構成品一覧を提出してもらいましたが、これはとってもインタビューに有効だったと考えます。できれば、ロボットの写真と構成品一覧だけでも(競技会が終わった後で良いので)公開してくれると、技術レベルの底上げになると思うのですが・・・。

2.4.7は、プログラムを提出、と書かれていますが、2014年のブラジル大会でもプログラムの提出は依頼されませんでした。(あれっ、したのかなぁ。忘れた。記憶が無い・・・チ-ムによってしたのかも・・・)

まあ、インタビューは、される方も大変ですが、する方がもっと大変です。でも、毎年、このインタビューを経て失格になるチームがいくつかあるので・・・ちゃんと運営されていることが分かります。

本当に、運営者に感謝です。

 

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする