- 追加された行はこの色です。
- 削除された行はこの色です。
[[ロボティクス入門ゼミ]]
*光センサー一個 [#t39cca41]
#define THRESHOLD 40
task main()
{
SetSensor(SENSOR_1,SENSOR_LIGHT);
while(true){
if(SENSOR_1< THRESHOLD) {
OnFwd(OUT_A);
Off(OUT_B);
} else {
Off(OUT_A);
OnFwd(OUT_B);
}
}
}
*光センサー二個 [#r7870ae7]
task main()
{
SetSensor(SENSOR_1,SENSOR_LIGHT);
SetSensor(SENSOR_2,SENSOR_LIGHT);
while(true)
{if(SENSOR_1 >48){Off(OUT_A);OnFwd(OUT_B) ; }
if(SENSOR_2>40){Off(OUT_B); OnFwd(OUT_A); }
else{OnFwd(OUT_A +OUT_B);} }
}
感想:上手くセンサー2が反応しない。どこがおかしいのか見直して上手く動くようにする。
*当たると反転 [#h5e1d737]
task main()
{
SetSensor(SENSOR_1,SENSOR_TOUCH);
SetSensor(SENSOR_1,SENSOR_LIGHT);
SetSensor(SENSOR_1,SENSOR_LIGHT);
while(true)
{
OnFwd(OUT_A+OUT_C);
if(SENSOR_1==1)
{
OnRev(OUT_A+OUT_C); Wait(50);
OnFwd(OUT_A); Wait(150);
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); }
}
}
*前のロボに当たると追い越すロボ [#d62b1c7d]
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);} } } }
*光を求めて動くロボ [#eeaecf3d]
#define TURN_TIME338
task main()
{
SetSensor(SENSOR_1,SENSOR_LIGHT);
int light_max=0,time_max;
if(SENSOR_1==light_max)
{OnFwd(OUT_A+OUT_C);}
else
{ClearTime(0);
while(Time(0)<=TURN_TIME)
{OnFwd(OUT_A);OnRev(OUT_C);
if(light_max<SENSOR_1)
{light_max=SENSOR_1;
time_max=Timer(0);}}
if(time_max<(TURN_TIME/2))
{OnFwd(OUT_A);OnRev(OUT_C);
Wait(time_max);}
else
{OnFwd(OUT_C);OnRev(OUT_A);
Wait((TURT_TIME)-(time_max));}}}