LEGO nxc カラーセンサーをライトセンサーとして使用し、より明るい方を選んで動くロボットプログラム
より明るい方向を選んで進むロボット「Goethe(もっと光を!鎧戸を開けてくれ!)」
本当は配列を10個ぐらい使って10方向の中からより明るい方へ進むロボットを作りたい。
が、現状の学習能力ではIFのみを使ったものしかつくれない。よって2方向の光量を確認して進むロボットとなった。
task main()
{
int saisyo;
int ato;
SetSensorColorRed(IN_2);//センサーをセットする
while(true)//無限回繰り返す
{
saisyo=Sensor(IN_2);//開始地点での光量をsaisyoとする
TextOut(15,15,"saisyo");//光量を確認するためsaisyoをディスプレイ上に表示する
NumOut(15,30,saisyo);
OnFwd(OUT_A,40);//右に曲がる
OnRev(OUT_C,40);
Wait(1500);
Off(OUT_AC);
ato=Sensor(IN_2);//右に曲がった後の光量をatoとする
TextOut(15,45,"ato");//atoをディスプレイ上に表示する
NumOut(15,60,ato);
if(ato>saisyo){ //もし後の光量が多ければそのまま進む
OnFwd(OUT_AC,40);
Wait(1500);
Off(OUT_AC);
}
else{//もし前の光量が多ければ左に曲がった後真っ直ぐ進む
OnRev(OUT_A,40);
OnFwd(OUT_C,40);
Wait(1500);
Off(OUT_AC);
OnFwd(OUT_AC,40);
Wait(1500);
Off(OUT_AC);
}
}
}