*文字書きロボット(西条) [#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で設定した。 下げ #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