目次 #contents *課題1 [#pdc4424e] これまで住んだことのある都道府県名、市町村名、地区名などの中から2文字以上、かつ合計10画以上のものを選び、それをA4の紙を書くロボットを製作せよ。 **選んだ文字 [#l9296c06] 岐阜県にある「高山」という地名を選んだ. *ロボットの説明 [#s848d381] **ロボットの全体 [#na846ff7] 私たちが作成したロボットは,X軸,Y軸に分けて制御している. &ref(2019a/Member/Kasai/Mission1/web.png,50%); また, �〆鄒�したロボットのレール部分を走る機構(Y軸方向の動き) �▲譟璽襦�NXT本体を動かす機構(X軸方向の動き) ��ペンを上げ下げする機構(Z軸方向の動き) の3つの機構に分かれている. &ref(2019a/Member/Kasai/Mission1/webyou.jpg,50%); **ロボットの機構 [#hcf16bdf] ***�〆鄒�したロボットのレール部分を走る機構(Y軸方向の動き) [#i1037e67] �,竜々修�Y軸方向の動き,つまり漢字の縦線を担当している.本体についているレールの上を移動し,Cのモーターに出力を入れることで動く. &ref(2019a/Member/Kasai/Mission1/re_ru.jpg,50%); &ref(2019a/Member/Kasai/Mission1/yjikuhoukou.jpg,50%); ***�▲譟璽襦�NXT本体を動かす機構 (X軸方向の動き)[#ceb63b22] �△竜々修�X軸方向の動き,つまり漢字の横線を担当している.Aのモーターに出力を入れることで動く. &ref(2019a/Member/Kasai/Mission1/xjikuhoukou.jpg,50%); ***��ペンを上げ下げする機構(Z軸方向の動き) [#z991ed0e] ��の機構はZ軸方向の動き,つまりペンの上げ下げを担当している.モーターが回転することでペンを固定している部分が連動して動く仕組みだ.モーターにの回転をそのままペンの上げ下げに使う(図1)と線の端がしっかりと止まらないので,できるだけ床と垂直に上げ下げできるように(図2)作った. &ref(2019a/Member/Kasai/Mission1/penzu.png,50%); &ref(2019a/Member/Kasai/Mission1/zjikuhoukou.jpg,50%); **書き順 [#v30d9a85] いかに継ぎ目を少なくし簡単に書けるかを考えてルートを決めた結果,次のような書き順になった. &ref(2019a/Member/Kasai/Mission1/kakijunn.png,50%); **プログラムを書く [#yc7a0bff] まず,私たちのプログラミングは始めに#defineを使い、モーターの動作などをマクロを使い、定義した. #define arm_up OnFwd(OUT_B,20);Wait(700);Off(OUT_B); /ペンを上げる #define arm_down OnRev(OUT_B,20);Wait(700);Off(OUT_B); /ペンを下げる #define stopA Off(OUT_A); /モーターAの停止 #define stopC Off(OUT_C); /モーターCの停止 #define straightA OnRev(OUT_A,20); /X軸−方向への移動 #define backA OnFwd(OUT_A,20); /X軸+方向への移動 #define straightC OnFwd(OUT_C,20); /Y軸+方向への移動 #define backC OnRev(OUT_C,20); /Y軸−方向への移動 #define arm_up OnFwd(OUT_B,20);Wait(700);Off(OUT_B); //ペンを上げる #define arm_down OnRev(OUT_B,20);Wait(700);Off(OUT_B); //ペンを下げる #define stopA Off(OUT_A); //モーターAの停止 #define stopC Off(OUT_C); //モーターCの停止 #define straightA OnRev(OUT_A,20); //X軸−方向への移動 #define backA OnFwd(OUT_A,20); //X軸+方向への移動 #define straightC OnFwd(OUT_C,20); //Y軸+方向への移動 #define backC OnRev(OUT_C,20); //Y軸−方向への移動 1画目 task main() { arm_down; straightA; Wait(1500); stopA; arm_up; 1画目から2画目への移動 backA; Wait(750); stopA; 2画目 arm_down; backC; Wait(385); stopC; arm_up; 2画目から3画目への移動 backA; Wait(385); stopA; straightC; Wait(565); stopC; 3画目 arm_down; straightA; Wait(750); stopA; straightC; Wait(565); stopC; backA; Wait(750); stopA; backC; Wait(600); stopC; arm_up; 3画目から4画目への移動 backA; Wait(400); stopA; straightC; Wait(2000); stopC; straightA; Wait(281); stopA; 4画目 arm_down; backA; Wait(310); stopA; backC; Wait(1125); stopC; straightA; Wait(1500); stopA; straightC; Wait(1125); stopC; arm_up; 4画目から5画目への移動 backA; Wait(1111); stopA; backC; Wait(281); stopC; 5画目 arm_down; backC; Wait(562); stopC; straightA; Wait(750); stopA; straightC; Wait(562); stopC; backA; Wait(750); stopA; arm_up; 5画目から6画目への移動 backC; Wait(750); stopC; backA; Wait(1125); stopA; 6画目 arm_down; straightC; Wait(1125); stopC; backA; Wait(1500); stopA; backC; Wait(1125); stopC; arm_up; 6画目から7画目への移動 backC; Wait(1125); stopC; straightA; Wait(725); stopA; 7画目 arm_down; straightC; Wait(2250); stopC; arm_up; backA; Wait(2250); stopA; } *完成した文字 [#f0ebe2ee] &ref(2019a/Member/Kasai/Mission1/kannsei.jpg,50%); *まとめ [#n996a264] 課題を達成できた.完成度が高く,自分としてはかなり満足のいくものを書けた気がするが,いくつか問題点があった. -毎回書くたびに少し漢字の形やバランスが変わってしまう. -「口」の始点と終点がわずかに離れてしまう. 解決策として, -Y軸を担うモーターのレールの強度を高める. -部品のわずかな隙間などが原因だと考えられるため,ロボットを改善することは難しい.これに関しては,試し書きをしながら少しずつWaitの秒数を調節する必要がある.