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

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

ティップス

tips

EV3: カラーセンサを使用した色認識中・上級者向け

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

・カラーセンサを使う 2
 前述では、EV3のカラーセンサを使用したライントレースプログラムを作りました。これは赤色LEDを発光してその反射光の大きさで白か黒を判断するというプログラムでした。次に色を判別するプログラムを作成します。
 下記のサンプルプログラムを入力します。ファイル名は「Color_RGB.c」とします。また、前述と同じように「Color_RGB.prj」も作成しておきます。カラーセンサはポート3に接続します。

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

int main()
{
 int i=0;
 initSensor(); //use Sensor
 ButtonLedInit(); //use button

 setSensorPort(CH_3,COLOR,2); //ch,type,mode
 startSensor();

 while(true){
  i=getSensor(CH_3);

  switch (i) {
   case 1:
    SetLedPattern(LED_GREEN);
    break;
   case 5:
    SetLedPattern(LED_RED);
    break;
   default:
    SetLedPattern(LED_BLACK);
    break;
  }
  if(ButtonPressed(BTN1))break; //Stop Program
 }
closeSensor();
}

 setSensorPort()命令で接続ポート、センサタイプ、モードを設定します。今回は色を読みとるモードとして使用するため、モード2(カラーモード)にします。getSensor(CH_3)命令により、カラーセンサの読み取り値をiに格納します。カラーセンサの読み取り値によりEV3本体のLEDが同色で点灯します。カラーセンサの読み取り値 i=1 の時は緑、i=5 の時は赤色に点灯します。それ以外の時は点灯しません。


 次はジャイロセンサを使ってみましょう。

← カラーセンサを使う 1 |  ジャイロセンサを使う →

book

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

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

↑page top