【現在編集中です】

>ちょっとした接続トラブルで遅れました。
申し訳ないです。

#contents

*目的 [#t6b2d6a8]

黒いラインに沿って動くロボットを作成する。




*手段 [#a42fd4f3]

RC2を使用

**コース [#rc85d36b]
#ref(081120_182510.jpg)

**マシン [#y401a416]
(マシン写真&説明。何枚必要?)
#ref(081209_213121.jpg)


・上から見た全体図


#ref(081204_165653[1].jpg)


・飾りのない全体像

***工夫した点 [#eb7dc61a]

・光センサの読み取り幅を、レゴの凸凹で固定するのではなく、

軸を通すことによって臨機応変に幅を調節できるようにしてある。

#ref(081204_165725[1].jpg)


*↑↓光センサの可動部分


#ref(081204_165725[1].gif)


*プログラム [#hbfb1c42]





・その2

 #define THRESHOLD 47 //閾値
 int stop_line;
      
 task main ()
 {
 SetSensor(SENSOR_1,SENSOR_LIGHT);//光センサ
 SetSensor(SENSOR_3,SENSOR_LIGHT);//光センサ
 SetSensor(SENSOR_2,SENSOR_TOUCH);//タッチセンサ
 stop_line = 0;//交差点カウント
 while(stop_line < 13) { //交差点通行数12=2周

 if ((SENSOR_1 > THRESHOLD)&&(SENSOR_3 > THRESHOLD))
 {OnFwd(OUT_A+OUT_C);}//両方白→前進

 if((SENSOR_1 < THRESHOLD)&&(SENSOR_3 > THRESHOLD))//左が線上→左に回転
          {
                    OnFwd(OUT_C);
                    OnRev(OUT_A);
         }

 if((SENSOR_1 > THRESHOLD)&&(SENSOR_3 < THRESHOLD))//右が線上→右に回転
           {
                    OnRev(OUT_C);
                    OnFwd(OUT_A);
         }
   
 if((SENSOR_1 < THRESHOLD)&&(SENSOR_3 < THRESHOLD)){//両方が線上→一旦停止
         Off(OUT_A+OUT_C);
         Wait(300);
         OnFwd(OUT_A+OUT_C);Wait(45);
        stop_line = stop_line + 1;
     }

 if(SENSOR_2 == 1){//タッチセンサオン→少し下がって一旦停止
        OnRev(OUT_A+OUT_C); 
        Wait(20);
        Off(OUT_A+OUT_C);
        Wait(300);
        OnFwd(OUT_A+OUT_C);Wait(30);
        stop_line = stop_line + 1;
     }
 } 

 Off(OUT_A+OUT_B+OUT_C);//二周回って終了
 }
      

*結果 [#dfa17b1b]
(動画がいけそうなら動画ペタリ)

・残念ながらここに動画は張り付けられないが、きちんと作動することが確認できた。


*考察/感想 [#xe36f72a]
  
  
・最初に書いたプログラムが全く動かなかったため、最初から打ち直さなくてはならずやや焦った。

(行っての感想/考察)
・結果的にそれなりに満足な動きと見た目になったため、よかったと思う。


#comment


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