目次
課題2については,2019a/Mission2を参照してください.
上の画像は,最初の授業で作った四輪のロボットの前方につけた,ピンポン玉をつかむアームである.モーターの回転方向を変えることによって,開閉できるようになっている.また,このアームと本体の間に光センサーをつけた.
#define rightKAITEN OnFwd(OUT_A);OnRev(OUT_C); //右旋回 #define rightMAGARI OnFwd(OUT_A);Off(OUT_C); //右折 #define leftKAITEN OnFwd(OUT_C);OnRev(OUT_A); //左旋回 #define leftMAGARI OnFwd(OUT_C);Off(OUT_A); //左折 #define middle 47 //閾値
sub followline() { SetSensor(SENSOR_2,SENSOR_LIGHT); ClearTimer(0); while(FastTimer(0)<=30) //左折,左旋回,右折,右回転の継続時間がが0.3秒以内のときループ { if(SENSOR_2>middle+5) { rightKAITEN ClearTimer(0); //白のとき右旋回 } else if(SENSOR_2>middle+3) { rightMAGARI ClearTimer(0); //白っぽいとき右折 } else if(SENSOR_2>middle) { OnFwd(OUT_AC); ClearTimer(0); //中間のとき直進 } else if(SENSOR_2>middle-3) { leftMAGARI ClearTimer(0); //黒っぽいとき左折 } else { leftKAITEN //黒のとき左旋回 } } Off(OUT_AC); }
task main() { followline(); OnRev(OUT_C); Wait(30); Off(OUT_C); OnFwd(OUT_AC); Wait(50); Off(OUT_AC); //曲がる前に戻って少し前進 followline(); followline(); followline(); OnRev(OUT_C); Wait(40); Off(OUT_C); OnFwd(OUT_AC); Wait(50); Off(OUT_AC); //曲がる前に戻って少し前進 followline(); }
今回の課題では,ライントレースのプログラムを作るのに,かなりの時間を使ってしまい,ロボットを凝って作ることができなかった.そのため,段階的にプログラムを試していく中で,G→Jの過程の中で,回り切れずに道を外れてしまった.次の課題もあり,迷惑はかけられないのでロボットを作り直せず,課題をクリアできなかったことは非常に悔しく思う.機会があれば,今回作りたかった,さらに小回りの利くロボットを作って挑戦してみたい.