[[2008a/A3]]
#contents

* [#g1594bb3]


*光の方向に向かって移動してブロックを投げるロボット [#ka7d8a69]
**容姿 [#wfa16116]
前
#ref(2008a/A3/課題3右/front aaa.JPG,100%,)      
#ref(2008a/A3/課題3右/front aaa.JPG,100%,)~      
光りセンサーを前にできるだけベストな幅をしっかり考えて取り付けました。

後ろ
#ref(2008a/A3/課題3右/back aaa.JPG,100%,)      
#ref(2008a/A3/課題3右/back aaa.JPG,100%,)~      
後ろにおおきく振り投げます。
#ref(2008a/A3/課題3右/side aaa.JPG,100%,)      
#ref(2008a/A3/課題3右/side aaa.JPG,100%,)~      
かなりの軽量化に成功しました。

基部
#ref(2008a/A3/課題3右/base aaa.JPG,100%,)   
#ref(2008a/A3/課題3右/base aaa.JPG,100%,)~   
ギアーを上手く使いスムーズに滑らかに動くようにしました。

プログラム3のとき
#ref(2008a/A3/課題3右/program3 aaa.JPG,100%,)   
#ref(2008a/A3/課題3右/program3 aaa.JPG,100%,)~   
50センチの棒を取り付け上手く課題をクリアーできるように工夫しました。

**プログラム [#fca55faa]
***プログラム1 [#nca4558c]
 task main()
 {
     SetSensor(SENSOR_1, SENSOR_LIGHT);   //センサーをセットする
     OnFwd(OUT_C);     //  C 出力に接続されたモータを正回転させる
  
     until (SENSOR_1 > 50) ;   // センサの値が50以上(適当に調節)になるまで
                                  // 次の命令を実行しない
     Off(OUT_C);   //  止まる
     
     OnRev(OUT_A);     //  A 出力に接続されたモータを回転させる
     Wait(20);     //投げる
     Off(OUT_A);   //終わり
     
 }
***プログラム2 [#ed0036d0]
 task main()
 {
   SetSensor(SENSOR_1,SENSOR_LIGHT);
   SetSensor(SENSOR_3,SENSOR_LIGHT);  //センサー1と3を光センサーと宣言 
 
  while(true){
    if(SENSOR_1<SENSOR_3){   //左のほうが強い光を感知したら左折
      OnRev(OUT_C); 
     }else{                   //右のほうが強い光を感知したら右折
      OnFwd(OUT_C);
    }
  }
   OnFwd(OUT_C);    //前進   
 
  until (SENSOR_1 > 50) ;   // センサの値が50以上(適当に調節)になるまで
                                  // 次の命令を実行しない
   Off(OUT_C);   //  止まる
     OnRev(OUT_A);     //  A 出力に接続されたモータを回転させる
     Wait(20);     //投げる
     Off(OUT_A);   //終わり 
  }

***プログラム3 [#p6e1f566]
 task main()
 {
 SetSensor(SENSOR_1,SENSOR_LIGHT);
 SetSensor(SENSOR_2,SENSOR_TOUCH);
 SetSensor(SENSOR_3,SENSOR_LIGHT);  //センサー1と3を光センサーと宣言  
 
  while(true){
    if(SENSOR_1<SENSOR_3){   //左のほうが強い光を感知したら左折
      OnRev(OUT_C); 
     }else{                   //右のほうが強い光を感知したら右折
      OnFwd(OUT_C);
    }
  }
   OnFwd(OUT_C);    //前進 
 
 until (SENSOR_1 > 50) ;   // センサの値が50以上(適当に調節)になるまで
                                  // 次の命令を実行しない  
 
  Off(OUT_C);   //  止まる
     
    until(SENSOR2 == 2) 
     
     OnRev(OUT_A);     //  A 出力に接続されたモータを回転させる
     Wait(20);     //投げる
     Off(OUT_A);   //終わり 
 } 
**プログラム全体の流れ [#p99ae854]
***プログラム1 [#wfe60a6d]
とりあえず回る。強い光を感じたらブロックを投げる。
***プログラム2 [#q7342b03]
とりあえず回る。強い光の方に向かってはしる。光がとまって近づいたら投げる。
***プログラム3 [#fb35b9e7]
とりあえず回る。強い光に向かってはしる。光が止まったら近づいてタッチセンサーに反応したら投げる。
**使ったセンサーの働き [#rbe5d055]
***プログラム1 [#m304d9d1]
強い光を感じ取る。
***プログラム2 [#a5182b80]
強い光を感じ取る。どちらにあるかも感じ取る。
***プログラム3 [#u2908614]
強い光を感じ取る。どちらにあるかも感じ取る。センサーにぶつかったかも感じ取る。
**困った点 [#ee78bdfe]
***全体 [#v2e206cb]
時間がない。
***プログラム1 [#r81a7983]
>と<が逆だったのを気づかなかくて時間がかかった。5分ほど。それ以外特に問題はなかった。
***プログラム2 [#a6255a0a]
光の強さをはかるのが結構手こずった。
***プログラム3 [#o1a6d178]
50センチをどうするか非常に悩んだ。逆転の発想だと思った。
**工夫した点 [#j7249b59]
軽くすることにしていい動きをよくした。なげるのもいいと思う。白いブロックがクレーンの発送はよく思いついたと自画自賛できる作品になっています。
**コメントをお願いします [#pd04b238]
#comment

課題1では相対的に最も明るい方向を探すようにしてください。~
あと、できればロボットの写真に詳しい説明を入れてください。I

---------------



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