[[2017a/Member]] *課題について [#b551f234] **右折ルート [#w9fb12af] *ロボットについて [#pa074fe5] | &ref(2017a/Member/takato/Mission2/taka.jpg,50%);&br;テスト | &ref(2017a/Member/takato/Mission2/to.jpg,50%);&br;あ | &ref(2017a/Member/takato/Mission2/su.jpg,50%);&br;てすと | &ref(2017a/Member/takato/Mission2/ki.jpg,50%);&br;テスト | &ref(2017a/Member/takato/Mission2/zu.jpg,50%);&br;あ *プログラムについて [#q6d5df60] **define [#r2bc4ac1] #define THRESHOLD 45 #define SPEED_H 40 #define SPEED_L 25 #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_H, -SPEED_H); #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 #define nMAX 100 #define short_break Off(OUT_BC); Wait(1000); #define CROSS_TIME 200; #define cross_line RotateMotor(OUT_BC,35,122); #define turn_right60 RotateMotor(OUT_BC,25,40); RotateMotor(OUT_C,24,170); #define turn_right45 RotateMotor(OUT_C,25,400); RotateMotor(OUT_B,24,-250); #define turn_left90 RotateMotor(OUT_B,25,20); #define turn_left60 RotateMotor(OUT_BC,25,70);RotateMotor(OUT_B,25,240);RotateMotor(OUT_C,25,-170); #define turn_left80 RotateMotor(OUT_BC,25,70); RotateMotor(OUT_B,25,240); **subrutine [#b8aefbec] sub asd() { SetSensorLight(S3); int nOnline=0; while (nOnline < nMAX) { if (SENSOR_3 < THRESHOLD-11) { turn_right1; nOnline++; } else { if (SENSOR_3 < THRESHOLD-7) { turn_right0; } else if (SENSOR_3 < THRESHOLD+7) { go_forward; } else if (SENSOR_3 < THRESHOLD+15) { turn_left0; } else { turn_left1; } nOnline=0; } Wait(STEP); } Off(OUT_BC); PlaySound(SOUND_UP); turn_right60; nOnline=0; } sub ksd() { SetSensorLight(S3); int nOnline=0; while (nOnline < nMAX) { if (SENSOR_3 < THRESHOLD-11) { turn_left1; nOnline++; } else { if (SENSOR_3 < THRESHOLD-7) { turn_left0; } else if (SENSOR_3 < THRESHOLD+7) { go_forward; } else if (SENSOR_3 < THRESHOLD+15) { turn_right0; } else { turn_right1; } nOnline=0; } Wait(STEP); } PlaySound(SOUND_DOWN); turn_left90; nOnline=0; } sub csd() { SetSensorLight(S3); int nOnline=0; while (nOnline < nMAX) { if (SENSOR_3 < THRESHOLD-11) { turn_left1; nOnline++; } else { if (SENSOR_3 < THRESHOLD-7) { turn_left0; } else if (SENSOR_3 < THRESHOLD+7) { go_forward; } else if (SENSOR_3 < THRESHOLD+15) { turn_right0; } else { turn_right1; } nOnline=0; } Wait(STEP); } Off(OUT_BC); PlaySound(SOUND_UP); short_break; turn_right60; nOnline=0; } sub dsd() { SetSensorLight(S3); int nOnline=0; while (nOnline < nMAX) { if (SENSOR_3 < THRESHOLD-11) { turn_left1; nOnline++; } else { if (SENSOR_3 < THRESHOLD-7) { turn_left0; } else if (SENSOR_3 < THRESHOLD+7) { go_forward; } else if (SENSOR_3 < THRESHOLD+15) { turn_right0; } else { turn_right1; } nOnline=0; } Wait(STEP); } Off(OUT_BC); PlaySound(SOUND_UP); turn_right1; Wait(nMAX*STEP); turn_left80; nOnline=0; } sub msd() { SetSensorLight(S3); int nOnline=0; while (nOnline < nMAX) { if (SENSOR_3 < THRESHOLD-11) { turn_right1; nOnline++; } else { if (SENSOR_3 < THRESHOLD-7) { turn_right0; } else if (SENSOR_3 < THRESHOLD+7) { go_forward; } else if (SENSOR_3 < THRESHOLD+15) { turn_left0; } else { turn_left1; } nOnline=0; } Wait(STEP); } Off(OUT_BC); PlaySound(SOUND_DOWN); cross_line; nOnline=0; } sub gsd() { SetSensorLight(S3); int nOnline=0; while (nOnline < nMAX) { if (SENSOR_3 < THRESHOLD-11) { turn_right1; nOnline++; } else { if (SENSOR_3 < THRESHOLD-7) { turn_right0; } else if (SENSOR_3 < THRESHOLD+7) { go_forward; } else if (SENSOR_3 < THRESHOLD+15) { turn_left0; } else { turn_left1; } nOnline=0; } Wait(STEP); } PlaySound(SOUND_UP); turn_right60; nOnline=0; } sub wsd() { SetSensorLight(S3); int nOnline=0; while (nOnline < nMAX) { if (SENSOR_3 < THRESHOLD-11) { turn_left1; nOnline++; } else { if (SENSOR_3 < THRESHOLD-7) { turn_left0; } else if (SENSOR_3 < THRESHOLD+7) { go_forward; } else if (SENSOR_3 < THRESHOLD+15) { turn_right0; } else { turn_right1; } nOnline=0; } Wait(STEP); } turn_left60; nOnline=0; } sub vsd() { SetSensorLight(S3); int nOnline=0; while (nOnline < nMAX) { if (SENSOR_3 < THRESHOLD-11) { turn_right1; nOnline++; } else { if (SENSOR_3 < THRESHOLD-7) { turn_right0; } else if (SENSOR_3 < THRESHOLD+7) { go_forward; } else if (SENSOR_3 < THRESHOLD+15) { turn_left0; } else { turn_left1; } nOnline=0; } Wait(STEP); } Off(OUT_BC); turn_right45; nOnline=0; } sub xsd() { SetSensorLight(S3); int nOnline=0; while (nOnline < nMAX) { if (SENSOR_3 < THRESHOLD-11) { turn_left1; nOnline++; } else { if (SENSOR_3 < THRESHOLD-7) { turn_left0; } else if (SENSOR_3 < THRESHOLD+7) { go_forward; } else if (SENSOR_3 < THRESHOLD+15) { turn_right0; } else { turn_right1; } nOnline=0; } Wait(STEP); } Off(OUT_BC); PlaySound(SOUND_DOWN); cross_line; nOnline=0; } **メインタスク [#vbef8b70] task main () { asd(); ksd(); csd(); dsd(); msd(); msd(); gsd(); wsd(); vsd(); gsd(); ksd(); csd(); dsd(); asd(); msd(); msd(); } *問題点 [#n1f1e00f] ロボットのセンサーを近づけようとした結果、センサーをしっかりと固定できず、たまに反応しなくなったり、反応しすぎてしまったりすることがあります。 *最後に [#b11ef7f4]