*文字書きロボット(西条) [#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



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