- 追加された行はこの色です。
- 削除された行はこの色です。
[[2006a/A1]]
*プログラム1 [#q3184f68]
#contents
*プログラム1(光センサ無し) [#q3184f68]
**プログラム(1) [#qfb22c0a]
#define front(j) OnFwd(OUT_A+OUT_C);Wait(j);Off(OUT_A+OUT_C);
#define back(j) OnRev(OUT_A+OUT_C);Wait(j);Off(OUT_A+OUT_C);
#define right(j) OnRev(OUT_C);OnFwd(OUT_A);Wait(j);Off(OUT_A+OUT_C);
#define left(j) OnRev(OUT_A);OnFwd(OUT_C);Wait(j);Off(OUT_A+OUT_C);
#define tomaru(j) Off(OUT_A+OUT_C);Wait(j);
task main()
{
ClearMessage();
until (Message() != 0);
back(500);tomaru(500);
SendMessage(1);Wait(300);
if ( Message() == 2 )
{
front(450);tomaru(200);
front(200);tomaru(200);
left(85);tomaru(200);
front(250);left(85);tomaru(200);
front(300);back(200);
}
}
*プログラム2 [#v15dec86]
**プログラム(2)[#v15dec86]
#define front(j) OnFwd(OUT_A+OUT_C);Wait(j);Off(OUT_A+OUT_C);
#define back(j) OnRev(OUT_A+OUT_C);Wait(j);Off(OUT_A+OUT_C);
#define right(j) OnRev(OUT_C);OnFwd(OUT_A);Wait(j);Off(OUT_A+OUT_C);
#define left(j) OnRev(OUT_A);OnFwd(OUT_C);Wait(j);Off(OUT_A+OUT_C);
#define tomaru(j) Off(OUT_A+OUT_C);Wait(j);
task main()
{
front(500);tomaru(200);
front(200);tomaru(200);
left(90);tomaru(200);
front(250);left(90);tomaru(200);
front(300);back(200);tomaru(200);
left(90);tomaru(50);front(250);right(90);tomaru(50);
front(700);tomaru(200);back(760);tomaru(200);
right(90);tomaru(200);front(250);left(90);tomaru(200);
front(300);back(200);tomaru(200);
left(90);tomaru(50);front(250);right(90);tomaru(50);
front(700);tomaru(200);
}
*プログラム3 [#ecf68cbe]
**プログラム(3) [#ecf68cbe]
#define front(j) OnFwd(OUT_A+OUT_C);Wait(j);Off(OUT_A+ OUT_C);
#define back(j) OnRev(OUT_A+OUT_C);Wait(j);Off(OUT_A+OUT_C);
#define right(j) OnRev(OUT_C);OnFwd(OUT_A);Wait(j);Off(OUT_A+OUT_C);
#define left(j) OnRev(OUT_A);OnFwd(OUT_C);Wait(j);Off(OUT_A+OUT_C);
#define tomaru(j) Off(OUT_A+OUT_C);Wait(j);
task main()
{
front(300);tomaru(150);right(80);tomaru(150);
front(270);tomaru(150);right(80);tomaru(150);
front(200);tomaru(100);back(200);tomaru(150);
right(80);tomaru(150);front(270);tomaru(150);
left(80);tomaru(150);front(450);tomaru(150);
left(80);tomaru(150);
front(300);tomaru(150);left(80);tomaru(150);
front(300);tomaru(50);back(200);tomaru(150);
left(80);tomaru(50);front(300);right(80);tomaru(50);
front(400);tomaru(150);back(400);tomaru(150);
right(80);tomaru(150);front(300);tomaru(150);left(80);tomaru(150);
front(300);tomaru(50);back(200);tomaru(150);
left(80);tomaru(50);front(300);tomaru(150);right(80);tomaru(50);
front(400);tomaru(200);
}
*プログラム4 [#b4aa91cd]
**プログラム(4) [#b4aa91cd]
#define front(j) OnFwd(OUT_A+OUT_C);Wait(j);Off(OUT_A+OUT_C);
#define back(j) OnRev(OUT_A+OUT_C);Wait(j);Off(OUT_A+OUT_C);
#define right(j) OnRev(OUT_C);OnFwd(OUT_A);Wait(j);Off(OUT_A+OUT_C);
#define left(j) OnRev(OUT_A);OnFwd(OUT_C);Wait(j);Off(OUT_A+OUT_C);
#define tomaru(j) Off(OUT_A+OUT_C);Wait(j);
task main()
{
while(true)
{
front(230);tomaru(150);back(500);tomaru(150);
right(90);tomaru(150);
front(330);tomaru(150);left(90);tomaru(150);front(300);tomaru(150);
back(210);tomaru(150);left(76);tomaru(150);front (310);tomaru(150);
right(76);tomaru(150);front(250);tomaru(150);
}
}
*プログラム5(光センサ有り) [#r1120e17]
**プログラム(5) [#ee0f1650]
#define front(j) OnFwd(OUT_A+OUT_C);Wait(j);Off(OUT_A+OUT_C);
#define back(j) OnRev(OUT_A+OUT_C);Wait(j);Off(OUT_A+ OUT_C);
#define back(j) OnRev(OUT_A+OUT_C);Wait(j);Off(OUT_A+OUT_C);
#define right(j) OnRev(OUT_C);OnFwd(OUT_A);Wait(j);Off(OUT_A+OUT_C);
#define left(j) OnRev(OUT_A);OnFwd(OUT_C);Wait(j);Off(OUT_A+OUT_C);
#define tomaru(j) Off(OUT_A+OUT_C);Wait(j);
#define THRESHOLD 40
task main()
{
while(true)
{
front(230);tomaru(150);back(520);tomaru(150);front(50);tomaru(150);
right(94);tomaru(150);
front(300);tomaru(150);left(93);tomaru(150);front(340);tomaru(150);
back(190);tomaru(150);left(80);tomaru(150);front(290);tomaru(150);
right(80);tomaru(150);front(150);tomaru(100);
front(250);tomaru(150);
}
}
*プログラム2(光センサ有り) [#r1120e17]
#define front(j) OnFwd(OUT_A+OUT_C);Wait(j);Off(OUT_A+OUT_C);
#define back(j) OnRev(OUT_A+OUT_C);Wait(j);Off(OUT_A+OUT_C);
#define right(j) OnRev(OUT_C);OnFwd(OUT_A);Wait(j);Off(OUT_A+OUT_C);
#define left(j) OnRev(OUT_A);OnFwd(OUT_C);Wait(j);Off(OUT_A+OUT_C);
#define tomaru(j) Off(OUT_A+OUT_C);Wait(j);
#define THRESHOLD 43
task main()
{
SetSensor(SENSOR_1, SENSOR_LIGHT);
SetSensor(SENSOR_2, SENSOR_LIGHT);
while(true)
{
front(230);tomaru(150);back(510);tomaru(150);
right(88);tomaru(150);
front(230);tomaru(150);back(530);tomaru(150);
front(50);tomaru(50);right(88);tomaru(150);
front(300);tomaru(150);left(88);tomaru(150);front(300);tomaru(150);
back(190);tomaru(150);left(78);tomaru(150);front(310);tomaru(150);
right(78);tomaru(150);
back(190);tomaru(150);left(80);tomaru(150);front(310);tomaru(150);
right(80);tomaru(150);
if(SENSOR_1 <= THRESHOLD){tomaru(300);OnRev(OUT_C);OnFwd(OUT_A);}
else{OnFwd(OUT_A+OUT_C);}
if(SENSOR_2 <= THRESHOLD){tomaru(300);}
front(250);tomaru(150);
}
}
**プログラム(1) [#l56527f3]
#define front(j) OnFwd(OUT_A+OUT_C);Wait(j);Off(OUT_A+OUT_C);
#define back(j) OnRev(OUT_A+OUT_C);Wait(j);Off(OUT_A+OUT_C);
#define right(j) OnRev(OUT_C);OnFwd(OUT_A);Wait(j);Off (OUT_A+OUT_C);
#define left(j) OnRev(OUT_A);OnFwd(OUT_C);Wait(j);Off(OUT_A+OUT_C);
#define tomaru(j) Off(OUT_A+OUT_C);Wait(j);
#define THRESHOLD 43
task main()
{
SetSensor(SENSOR_1, SENSOR_LIGHT);
SetSensor(SENSOR_2, SENSOR_LIGHT);
while(true)
{if(SENSOR_1 <= THRESHOLD){tomaru(300);OnRev(OUT_C);OnFwd (OUT_A);}
else{OnFwd(OUT_A+OUT_C);}
if(SENSOR_2 <= THRESHOLD){tomaru(300);}
front(250);tomaru(150);
}
}
**プログラム(2) [#m8f02d09]
#define front(j) OnFwd(OUT_A+OUT_C);Wait(j);Off(OUT_A+OUT_C);
#define back(j) OnRev(OUT_A+OUT_C);Wait(j);Off(OUT_A+OUT_C);
#define right(j) OnRev(OUT_C);OnFwd(OUT_A);Wait(j);Off(OUT_A+OUT_C);
#define left(j) OnRev(OUT_A);OnFwd(OUT_C);Wait(j);Off(OUT_A+OUT_C);
#define tomaru(j) Off(OUT_A+OUT_C);Wait(j);
#define THRESHOLD 40
task main()
{
SetSensor(SENSOR_1, SENSOR_LIGHT);
SetSensor(SENSOR_2, SENSOR_LIGHT);
while(true)
{
front(230);tomaru(150);back(520);tomaru(150);front(50);tomaru(50);
right(100);tomaru(150);
front(300);tomaru(150);left(93);tomaru(150);front(300);tomaru(150);
back(190);tomaru(150);left(80);tomaru(150);front(310);tomaru(150);
right(80);tomaru(150);
while(true)
{
if((SENSOR_1 > THRESHOLD) && (SENSOR_2 > THRESHOLD)){OnFwd(OUT_A+OUT_C);}
if(SENSOR_2 < THRESHOLD){OnRev(OUT_C);OnFwd(OUT_A);}
if(SENSOR_1 < THRESHOLD){OnRev(OUT_A);OnFwd(OUT_C);}
if((SENSOR_1 <= THRESHOLD) && (SENSOR_2 <= THRESHOLD)) {tomaru(200);front(50);}
}
front(250);tomaru(150);
}
}
**プログラム(3) [#i88fa827]
#define front(j) OnFwd(OUT_A+OUT_C);Wait(j);Off(OUT_A+OUT_C);
#define back(j) OnRev(OUT_A+OUT_C);Wait(j);Off(OUT_A+OUT_C);
#define right(j) OnRev(OUT_C);OnFwd(OUT_A);Wait(j);Off(OUT_A+OUT_C);
#define left(j) OnRev(OUT_A);OnFwd(OUT_C);Wait(j);Off(OUT_A+OUT_C);
#define tomaru(j) Off(OUT_A+OUT_C);Wait(j);
#define THRESHOLD 40
task main()
{
SetSensor(SENSOR_1, SENSOR_LIGHT);
SetSensor(SENSOR_2, SENSOR_LIGHT);
while(true)
{
front(230);tomaru(150);back(520);tomaru(150);front(50);tomaru(150);
right(94);tomaru(150);
front(300);tomaru(150);left(93);tomaru(150);front(340);tomaru(150);
back(190);tomaru(150);left(80);tomaru(150);front(310);tomaru(150);
right(80);tomaru(150);front(50);tomaru(100);
while(true)
{
if((SENSOR_1 < THRESHOLD) && (SENSOR_2 < THRESHOLD)){OnFwd(OUT_A+OUT_C);}
if(SENSOR_2 > THRESHOLD){OnRev(OUT_A);OnFwd(OUT_C);}
if(SENSOR_1 > THRESHOLD){OnRev(OUT_C);OnFwd(OUT_A);}
}
if((SENSOR_1 >= THRESHOLD) && (SENSOR_2 >= THRESHOLD)){tomaru(200);front(50);}
front(250);tomaru(150);
}
}