目次

課題3 懐中電灯に向かってブロックを投げるロボット

   1. 全方向から懐中電灯の方向を探しだし、懐中電灯を狙ってブロックを投げる。方向を定めたのち、
      懐中電灯の30cm以内に近づかない範囲で必要な距離を移動してもよい。懐中電灯は動かさないが、
      いろいろな距離や方向にある懐中電灯に対応できるロボットにすること

ロボット

ロボットの制作過程

ディファレンシャルギア.JPG

今回は、モーターを二つしか使えないってことで、上の写真のような ディファレンシャルギアとゆうものを使います。

まずギアの部分は、下の写真のように組み立てます。

手順1.JPG
手順2.JPG

あとは、車体を創って、タイヤをつけます。

手順3.JPG
手順4.JPG
手順5.JPG

ここで、 右側のギアのつけ方と左側のつけ方が異なるのと、 右、左のストッパーのつけ方に、注目すると、

1)右側のギア

ギアのつけ方(右).JPG

2)左側のギア

ギアのつけ方(左).JPG

3)右側のストッパー

ストッパー(右).JPG

4)左側のストッパー

ストッパー(左).JPG

また、 後ろの車輪を見ると、

後ろの車輪.JPG

これは、レゴの、マニュアルに書いてあったものを若干アレンジしたものです。

さらに!、 ホイールを投げる肝心なパーツを紹介します。 ロケットパンチってゆうものから閃いて創りました。

ミサイル装置.jpg

モーターにつながるでかいギアが時計回りすると、

ミサイル装置2.jpg

ホイールを固定していた棒が、抜けてロケットパンチ発射!です。

完成したロボット

全体像.JPG
全体像2.JPG
後ろ姿.JPG

今回もロボットのヴィジュアル面に気合を入れて創ってみました。

ロボット作成において工夫した点

やっぱり、モーターを縦につなげて創ったのと、 ホイールを投げる仕組みが工夫した点です。

モーターを縦につなごうとしたのは、「ただ、みんなと違うふうにしたいなぁ」って 思ったからですが、

ロケットパンチは、 なんか、投石器みたいな仕組みで飛ばしたとき、どうも飛んでくれなくて、困ってまして、「輪ゴムで飛ばせたらいいなぁ」と思ったことから創ってみました。

プログラムの説明

恵のプログラム

#define THRESHOLD 50                                     //閾値
#define MAX 65
#define GO OnRev(OUT_A); Wait(10); Float(OUT_A); Wait(10); OnFwd(OUT_A); Wait(10); Float(OUT_A); Wait(10); Off(OUT_A); 

task main()
{ 
  SetSensor(SENSOR_1,SENSOR_LIGHT);                             //センサー1は光センサー
  SetSensor(SENSOR_3,SENSOR_LIGHT);                              //センサー3は光センサー
  Int move_count = 0;                                         //変数に0を代入 
  
while(move_count == 0){                                     //変数が0の間
 if((SENSOR_1<THRESHOLD) || (SENSOR_3<THRESHOLD))                        //値が49以下のとき
 {OnRev(OUT_C);}                                         //その場で回転する

if( (SENSOR_1>=THRESHOLD)&&(SENSOR_1<MAX) )||( (SENSOR_3>=THRESHOLD)&&   (SENSOR_3<MAX) )
  {
  {                         
while(((SENSOR_1>=THRESHOLD)&&(SENSOR_1<MAX))||((SENSOR_3>=THRESHOLD)&&(SENSOR_3<MAX)))
   { GO;                                   //値が50以上、65未満の時ジグザグに前へ進む
               until(((SENSOR_1>= 53)||(SENSOR_3>= 53)); 
               until((SENSOR_1>=MAX)||(SENSOR_3>=MAX)));
   }}
 
 if ((SENSOR_1>MAX) || (SENSOR_3>MAX))                             //値が65以上の時
  {Off(OUT_C);Wait(30);OnFwd(OUT_A);        //センサー1とセンサー3が65以上になるまで車体前方を持ち上げる
   until((SENSOR_1>MAX)&&(SENSOR_3>MAX));
   Off(OUT_A);Wait(50);OnRev(OUT_B);Wait(50);Off(OUT_B);Float(OUT_A);          //トリガーが引かれタマが飛ぶ
   (move_count);move_count = move_count +1;                         //変数が1になって停止する
   }
}
}

感想、反省点

なんかグループの人が、急に来なくなって自分ひとりで

ホムペから、レゴ創りまで、全てやることになったので、

思ったより大変だった。

でも意外と上出来(自分なりに)だったと思う。

コメント

コメントよろしくお願いしますm(_ _)m

  • ロボットの説明は、このページだけを見て作れそうなくらい詳しくて、とても良いです。プログラムに関しては、貼り付け時のミスと思われるところ(カッコの数が合わなかったり、(move_count);という命令(?)があったりするところ)があるので、もう一度見直してみてください。 -- こさか? 2009-08-10 (月) 21:21:17
  • ロボットの説明が詳しくてよいです。プログラムの方はいくつか直した方が良い点があります。最も明るい方向を探し出せているでしょうか?
    中盤以降はもうすこしすっきりさせられると思います。フローチャートなどを書いて整理してもう一度考えてみてください
    また、move_countという変数を使わなくても、breakですむと思います -- FI? 2009-08-12 (水) 19:37:11


添付ファイル: file全体像2.JPG 333件 [詳細] file全体像.JPG 259件 [詳細] fileストッパー(左).JPG 254件 [詳細] fileストッパー(右).JPG 263件 [詳細] fileギアのつけ方(左).JPG 280件 [詳細] fileギアのつけ方(右).JPG 277件 [詳細] file手順5.JPG 275件 [詳細] file手順4.JPG 284件 [詳細] file手順3.JPG 256件 [詳細] file手順2.JPG 297件 [詳細] file手順1.JPG 290件 [詳細] fileミサイル装置2.jpg 290件 [詳細] fileミサイル装置.jpg 278件 [詳細] fileディファレンシャルギア.JPG 465件 [詳細] file後ろの車輪.JPG 283件 [詳細] file後ろ姿.JPG 282件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2009-09-01 (火) 18:06:52 (3643d)