- 追加された行はこの色です。
- 削除された行はこの色です。
[[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°にあわせることができれば、きれいに文字が書ける。