[[2016a/Member]] *ロボット本体 [#ma1bbdc3] ペンをタイヤで挟んで持ち上げる方式にした。ペンがRISのおしりに丁度来るようになっている。 #ref(2016a/Member/Mick/Mission1/1465488932740.png,100%,顔ロボ1) #ref(2016a/Member/Mick/Mission1/1465488933560.png,100%,顔ロボ2) ○苦労した点 ・モーターにつけるためのブロックがない →ゴムで対応(反則な気はしている) ・後ろに重心がいき過ぎないようにした。 ○反省点、改善点 ・ペンの位置:ペン位置が回転で移動してしまうので、タイヤ脇に設置するとうまく行った可能性がある。考えなしに設置せず、どう動かす動きに対して相性がいい位置を探す必要があった。 ・タイヤがデフォルト:半径が大きい動きをしてしまう。ギアやタイヤを変更しもっと小回りの利く車体にすべきであった。またそのことによってペンを持ち上げるタイヤを大きいゴムの強いものを利用できもっとペンが安定したのではないか。 *書きたかったもの [#z3ffb903] 円を基本とし髪型を重視したもの。書き順は番号の通り。 #ref(2016a/Member/Mick/Mission1/1465494991768.png,100%,顔) *プログラム [#tf939526] **定義 [#ad20cc75] #define GO_FOWARD(t) OnFwd(OUT_AC);Wait(t);Off(OUT_AC); #define BACK(t) OnRev(OUT_AC);Wait(t);Off(OUT_AC); #define TURN_RIGHT(t) OnFwd(OUT_A);Off(OUT_C);Wait(t);Off(OUT_A); #define TURN_LEFT(t) OnFwd(OUT_C);Off(OUT_A);Wait(t);Off(OUT_C); #define ROTATION_RIGHT(t) OnFwd(OUT_A);OnRev(OUT_C);Wait(t);Off(OUT_AC); #define ROTATION_LEFT(t) OnFwd(OUT_C);OnRev(OUT_A);Wait(t);Off(OUT_AC); #define PEN_UP OnFwd(OUT_B);Wait(20);Off(OUT_B); #define PEN_DOWN OnRev(OUT_B);Wait(25);Off(OUT_B); TURNは片方のタイヤを止めており半径が大きく、ROTATIONは片方のタイヤを逆回転させる。 PEN_DOWNのほうが時刻が長いのは確実に接地するため。 **プログラム [#q234cd00] 前/後進:50cm/3.5秒、旋回:8秒/1周、回転:5回/18秒 と計測。電池残量によって変わってしまったので少し歪である。 task main () { PEN_DOWN; Wait(100); TURN_RIGHT(622); //1画目。 PEN_UP; Wait(100); ROTATION_RIGHT(130); GO_FOWARD(60); ROTATION_LEFT(60); //頑張ってペン先合わせている。ずらして円を描くイメージで中心をずらし、その円が重なるところから線を引いて髪の毛の先を表す。以下画数の間のプログラムはすべてペン合わせである。 PEN_DOWN; Wait(100); TURN_LEFT(200); //2画目。 PEN_UP; Wait(100); ROTATION_LEFT(130); ROTATION_RIGHT(120); PEN_DOWN; Wait(100); TURN_RIGHT(150); //3 PEN_UP; Wait(100); OnRev(OUT_A);Off(OUT_C);Wait(180);Off(OUT_A); GO_FOWARD(84); ROTATION_LEFT(15); PEN_DOWN; Wait(100); TURN_LEFT(90); //4 PEN_UP; Wait(100); ROTATION_LEFT(90); BACK(53); PEN_DOWN; Wait(100); TURN_LEFT(200); //5 PEN_UP; Wait(100); OnRev(OUT_C);Off(OUT_A);Wait(130);Off(OUT_C); TURN_RIGHT(120) PEN_DOWN; Wait(100); BACK(35); //6 PEN_UP; Wait(100); ROTATION_LEFT(90); PEN_DOWN; Wait(100); GO_FOWARD(35); //7 PEN_UP; Wait(100); ROTATION_LEFT(180); GO_FOWARD(35); ROTATION_LEFT(90); PEN_DOWN; Wait(100); GO_FOWARD(35); PEN_UP; //8 } 直進、180度回転といった実験を繰り返しひたすら計算で値を決定した。 落ち着いたペン運びのためペンの上げ下げ後に間をおいた。 実際に描くプログラムの行数より、ペン先を合わせるためのプログラムの行数が多い。 **ペン先合わせの方法(Gifアニメ) [#u928960b] #ref(2016a/Member/Mick/Mission1/146557288845t_lxJnqtbRTpf1465572860.gif,100%,ペン先) ○反省点 かなり大きさが大きい。先述の通りタイヤを変更する、またはROTATIONを活用するなどするべきであった。また3画目あたりに不要な動作が入っている気もする。 またひたすら長く見づらい。もっと見やすいプログラムの書き方を知る必要がある。 *全体の反省、考察、感想 [#s9575fca] ・だいぶ作品が大きい形になってしまった。もっと小さくするにはタイヤにギアを合わせてなんとかしてタイヤを変えるべきであった。 ・ゴムは今回は欠陥代用であるため先生のもとへ換えを拝借する。(済) ・計算で位置を割り当てて作成したが、いちいち走行や動き位を確認するにつれ電池残量が減り、必要な値が変化してしまった。:一々確認せず計算し尽くしてから電池を利用するなどしてベストを保つ必要があった。 2016.06.10.AM03:00作成 2016.06.11.AM00:41追記(ペン先合わせのGIFアニメ) 2016.06.11.AM00:41追記(ペン先合わせのGIFアニメ、その他補足という名のアピール追加)