- 追加された行はこの色です。
- 削除された行はこの色です。
*文字書きロボット(西条) [#l6f57b53]
#contents
**課題内容 [#od12bf8f]
~A4用紙に自身に関係のある漢字2文字以上の地名を書く。
**本体の構造 [#ad9f8127]
~本体は、NXTの組み立て例をベースにし前輪2つ、後輪1つの3輪である。
~前輪は左右それぞれが独立し動く。
#ref(本体上.gif),nolink
#ref(本体横.gif),nolink
**アーム部分 [#i4007825]
~アームはモータの回転を利用しペン先を上下させている。
~ペンの固定には、セット付属の輪ゴムを使用している。
#ref(アーム上.gif),nolink
#ref(アーム横.gif),nolink
**プログラム [#h9d325cf]
***移動(前進・後退) [#t70deec0]
~前進・後退はサブルーチンにし、長さを自由に調節できるようにした。
~前進
sub zen(int i)
{
int t;
t=i*100;
OnFwd(OUT_B,29); OnFwd(OUT_C,25);
Wait(t);
Off(OUT_BC);
}
~後退
sub kou(int i)
{
int t;
t=i*100;
OnRev(OUT_B,29);OnRev(OUT_C,25);
Wait(t);
Off(OUT_BC);
}
***回転 [#b93d3dd0]
~本体の回転は、左右、45度・90度で4通りを#difineで設定した。
右45度
#define kaiten45r OnFwd(OUT_C,50);OnRev(OUT_B,50);Wait(200);Off(OUT_BC);
右90度
#define kaiten90r OnFwd(OUT_C,50);OnRev(OUT_B,50);Wait(400);Off(OUT_BC);
左45度
#define kaiten45l OnFwd(OUT_B,50);OnRev(OUT_C,50);Wait(200);Off(OUT_BC);
左90度
#define kaiten90l OnFwd(OUT_B,50);OnRev(OUT_C,50);Wait(400);Off(OUT_BC);
***アームの上下 [#ra09e514]
~アームの動きは#difineで設定した。
~Waitの時間が違うのは上げるときと下げるときにモータの回転時間が変わったから。
下げ
#define down OnFwd(OUT_A,22); Wait(260); Off(OUT_A);
上げ
#define up Wait(100); OnRev(OUT_A,19); Wait(300); Off(OUT_A);
**制作物 [#i8e60ecf]
#ref(結果.gif),nolink