[[2016a/Member]] 目次 #contents *はじめに [#e2420186] 今回の課題はライントレスです。 図のようなコースを使ってこの黒線の上をRISで走らせます。 3つのコースが用意され、私はC地点からA地点のコースを走らせます。 C地点からA地点はC地点 → S左折 → P左折 → Q直進 → Q直進 → R右折 → P左折 → A地点の順に進みます。 *ロボットの紹介 [#lc1cff07] **ロボットの説明 [#fd2bca38] RIS本体の前方に光センサーを装着します。 &ref(2016a/Member/kosi/Mission1/P_20160707_170517.jpg,30%,robo1); *プログラム [#b51fbed1] **定義の説明 [#m7103da1] #define time 5 #define turn_right OnFwd(OUT_A);OnRev(OUT_C);Wait(time); #define turn_right_oo OnFwd(OUT_A);Off(OUT_C);Wait(time); #define turn_left OnFwd(OUT_C); OnRev(OUT_A);Wait(time); #define turn_left_oo Off(OUT_A); OnFwd(OUT_C);Wait(time); #define go_forward(t) OnFwd(OUT_AC);Wait(t);Off(OUT_AC); #define black 40 #define white 50 #define STAP 1 **subの説明 [#fa5ad731] sub line_go() { ClearTimer(0); while(FastTimer(0)<36){ if(SENSOR_2 <= black){ turn_right_oo; }else if(SENSOR_2 < black+2){ turn_right; }else if(SENSOR_2 > white-2){ turn_left_oo; ClearTimer(0); }else if(SENSOR_2 >= white){ turn_left ClearTimer(0); }else{ OnFwd(OUT_AC); ClearTimer(0); } Wait(STAP); } Off(OUT_AC); ClearTimer(0); PlaySound(SOUND_UP); Wait(100); } sub crossing_right() { repeat(10){ turn_right; } } sub crossing_left() { repeat(8){ turn_left; } } **プログラム [#edefa94e] *感想 [#xc024e6d] **プログラムについて [#udc4a7f6] 今回のプログラミングは、はじめsubについて理解できずとても苦労しました。 交差点Qから交差点Rの急カーブは特に交差点だと認識してしまうところが反省点です。 もう少し時間設定を精密にしていけばよかったのかと思います。 **ライントレスについて [#qb42dc35]