2010b

ロボットの概要

re2.jpg

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

re1.jpg

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

ペンの上げ下げはモーターの回転を歯のあるブロックで上下運動にすることで行う。ペンは枠組みを作り、その中にはいっている。また直角のブロックの穴を利用してペン先を出している。

re3.jpg
re4.jpg

製作過程

  • 初期台車では出っ張り部分がアームの邪魔をしたので、取り外した。その分使えるパーツも増えて良い改善だった。
  • 持ち手のとモーターのギアがうまく噛み合わず、外れてしまうことが多々あった。そのためギザギザブロックを2ヶ所に取り付け、ギアとの噛み合いがうまくいくように改善した。
  • ペンの上げ下げの仕組みについては、3つの案が出た。.織ぅ4つを使う方法、▲ザギザブロックを使う方法、2つのギアを使う方法。 は試作をしてみた。モーターの軸についたギアを2つのギアで挟む。その2つのギアを棒でつなぐ。この状態でモーターを動かすと棒はうまく上下に動いた。次にペンを固定したパーツを棒につけて動かしてみた。手で動かす段階では問題なかったが、モーターで動かすと動きが速すぎるため壊れてしまった。

プログラム

伊藤

はじめ、プログラム全体をすべて書いてから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();     //口と目を書く
}
nigaoe.jpg

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

水野

#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はスッキリしました。 

kao_ym.jpg

反省

伊藤

ロボットの製作で大変だったのは、ペンの上げ下げをどのように行うかという点だった。いくつかの方法を考え、実際に試作してみることで問題点が分かり良かった。また、試運転でも新たな問題点(ギアの噛み合い)が出てきたが、それに対する改善を加えられたので良かったと思う。ただし、まだ改善されてない点もいくつか残っている。

  • 台車の速度が速くプログラムの微調整が難しい。
  • 台車が進路角度を変えるときの軸と、ペンの取り付け位置が一致していない。そのことによって、台車とペンの動きにずれが生じる。

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

水野

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

コメント

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

FI 部分にわけて説明していくというのは、わかりやすくてよいと思います。また、二人目のプログラムはすっきりまとめられていると思います。改善できる点は以下の通りです。書いた似顔絵の写真があれば、張ってください。一人目のプログラムは、微調整して移動できるようにして、一つのプログラムにまとめてください。また、写真や図に矢印や書き込みをいれるともっとわかりやすくなると思います。

  • 内容も増えましたし、わかりやすくまとまっていると思います。さらに良いレポートにするには、授業中に出たようなどうすればなめらかな動きができるか等の議論・考察を加えたりやオリジナルな工夫を前面に出したりしてください。過去のホームページも参考になります -- FI? 2010-11-19 (金) 17:10:14


添付ファイル: filenigaoe.jpg 208件 [詳細] filekao_ym.jpg 198件 [詳細] filere1.jpg 180件 [詳細] filere3.jpg 195件 [詳細] filere4.jpg 194件 [詳細] filere2.jpg 199件 [詳細] filere1_4.jpg 101件 [詳細] filere1_3.jpg 104件 [詳細] filere1_2.jpg 104件 [詳細] filere1_1.jpg 125件 [詳細] filerobo5.jpg 99件 [詳細] filerobo4.jpg 135件 [詳細] filerobo3.jpg 112件 [詳細] filerobo2.png 101件 [詳細] filerobo1.jpg 86件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2010-12-03 (金) 17:13:31 (3185d)