2009a課題1、似顔絵ロボット

目次

メンバー紹介

  • SYO:主にホームページの作成担当
  • Y.Y:主にロボットの製作担当

課題内容

ペンを持てるロボットを作り、パートナーの似顔絵を作成するプログラミングを完成させよ!   By Boss松本

ロボット作成

本体

本体は、キットの説明書に書いてある基本的なロボットの本体をつくり、そこから足とペン持ちの部分を組み上げていきました。

初めは左の写真のように組み上げていましたがペンがすぐズレたり、本体がとても壊れやすいものでした。

そこからたくさんの改良を繰り返して右の写真のように生まれ変わりました。

しかし、この形はプログラムを送信する際パーツが結構邪魔になっていました。(;_;)

苦労して作ったペン持ちの部分だったので、プログラムを送信する際の手間は目をつぶることとしました。

すごく‥‥‥前気味です。(重心的な意味で)

090515_1927~01.jpg→→→→→→→→→→→→→→→ 090522_1855~01.jpg

これもキットの説明書に書いてある基本ロボットのキャタピラータイプを作成し、本体と合体させました。

見た目は戦車っぽくていかにもロボット!しかし、似顔絵を描くにはあまりよろしくないことが判明。

(小回りがきかない!and紙面がキャタピラの跡だらけ!)

なので四輪駆動に変更!かなりスマートな感じに。

タイヤにすることで紙面上での動きがかなりスムーズになりました。

090518_1609~0002.jpg

ペンを持つところ

このパーツが一番苦労した部分の一つです。

本体、足の部分は説明書に従って制作していけば必ずちゃんとしたロボットになりました。

しかし、ペンを持つ部分はヒントとして先輩方の写真があったものの、パーツの組み立ては自分たちのオリジナル。

説明書なしで制作することが苦手な僕にはかなりの課題となりました。

ギアを使ってペンを上下させるというのは初めから考えていましたが、

それをどのように本体につけるか、ペンをどのように固定するか、

特にペンの固定は最後まで苦労させられました。

調整を繰り返し、しっかりと固定することに成功しました。

090522_1848~01.jpg

あと、ゴムを使用しギアがきちんと噛み合うようにすることでペンの上げ下げをスムーズにすることができました。

090522_1848~02.jpg

プログラミング

  • SYOのプログラミング
sub turn_left(){OnRev(OUT_C);Wait(100);Off(OUT_C);}    //左回転          
sub turn_right(){OnFwd(OUT_C);Wait(100);Off(OUT_C);} //右回転
sub zensin(){OnRev(OUT_A+OUT_C);Wait(50);Off(OUT_A+OUT_C);} //後ろに直進
sub around(){OnFwd(OUT_A);OnRev(OUT_C);Wait(600);Off(OUT_A+OUT_C);} //円を描く
sub pen_up(){OnFwd(OUT_B);Wait(30);Off(OUT_B);} //ペンを持ち上げる
sub pen_down(){OnRev(OUT_B);Wait(30);Off(OUT_B);} //ペンを下げる

 task main()

 {pen_down();
  around();  //輪郭を描く
  zensin();  //右目を描く
  pen_up();
  OnRev(OUT_A+OUT_C);
  Wait(30);
  Off(OUT_A+OUT_C);
  pen_down();
  zensin();  //左目を描く
  pen_up();
  turn_left();
  OnFwd(OUT_A+OUT_C);
  Wait(100);
  Off(OUT_A+OUT_C);
  turn_right();
  pen_down();
  zensin();  //口を描く
  }
  
  • Y.Yのプログラミング
    #define TURN_TIME 112
    #define turn_left OnRev(OUT_A);OnFwd(OUT_C);Wait(TURN_TIME);Off(OUT_A+OUT_C);  //90°左回転 
    #define turn_right OnRev(OUT_C);OnFwd(OUT_A);Wait(TURN__TIME);Off(OUT_A+OUT_C);   //90°右回転
    #define go_straight(t) OnFwd(OUT_A+OUT_C);Wait(t);Off(OUT_A+OUT_C);  //前進
    #define pen_up OnFwd(OUT_B);Wait(20);Of(OUT_B);     //ペンを上げる
    #define pen_down OnRev(OUT_B);Wait(20);Off(OUT_B);     //ペンを下げる
    #define back(t) OnRev(OUT_A+OUT_C);wait(t);(OUT_A+OUT_C);  //後退
    #define line OnFwd(OUT_C);OnRev(OUT_A);Wait(30);Off(OUT_A+OUT_C); 
                 OnFwd(OUT_A);OnRev(OUT_C);Wait(30);Off(OUT_A+OUT_C);  //短いラインを描く
sub glass_write  //眼鏡を描く
{go_straight(50);
 line;
 go_straight(50);
 line;
 go_straight(10);
 line;
 go_straight(50);
 line;
 go_straight(50);
 }
task main()
{glass_write();     //眼鏡を描く
 pen_up;     //ペンを上げる
 back(25);     //後退
 turn_left;     //90°左回転
 pen_down;     //ペンを下げる
 back(20);     //鼻を描く
 pen_up;     //ペンを上げる
 go_straight(40);     //前進
 pen_down;     //ペンを下げる
 line;     //口を描く
 pen_up;     //ペンを上げる
 go_straight(80);     //前進
 turn_left     //90°左回転
 pen_down;     ペンを下げる
 OnFwd(OUT_C); 
 Wait(1000);     //輪郭を描く
 Off(OUT_C);
 }

完成図

蛍光ペンで書いてしまったため、写真では見にくくなってしまいました。横の写真が蛍光ペンで書かれたラインをわかりやすくなぞったものです。

  • SYOの作ったパートナーの似顔絵

090518_1810~0001.jpg→→→→→→→→→ e.jpg

パートナーには失礼だが、無口なところを口を直線で書くことで表現しました。いかがでしょうか?

  • Y.Yの作ったパートナーの似顔絵

090518_1811~0001.jpg→→→→→→→→→ e2.jpg

眼鏡をどのように描くか、それが自分の中の課題でした。

色々考えた結果、今のプログラムができました。

眼鏡を描く部分は自分でも満足しています。

本体を少し回転させることで直線に近い線を描けるlineのプログラムはかなり便利でした。

TURN_TIMEや前進や後退のtは何度も繰り返して、今の数値をいれました。

ただ、少しかすれてしまったのが残念です。

感想

  • SYOの感想

プログラムを作るのは生れてはじめてだったため、授業時間内に完成させることができずとても焦りました。

しかし、パートナーが専らロボットの改造に取り組んでくれたおかげでプログラミングに集中して取り組め、

時間外ではあったものの、何とか似顔絵を描くところまでいくことができました。

(弁明すると僕はホームページをがんばりました。WW)

パートナーには感謝しています。

  • Y.Yの感想

ペンをどのようにして上下に動かすか、これは本当に悩みました。

ペンを持たせるイメージは頭の中にあったが、なかなかそれを形にすることができず、かなり時間がかかりました。

試行錯誤の結果、なんとか線を描くこととペンを上下させるぐらいのレベルに至りました。

似顔絵は眼鏡を描くのが苦労しましたが、プログラムは結構簡潔にできました。

思っていたよりもロボットがスムーズに動いたため少し感動しました。

ホームページ制作はパートナーが懸命にやってくれていたため、とても助かりました。

パートナーに感謝です。m(_ _)m

このホームページに関するご意見や、感想などお待ちしております(SYO&Y.Y)

  • マクロやサブルーチンを使えているのは良いと思います。できれば、レゴのみを使ってペンを固定しましょう。書くべきことはかいているので、もっと詳しく図を使ったりなどして、より優れたレポートにしましょう。 -- FI? 2009-05-21 (木) 20:20:27
  • ロボットの説明、プログラムの説明両方とも、良く書けていると思います。が!「ペン以外はキットに含まれる部品を使うこと。」が課題の条件なのでなんとか直してください! -- こさか? 2009-05-21 (木) 23:14:42
  • キットに含まれる部品を使用しペンを固定しました。ページも少し改善しました。 -- Y.Y? 2009-05-22 (金) 18:18:50
  • ペンの固定が改善されて良かったです。画像を載せるときになぞらなくてもよいようなペンで描いたほうがいいかもしれませんね。 -- こさか? 2009-05-29 (金) 00:02:17
  • ペンの固定をきちんとしてなおしてよかったです。全体的に説明が詳しくてよかったです -- FI? 2009-06-12 (金) 03:33:32


添付ファイル: file090522_1848~01.jpg 215件 [詳細] file090522_1848~02.jpg 229件 [詳細] file090522_1855~01.jpg 221件 [詳細] file090515_1927~01.jpg 220件 [詳細] file090522_1644~0001.jpg 145件 [詳細] filee2.jpg 201件 [詳細] file090518_1811~0001.jpg 234件 [詳細] filee.jpg 220件 [詳細] file090518_1810~0001.jpg 216件 [詳細] file090518_1609~0002.jpg 244件 [詳細] file090518_1610~0001.jpg 122件 [詳細] file090518_1610~0002.jpg 132件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2009-06-12 (金) 03:35:15