- 追加された行はこの色です。
- 削除された行はこの色です。
[[2018a/Member]]
#contents
*課題 [#x7344bea]
**内容について [#df33b856]
A4の紙に10画以上の,自分の出身地に関係のある漢字2字を書く,というものであった.
**書いた文字について [#o6645757]
出身地の長野県の辰野町にある宮木区からとって,「宮木」と書いた.
*ロボットについて [#me839268]
**ロボットの仕組み [#n63ffb95]
モーターAはタイヤについており,前進と後退をする.モーターBはアームについており,ペンを上げ下げする.モーターCは回転させることでアームを左右に動かせるようになっている.
&ref(作ったロボット.改.png); &ref(モーターA.png);
&ref(モーターC.png); &ref(モーターB.png);
モーターAとモーターB,Cは,ついてる本体が別々になっている.以下,モーターA(タイヤの回転)がついたものを"本体",モーターB(アームの上げ下げ)モーターC(左右に動く)の二つがついたものを"準本体"とする.
このロボットは,本体の上を準本体が移動する形になっている.
縦に線を書くときは本体が前後に動き,横線を書きたいときは準本体が左右に動く,という仕組みになっている.
&ref(ミー..jpg);
このロボットは腕がついており,左手でペンを持ち,右手で紙を抑えている.
RISなりのデザイン性も意識した.
**苦労した点 [#g7e31af0]
X−Y型にするためのロボットの外形を作るのが苦労した.試行錯誤の末このような長細い形になった.ロボットの外形を作るうえで参考にしたものはなく,一からペア二人で考えた.
アームのペンを下げる勢いが強すぎて,アームの上げ下げの時間調整に苦労した.また,勢いが強いため,細いマイネームペンだと先っぽが段々と短くなっていってしまい,最終的に先っぽがなくなってしまうということがあった.ペンを変えると,ペンの太さの問題で今度はアームにつけられるかどうかの問題が生じてしまい,苦労した.
紙を動かして文字を書く,プリンター型の意見や,タイヤにモーターを二つ使って動き回りながら文字を書くという意見も出たが,前者は失敗しやすかったり,ロボット作りからプログラムから難しそうだったりしたため,後者は,ロボット作りは簡単だがプログラミングがすごく大変そうだったため,没になった.
*プログラム [#y99111b4]
task main()
{
OnFwd(OUT_AC);
Wait(30000);
Off(OUT_AC);
#define ARM_UP OnRev(OUT_B);Wait(18);Off(OUT_B); //アームを上げる
#define ARM_DOWN OnFwd(OUT_B);Wait(18);Off(OUT_B); //アームを下げる
#define SMALL_LINE ARM_DOWN;OnFwd(OUT_A);Wait(6);Off(OUT_A); //縦の線を書く
#define WRITE_SQUARE ARM_DOWN;OnFwd(OUT_C);Wait(24);Off(OUT_C);OnFwd(OUT_A);Wait(6);Off(OUT_A);OnRev(OUT_C);Wait(24);Off(OUT_C);OnRev(OUT_A);Wait(6);Off(OUT_A);ARM_UP; //四角形を書く
OnFwd(OUT_A);Wait(10);Off(OUT_A);ARM_UP; //一画目
OnRev(OUT_C);
Wait(24);
Off(OUT_C);
SMALL_LINE;
OnRev(OUT_A);
Wait(10);
Off(OUT_A);
OnFwd(OUT_C);
Wait(48);
Off(OUT_C);
OnFwd(OUT_A);Wait(10);Off(OUT_A);ARM_UP; //二画目
OnRev(OUT_C);
Wait(36);
Off(OUT_C);
WRITE_SQUARE; //三画目
OnFwd(OUT_A);
Wait(6);
Off(OUT_A);
OnFwd(OUT_C);
Wait(12);
Off(OUT_C);
SMALL_LINE;ARM_UP; //四画目
OnRev(OUT_C);
Wait(12);
Off(OUT_C);
WRITE_SQUARE; //五画目
OnRev(OUT_C);
Wait(12);
Off(OUT_C);
OnFwd(OUT_A);
Wait(26);
Off(OUT_A);
ARM_DOWN;
OnFwd(OUT_C);
Wait(48);
Off(OUT_C);
ARM_UP; //六画目
OnRev(OUT_C);
Wait(24);
Off(OUT_C);
OnRev(OUT_A);
Wait(12);
Off(OUT_A);
ARM_DOWN;
OnFwd(OUT_A);
Wait(30);
Off(OUT_A);
ARM_UP; //七画目
OnRev(OUT_A);
Wait(18);
Off(OUT_A);
ARM_DOWN;
OnRev(OUT_C);
OnFwd(OUT_A);
Wait(20);
Off(OUT_C);
Off(OUT_A);
ARM_UP; //八画目
OnFwd(OUT_C);
OnRev(OUT_A);
Wait(22);
Off(OUT_AC);
ARM_DOWN;
OnFwd(OUT_AC);
Wait(20);
Off(OUT_AC);
ARM_UP; //フィニッシュ九画目
}
*ロボットが書いた文字 [#hf29e057]
あまり画数が多くならないように書き順を工夫した.線がうまく重ならなくなってしまうときがあり,プログラムで微調整を加えた.
&ref(宮木書き順.png);