*課題2 黒い線に沿って動くロボット [#g0e7cf73] *目次 [#bbb662ff] #contents **1. 課題の概要 [#ffe6fdc2] 各チームで作成したコースに沿って動くロボットの作成。ただし・・・ ・速さと正確さの追求 ・交差点で優先側を走っていない場合は一時停止 ・前方のもう一台のロボットに接触した場合には、停止して相手のロボットが行き過ぎるか、距離が離れるのを待つ ・コースを2周したら自動的に止まる **2. ロボット紹介 [#l346c357] ***ロボットの完成写真 [#j8dcbc75] ~完成した写真がこちら~ &ref(Image004.jpg,nolink); &br;正面 &ref(Image002.jpg,nolink); &br;側面 &ref(Image003.jpg,nolink); &br;今のロボットと若干違うので、後日最新版の画像をupします。 ***ロボットの工夫した点 [#cba7dd30] 今回のロボットは課題1と同様の4輪を採用した。 ~今回のロボットでの工夫点は、タッチセンサ用のバンパーである。 &br;おおまかな構成は本に載っているものと大差は無いが、2段にすることにより、より安定してタッチセンサを反応させることを可能にした。 &br;また、前輪を大きくすることで、スピードが上昇した。 ***ロボットの改善点 [#n4d07154] &br;コースを完走することができるようになったが、たまに脱線する恐れがあるので、 &br;安定してコースを完走させることが今後の課題となってくる。 **3. コース紹介 [#rec26116] ~今回自分たちが作成したコースは8の字を2つ合体させたようなコースにした。 &br;単純なコースではあるが、その分正確性、速さが求められる。 &br;コースの全体図 ~少々お待ち下さい。後日upします。 **4. プログラム [#w510e493] ***プログラムの紹介 [#raf7f73b] 今回作成したプログラムがこちら(完成度95%) #define A OUT_A //OUT_Aの簡略 #define C OUT_C //OUT_Cの簡略 #define trace 39 //闘値 task main(){ SetPower(A+C,7); SetSensor(SENSOR_1,SENSOR_TOUCH); start line_trace; //光センサーのプログラムの開始 while(true){ if(SENSOR_1 == 1){ stop line_trace; //タッチセンサーに接触したときの反応 OnRev(A+C); Wait(100); Off(A+C); Wait(300); start line_trace; } } } task line_trace(){ int i; //停止用変数 i の宣言 i = 0; SetSensor(SENSOR_2,SENSOR_LIGHT); //センサー2を光センサー宣言 SetSensor(SENSOR_3,SENSOR_LIGHT); //センサー3を光センサー宣言 while(true){ if(SENSOR_2>trace){ if(SENSOR_3>trace){ //共に白を感知したとき OnFwd(A+C); } //前 else{ //センサー3が黒 Off(C); OnFwd(A); //左に曲がる } } else{ if(SENSOR_3>trace){ //センサー2が黒 OnFwd(C); Off(A); //右に曲がる } else{ //共に黒を感知 Off(A+C); Wait(100); OnFwd(A+C); Wait(50); //1秒停止、0.5秒前進 i = i + 1; while(i == 5){ //変数iが5になったら停止させる Off(A+C); } } } } } ***プログラムの工夫点や改善点[#q6e62d57] 今回のプログラムは過去の作品を参考にtaskを2つにするプログラムを作成した。 &br;taskを2つにすることでタッチセンサーが作動するとき、光センサーのプログラムを停止させ、誤作動を防ぐプログラムが簡単に作成できた。 &br;改善する点として、このプログラムでは変数iを使用し、停止線での止まる回数を利用して2周して止まるプログラムである。 &br;しかし、タッチセンサーが反応してしまうとこのプログラムでは、変数iのカウントが0に戻ってしまうため、2周で止まれなくなってしまう点がある。 &br;そのため、今後はタッチセンサーに反応しても2周して停止できようにプログラムを考える必要がある。 **5. 課題発表を終えて [#yc06013a] ~ここは課題発表が終わり次第更新の予定です。 *コメント [#l48d40b5] ~・コメントがあればどうぞ #comment