[[2019a/Member]]

#ls2(,link,ページ一覧)
*課題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°にあわせることができれば、きれいに文字が書ける。


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS