- 追加された行はこの色です。
- 削除された行はこの色です。
[[2013a/Member]]
*ロボットの紹介 [#t1e80d59]
test
1
2
3
**4 [#xcc2cd10]
-5-1
-5-2
*コース攻略法 [#u89cc0ea]
*プログラムの説明 [#sdeaed12]
#define CENTER 45
#define CCC 8300
#define SPEED_H 46
#define SPEED_L 26
#define turn_R Off(OUT_B); OnFwd(OUT_C,SPEED_L);
#define turn_L Off(OUT_C); OnFwd(OUT_B,SPEED_L);
#define turn_SR OnRev(OUT_B,SPEED_L); OnFwd(OUT_C,SPEED_L);
#define turn_SL OnRev(OUT_C,SPEED_L); OnFwd(OUT_B,SPEED_L);
#define go_F OnFwd(OUT_BC,SPEED_H);
#define STEP 1
#define nMAX 300
#define short_break Off(OUT_BC);Wait(1000);
#define CROSS_TIME 400
#define cross_line OnFwd(OUT_B,SPEED_L);OnFwd(OUT_C,SPEED_L);Wait(CROSS_TIME);short_break;
#define cross OnFwd(OUT_C,SPEED_L);OnFwd(OUT_B,SPEED_L);Wait(CROSS_TIME+200);short_break;
#define go_b OnFwd(OUT_B,-50);OnFwd(OUT_C,-50);
task main()
{
SetSensorLight(S1);
SetSensorTouch(S3);
int n=0,count = 0;
long t = 0;
if(t >= 0){
t = CurrentTick();
while(true){
if(SENSOR_1 < CENTER-9){
if(SENSOR_1 < CENTER-19){
turn_L;
}else{
turn_SL;
}
}else if(SENSOR_1 < CENTER+2){
//go_F;
}else{
if(SENSOR_1 < CENTER){
turn_SR;
}else{
turn_R;
}
}
Wait(STEP);
if(CurrentTick() - t > 14820){
break;
}
}
}
OnFwd(OUT_A,-30);
Wait(600);
Off(OUT_A);
Off(OUT_B); OnFwd(OUT_C,SPEED_L+10);
Wait(1000);
while(true) {
while(n < nMAX) {
if(SENSOR_1 < CENTER-12) {
turn_SR;
n++;
} else {
if(SENSOR_1 < CENTER-6) {
turn_R;
} else if(SENSOR_1 < CENTER+6) {
go_F;
} else if(SENSOR_1 < CENTER+12) {
turn_L;
} else {
turn_SL;
}
n=0;
}
Wait(STEP);
}
short_break;
turn_SL;Wait((nMAX)*STEP-100);
cross;
n=0;
break;
}
while(true) {
while(n < nMAX) {
if(SENSOR_1 < CENTER-12) {
turn_SL;
n++;
} else {
if(SENSOR_1 < CENTER-6) {
turn_L;
} else if(SENSOR_1 < CENTER+6) {
go_F;
} else if(SENSOR_1 < CENTER+12) {
turn_R;
} else {
turn_SR;
}
n=0;
}
Wait(STEP);
}
short_break;
turn_SR;Wait(nMAX*STEP);
cross_line;
n=0;
count++;
if(count == 3) break;
}
t=CurrentTick();
while(true) {
while(CurrentTick()-t <= CCC) {
if(SENSOR_1 < CENTER-12) {
if(CurrentTick()-t >= CCC){
break;
}
turn_SL;
} else {
if(CurrentTick()-t >= CCC){
break;
}
if(SENSOR_1 < CENTER-6) {
if(CurrentTick()-t >= CCC){
break;
}
turn_L;
} else if(SENSOR_1 < CENTER+6) {
go_F;
} else if(SENSOR_1 < CENTER+12) {
if(CurrentTick()-t >= CCC){
break;
}
turn_R;
} else {
turn_SR;
}
if(CurrentTick()-t >= CCC){
break;
}
}
Wait(STEP);
}
if(CurrentTick()-t >= CCC){
break;
}
}
go_F;
Wait(300);
OnFwd(OUT_A,30);
Wait(300);
Off(OUT_A);
go_b;
Wait(300);
turn_SR;
Wait(2000);
while(true) {
while(n < nMAX) {
if(SENSOR_1 < CENTER-12) {
turn_SL;
} else {
if(SENSOR_1 < CENTER-6) {
turn_L;
} else if(SENSOR_1 < CENTER+6) {
go_F;
} else if(SENSOR_1 < CENTER+12) {
turn_R;
} else {
turn_SR;
}
n=0;
}
Wait(STEP);
}
}
*まとめ [#se9d32be]