実践ロボットプログラミング LEGO Mindstorms NXTで目指せロボコン!

[著者]
藤吉弘亘・藤井隆司・鈴木裕利・石井成郎

ティップス

tips

EV3: ジャイロセンサを使用したロボットの回転中・上級者向け

※ここで使用しますヘッダファイル(JissenPBL.h)およびEV3 BricxCCプログラムランチャー(run.rbf)は、 九州工業大学 花沢明俊先生が作成されたファイルを使用しております。 ファイル使用に当たり、快く了承していただき感謝いたします。 このヘッダファイルの著作権およびその他の権利は九州工業大学 花沢明俊先生にあります。

・ジャイロセンサを使う
 旧 MINDSTORMS(RCXやNXT)では、ロボットを決められた角度に回転する時、モータの回転数や回転時間を制御して何度もトライ・アンド・エラーを繰り返して目的の角度でロボットを停止させる必要がありました。しかし、EV3からはジャイロセンサが標準で含まれているため、決められた角度になるとモータの回転を止めるという方法でロボットの制御が可能です。
 下記のサンプルプログラムを入力します。ファイル名は「Gyro.c」とします。また、前述と同じように「Gyro.prj」も作成しておきます。カラーセンサはポート3にモータはポートB、Cに接続します。

// Sample Program "Gyro.c"
#include "JissenPBL.h"

int main()
{
 int i=0,j=0;
 OutputInit(); //use Motor
 initSensor(); //use Sensor
 ButtonLedInit(); //use button

 setSensorPort(CH_2,GYRO,0); //ch,type,mode
 startSensor();

 i=getSensor(CH_2);

 while(j<=i+90){
  j=getSensor(CH_2);
  OnFwd(OUT_B);
  OnRev(OUT_C);

  if(ButtonPressed(BTN1))break; //Stop Program
 }
 Off(OUT_BC);
 closeSensor();
}

 setSensorPort()命令で接続ポート、センサタイプ、モードを設定します。ジャイロセンサは回転角度を読みとるため、モード0にします。getSensor(CH_2)命令により、最初のロボットの角度をiに格納します。現在のロボットの角度iに目的の角度(サンプルは90度)を足した角度になるまでwhileループ内でモータの回転が実行されます。



 次はディスプレイへ表示してみましょう。

← カラーセンサを使う 2 |  ディスプレイへの表示 →

book

実践ロボットプログラミング
LEGO Mindstorms NXTで目指せロボコン!
本体価格: 2,300円/ISBN: 978-4-7649-0378-4
BUY NOW!!

教育用レゴ マインドストームNXT
次世代のロボット教材で、生徒や学生たちは
自分の手で実際に動かしながら、科学、技術と情報、
工学を楽しく、体験的に学習できます。
MORE

↑page top