[[2013a/Member/kawa43/]] *ロボットの紹介 [#n493d26f] できる限りライトセンサーの位置を車体に近づけてアームが出っ張りにくいようにしたり本体を縦にしてコンパクトにした。 また重心が高くなると動いた時のブレが大きくなるので質量の大きいモーターをできる限り低位置に設置して重心が低くなるようにした。 #ref(2013a/Member/kawa43/Mission1/robot1.jpg,5%,車体); *コース攻略法 [#s52ee4ac] -円を回るときと直角を曲がるときと交差点をどうプログラムに判断させるか -つかんだりはなしたりするタイミング *プログラムの紹介 [#bc8aef1d] #define SPEED 30 #define white 65 #define fwhite 55 #define fblack 45 #define black 40 #define speed 20 #define lturn_right OnFwd(OUT_C,40);OnFwd(OUT_B,20); #define lturn_left OnFwd(OUT_B,40);OnFwd(OUT_C,20); #define turn_right OnRev(OUT_B,speed);OnFwd(OUT_C,SPEED); #define turn_left OnFwd(OUT_B,SPEED);OnRev(OUT_C,speed); #define STEP 1 #define go_forward OnFwd(OUT_BC,SPEED+20); #define nMAX 200 #define short_break Off(OUT_BC); Wait(1000); #define CROSS_TIME 1500 #define cross_line OnFwd(OUT_BC,speed);Wait(CROSS_TIME);short_break; task main() { SetSensorLight(S3); int nOnline=0; while (true) { while (nOnline < nMAX) { if (SENSOR_3 < black) { turn_left; nOnline++; } else { if (SENSOR_3 < black){ turn_left; } else if (SENSOR_3 < fblack){ lturn_left; } else if (SENSOR_3 < fwhite){ go_forward; } else if (SENSOR_3 < white){ lturn_right; } else { turn_right; } nOnline=0; } Wait(STEP); } short_break; turn_right; Wait(nMAX*STEP); cross_line; nOnline=0; } } *まとめ [#ld9f5eb8] ロボットを作り始めた時それぞれの部品をどのように使っていくかよくわからず全然組み立てることが出来なかったが作っていくうちに部品の使いかたがわかってきて作れるようにはなったのだがバランスの問題やキャッチする部分とモーターの接続や車体の大きさを考慮したロボットがなかなか上手く作れなかった。プログラムの方はロボットを作る方に時間をかけすぎてまったく課題の要件を満たすようなプログラムが作れなかった。