- 追加された行はこの色です。
- 削除された行はこの色です。
*課題2 黒い線に沿って動くロボット [#g0e7cf73]
*目次 [#bbb662ff]
#contents
**1. 課題の概要 [#ffe6fdc2]
各チームで作成したコースに沿って動くロボットの作成。ただし・・・
・速さと正確さの追求
・交差点で優先側を走っていない場合は一時停止
・前方のもう一台のロボットに接触した場合には、停止して相手のロボットが行き過ぎるか、距離が離れるのを待つ
・コースを2周したら自動的に止まる
**2. ロボット紹介 [#l346c357]
***ロボットの完成写真 [#j8dcbc75]
~完成した写真がこちら
&br;正面
&br;側面
***ロボットの工夫した点 [#cba7dd30]
今回のロボットは課題1と同様の4輪を採用した。
~今回のロボットでの工夫点は、タッチセンサ用のバンパーである。
&br;おおまかな構成は本に載っているものと大差は無いが、2段にすることにより、より安定してタッチセンサを反応させることを可能にした。
&br;また、ホイールを大型にすることで課題1で作成したロボットよりもスピードを上昇させることができた。
&br;また、前輪を大きくすることで、スピードが上昇した。
***ロボットの改善点 [#n4d07154]
~今回のロボットでは、前回のロボットよりスピードが上昇したが、今回はスピードが出過ぎてしまった点が問題である。
&br;ギア比の調整での減速がこのロボットでは構造上困難なため、setpowerの使用により減速させるしか方法がないと思われる。
&br;これを踏まえてある程度のスピードを出しながらも、安定した走りをできるようプログラムでの方面で改善をしなければならない。
&br;コースを完走することができるようになったが、たまに脱線する恐れがあるので、
&br;安定してコースを完走させることが今後の課題となってくる。
**3. コース紹介 [#rec26116]
~今回自分たちが作成したコースは8の字を2つ合体させたようなコースにした。
&br;単純なコースではあるが、その分正確性、速さが求められる。
&br;コースの全体図
**4. プログラム [#w510e493]
***プログラムの紹介 [#raf7f73b]
今回作成したプログラムがこちら
今回作成したプログラムがこちら(完成度90%)
***プログラムの工夫点 [#q6e62d57]
#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){
Off(A+C);
}
}
}
}
}
***プログラムの工夫点や改善点[#q6e62d57]
今回のプログラムは過去の作品を参考にtaskを2つにするプログラムを作成した。
&br;taskを2つにすることでタッチセンサーが作動するとき、光センサーのプログラムを停止させ、誤作動を防ぐプログラムが簡単に作成できた。
&br;改善する点としては停止用に指定した変数iがうまく作動しないため、2周しても停止しないことが問題である。
&br;そのため、今後は2周して停止できようにプログラムを考える必要がある。
**5. 課題発表を終えて [#yc06013a]
~ここは課題発表が終わり次第更新の予定です。
*コメント [#l48d40b5]
~・コメントがあればどうぞ
#comment