もくじ

メンバー

課題

 各チームで作成したコースを1周するロボットを製作せよ。交差点以外のコース上に350mlの空の空き缶を2個以上おき、空き缶にぶつかった時には次のような動作するプログラムを作成せよ。

  1.空き缶をコース上に戻して再びコースに戻って進む
  2.空き缶を次の交差点まで運んで行き、その交差点に空き缶を残してさらにコースに 沿って進む

ロボット

アーム

缶をしっかりとつかめるように、ブロックを増やして頑丈にしました。

20100629210055.jpg
 
20100629210120.jpg

とても雄々しく猛々しいアームですね。

 
20100629210203.jpg

バンパー

20100701095003.jpg とても雄々しいバンパー

 

20100701095532.jpg

光センサー

20100701094854.jpg

黒線を挟む形にしました。間隔が広過ぎたため、カーブを曲がりきれません・・・。

 
20100708174921.jpg

そこで、光センサーの間隔を狭めに改良。

工夫点

アームをスムーズに動かすために、タイヤを付けました。 
タイヤの重さによりゆっくりと動くようになりました (ごつくなりました^_^; )。

20100629210320.jpg

雄々しいタイヤですね。

コース

100624_1616~01.jpg

プログラム

D のプログラム

空き缶をコース上に戻して再びコースに戻って進むプログラム

#define up OnFwd(OUT_B);  //アームを上げる
#define down OnRev(OUT_B); //アームを下げる
#define turn OnFwd(OUT_A);OnRev(OUT_C);Wait(122);Off(OUT_A+OUT_C);  //180°回転
#define go OnFwd(OUT_A+OUT_C);  //直進
#define THRESHOLD 40  //闘値を40に設定
task main ()
{
 SetSensor(SENSOR_1,SENSOR_LIGHT);  //光センサーを1にセット
 SetSensor(SENSOR_2,SENSOR_TOUCH);  //タッチセンサーを2にセット
 SetSensor(SENSOR_3,SENSOR_LIGHT);  //光センサーを3にセット

 start line_trace;
while (true) {
              start line_trace;          //ライントレースを始める

              until(SENSOR_2 == 1);      //タッチセンサーが反応すると
              stop line_trace;           //ライントレースをやめる
              {Off(OUT_A+OUT_C);     //いったん停止
               down;Wait(60);Off(OUT_B); //アームを下げる
               turn;           //180°回転
               up;Wait(60);Off(OUT_B);  //アームを上げる
               turn;           //180°回転
             }
             }
}
task line_trace()
{go;
 while (true) { if((SENSOR_1<THRESHOLD)&&( SENSOR_3<THRESHOLD))//センサ−1と3が黒線上にきたら1.0秒止まってから直進する
                 {Off(OUT_A+OUT_C);Wait(100);go;Wait(100);}                
                if(SENSOR_1<THRESHOLD)//センサー1が黒線上にきたら
                 {OnFwd(OUT_C);OnRev(OUT_A);//左へ曲がる
                 } 
                if(SENSOR_3<THRESHOLD)//センサー3が黒線上にきたら
                 {OnFwd(OUT_A);OnRev(OUT_C);}//右へ曲がる
                if((SENSOR_1>THRESHOLD)&&( SENSOR_3>THRESHOLD))
                 {go;}
               

  }

}

キングオブハートのプログラム

アキカンを見つけたら交叉点まで連れていくプログラム

#define MIGI SENSOR_1
#define HIDARI SENSOR_3
#define HANIKAMI SENSOR_2
  
#define Shusei Wait(5)  //
#define Huriorosi OnFwd(OUT_B);Wait(60);  //アームふりおろし

sub Kaihou()  //アキカンを交差点に置いていく一連の動作
{
   OnFwd(OUT_A+OUT_C);Wait(60);
   Off(OUT_A+OUT_C);
   OnFwd(OUT_A);OnRev(OUT_C);Wait(120);
   OnRev(OUT_B);Wait(60);
   OnRev(OUT_A+OUT_C);Wait(120);   
   Off(OUT_A+OUT_C);OnFwd(OUT_A);OnRev(OUT_C); 
 }

task main ()
{
   SetSensor(MIGI,SENSOR_LIGHT);  // 右光センサー
   SetSensor(HIDARI,SENSOR_LIGHT);  // 左光センサー
   SetSensor(HANIKAMI,SENSOR_TOUCH);  // タッチセンサー
   
    
   while (true)      
   {
     OnFwd(OUT_A+OUT_C);  //前進      
     if (MIGI < 50 && HIDARI < 50)  //黒線を横切ろうとしたならば
        {
          OnFwd(OUT_A+OUT_C);Wait(60);  //マシンを少し直進させて完全に黒線を越える
        } 

     if (HIDARI < 5)  //もしも左センサーが黒線に乗っているならば
        {
          Float(OUT_A);Shusei  //右に若干方向修正
        }
     if (MIGI < 5 ) //もしも右センサーが黒線に乗っているならば
        {  
          Float(OUT_C);Shusei  //左に若干方向修正
        }  
     if (HANIKAMI == 1 )  //もしも前部にアキカンがぶつかっているならば
        { 
          Huriorosi  //それを捕まえる
          start Prince();  //「プリンス」実行
        }

}
 
sub Prince()   //アキカンを持っているときの諸動作 
  while (true)
  {
   if (MIGI < 5 && HIDARI < 5 && HANIKAMI == 1 )  //もしも黒線を横切ろうとしたならば
     {
       Kaihou
     }
   if (HIDARI < 5)  //もしも左センサーが黒線に乗っているならば
     {
       Float(OUT_A);Shusei  //右に若干方向修正
     }
   if (MIGI < 5 ) //もしも右センサーが黒線に乗っているならば
     {  
       Float(OUT_C);Shusei  //左に若干方向修正
 }        
} 

感想

D

前回よりも難しかった。缶をどう動かすか考えるのが大変だった。

キングオブハート 

もっとマシンをオリジナリティ全開に仕上げたかった。発想力を高めて、次の課題では夢のロボットを造りたい。

コメント

コメントをどうぞ



添付ファイル: file100624_1616~01.jpg 330件 [詳細] file20100708174921.jpg 274件 [詳細] file20100701094854.jpg 297件 [詳細] file20100701095532.jpg 291件 [詳細] file20100701095003.jpg 276件 [詳細] file20100629210203.jpg 310件 [詳細] file20100629210120.jpg 304件 [詳細] file20100629210055.jpg 387件 [詳細] file20100629210320.jpg 307件 [詳細]

トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2010-07-12 (月) 18:20:14