ロボットの外形
基本構造のロボットにペンをあげさげする構造をロボットの進行方向に装着した。
進むパーツはタイヤを用いて、曲線をうまく書ける様にした。
進むパーツはタイヤを用いて、曲線をうまく書ける様にした。
ペンを持たせる構造
モーターから直接力をかけてペンをあげさげする。
どうしてもペンの重さで、あげた瞬間に下がってしまうので、途中にタイヤを輪ゴムでつけた。
#define back(t) OnRev(OUT_A+OUT_C); Wait(t); Off(OUT_A+OUT_C); //tだけ後退する #define go(t) OnFwd(OUT_A+OUT_C); Wait(t); Off(OUT_A+OUT_C); //tだけ前進する #define turn_l(t) OnFwd(OUT_A); OnRev(OUT_C); Wait(t); Off(OUT_A+OUT_C); //tだけ左に曲がる #define turn_r(t) OnFwd(OUT_C); OnRev(OUT_A); Wait(t); Off(OUT_A+OUT_C); //tだけ右に曲がる #define age SetPower(OUT_B,3); OnFwd(OUT_B); Wait(30); Off(OUT_B); //ペンを上げる #define sage SetPower(OUT_B,2); OnRev(OUT_B); Wait(30); Off(OUT_B); //ペンを下げる task main() { sage; turn_r(30); turn_l(60); turn_r(30); age; //口を描く go(30); //移動 sage; go(30); age; //鼻を描く back(30); turn_r(85); go(50); //移動 sage; go(30); age; go(25); sage; go(30); age; //目を描く back(60); turn_l(170); go(50); //移動 sage; go(200); age; //前髪を描く }
#define circle OnFwd(OUT_A); OnRev(OUT_C); Wait(400); Off(OUT_A+OUT_C); //円を描く #define back(t) OnRev(OUT_A+OUT_C); Wait(t); Off(OUT_A+OUT_C); //tだけ後退する #define go(t) OnFwd(OUT_A+OUT_C); Wait(t); Off(OUT_A+OUT_C); //tだけ前進する #define turn_l(t) OnFwd(OUT_A); OnRev(OUT_C); Wait(t); Off(OUT_A+OUT_C); //tだけ左折する #define turn_r(t) OnFwd(OUT_C); OnRev(OUT_A); Wait(t); Off(OUT_A+OUT_C); //tだけ右折する #define age SetPower(OUT_B,3); OnFwd(OUT_B); Wait(30); Off(OUT_B); //ペンを上げる #define sage SetPower(OUT_B,1); OnRev(OUT_B); Wait(30); Off(OUT_B); //ペンを下げる task main() { sage; circle; age; //円を使って輪郭を描く go(20); //移動 sage; turn_l(20); turn_r(40); turn_l(20); age; //口を描く go(40); //移動 sage; go(20); age; //鼻を描く back(10); turn_r(85); go(50); //移動する sage; go(30); age; go(25); sage; go(30); age; //目を描く }
・ペンを持たせる構造
・なるべく定義を用いてプログラムを簡単にする。
・プログラムの微調整が少し面倒だった。
・ペンがロボットの中心軸からずれていて、線がうまく引けない。
→ロボットを縦型にする、または高さをつける。
・ペンを持たせる構造が単純すぎて、スピードが速い。
→ペンを持たせる構造にギアをかませる。
・似顔絵に特徴が出ない。
→特徴を探す????
・やってみると以外と難しく、時間だけが過ぎていった。
解決されてない問題点がたくさんあったので、次は解決したい。
良かった点
改善点