マシン改良はほとんど(?)担当。
命名は全部担当。
マシンのヘッド部分にペンを取り付けたが、回転後のペン先と回転前のペン先とで、ズレが発生したため断念。
画像すらない幻の機体。
画像がないのは忘れていた幻だからだ。
マシンの中心部分にペンを取り付けて、回転する前と後でペン先がずれなかったので、このカスタマイズで行くことにした。
また、ペンを中心にしたおかげでドライブベースを設置するところに困り、苦肉の策で後にリアカーみたいなイメージでつけることにした。
しかし結局ドライブベースに付けた後輪の摩擦が多きすぎて小回りがきかないのと、移動性が悪いので断念。
機動性をあげるために、本体の前輪とドライブベースにつけた後輪を外した。
おかげで俊敏な動きをしてくれるようになった。
4代目なのに3世。
3代目ではドライブベースを引きずってしまう形になってしまっていたので、旋回があまり良くなかった。
なので代わりに支えを付け、1点のみ引きずるようにしたところ、旋回の点も改善された。
考案はくまちゃん。
命名はまえだ。
キレのある動きにするために元々4輪だったのを2輪にした。
ペンの上げ下げには次のような仕組みを使用した。
上げ下げするのはあえて単純な仕組みにした。
また、ドライブベースを完璧に結合させるために図のようにした。
マシン紹介にもあったように初めはドライブベースを引きずるような形になっていたのを図のように補助を付けて1点で引きずるようにしたので、旋回するときに機敏に曲がるようにした。
定義した動き
#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 }
できるだけマクロを使ってすっきりとしたプログラミングになるように心がけた。
変数を多用することにより修正するの面倒だが、細かな動きができるようにした。
予想図
完成
顔の輪郭から口がはみ出してしまった。
予想図
完成図
思っていたよりも左にずれてしまった。
また髪の毛が眉毛みたいになってしまっている…。
ペンは4本買いました。作ってみたロボットにあうペンを色々試してみました。
最終的には、太く文字が書けるペンでペンにガムテープまいて調整しました。
もっと簡単にプログラミングできて、動かすことができるだろうと慢心していました。それが最大の失敗要因です。また、課題にとりかかるのが遅かったことも反省すべき点でした。
プログラミングでは無駄な定義を多く作ってしまい、使わないものが多かったです。
次回からは、もっとすっきりと必要なプログラミングだけでできるようにしようと思います。
反省点としては1番に取り組み始めるのが遅すぎたところにある。
後、ロボットの改良に次ぐ改良でプログラミングの修正を余儀なくされて、微調整に時間を割けなかったこともである。
次回は今回の反省を生かした課題作りをしたいと思う。
プログラミングに予想以上に時間がかかり、方向転換するための時間調整とペンの調整が難しかったです。
ロボット製作に関しては、二人で幾種類の試行錯誤重ねた上での完成形なので自身あります!!
今回の課題では、たくさんんの時間がかかり、大変でしたがパートナーと協力し、楽しく制作できたのがよかったです。
次からはもっと早めに課題に取り組もうと思います。
結果的には反省点の多い結果になってしまったが、相方と苦しみながらも楽しんで取り組めたと思う。
ただ残念な結果になってしまったので、次回の課題は満足のいく成果が出るようにしていきたい。
コメントをお願いします。
今日:1
昨日:0
総合:&counter([total|today|yesterday]);
オンライン:1