目次
竹原 プログラム
荒起 寝てた(後にHP編集等)
村松 ホームページ
●センサーを二つ使い、ライン上を確実にトレースする
右のセンサーがライン上にのったとき左に曲がり、同様に左のセンサーがライン上にのったとき右に曲がり、両方のセンサーがライン上にのっていないときは直進するというもの。センサーの数が2つあることによって、1つのものよりも速い速度でライントレースをすることが可能。
●バンパーで障害物を察知
バンパーを大きくすることによって、範囲が広がり確実に障害物に反応することが可能。
●障害物にあたると反転する
ライントレース中に障害物にあたると少々後退した後、180°回転してあたる前とは逆向きにライントレースを開始する。
●センサーが二つなのでプログラムを組むのが大変だった。
if(SENSOR_1>40){OnFwd(OUT_C);OnRev(OUT_A);} else{OnFwd(OUT_A+OUT_C);} if(SENSOR_3>40){OnFwd(OUT_A);OnRev(OUT_C);} else{OnFwd(OUT_A+OUT_C);}
プログラムを作った当初はこのようなプログラムだったのだが、例えば、センサー1がライン上にあるときモーターAを逆回転し曲がるはずなのだが、センサー3が反応しているしていないに関わらずモーターAを正回転させているので、打ち消し合ってしまいうまくいかなかった。当然逆にモーターCについても言える。そこで、センサ−1のプログラムのelse内からはOUT_Cを、センサー3の方からはOUT_Aを削除することによって解決した。
●バンパーで障害物を避けなければいけないことを知らなかったので、急遽作らなければならなかった。
短時間で本体、プログラム共に作り直さなければならなかった。
●ワールドカップ、バイト、テスト等で体がボロボロだった。(ソウマ)
不可抗力です(笑)
task main() { SetSensor(SENSOR_1,SENSOR_LIGHT); //センサーを定義 SetSensor(SENSOR_2,SENSOR_TOUCH); SetSensor(SENSOR_3,SENSOR_LIGHT); while(true) { if(SENSOR_1>40){OnFwd(OUT_C);OnRev(OUT_A);} //通常時直進 ラインにあたると進行方向をかえる else{OnFwd(OUT_A);} if(SENSOR_3>40){OnFwd(OUT_A);OnRev(OUT_C);} //通常時直進 ラインにあたると進行方向をかえる else{OnFwd(OUT_C);} until(SENSOR_2 == 1); //タッチセンサーにあたると反転する OnRev(OUT_A+OUT_C);Wait(100); OnRev(OUT_A);OnFwd(OUT_C);Wait(195); } }
一言お願いします。