[[2010b]]

#contents
*ロボットの概要 [#l03e23d4]

#ref(re2.jpg)
ロボットはRCX、台車、ペンの持ち手からなり、下の写真のように簡単に3つの部分に分けることができる。

#ref(re1.jpg)

台車は基本的には説明書通りだが、持ち手の取り付けの関係でコンパクトにした。

ペンの上げ下げはモーターの回転を歯のあるブロックで上下運動にすることで行う。ペンは枠組みを作り、その中にはいっている。また直角のブロックの穴を利用してペン先を出している。
#ref(re3.jpg)
#ref(re4.jpg)
**製作過程 [#ncd2c3ac]
-初期台車では出っ張り部分がアームの邪魔をしたので、取り外した。その分使えるパーツも増えて良い改善だった。
-持ち手のとモーターのギアがうまく噛み合わず、外れてしまうことが多々あった。そのためギザギザブロックを2ヶ所に取り付け、ギアとの噛み合いがうまくいくように改善した。
-ペンの上げ下げの仕組みについては、3つの案が出た。.織ぅ4つを使う方法、▲ザギザブロックを使う方法、2つのギアを使う方法。
は試作をしてみた。モーターの軸についたギアを2つのギアで挟む。その2つのギアを棒でつなぐ。この状態でモーターを動かすと棒はうまく上下に動いた。次にペンを固定したパーツを棒につけて動かしてみた。手で動かす段階では問題なかったが、モーターで動かすと動きが速すぎるため壊れてしまった。


*プログラム [#d3c3d061]
**伊藤 [#q236f8c7]
はじめ、プログラム全体をすべて書いてからRCXに転送しようとした。が、プログラムがどこかで間違っているらしく転送できなかった。部分ごとに少しずつ書いていくのがいいということを実感した。

 #define pen_up OnRev(OUT_B);Wait(8);Off(OUT_B);//ペンを上げる
 #define pen_down OnFwd(OUT_B);Wait(8);Off(OUT_B);//ペンを下げる
 #define direction(t) OnRev(OUT_C);OnFwd(OUT_A);Wait(t);Float(OUT_A+OUT_C);//回転(時間によって回転角度を決める)
 #define straight(t) OnFwd(OUT_A+OUT_C);Wait(t);Off(OUT_A+OUT_C);Wait(100);//まっすぐ進む

 sub base()
 {
   pen_down;       //ペンを下げる
  repeat(3)
  {
    OnFwd(OUT_A+OUT_C);  // 前髪
    Wait(5);
    Float(OUT_A+OUT_C);
    Wait(30);
    OnRev(OUT_A);
    Wait(60);    
   }
    OnFwd(OUT_A+OUT_C);  //輪郭
    Wait(15);
    OnRev(OUT_A);
    Wait(230);
    Float(OUT_A+OUT_C);
    pen_up;                //ペンを上げる
  }

baseは前髪と顔の輪郭を書くプログラム。前髪はrepeata(3)を使っている。
輪郭は回転の動きによって曲線を書く。

何本かの線をペンを上げ下げしながら書くのは難しいと思ったため、一筆書きになるようにした。

 sub face()
 {
    straight(70);
    pen_down;
    straight(30);     //口
    pen_up;
   direction(90);
   straight(60);
   direction(150);
   straight(130);
   pen_down; 
   straight(20);         //目
   pen_up;
   straight(30);
   pen_down;
   straight(20);         //目
   pen_up;
 }

faceは目と口を書くプログラム。鼻がないし、単なる3本の線になってしまった。

 task main()
 {
   base();     //前髪と輪郭を書く
   face();     //口と目を書く
 }

#ref(nigaoe.jpg)
似顔絵と言うからには、もう少し特徴を描ける細かい動きができればよかったと反省。

**水野 [#t6ba4f29]
 #define pen_down OnRev(OUT_B); Wait(40); Off(OUT_B);//ペン下げ
 #define pen_up OnFwd(OUT_B); Wait(40); Off(OUT_B);//ペン上げ
 #define go(s) OnFwd(OUT_A+OUT_C); Wait(s); Off(OUT_A+OUT_C);//前進
 #define turn(s) OnRev(OUT_A); OnFwd(OUT_C); Wait(s); Off(OUT_A+OUT_C);//回転
 #define back(s) OnRev(OUT_A+OUT_C); Wait(s); Off(OUT_A+OUT_C);//バック
 #define kaku 100
 

 sub face()
 {
   pen_down;//輪郭1 start
   go(100);
   pen_up;//輪郭1 end
   back(20);
   turn(80);
   go(70);
   pen_down;//輪郭2 start
   go(80);
   pen_up;//輪郭2 end
   back(20);
   turn(50);
   go(100);
   pen_down;//輪郭3 start
   go(80);
   pen_up;//輪郭3 end
   back(20);
   turn(68);
   pen_down;//輪郭4 start
   go(140);
   pen_up;//輪郭4 end
 }
上は輪郭のプログラムです。○は嫌だったのでこのようにしたが、線にズレが...
 sub eye()
 {
   go(30);
   pen_down;//目1 start
   go(50);
   pen_up;//目2 end
   go(80);
   pen_down;//目2 start
   go(50);
   pen_up;//目2 end
   go(30);
 }
目の部分です。眼鏡が不可能だったので妥協しました。
 sub mouth()
 {
   pen_down;//口1 start
   go(80);
   pen_up;//口1 end
   back(20);
   turn(120);
   go(120);
   pen_down;//口2 start
   go(80);
   pen_up;//口2 end
 } 
口の部分です。なにも言うことはないです。
 task main()
 {
   face();
   back(30);
   turn(100);
   eye();
   turn(136);
   go(200);
   mouth();
 }
サブルーチンを使うことでtaskmainはスッキリしました。 

#ref(kao_ym.jpg)

*反省 [#v79f2191]
**伊藤 [#mbba32d3]
ロボットの製作で大変だったのは、ペンの上げ下げをどのように行うかという点だった。いくつかの方法を考え、実際に試作してみることで問題点が分かり良かった。また、試運転でも新たな問題点(ギアの噛み合い)が出てきたが、それに対する改善を加えられたので良かったと思う。ただし、まだ改善されてない点もいくつか残っている。
-台車の速度が速くプログラムの微調整が難しい。
-台車が進路角度を変えるときの軸と、ペンの取り付け位置が一致していない。そのことによって、台車とペンの動きにずれが生じる。

プログラムははじめ、ロボットが完成する前に書いたが転送できなかった。間違っているところを見つけようにも、プログラムが長くどこが間違っているのかわからないという事態になってしまい困った。また、実際に動かしてみるなかで時間の微妙な調整を繰り返す作業がたくさんあることがわかった。間違ったところを探すにも、時間の調整をするにも、関数やマクロ、サブルーチンなどを使ってわかりやすいプログラムを書くことが大切だと実感した。

**水野 [#o1d68d08]
ロボの製作も大変だったし、プログラムを組むのは試行錯誤の連続でどんどんやる気を削がれた。課題1なのにギリギリまでやらなくて、こんな調子で大丈夫か?ってなったし、転送しても接触不良で動かなかったり、事前のメンテナンスや計画を怠っていたことは反省する部分だ。
A4用紙ということを考えてなくて大幅に時間を書き直したしたのは痛い時間ロスだった。
発表本番では摩擦や紙がグシャとなって散々な事に、提出までには満足できるプログラムにしたい。輪郭の部分がずれるので前進後、後進させることでズレを抑えた。

*コメント [#s501eb19]
TAKA 反省点が具体的に書かれていて良いと思います。写真に矢印を入れて説明するとさらに良くなると思います。「コメント欄を作っておいて下さい」

FI 部分にわけて説明していくというのは、わかりやすくてよいと思います。また、二人目のプログラムはすっきりまとめられていると思います。改善できる点は以下の通りです。書いた似顔絵の写真があれば、張ってください。一人目のプログラムは、微調整して移動できるようにして、一つのプログラムにまとめてください。また、写真や図に矢印や書き込みをいれるともっとわかりやすくなると思います。
- 内容も増えましたし、わかりやすくまとまっていると思います。さらに良いレポートにするには、授業中に出たようなどうすればなめらかな動きができるか等の議論・考察を加えたりやオリジナルな工夫を前面に出したりしてください。過去のホームページも参考になります -- [[FI]] &new{2010-11-19 (金) 17:10:14};

#comment

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS