- 追加された行はこの色です。
- 削除された行はこの色です。
*ライントレーサー [#s0ab6500]
*課題2.1当たって反転 [#q1305cc6]
**プログラム ( 制作者 Fuji )[#gdf2f47c]
#define mae OnFwd(OUT_A+OUT_B);
#define right Off(OUT_A+OUT_B);OnFwd(OUT_A);
#define left Off(OUT_A+OUT_B);OnFwd(OUT_B);
task main()
{
SetSensor(SENSOR_1,SENSOR_TOUCH); //センサー1はタッチセンサーであると宣言
SetSensor(SENSOR_2,SENSOR_LIGHT); //センサー2・3は光センサーであると宣言
SetSensor(SENSOR_3,SENSOR_LIGHT);
while(true)
{
OnFwd(OUT_A+OUT_C);
if(SENSOR_1==1) //何かに当ったら・・・
{
OnRev(OUT_A+OUT_C); Wait(50); //0.5秒間後退
OnFwd(OUT_A); Wait(150); //180度回転する
OnFwd(OUT_C);
}
if(SENSOR_2<40) //ライントレース部分
{ OnFwd(OUT_C);Off(OUT_A);}
else{OnFwd(OUT_A+OUT_C);}
if(SENSOR_3<40)
{ OnFwd(OUT_C);Off(OUT_A);}
else{OnFwd(OUT_A+OUT_C); }
} }
task main ()
{
SetSensor(SENSOR_1, SENSOR_LIGHT);
SetSensor(SENSOR_3, SENSOR_LIGHT);
mae;
while(true)
{
if(SENSOR_1 < 40){left;}
if(SENSOR_3 < 40){right;}
else{mae;}
}
}
**製作に苦労した点 [#ef550b42]
ライントレースって結構難しいんですよ。
コースは7の形をしていたのですが、急なカーブが多すぎて曲がりきれないことが判明。
**工夫した点 [#n57f9031]
*課題2.2追い越す [#n560dc94]
**プログラム( 制作者 Fuji ) [#md7bed28]
task main()
{
SetSensor(SENSOR_1,SENSOR_TOUCH); //同じようにセンサーを定義
SetSensor(SENSOR_2,SENSOR_LIGHT);
SetSensor(SENSOR_3,SENSOR_LIGHT);
while(true){
OnFwd(OUT_A+OUT_C);
if(SENSOR_1==1){ //何かに当ったら・・・
OnRev(OUT_A+OUT_C);Wait(100);
OnFwd(OUT_A);Wait(70); //右を向く
OnFwd(OUT_A+OUT_C);Wait(100);Off(OUT_A);
OnFwd(OUT_C);Wait(70);
OnFwd(OUT_A+OUT_C);Wait(300);Off(OUT_A); //コースをはずれて、前を追い越す
OnFwd(OUT_C);Wait(70);
OnFwd(OUT_A+OUT_C);Wait(100);Off(OUT_C);
OnFwd(OUT_A);Wait(70); }
else{ //ライントレース部
if(SENSOR_2<40)
{OnFwd(OUT_C);Off(OUT_A);}
if(SENSOR_3<40)
{OnFwd(OUT_A);Off(OUT_C);} } } }
**製作に苦労した点 [#y88f2f52]
**工夫した点 [#u1ff6e65]
**☆感想・反省点☆ [#m37f77bd]