それぞれの動き方は下に図で解説します。説明文の中の数字に連動しています。
//作成者:たか task main() //メインプログラムです。 { SetSensor(SENSOR_1,SENSOR_LIGHT) //センサー1をライトセンサーに設定します。 SetSensor(SENSOR_2,SENSOR_TOUCH) //センサー2をタッチセンサーに設定します。 SetSensor(SENSOR_3,SENSOR_LIGHT) //センサー3をライトセンサーに設定します。 while(true) //ライントレースのプログラムを設定します。 { if((SENSOR_1>40)&&(SENSOR_3>40)) //通常時の行動を設定します。 { OnFwd(OUT_A+OUT_C); //前進します。 } if((SENSOR_1>40)&&(SENSOR_3<40)) //左のセンサーが線上に来たときの行動を設定します。 { OnFwd(OUT_A);Off(OUT_C); //左センサーが線から出るまで左に旋回します。 } if((SENSOR_1<40)&&(SENSOR_3>40)) //右のセンサーが線上に来たときの行動を設定します。 { OnFwd(OUT_C);Off(OUT_A); //右センサーが線から出るまで右に旋回します。 } if(SENSOR_2==1) //タッチセンサーに何かが当たったときの行動を設定します。 { OnRev(OUT_A+OUT_C);Wait(100); //(1)前の障害物にぶつからないようにバックします。 OnFwd(OUT_A);OnRev(OUT_C);Wait(180); //(2)反転します。 } } }
//作成者:たか task main() { SetSensor(SENSOR_1,SENSOR_LIGHT) //センサー1をライトセンサーに設定します。 SetSensor(SENSOR_2,SENSOR_TOUCH) //センサー2をタッチセンサーに設定します。 SetSensor(SENSOR_3,SENSOR_LIGHT) //センサー3をライトセンサーに設定します。 while(true) { if((SENSOR_1>40)&&(SENSOR_3>40)) //通常時の行動を設定します。 { OnFwd(OUT_A+OUT_C); //前進します。 } if((SENSOR_1>40)&&(SENSOR_3<40)) //左のセンサーが線上に来たときの行動を設定します。 { OnFwd(OUT_A);Off(OUT_C); //左センサーが線から出るまで右に旋回します。 } if((SENSOR_1<40)&&(SENSOR_3>40)) //右のセンサーが線上に来た時の行動を設定します。 { OnFwd(OUT_C);Off(OUT_A); //右センサーが線から出るまで左に旋回します。 } if(SENSOR_2==1) //タッチセンサーに何かが当たったときの行動を設定します。 { OnRev(OUT_A+OUT_C);Wait(100); //(1)前の障害物にぶつからないようにバックします。 OnFwd(OUT_A);OnRev(OUT_C);Wait(90); //(2)右に90°回転します。 OnFwd(OUT_A+OUT_C);Wait(150); //(3)前進します。 OnFwd(OUT_C);OnRev(OUT_A);Wait(90); //(4)左に90°回転します。 OnFwd(OUT_A+OUT_C);Wait(150); //(5)前進します。 OnFwd(OUT_C);OnRev(OUT_A);Wait(90); //(6)左に90°回転します。 OnFwd(OUT_A+OUT_C);Wait(150); //(7)前進します。 OnFwd(OUT_A);OnRev(OUT_C);Wait(90); //(8)右に90°回転します。 } } }
前回までのコメントは消してしまいましたが、何かコメントがあったらお願いします。