- 追加された行はこの色です。
- 削除された行はこの色です。
*課題 [#ze589505]
これまで住んだことのある都道府県名、市町村名、地区名などの中から2文字以上、かつ合計10画以上のものを選び、それをA4の紙を書くロボットを製作せよ。私は生まれた高田にした。
*本体 [#q828dd10]
ペンの上げ下げをモーターで行ったが、本体下部に位置する左右の車輪幅が狭くなっていたので安定した上下運動が行えなかった。
ペンは左右に動くような設計にした。だが接続が緩く、初めに整えてやらねばスムーズに動かなかった。
&ref(Mission1/b2.jpg)
ペンの上げ下げをモーターで行ったが、本体下部に位置する左右の車輪幅が狭くなっていたので安定した上下運動が行えなかった。本体は前後に動き付属のペンを取り付けたモーター部分が左右に動くことになる
ペンは左右に動くような設計にした。だが接続が緩く、初めに整えてやらねばスムーズに動かなかった。右と左に動くのだが途中で負荷がかかり線がゆがんでしまうので調節に苦労した。
画像は本体に乗っているペンをつけたモーターの物である
ショベルカーとほぼ同じ構造で、ショベルの部分にペンを取り付けた形となった。唯一違う点は軸をつけて動きを固定化させたところのみである。
#ref(2019a/Member/Hinata/Mission1/a2.jpg,20%,画像)
*定義 [#b93ac20a]
かなり大雑把なプログラムになってしまった。ロボット自体が安定とはいいがたい状態だった為、単純な縦と横の動きだけに限定した。
ここではペンの上げ下げ(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);
*プログラム [#v885e9f7]
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;
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;
P_DW; //始まり
Zen(2000);
G_R(900);
Kou(2000);
G_L(900);
P_UP;
P_UP; //枠が書けた
Zen(920);
G_R(450);
Kou(930);
G_L(466);
P_DW;
Zen(2000);
}
移動以外をサブルーチンなどを使わず全体を明確にしなかったので、プログラムが醜いものとなり果てた
*反省 [#j7314038]
重心位置の高さとロボットの安定感が終始課題となった。
全体をあまり小さくしすぎると負荷がかかった時にバランスが崩れやすくなってしまったことを今後に役立てる材料としたい
サブルーチンを使い移動を数字のみで表したかったが、如何せん思いつかなかったので無駄に長いだけのものが完成してしまった。タイマーとサブルーチン、秒数指定を用いてペンの上げ下げを敢行してみても良かっただろう。