[[2014a/Member]] 目次 #contents *課題の説明 [#q316f020] 詳しい説明は[[2014a/Mission1]]を見てください。 *メンバー [#n5ce0733] dai mame * ロボット本体 [#db4e1456] 写真の挿入方法&ref(2014a/Member/dai/Mission1/sample2-small.jpg.30%); [[image.jpg]] ** drive base [#v4772f44] **arm [#z3d76455] &ref(2014a/Member/dai/Mission1/image.jpeg.30%); **light sensor [#uc7ab4ed] *プログラム [#j9f1fbc4] #define THRESHOLD 45//しきい値 #define SPEED_H 40//高速 #define SPEED_L 30//低速 #define OnRL(speedR,speedL) OnFwd(OUT_B,speedR); OnFwd(OUT_C,speedL); #define go_forward OnRL(SPEED_H,SPEED_H);//直進 #define turn_left1 OnRL(SPEED_L,-SPEED_L);//左旋回 #define turn_left0 OnRL(SPEED_L,0);//左折 #define turn_right0 OnRL(0,SPEED_L);//右折 #define turn_right1 OnRL(-SPEED_L,SPEED_L);//右旋回 #define STEP 1 //1回の判断で動作させる時間 #define nMAX 140 //通常のカーブとして許容できる繰り返しの最大値 #define short_break Off(OUT_BC); Wait(1000);//小休止 #define CROSS_TIME 200//交差点通過にかかる時間 #define cross_line OnRL(SPEED_L,SPEED_L); Wait(CROSS_TIME); short_break;//交差点通過 #define Catch Off(OUT_BC);OnFwd(OUT_A,60);Wait(500);Off(OUT_A);//ボールキャッチ #define Shot Off(OUT_BC);OnRev(OUT_A,100);Wait(500);Off(OUT_A);//シュート task main() { SetSensorLowspeed(S4); if (SensorUS(S4)<=8) {Catch;} SetSensorLight(S1); int nOnline=0 ;//続けて黒になった回数 int nCrossline=0;//交差点を通過した回数 while (true) { while (nOnline < nMAX) { if (SENSOR_1 < THRESHOLD-18){ turn_left1; nOnline++; } else if (SENSOR_1 < THRESHOLD-10) { turn_left0 ; } else if(SENSOR_1 < THRESHOLD-3) { go_forward; } else if (SENSOR_1 < THRESHOLD+3) { turn_right0; } else { turn_right1; } nOnline=0; } Wait(STEP); } short_break; turn_right1; Wait(nMAX*STEP); cross_line; nCrossline++; nOnline=0; nCrossline>=5; Shot; nCrossline=0; } *反省・感想 [#g085b8ca] アームはうまく作れたと思うが、プログラミングができず苦労した。