[[2019a/Member]] *課題1 [#n511c274] これまで住んだことのある都道府県名、市町村名、地区名などの中から2文字以上、かつ合計10画以上のものを選び、それをA4の紙を書くロボットを製作せよ。 **選んだ文字 [#p56b1f85] 「幸田」という地名を選んだ。 *ロボット [#kd153dad] このロボットは、ペンを固定した本体ごと動くことで文字が書ける。モーターを2つ使って移動し、もう1つでペンを上下に動かす。 **外観 [#qa2f051c] #ref(2019a/Member/tsukue/Mission1/shodo1.jpg,50%,画像1) #ref(2019a/Member/tsukue/Mission1/shodo2.jpg,50%,画像1) **工夫した点 [#f4ed4796] -プログラムを簡略化するため、ペンが回転軸上に来るようにした。 #ref(2019a/Member/tsukue/Mission1/shodo3.jpg,50%,画像1) -ペンを垂直に保ったまま動かすことで、きれいな線が書ける。ペンが浮かない。下の画像はペンの上下機構である。 #ref(2019a/Member/tsukue/Mission1/shodo4.jpg,50%,画像1) -ギアを使うことで、動きの安定感が増す。 *プログラム [#aa9dd97c] 簡略化するため、#define を使って以下のように定義した。 -左右に90°回転 (Turn_left,Turn_right) #define Turn_left Onfwd(OUT_B,50);OnRev(OUT_C,50);Wait(4000);Off(OUT_BC); #define Turn_right Onfwd(OUT_C,50);OnRev(OUT_B,50);Wait(4000);Off(OUT_BC); -2cm進む/戻る (GO,BACK) #define GO Onfwd(OUT_B,50);Onfwd(OUT_C,48);Wait(660);Off(OUT_BC); #define BACK OnRev(OUT_B,50);OnRev(OUT_C,48};Wait(660);Off(OUT_BC); ※4cm以上動かすときは、repeatを使った。 -ペンの上下 (P_ON,P_OFF) #define P_ON OnFwd(OUT_A,40);Wait(500);Off(OUT_A); #define P_OFF OnRev(OUT_A,40);Wait(500);Off (OUT_A); 下の画像に示したような順番で動くようにプログラムした。 なお、プログラムの各行右端の数字は、画像の番号に対応する。 #ref(2019a/Member/tsukue/Mission1/shodo5.jpg,50%,画像1) task main() { repeat(2){GO;};//0 Turn_left;repeat(3){GO;};//1 P_ON;repeat(4){GO;};//2 P_OFF;repeat(2){BACK;};//3 Turn_right;BACK;//4 P_ON;repeat(2){G0;};//5 P_OFF;Turn_left;repeat(3){BACK;};//6 P_ON;repeat(6){GO;};//7 P_OFF;repeat(2){BACK;};//8 Turn_right;P_ON;repeat(2){GO;};//9 P_OFF;repeat(2){BACK;};//10 Turn_left;repeat(2){BACK;};//11 Turn_right;P_ON;repeat(2){GO;};//12 P_OFF;Turn_left;repeat(2){BACK;};//13 P_ON;repeat(6){G0;};//14 P_OFF;repeat(3){BACK;};//15 Turn_right;P_ON;repeat(2){GO;};//16 P_OFF;BACK;//17 Turn_left;repeat(2){BACK;};//18 P_ON;repeat(4){G0;};//19 P_OFF;Turn_right;repeat(3){GO;};//「幸」完成、20 P_ON;repeat(4){G0;};//21 repeat(3){Turn_right;repeat(4){GO;};};//22~24 P_OFF;repeat(2){BACK;};//25 Turn_right;P_ON;repeat(4){GO;};//26 P_OFF;repeat(2){BACK;};//27 Turn_left;repeat(2){BACK;};//28 P_ON;repeat(4){GO;};//29 P_OFF;repeat(3){GO;};PlaySound(SOUND_DOUBLE_BEEP);//終 } **工夫した点 [#yf49ddb1] -様々な長さの線を書くために repeat を使った。こうすることで、安定した長さの比が得られる。 -22~24は同じものが連続するため、 repeat でまとめた。 -書き終わったら音で知らせてくれる。 *完成 [#y3742657] #ref(2019a/Member/tsukue/Mission1/shodo6.jpg,50%,画像1) *まとめ [#l6b6e0a5] 「90°回転」のWaitの時間調節が難しかった。 このロボットは回転が肝であるが、電池の消耗により常に一定の角度で回転することができない。 ちょうど90°にあわせることができれば、きれいに文字が書ける。