紙にペンで,画数が合わせて10画以上の漢字2文字を書く.文字は自分と関係のある文字とする.
東寺山町に住んでいたので「東山」にした.
ロボットはx,y座標を動くものにした.モーターが3個しかないので,x軸に動く車輪,y軸に動くスライド,ペンの上げ下げ,にそれぞれ1個ずつモーターを使った.
持ち運びに便利なように5個に分解できるようにした.
2006年前期D7の車輪を参考にした.(8/24)×(8/40)=1/15 の減速でゆっくり動くようにした.
スライドのスピードを落とすため,ギアの数を増やして減速させた.スライドする部分の下の支えに上下反対のブロックを置くことで,スライドをなめらかにした.
ペンの上げ下げは,一番シンプルにした.減速しないとペンを激しくたたきつけてしまうので,ギアを1個増やし減速した.ブレを減らすためにペンをしっかりと固定した.
x軸に動く車輪のモーターをA,y軸に動くスライドをB,ペンの上げ下げをCにつないだ.
#define fudeage OnFwd(OUT_A);Wait(10);Off(OUT_A); #define fudesage OnRev(OUT_A);Wait(10);Off(OUT_A); #define migi OnFwd(OUT_B);Wait(18);OnRev(OUT_B); #define hidari OnRev(OUT_B);Wait(18);OnRev(OUT_B); #define shita OnFwd(OUT_C);Wait(38);OnRev(OUT_C); #define ue OnRev(OUT_C);Wait(38);OnRev(OUT_C);
#defineで「筆上げ」や「上」や「右」などわかりやすいように定義した.左右の棒の半分の長さを定義細かく動けるようにした.
task main() { fudesage; int i=0; for(i=0;i<3;i++){migi;migi;fudeage;shita;hidari;hidari;fudesage; } //横棒3本 migi;migi; //「東」の1番下の横棒 fudeage; ue;ue; fudesage; shita;shita; //「東」の右の縦棒 fudeage; hidari; ue;ue;ue;ue; fudesage; shita;shita;shita;shita;shita;shita; //「東」の真ん中の縦棒 fudeage; hidari; ue;ue;ue;ue; fudesage; shita;shita; //「東」の左の縦棒 fudeage; migi; fudesage; OnRev(OUT_B); OnFwd(OUT_C); Wait(20); Off(OUT_BC); //「東」の斜め fudeage; OnFwd(OUT_B); OnRev(OUT_C); Wait(20); Off(OUT_BC); fudesage; OnFwd(OUT_BC); Wait(20); Off(OUT_BC); //「東」の斜め fudeage; OnRev(OUT_B); Wait(20); Off(OUT_B); shita;shita;
「東」完成.
fudesage; shita;shita;shita;shita; //「山」の1画目 fudeage; hidari; ue;ue; fudesage; shita;shita; migi;migi; //「山」の2画目 fudeage; ue;ue; fudesage; shita;shita; //「山」の3画目 fudeage; }
「山」完成.「山」は書き順通りに書くようにした.
ペンの上げ下げの部分のつくりを簡単にしすぎたため,ブレが発生した.x軸の動きとy軸の動きの速さが違うため,斜めの線を書くのが難しかった.プログラムの量が多くなり,きれいに書けなかった.
見た目がシンプルでカッコ良いロボットができた.ロボットの組み立てや,プログラムを書くのが難しくて時間がかかったけれど楽しかった.もっときれいなプログラムを書けるようになりたいと思った.