- 追加された行はこの色です。
- 削除された行はこの色です。
[[2017a/Member]]
#contents
*課題について [#a519caec]
**右折ルート [#y0d1034e]
*ロボットについて [#je0a9760]
*プログラムについて [#g50bed2d]
#define white 50
#define white_gray 48
#define gray 40
#define black_gray 37
#define black 35
**defineとsubrutine [#c6aa0b20]
***define [#j5028005]
#define white 50
#define white_gray 48
#define gray 40
#define black_gray 37
#define black 35
#define go_forward OnFwd(OUT_AC);
#define turn_left0 Off(OUT_A);OnFwd(OUT_C);
#define turn_left1 OnRev(OUT_A);OnFwd(OUT_C);
#define turn_right0 Off(OUT_C);OnFwd(OUT_A);
#define turn_right1 OnRev(OUT_C);OnFwd(OUT_A);
***subrutine [#x123b074]
sub walk_right()
{
ClearTimer(0);
while(FastTimer(0)<15)
if(SENSOR_2>white_gray){
turn_left1;
ClearTimer(0);
}
else if(SENSOR_2>gray){
turn_left0;
ClearTimer(0);
}
else if(SENSOR_2>black_gray){
go_forward;
ClearTimer(0);
}
else if(SENSOR_2>black){
turn_right0;
ClearTimer(0);
}
else{
turn_right1;
}
Off(OUT_AC);
}
sub walk_left()
{
ClearTimer(0);
while(FastTimer(0)<15)
if(SENSOR_2>white_gray){
turn_right1;
ClearTimer(0);
}
else if(SENSOR_2>gray){
turn_right0;
ClearTimer(0);
}
else if(SENSOR_2>black_gray){
go_forward;
ClearTimer(0);
}
else if(SENSOR_2>black){
turn_left0;
ClearTimer(0);
}
else{
turn_left1;
}
Off(OUT_AC);
}
task main()
{
SetSensor(SENSOR_2,SENSOR_LIGHT);
walk_right();
PlaySound(SOUND_UP);
OnFwd(OUT_AC);
Wait(30);
Off(OUT_AC);
walk_left();
PlaySound(SOUND_DOWN);
Wait(100);
OnFwd(OUT_C);
Wait(150);
Off(OUT_AC);
walk_left();
PlaySound(SOUND_UP);
OnFwd(OUT_AC);
Wait(50);
Off(OUT_AC);
walk_left();
Off(OUT_AC);
PlaySound(SOUND_UP);
OnFwd(OUT_AC);
Wait(50);
Off(OUT_AC);
walk_right();
PlaySound(SOUND_DOWN);
Wait(100);
OnFwd(OUT_AC);
Wait(50);
Off(OUT_AC);
walk_right();
PlaySound(SOUND_DOWN);
Wait(100);
OnFwd(OUT_AC);
Wait(50);
Off(OUT_AC);
walk_right();
PlaySound(SOUND_UP);
OnFwd(OUT_A);
Wait(280);
Off(OUT_AC);
ClearTimer(0);
while(FastTimer(0)<30)
if(SENSOR_2>white_gray){
turn_left1;
ClearTimer(0);
}
else if(SENSOR_2>gray){
turn_left0;
ClearTimer(0);
}
else if(SENSOR_2>black_gray){
go_forward;
ClearTimer(0);
}
else if(SENSOR_2>black){
turn_right0;
ClearTimer(0);
}
else{
turn_right1;
}
Off(OUT_AC);
OnFwd(OUT_A);
Wait(270);
walk_right();
PlaySound(SOUND_UP);
OnFwd(OUT_AC);
Wait(30);
Off(OUT_AC);
walk_left();
PlaySound(SOUND_DOWN);
Wait(100);
OnFwd(OUT_C);
Wait(150);
Off(OUT_AC);
walk_left();
PlaySound(SOUND_UP);
OnFwd(OUT_AC);
Wait(50);
Off(OUT_AC);
walk_left();
PlaySound(SOUND_UP);
OnFwd(OUT_AC);
Wait(50);
Off(OUT_AC);
walk_right();
PlaySound(SOUND_UP);
OnFwd(OUT_A);
Wait(280);
Off(OUT_AC);
walk_right();
PlaySound(SOUND_DOWN);
}