[[2019a/Member]]
#contents
*課題1 [#a63ca21a]
**課題内容 [#z22f0adf]
これまで住んだことのある都道府県名、市町村名、地区名などの中から2文字以上、かつ合計10画以上のものを選び、それをA4の紙を書くロボットを製作せよ。
**選んだ文字 [#m9a8f723]
長野といえば!の松本にしました
*ロボット [#kcd62b68]
**ロボットの全体 [#p9380f68]
漢字の丸みを再現するためX軸方向を回転型Y軸方向を直線型に分けた。これらを考えて以下の3つの機構を作成した。
�.蹈椒奪箸�Y軸方向に動かす
�▲撻鵑�X軸方向に動かす
��ペンの上下
&ref(IMG_5819.png,);
**�.蹈椒奪箸�Y軸方向に動かす [#n84cd23f]
モーターにギアをつけ後輪を回すことでY軸に動くようにした。進む距離が減ったため細かな微調整がやりやすくなる。
&ref(IMG_5815.png);
**�▲撻鵑�X軸方向に動かす [#i54e7aad]
モーターにギアをつけ円形に回るようにした。
&ref(IMG_5816.png);
**��ペンの上下 [#s38ff1ae]
ゴムで固定し回転方式でペンの上下をする。
&ref(IMG_5817.png);
*プログラム [#tba629af]
漢字はやはり書き順通り書くのが一番うまく書けると考えた。松の木偏と本の木の部分の動き方が同じなので木に関してはペンの上下以外#defineを使わず数値を変更し角度と長さ変更だけにした。
**課題 [#o464e270]
X軸が円形回転のためX軸方向に直線を書くとき丸くなってしまうのを回避するため前進や後退をする必要があった。
**ペンの上下のプログラム [#f718edd7]
ペンを紙に接触させる、紙から離す
#define down OnFwd(OUT_C,30);Wait(250);Off(OUT_C); /ペンを下げる
#define up OnRev(OUT_C,30);Wait(250);Off(OUT_C); /ペンをあげる
**松のプログラム [#de32cd82]
OnRev(OUT_B,40); / 0→1移動
Wait(2000);
Off(OUT_B);
down;/ 一画目 課題部分
down;// 一画目 課題部分
OnFwd(OUT_B,40);
Wait(1000);
OnFwd(OUT_A,40);
Wait(500);
Off(OUT_A);
OnRev(OUT_A,40);
Wait(500);
Off(OUT_AB);
up;
OnRev(OUT_A,63);/ 1→2移動
OnRev(OUT_A,63);// 1→2移動
OnRev(OUT_B,55);
Wait(800);
Off(OUT_AB);
down;/ 二画目
down;// 二画目
OnFwd(OUT_A,59);
Wait(7400);
Off(OUT_A);
up;
OnRev(OUT_A,60);/ 2→3移動
OnRev(OUT_A,60);// 2→3移動
Wait(6100);
Off(OUT_A);
down;/ 三画目
down;// 三画目
OnFwd(OUT_A,60);
OnRev(OUT_B,30);
Wait(2900);
Off(OUT_AB);
up;
OnRev(OUT_A,60);/ 3→4移動
OnRev(OUT_A,60);// 3→4移動
OnFwd(OUT_B,27);
Wait(2790);
Off(OUT_AB);
down;/ 四画目
OnFwd(OUT_A,60);
OnFwd(OUT_B,25);
Wait(2100);
Off(OUT_AB);
up;
OnRev(OUT_A,60);/ 4→5移動
OnRev(OUT_A,60);// 4→5移動
Wait(2100);
Off(OUT_A);
OnFwd(OUT_B,25);
Wait(1350);
Off(OUT_B);
down;/ 五画目
down;// 五画目
OnFwd(OUT_A,60);
OnRev(OUT_B,20);
Wait(2800);
Off(OUT_AB);
up:
OnRev(OUT_A,60);/ 5→6移動
OnRev(OUT_A,60);// 5→6移動
Wait(3250);
Off(OUT_A);
OnFwd(OUT_B,30);
Wait(2100);
Off(OUT_B);
down;/ 六画目
down;// 六画目
OnFwd(OUT_A,60);
OnFwd(OUT_B,29);
Wait(2700);
Off(OUT_A);
up;
OnFwd(OUT_A,9);/ 6→7移動
OnFwd(OUT_A,9);// 6→7移動
OnRev(OUT_B,50);
Wait(1500);
Off(OUT_AB);
down;/ 七画目
down;// 七画目
OnFwd(OUT_A,60);
OnRev(OUT_B,17);
Wait(3100);
Off(OUT_AB);
OnFwd(OUT_B,40); /課題部分
OnFwd(OUT_B,40); //課題部分
OnRev(OUT_A,40);
Wait(2700);
Off(OUT_B);
up;
OnRev(OUT_A,40);/ 7→8移動
OnRev(OUT_A,40);// 7→8移動
Wait(900);
Off(OUT_A);
OnRev(OUT_B,30);
Wait(500);
Off(OUT_B);
down;/ 八画目
down;// 八画目
OnFwd(OUT_A,60);
OnFwd(OUT_B,40);
Wait(1000);
Off(OUT_AB);
up;
**本のプログラム [#e2100043]
OnRev(OUT_B,30);/ 0→1移動
OnRev(OUT_B,30);// 0→1移動
Wait(6800);
Off(OUT_B);
OnFwd(OUT_A,60);
Wait(5000);
Off(OUT_A);
down;/ 一画目
down;// 一画目
OnFwd(OUT_B,40);
Wait(2400);
Off(OUT_B);
up;
OnRev(OUT_A,43);/ 1→2移動
OnRev(OUT_A,43);// 1→2移動
OnRev(OUT_B,34);
Wait(1600);
Off(OUT_AB);
down;/ 二画目
down;// 二画目
OnFwd(OUT_A,60);
Wait(8000);
Off(OUT_A);
up;
OnRev(OUT_A,60);/ 2→3移動
OnRev(OUT_A,60);// 2→3移動
Wait(7450);
Off(OUT_A);
down;/ 三画目
down;// 三画目
OnFwd(OUT_A,60);
OnRev(OUT_B,30);
Wait(4650);
Off(OUT_AB);
up;
OnRev(OUT_A,60);/ 3→4移動
OnRev(OUT_A,60);// 3→4移動
OnFwd(OUT_B,23);
Wait(4650);
Off(OUT_AB);
down;/ 四画目
down;// 四画目
OnFwd(OUT_A,60);
OnFwd(OUT_B,30);
Wait(4600);
Off(OUT_AB);
up;
OnRev(OUT_B,35);/ 4→5移動
OnRev(OUT_B,35);// 4→5移動
Wait(3700);
Off(OUT_B);
OnFwd(OUT_A,30);
Wait(500);
Off(OUT_A);
down;/ 五画目
down;// 五画目
OnFwd(OUT_B,40);
Wait(1800);
Off(OUT_B);
up;
*できた文字 [#n94d6591]
&ref(IMG_5813.JPG);
&ref(IMG_5814.JPG);
&ref(IMG_5818.JPG);
*反省と感想 [#g0422e9c]
ペンの上下の方法を回転方式にしたため書き始めと書き終わりがはねてしまった。ギアが左右どっちかによってしまうためプログラミングで書くところと戻るところの数値に誤差が出てしまい細かな設定が必要だった。~
実家暮らしでロボットを持ち帰るときに部品のパーツがずれたり組み立て直さないといけないことがあり大変だった。次のロボットの際にはロボットを持ち帰らないことを決意した。木には4本交わるところがあったためそこを合わせるのがとても苦労した。