*課題2 [#d1ba60d2] #ref(./2019a-mission2.png,50%,コース) A地点を出発し、次のいずれかの経路を黒い線にそって動くロボットを作成する (他のメンバーとは別の経路になるようにする)。 A地点から出発 → B → C(直進) → D(一時停止の後、直進) → E → F → G(一時停止の後、右折) → H → I → J(右折) → K(左折) → L(ピンポン玉をつかむ) → K(直進) → M(一時停止) → シュート→ A地点に入る(ゴール) 私は上のコースを選びました. *プログラムについて [#o3817c79] #define gray 41 //灰色の値 #define turn_rightL OnFwd(OUT_A); OnRev(OUT_C); //右旋回 #define turn_leftL OnFwd(OUT_C); OnRev(OUT_A); //左旋回 #define go OnFwd(OUT_AC); //直進 #define turn_rightS OnFwd(OUT_A); Off(OUT_C); //右折 #define turn_leftS OnFwd(OUT_C); Off(OUT_A); //左折 動きの定義の部分。明るさは中間値を決めてそれに足し引きをしていきます。 sub follow_line() { SetSensor(SENSOR_2,SENSOR_LIGHT); ClearTimer(0); while(FastTimer(0)<23){ if (SENSOR_2 > gray +7){ turn_rightL; ClearTimer(0); } else if (SENSOR_2 > gray +3){ turn_rightS; ClearTimer(0); } else if (SENSOR_2 > gray){ go; ClearTimer(0); } else if (SENSOR_2 > gray -3){ turn_leftS; ClearTimer(0); } else { turn_leftL } } Off(OUT_AC); Wait(50); } ライントレースのサブルーチンです。 *ロボットについて [#x39489af] ロボット全体の写真.冊子に書いてあるものを少し改良して,車体の幅を狭くした.前方にはピンポン玉をつかむためのアームと光センサーを取り付けている. #ref(./image1.jpeg,50%,ロボット全体) アーム部分を拡大した画像.歯車を3つかみ合わせてモーターとの距離をとることで光センサーの邪魔をしないようにした.また,ある程度車体の向きがずれても玉をつかめるように支えを取り付けた. #ref(./image2.jpeg,50%,アーム部分)