これまで住んだことのある都道府県名、市町村名、地区名などの中から2文字以上、かつ合計10画以上のものを選び、それをA4の紙を書くロボットを製作せよ。私は生まれた高田にした。
これが全体の移動イメージ
ペンの上げ下げをモーターで行ったが、本体下部に位置する左右の車輪幅が狭くなっていたので安定した上下運動が行えなかった。本体は前後に動き付属のペンを取り付けたモーター部分が左右に動くことになる ペンは左右に動くような設計にした。だが接続が緩く、初めに整えてやらねばスムーズに動かなかった。右と左に動くのだが途中で負荷がかかり線がゆがんでしまうので調節に苦労した。
画像の青四角で囲まれた部分はペンをつけたモーターの部分である
赤丸の部分でペンを動かす。オレンジ枠にペンを固定した
ショベルカーとほぼ同じ構造で、ショベルの部分にペンを取り付けた形となった。唯一違う点は軸をつけて動きを固定化させたところのみだ。
それぞれのモーターにギアをかませて、できるだけ正確に細かく調節できるようにした。そのおかげか試作のプログラムでも十分に動いてくれた。ただギアを使った分本体の重心が少し高くなってしまい当初予定していたよりもスピードを出せなくなってしまった。
かなり大雑把なプログラムになってしまった。ロボット自体が安定とはいいがたい状態だった為、単純な縦と横の動きだけに限定した。
ここではペンの上げ下げ(P_)、前進後退(Zen,kou)、ペンの右移動と左移動(G_)をマクロにした
#difine P_UP OnFwd(OUT_B,15);Wait(300);Off(OUT_B); #difine P_DW OnRev(OUT_B,15);Wait(300);Off(OUT_B); #define Zen(s) OnFwd(OUT_A,25);Wait(s);Off(OUT_A); #define Kou(s) OnRev(OUT_A,25);Wait(s);Off(OUT_A); #difine G_R(s) OnFwd(OUT_C,30);Wait(s);Off(OUT_C); #difine G_L(s) OnRev(OUT_C,30);Wait(s);Off(OUT_C);
task main() { Zen(800); P_UP; G_L(450); P_DW; G_R(900); P_UP; Zen(800); P_DW; Zen(800); G_L(900); Kou(800); G_R(900); P_UP; //ここまでが「高」上の四角までの部分 Zen(2000); P_DW; Kou(1000); G_L(900); Zen(1000); P_UP; G_R(200); P_DW; G_R(450); Kou(500); G_L(450); Zen(500); P_UP;
ここまでが「高」の部分である。
移動が多いので、さらに細かくマクロにするべきだったかもしれない 以下、「田」の部分。
G_L(200); Zen(800); P_DW; //始まり Zen(2000); G_R(900); Kou(2000); G_L(900); P_UP; //枠が書けた Zen(920); G_R(450); Kou(930); G_L(466); P_DW; Zen(2000); }
移動以外をサブルーチンなどを使わず全体を明確にしなかったので、プログラムが見にくいものとなってしまった
とにかく線が歪んだ。これはペンの固定がうまくいかない事による。
書いた紙は何度アップロードしても見えないので今回は不掲載となった
重心位置の高さとロボットの安定感が終始課題となった。 全体をあまり小さくしすぎると負荷がかかった時にバランスが崩れやすくなってしまったことを今後に役立てる材料としたい
サブルーチンを使い移動を数字のみで表したかったが、如何せん思いつかなかったので無駄に長いだけのものが完成してしまった。タイマーとサブルーチン、秒数指定を用いてペンの上げ下げを敢行してみても良かっただろう。