[[2019a/Member]]
目次
#contents
*課題について [#vedfc1f4]
課題2については,[[2019a/Mission2]]を参照してください.
*ロボットについて [#i45ac605]
#ref(image6.jpeg)
上の画像は,最初の授業で作った四輪のロボットの前方につけた,ピンポン玉をつかむアームである.モーターの回転方向を変えることによって,開閉できるようになっている.また,このアームと本体の間に光センサーをつけた.
*プログラムについて [#ye0cec95]
**定義について [#z2b9487a]
#define rightKAITEN OnFwd(OUT_A);OnRev(OUT_C); //右旋回
#define rightMAGARI OnFwd(OUT_A);Off(OUT_C); //右折
#define leftKAITEN OnFwd(OUT_C);OnRev(OUT_A); //左旋回
#define leftMAGARI OnFwd(OUT_C);Off(OUT_A); //左折
#define middle 47 //閾値
**ライントレースのプログラム [#sa797568]
sub followline()
{
SetSensor(SENSOR_2,SENSOR_LIGHT);
ClearTimer(0);
while(FastTimer(0)<=30) //左折,左旋回,右折,右回転の継続時間がが0.3秒以内のときループ
{
if(SENSOR_2>middle+5)
{
rightKAITEN
ClearTimer(0); //白のとき右旋回
}
else if(SENSOR_2>middle+3)
{
rightMAGARI
ClearTimer(0); //白っぽいとき右折
}
else if(SENSOR_2>middle)
{
OnFwd(OUT_AC);
ClearTimer(0); //中間のとき直進
}
else if(SENSOR_2>middle-3)
{
leftMAGARI
ClearTimer(0); //黒っぽいとき左折
}
else
{
leftKAITEN //黒のとき左旋回
}
}
Off(OUT_AC);
}
**全体のプログラム [#sd97b0ee]
task main()
{
followline();
OnRev(OUT_C);
Wait(30);
Off(OUT_C);
OnFwd(OUT_AC);
Wait(50);
Off(OUT_AC); //曲がる前に戻って少し前進
followline();
followline();
followline();
OnRev(OUT_C);
Wait(40);
Off(OUT_C);
OnFwd(OUT_AC);
Wait(50);
Off(OUT_AC); //曲がる前に戻って少し前進
followline();
}
*まとめ [#kb2edbed]
今回の課題では,ライントレースのプログラムを作るのに,かなりの時間を使ってしまい,ロボットを凝って作ることができなかった.そのため,段階的にプログラムを試していく中で,G→Jの過程の中で,回り切れずに道を外れてしまった.次の課題もあり,迷惑はかけられないのでロボットを作り直せず,課題をクリアできなかったことは非常に悔しく思う.機会があれば,今回作りたかった,さらに小回りの利くロボットを作って挑戦してみたい.