2011a

メンバー紹介

くまちゃん

マシン改良はほとんど(?)担当。

まえだ

命名は全部担当。

マシン紹介

1代目:サイクロン1号

マシンのヘッド部分にペンを取り付けたが、回転後のペン先と回転前のペン先とで、ズレが発生したため断念。

画像すらない幻の機体。

画像がないのは忘れていた幻だからだ。

2代目:サイクロン2号

マシンの中心部分にペンを取り付けて、回転する前と後でペン先がずれなかったので、このカスタマイズで行くことにした。

また、ペンを中心にしたおかげでドライブベースを設置するところに困り、苦肉の策で後にリアカーみたいなイメージでつけることにした。

しかし結局ドライブベースに付けた後輪の摩擦が多きすぎて小回りがきかないのと、移動性が悪いので断念。

DSC_0004.JPG

3代目:ロナウド

機動性をあげるために、本体の前輪とドライブベースにつけた後輪を外した。

おかげで俊敏な動きをしてくれるようになった。

DSC_0016.JPG

4代目:リチャード3世

4代目なのに3世。

3代目ではドライブベースを引きずってしまう形になってしまっていたので、旋回があまり良くなかった。

なので代わりに支えを付け、1点のみ引きずるようにしたところ、旋回の点も改善された。

考案はくまちゃん。

命名はまえだ。

DSC_0021.JPG

仕組み

キレのある動きにするために元々4輪だったのを2輪にした。

ペンの上げ下げには次のような仕組みを使用した。

上げ下げするのはあえて単純な仕組みにした。

DSC_0029.JPG

また、ドライブベースを完璧に結合させるために図のようにした。

DSC_0025.JPG

マシン紹介にもあったように初めはドライブベースを引きずるような形になっていたのを図のように補助を付けて1点で引きずるようにしたので、旋回するときに機敏に曲がるようにした。

DSC_0026.JPG

プログラミング

くまちゃん

定義した動き

#define TURN_TIME 35
#define KYUKAKUDO_TIME 50
#define NANAME_JIKAN 38
#define CHOKKAKU_TIME 75
#define T 25
#define Y 20
#define X 40
#define Z 10
#define U 0
#define B 36
#define K 25
#define W 15
#define turn_left OnRev(OUT_A);OnFwd(OUT_C);Wait(TURN_TIME);Off(OUT_A+OUT_C);//左折 
#define turn_right OnFwd(OUT_A);OnRev(OUT_C);Wait(TURN_TIME);Off(OUT_A+OUT_C);//右折
#define chokkaku_left OnRev(OUT_A);OnFwd(OUT_C);Wait(CHOKKAKU_TIME);Off(OUT_A+OUT_C);//直角に左折
#define chokkaku_right OnFwd(OUT_A);OnRev(OUT_C);Wait(CHOKKAKU_TIME);Off(OUT_A+OUT_C);//直角に右折   
#define hutuu_go(K) OnFwd(OUT_A+OUT_C);Wait(B);Off(OUT_A+OUT_C);//普通の前進
#define go_straight(T) OnRev(OUT_A+OUT_C);Wait(U);Off(OUT_A+OUT_C);OnFwd(OUT_B);Wait(Z);Off(OUT_B);OnFwd(OUT_A+OUT_C);Wait(T);Off(OUT_A+OUT_C);OnFwd(OUT_B);Wait(T);Off(OUT_B);       //後進してから前進
#define yaya_left OnRev(OUT_A);OnFwd(OUT_C);Wait(NANAME_JIKAN);Off(OUT_A+OUT_C);//少し左折
#define yaya_right OnFwd(OUT_A);OnRev(OUT_C);Wait(NANAME_JIKAN);Off(OUT_A+OUT_C);//少し右折
#define kyuu_left OnRev(OUT_A);OnFwd(OUT_C);Wait(KYUKAKUDO_TIME);Off(OUT_A+OUT_C);//急角度で左折
#define kyuu_right OnFwd(OUT_A);OnRev(OUT_C);Wait(KYUKAKUDO_TIME);Off(OUT_A+OUT_C);//急角度で右折
#define tsugou_left OnRev(OUT_A);OnFwd(OUT_C);Wait(Y);Off(OUT_A+OUT_C);//都合合わせの左折
#define tsugou_righgt OnFwd(OUT_A);OnRev(OUT_C);Wait(Y);Off(OUT_A+OUT_C);//都合合わせの右折
#define sukoshi_left OnRev(OUT_A);OnFwd(OUT_C);Wait(X);Off(OUT_A+OUT_C);//微小時間左折
#define pen_down OnFwd(OUT_B);Wait(K);Off(OUT_B);//ペンをあげる
#define pen_up OnRev(OUT_B);Wait(Z);Off(OUT_B);//ペンを下げる

動きの命令

顔の輪郭

task main(){
go_straight(T);
yaya_left;
go_straight(T);
yaya_left;
go_straight(2*T);
yaya_left;
go_straight(3*T);
yaya_left;
chokkaku_left;
go_straight(T);
chokkaku_right;
go_straight(3*T);
yaya_left;
go_straight(T);
yaya_left;
go_straight((5/2)*T);
yaya_left;
go_straight(T);
turn_left;
go_straight(3*T);

目、鼻、口

chokkaku_left;
pen_down;
hutuu_go(K);
pen_up;
hutuu_go((1/2)*K);
pen_down;
hutuu_go(K);
pen_up;
chokkaku_left;
chokkaku_left;
hutuu_go(2*K);
chokkaku_right;
hutuu_go((1/2)*K);
pen_down;
hutuu_go(K);
pen_up;
hutuu_go((1/2)*K);
chokkaku_left;
pen_down;
hutuu_go(2*K);
pen_up;} 

まえだ

定義した動き

#define TTA 72 //直角回転
#define TTB 36 //45度回転
#define go_straight(t) OnFwd(OUT_A+OUT_C);Wait(t);Off(OUT_A+OUT_C); //t秒間前進
#define go_back(t) OnRev(OUT_A+OUT_C);Wait(t);Off(OUT_A+OUT_C); //t秒間後進
#define turn_left(t) OnRev(OUT_A);OnFwd(OUT_C);Wait(t);Off(OUT_A+OUT_C); //t秒間左旋回
#define turn_right(t) OnFwd(OUT_A);OnRev(OUT_C);Wait(t);Off(OUT_A+OUT_C); //t秒間右旋回
#define pen_down OnFwd(OUT_B);Wait(9);Off(OUT_B); //ペンを下げる
#define pen_up OnRev(OUT_B);Wait(3);Off(OUT_B); //ペンを上げる

動きの命令

task main()
{

//face //輪郭

pen_down;
go_straight(150);
pen_up;
turn_left(TTA);
pen_down;
go_straight(100);
pen_up;
turn_left(TTA);
pen_down;
go_straight(150);
pen_up;
turn_left(TTA);
pen_down;
go_straight(100);
pen_up;

//hair //髪の毛

turn_right(25);
pen_down;
go_back(60);
pen_up;
turn_left(TTA);
pen_down;
go_back(80)
pen_up;
turn_left(25);
go_straight(90);
turn_right(TTA);

//eye //目

pen_down;
go_straight(30);
pen_up;
go_straight(20);
pen_down;
go_straight(30);
pen_up;

//nose //鼻

turn_right(TTB);
go_back(60);
turn_right(TTB);
pen_down;
go_back(30);
pen_up;
turn_left(TTB);
go_back(30);
turn_left(TTB);

//mouse //口

pen_down
go_straight(40);
pen_up
 
}

できるだけマクロを使ってすっきりとしたプログラミングになるように心がけた。

変数を多用することにより修正するの面倒だが、細かな動きができるようにした。

完成した絵

くまちゃん

予想図

DSC_0035.JPG

完成

DSC_0036.JPG

顔の輪郭から口がはみ出してしまった。

まえだ

予想図

DSC_0033.JPG

完成図

DSC_0031.JPG

思っていたよりも左にずれてしまった。

また髪の毛が眉毛みたいになってしまっている…。

ペンについて

ペンは4本買いました。作ってみたロボットにあうペンを色々試してみました。

最終的には、太く文字が書けるペンでペンにガムテープまいて調整しました。

反省

くまちゃん

もっと簡単にプログラミングできて、動かすことができるだろうと慢心していました。それが最大の失敗要因です。また、課題にとりかかるのが遅かったことも反省すべき点でした。

プログラミングでは無駄な定義を多く作ってしまい、使わないものが多かったです。

次回からは、もっとすっきりと必要なプログラミングだけでできるようにしようと思います。

まえだ

反省点としては1番に取り組み始めるのが遅すぎたところにある。

後、ロボットの改良に次ぐ改良でプログラミングの修正を余儀なくされて、微調整に時間を割けなかったこともである。

次回は今回の反省を生かした課題作りをしたいと思う。

まとめ(感想)

くまちゃん

プログラミングに予想以上に時間がかかり、方向転換するための時間調整とペンの調整が難しかったです。

ロボット製作に関しては、二人で幾種類の試行錯誤重ねた上での完成形なので自身あります!!

今回の課題では、たくさんんの時間がかかり、大変でしたがパートナーと協力し、楽しく制作できたのがよかったです。

次からはもっと早めに課題に取り組もうと思います。

まえだ

結果的には反省点の多い結果になってしまったが、相方と苦しみながらも楽しんで取り組めたと思う。

ただ残念な結果になってしまったので、次回の課題は満足のいく成果が出るようにしていきたい。

コメント

コメントをお願いします。

  • 多少長くなっても分かりやすい定数名や変数名を使いましょう。 -- 松本 2011-05-20 (金) 19:56:12


今日:1

昨日:1

総合:&counter([total|today|yesterday]);

オンライン:1


添付ファイル: fileDSC_0026.JPG 74件 [詳細] fileDSC_0029.JPG 69件 [詳細] fileDSC_0036.JPG 61件 [詳細] fileDSC_0035.JPG 73件 [詳細] fileDSC_0033.JPG 64件 [詳細] fileDSC_0031.JPG 66件 [詳細] fileDSC_0025.JPG 75件 [詳細] fileDSC_0024.JPG 62件 [詳細] fileDSC_0022.JPG 62件 [詳細] fileDSC_0021.JPG 77件 [詳細] fileDSC_0016.JPG 84件 [詳細] fileDSC_0004.JPG 91件 [詳細]

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