[[2018a/Member]] [[2018a/Member]] #define set_power_low SetPower(OUT_A,3);SetPower(OUT_B,1);SetPower(OUT_C,3); #define BLACK 40 #define WHITE 50 #define go_f set_power_low; OnFwd(OUT_AC); #define turn_left set_power_low; Off(OUT_A); OnFwd(OUT_C); #define turn_right set_power_low; OnFwd(OUT_A); Off(OUT_C); task main() { SetSensor(SENSOR_2, SENSOR_LIGHT); ClearTimer(0); while(FastTimer(0)<=20) { if (SENSOR_2 < BLACK){ turn_left; } else if (SENSOR_2 < WHITE){ go_f; ClearTimer(0); } else { turn_right; ClearTimer(0); } } Off(OUT_AC);Wait(100); set_power_low; OnRev(OUT_C); Wait(20); go_f; Wait(40); SetSensor(SENSOR_2, SENSOR_LIGHT); ClearTimer(0); while(FastTimer(0)<=25) { if (SENSOR_2 < BLACK){ turn_left; } else if (SENSOR_2 < WHITE){ go_f; ClearTimer(0); } else { OnRev(OUT_C);OnFwd(OUT_A); ClearTimer(0); } } Off(OUT_AC);Wait(100);go_f; Wait(30);set_power_low; OnRev(OUT_A);Wait(50);OnFwd(OUT_C);Wait(50);go_f; Wait(40); Off(OUT_AC);Wait(100);OnFwd(OUT_AC);Wait(30); set_power_low; OnRev(OUT_B);Wait(100);Off(OUT_AC);Wait(500); OnRev(OUT_A);Wait(50);OnFwd(OUT_C);Wait(50); SetSensor(SENSOR_2, SENSOR_LIGHT); ClearTimer(0); while(FastTimer(0)<=20) { if (SENSOR_2 < BLACK){ turn_left; } else if (SENSOR_2 < WHITE){ go_f; ClearTimer(0); } else { OnRev(OUT_C);OnFwd(OUT_A); ClearTimer(0); } } set_power_low; OnRev(OUT_C); Wait(20); go_f; Wait(20); SetSensor(SENSOR_2, SENSOR_LIGHT); ClearTimer(0); while(FastTimer(0)<=20) { if (SENSOR_2 < BLACK){ turn_left; } else if (SENSOR_2 < WHITE){ go_f; ClearTimer(0); } else { OnRev(OUT_C);OnFwd(OUT_A); ClearTimer(0); } } Off(OUT_AC);Wait(100);go_f; Wait(30);set_power_low; OnRev(OUT_A);Wait(55);OnFwd(OUT_C);Wait(55); SetSensor(SENSOR_2, SENSOR_LIGHT); ClearTimer(0); while(FastTimer(0)<=20) { if (SENSOR_2 < BLACK){ turn_left; } else if (SENSOR_2 < WHITE){ go_f; ClearTimer(0); } else { OnRev(OUT_C);OnFwd(OUT_A); ClearTimer(0); } } Off(OUT_AC);Wait(100);go_f; Wait(30);set_power_low; OnRev(OUT_A);Wait(55);OnFwd(OUT_C);Wait(55); SetSensor(SENSOR_2, SENSOR_LIGHT); ClearTimer(0); while(FastTimer(0)<=20) { if (SENSOR_2 < BLACK){ turn_left; ClearTimer(0); } else if (SENSOR_2 < WHITE){ go_f; ClearTimer(0); } else { OnRev(OUT_C);OnFwd(OUT_A); } } OnRev(OUT_C);Wait(55);OnFwd(OUT_A);Wait(55); } SetSensor(SENSOR_2, SENSOR_LIGHT); ClearTimer(0); while(FastTimer(0)<=20) { if (SENSOR_2 < BLACK){ turn_left; ClearTimer(0); } else if (SENSOR_2 < WHITE){ go_f; ClearTimer(0); } else { OnRev(OUT_C);OnFwd(OUT_A); } } Off(OUT_AC);Wait(100); set_power_low; OnRev(OUT_C); Wait(20); OnRev(OUT_C);Wait(50);OnFwd(OUT_A);Wait(50); 製作中 途中経過報告 SetSensor(SENSOR_2, SENSOR_LIGHT); ClearTimer(0); while(FastTimer(0)<=20) { if (SENSOR_2 < BLACK){ turn_left; ClearTimer(0); } else if (SENSOR_2 < WHITE){ go_f; ClearTimer(0); } else { OnRev(OUT_C);OnFwd(OUT_A); } } Off(OUT_AC);Wait(100); set_power_low; OnRev(OUT_C); Wait(20); OnRev(OUT_C);Wait(40);OnFwd(OUT_A);Wait(40); go_f; Wait(20); repeat(2){ SetSensor(SENSOR_2, SENSOR_LIGHT); ClearTimer(0); while(FastTimer(0)<=20) { if (SENSOR_2 < BLACK){ turn_left; ClearTimer(0); } else if (SENSOR_2 < WHITE){ go_f; ClearTimer(0); } else { OnRev(OUT_C);OnFwd(OUT_A); } } set_power_low; OnRev(OUT_C); Wait(20); go_f; Wait(20); } SetSensor(SENSOR_2, SENSOR_LIGHT); ClearTimer(0); while(FastTimer(0)<=20) { if (SENSOR_2 < BLACK){ turn_left; ClearTimer(0); } else if (SENSOR_2 < WHITE){ go_f; ClearTimer(0); } else { OnRev(OUT_C);OnFwd(OUT_A); } } Off(OUT_AC);Wait(100); set_power_low; OnRev(OUT_C); Wait(20);OnRev(OUT_C);Wait(55);OnFwd(OUT_A);Wait(55); go_f; Wait(30);set_power_low; OnFwd(OUT_B);Wait(100);Off(OUT_AC);Wait(500); set_power_low; OnRev(OUT_C); Wait(30);OnRev(OUT_A);Wait(30); OnRev(OUT_C);Wait(100);OnFwd(OUT_A);Wait(100); SetSensor(SENSOR_2, SENSOR_LIGHT); ClearTimer(0); while(FastTimer(0)<=20) { if (SENSOR_2 < BLACK){ turn_left; ClearTimer(0); } else if (SENSOR_2 < WHITE){ go_f; ClearTimer(0); } else { OnRev(OUT_C);OnFwd(OUT_A); } } Off(OUT_AC);Wait(100);set_power_low; OnRev(OUT_A);Wait(45);OnFwd(OUT_C);Wait(45); SetSensor(SENSOR_2, SENSOR_LIGHT); ClearTimer(0); while(FastTimer(0)<=20) { if (SENSOR_2 < BLACK){ turn_left; ClearTimer(0); } else if (SENSOR_2 < WHITE){ go_f; ClearTimer(0); } else { OnRev(OUT_C);OnFwd(OUT_A); } } set_power_low; OnRev(OUT_C); Wait(20); go_f; Wait(70); Off(OUT_AC);Wait(100000); } 机上では書けても、実際はうまく行かないことが多かった。 すべてのライントレースを一つのプログラムで行った。