[[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);//モーターを回転させボールを押し込む
 }
 }

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS