- 追加された行はこの色です。
- 削除された行はこの色です。
[[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);//モーターを回転させボールを押し込む
}
}