[[2018a/Member]] 目次 #contents *課題1 [#z3d6d96f] これまで住んだことのある都道府県名、市町村名、地区名などの中から2文字以上のものを選び、それをA4の紙を書くロボットを製作せよ。 **書いた文字 [#f81d4d77] 今回の課題では「江田」という漢字を書くロボットを作った。 *ロボットについて [#y1346659] **ロボット全体 [#jed4ea71] 今回はモーターを3つ使ったxy軸で動くロボットを作った。 �―弔鯑阿�モーター ��横を動くモーター ��ペンを上げ下げするモーター &ref(image4.jpg); ロボットの全体図 **横を動くモーター [#gecec815] &ref(image3.jpg); 腕を折りたたむ感じで横に移動させる。 *プログラミングについて [#o7b6a267] 最初に細かい定義を設定し、それを組み立てるやり方をとった。 ** ペンの上げ下げの定義 [#ee4ddb61] #define Pen_up OnRev(OUT_B,40); Wait(100); Off(OUT_B);//ペンをあげる #define Pen_down OnFwd(OUT_B,40); Wait(100); Off(OUT_B);//ペンを下げる **左右の移動の定義 [#gcaf8fff] #define LR_10 OnFwd(OUT_A,30);Wait(500);Off(OUT_A);//左から右へ(小) #define LR_20 OnFwd(OUT_A,30);Wait(1000);Off(OUT_A);//左から右へ(中) #define LR_30 OnFwd(OUT_A,30);Wait(1500);Off(OUT_A);//左から右へ(大) #define RL_10 OnRev(OUT_A,30);Wait(500);Off(OUT_A);//右から左へ(小) #define RL_20 OnRev(OUT_A,30);Wait(1000);Off(OUT_A);//右から左へ(中) #define RL_30 OnRev(OUT_A,30);Wait(1500);Off(OUT_A);//右から左へ(大) **上下の移動の定義 [#fa08a68e] #define US_10 OnFwd(OUT_C,30);Wait(500);Off(OUT_C);//上から下へ(小) #define US_20 OnFwd(OUT_C,30);Wait(1000);Off(OUT_C);//上から下へ(中) #define US_30 OnFwd(OUT_C,30);Wait(1500);Off(OUT_C);//上から下へ(大) #define SU_10 OnRev(OUT_C,30);Wait(500);Off(OUT_C);//下から上へ(小) #define SU_20 OnRev(OUT_C,30);Wait(1000);Off(OUT_C);//下から上へ(中) #define SU_30 OnRev(OUT_C,30);Wait(1500);Off(OUT_C);//下から上へ(大) **斜めの定義 [#acc7f06d] #define NNM OnFwd(OUT_A,30);OnRev(OUT_C,30);Wait(400);Off(OUT_AC);//左下から右上へ **全体のプログラム [#lf860219] task main() { #define Pen_up OnRev(OUT_B,40); Wait(100); Off(OUT_B);//ペンをあげる #define Pen_down OnFwd(OUT_B,40); Wait(100); Off(OUT_B);//ペンを下げる #define LR_10 OnFwd(OUT_A,30);Wait(500);Off(OUT_A);//左から右へ(小) #define LR_20 OnFwd(OUT_A,30);Wait(1000);Off(OUT_A);//左から右へ(中) #define LR_30 OnFwd(OUT_A,30);Wait(1500);Off(OUT_A);//左から右へ(大) #define RL_10 OnRev(OUT_A,30);Wait(500);Off(OUT_A);//右から左へ(小) #define RL_20 OnRev(OUT_A,30);Wait(1000);Off(OUT_A);//右から左へ(中) #define RL_30 OnRev(OUT_A,30);Wait(1500);Off(OUT_A);//右から左へ(大) #define US_10 OnFwd(OUT_C,30);Wait(500);Off(OUT_C);//上から下へ(小) #define US_20 OnFwd(OUT_C,30);Wait(1000);Off(OUT_C);//上から下へ(中) #define US_30 OnFwd(OUT_C,30);Wait(1500);Off(OUT_C);//上から下へ(大) #define SU_10 OnRev(OUT_C,30);Wait(500);Off(OUT_C);//下から上へ(小) #define SU_20 OnRev(OUT_C,30);Wait(1000);Off(OUT_C);//下から上へ(中) #define SU_30 OnRev(OUT_C,30);Wait(1500);Off(OUT_C);//下から上へ(大) #define NNM OnFwd(OUT_A,30);OnRev(OUT_C,30);Wait(400);Off(OUT_AC);//左下から右上へ LR_10; Pen_up; US_10; Pen_down; RL_10; Pen_up; US_10; Pen_down; NNM; Pen_up; SU_10; LR_10; Pen_down; LR_20; Pen_up; RL_10; Pen_down; US_20; Pen_up; RL_10; Pen_down; LR_20; //「江」書き終わり Pen_up; US_10; Pen_down; US_20; RL_20; SU_20; LR_20; Pen_up; RL_10; Pen_down; US_20; Pen_up; RL_10; SU_10; Pen_down; LR_20; //「田」書き終わり } *完成形 [#yac11f02] &ref(image5.jpeg); なんとか見える程度まではできた *反省点 [#p6690cd1] 簡単な動作を定義付けし、組み立てていく方法をとってからは楽だったが、それまで時間と労力をかけすぎてしまったのでプログラミングでより簡素にしていくことを心がけていきたい。 *感想 [#i52d1566] 初めて本格的に自分でプログラミングをしてみたが、機械といえどプログラミングしたとおりになかなか実行しないことにもどかしさを感じた。次回は今回のをふまえてより正確なプログラミングをできるようにしたい。