2007a/MemberOnly/進行状況A

Counter: 1317, today: 1, yesterday: 0

課題2:黒い線に沿って動くロボット

アンジェリカ&たけぽん

☆課題のPOINT☆

ラインレースのコース紹介  カエルコース

S3700181.JPG
梅雨の季節になりました。
うっとうしい雨と考えるか、恵みの雨と考えるか、それは人それぞれ。
でもほとんどの人が、雨は嬉しくないもの。
そこで、そんな梅雨が少しでも楽しくなるように、
今回コースには季節感を考え、カエルをモチーフに作りました。
曲がる部分が多いので、チョット複雑なコースになっています。

ロボットの紹介

ロボットのベースとなった2台

S3700169.JPG←光センサーのみS3700166.JPG←タッチセンサーのみ

この2台をもとに新しいロボットを作りだした。 ただし、ただ付け加えるだけでは、速さが不十分であると感じたので、タイヤを変更し、ベース部分も無駄な部分は取り払った。

最新型

S3700182.JPG

プログラムの紹介

プログラム自体はそんなに長くはならないが、基本的な動きに充実であるように組んだ。 しかし、交差点の時の為の細かい調整は必要だった。

モーターA 車体左側の動力担当 順回転で前進
モーターC 車体右側の動力担当 順回転で前進
センサー1 光センサー 車体左側の監視を担当
センサー2 タッチセンサー マシン前方の中央に設置
センサー3 光センサー 車体右側の監視を担当

プログラム

#define THRESHOLD 42   
#define RUN_TIME 150   
#define GOGO OUT_A+OUT_C   // define a gogo as onfwd
task main ()
{
   SetSensor(SENSOR_1, SENSOR_LIGHT);
   SetSensor(SENSOR_2, SENSOR_TOUCH);
   SetSensor(SENSOR_3, SENSOR_LIGHT);   // define a sensor as light n touch
   
   OnFwd(GOGO); 
   while(true){
         if((SENSOR_1 >= THRESHOLD) && (SENSOR_3 >= THRESHOLD)){
            OnFwd(GOGO);                                       // when they find themself in white ground go ahead
         }else if((SENSOR_1 < THRESHOLD) && (SENSOR_3 >= THRESHOLD)){
            OnFwd(OUT_C);
            OnRev(OUT_A);                                           // when they find themself in black line on their right go right
         }else if((SENSOR_1 >= THRESHOLD) && (SENSOR_3 < THRESHOLD)){
            OnFwd(OUT_A);
            OnFwd(OUT_C);                                            // when the  find themself in black line on their left go left
         }else if((SENSOR_1 < THRESHOLD) && (SENSOR_3 < THRESHOLD)){
            OnFwd(GOGO);                                              // when they find themself in black line on both go ahead
         }
       if(SENSOR_2 == 1)
         {
           OnRev(OUT_A+OUT_C);
           Wait(200);
           Off(OUT_C);
           OnFwd(OUT_A);
           Wait(250);
           Off(OUT_A);
           OnFwd(OUT_C);          // when they was touched by somthing, wait a sec and turn right and go straight
           Wait(250);
         }
}
}
//if(SENSOR_2 == 1)
 {
  Off(OUT_A+OUT_C);
  Wait(100);
  OnFwd(OUT_C);
  OnRev(OUT_A);
  Wait(180);
  Fwd(OUT_A);    // in a case we can use this source on the end of the program

苦労、工夫した点

反省&感想

先生、TAの方々のコメント

些細なことでも、何かお気付きになられましたら、コメントの方お願いしますm(_ _)m



添付ファイル: fileロボット 001.JPG 183件 [詳細] fileleft-.jpg 167件 [詳細] fileright-.jpg 166件 [詳細] fileright.jpg 176件 [詳細] filenone.jpg 172件 [詳細] fileleft.jpg 215件 [詳細] fileboth.jpg 172件 [詳細] fileS3700185.JPG 192件 [詳細] fileS3700184.JPG 167件 [詳細] fileS3700183.JPG 184件 [詳細] fileS3700182.JPG 354件 [詳細] fileS3700181.JPG 311件 [詳細] fileS3700171.JPG 187件 [詳細] fileS3700169.JPG 348件 [詳細] fileS3700167.JPG 172件 [詳細] fileS3700166.JPG 341件 [詳細] fileS3700164.JPG 188件 [詳細] fileS3700163.JPG 143件 [詳細]

トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2007-06-29 (金) 12:57:25