[[戻る>2005/A6]] *製作中のプログラム [#c4c4fb09] #define line 40 task main() // 光センサーを使った簡単なプログラム { SetSensor(SENSOR_2, SENSOR_LIGHT); while(true) { if(SENSOR_1 < line) // ライン上は右に曲がる { OnFwd(OUT_C); Off(OUT_A); } else { OnFwd(OUT_A); // ライン外は左に曲がる Off(OUT_C); } } } *製作したプログラム 『これまでの流れ』 [#c0e77817] **一番最初に作ったプログラム [#cb967754] // 初めてロボットを動かした時のプログラム task main() { OnFwd(OUT_A); OnFwd(OUT_C); Wait(110); Off(OUT_A+OUT_C); } // ただ進んで止まるだけ #comment **二番目に作った三角形を書くプログラム [#tc0fe390] //『repeat』プログラムを使えば簡単だった・・・ task main() { OnFwd(OUT_A+OUT_C); Wait(150); OnFwd(OUT_A); OnRev(OUT_C); Wait(110); OnFwd(OUT_A+OUT_C); Wait(150); OnFwd(OUT_A); OnRev(OUT_C); Wait(110); OnFwd(OUT_A+OUT_C); Wait(150); OnFwd(OUT_A); OnRev(OUT_C); Wait(110); OnFwd(OUT_A+OUT_C); Wait(150); } // 正三角形の軌跡を残すだけ #comment task main() // 『repeat』を使ったプログラム { repeat(3) { OnFwd(OUT_A+OUT_C); Wait(150); // 一つの辺の軌跡を書く OnFwd(OUT_A); OnRev(OUT_C); Wait(110); // 一つの角の軌跡を書く } } #comment **課題1についてのプログラム [#r8c50d1d] [[2005/A6/課題1/一班/コンドのプログラム]] **課題2についてのプログラム [#efca2f18] // 11月24日 // コンド // 何度も失敗して、一周する確率が一番高くなったときのプログラム #define little 37 // 後退する時間 task main() // 反時計回りに机の周りを回るプログラム { SetSensor(SENSOR_1, SENSOR_TOUCH); // 右側のセンサー SetSensor(SENSOR_3, SENSOR_TOUCH); // 左側のセンサー while (true) { if((SENSOR_1 == 0) && (SENSOR_3 == 1)) // 右側のセンサーが触れる { Off(OUT_C); // 左側のタイヤを止める OnFwd(OUT_A); // 右側のタイヤが正転する until(SENSOR_3 == 0); // 右側のセンサーが離れるまで回る } if((SENSOR_1 == 0) && (SENSOR_3 == 0)) // 右側のセンサーが離れる { Off(OUT_A); // 右側のタイヤが止まる OnFwd(OUT_C); // 左側のタイヤが正転する until(SENSOR_3 == 1); // 右側のセンサーが触れるまで回る } else // 壁に衝突する { OnRev(OUT_A + OUT_C); // 両側のタイヤが逆転する Wait(little); // しばし待つ Off(OUT_C); // 左側のタイヤを止める OnFwd(OUT_A); // 右側のタイヤが正転する until(SENSOR_3 == 1); // 右側のセンサーが壁に当たるまで回る } } } #comment