[[2008a/MemberOnly/進行状況A]] #contents *ロボコン [#c4b5a1e1] 所定の位置にあるテニスボールを牛乳パックでできた箱まで運び、その箱にボールを入れるロボットを作る。入れる箱によって得点が決まっており、その得点を競い合う。~ くわしいルールは、[[2008a/ロボコン]]参照。 **ロボットの紹介 [#rf8fa134] 1つのロボットにRCXを2つ使って、ボールを運ぶことから牛乳パックにボールを入れることまで1つのロボットでできるようにしました。 *プログラム [#n77620e9] RCX1のプログラム #define SIGNALON 11 // モータ回転のためのメッセージ task main () { SetSensor(SENSOR_1,SENSOR_TOUCH); OnFwd(OUT_A+OUT_C); Wait(200); OnRev(OUT_C); Wait(100); OnFwd(OUT_A+OUT_C); Wait(100);//ボールの場所まで移動 OnRev(OUT_B); Wait(50);//アームでボールを掴む OnRev(OUT_A+OUT_C); Wait(200); OnRev(OUT_A); Wait(100); OnFwd(OUT_A+OUT_C); Wait(200);//ボールをゴールまで運ぶ while(true) { if(SENSOR_1 == 1){ SendMessage(SIGNALON);//センサーが押されたらシグナルを送る Off(OUT_A+OUT_C);//移動をやめる OnFwd(OUT_B);//アームを上げる Wait(50); } } } RCX2のプログラム #define SIGNALON 11 // モータ回転のためのメッセージ task main () { ClearMessage(); // Message()の値を0に初期化 while (true) { until (Message() == SIGNALON); // 11 を受信するまで待つ wait(50);//アームが上がるまで待つ OnFwd(OUT_A);//モーターを回転させボールを押し込む } }