[[2015a/Member]]
* 使用したロボ [#t6abc8c0]
車体の中心にペンを入れることでロボの軌跡と書きたい文字がリンクするようにした。
使った車体のベースは基本プログラムで使用したものと同じもので、中心にペンを入れたいから本体は縦にしてバランスが取れるように積んだ。
端子Bでペンの上げ下げ、端子A,Cでタイヤを動かし前進、後退はもちろん回転もペン先を中心に小回りが利くようにした。端子Bからの上げ下げは小さなタイヤでペンをはさみタイヤの動きに直結する。
#ref(2015a/Member/swimy/Mission1/IMG_3913.JPG,50%,文字を書くロボット)

*プログラム [#ge4a8526]
**「林」の文字を書く [#l6a1df5e]

 #define TURN_TIME 78//90°回転する時間を定義する
 #define TURN_HALF 39//45°回転する時間を定義する
 #define rise OnFwd(OUT_B);Wait(10);Off(OUT_B);//ペンを上げる動作を「rise」と定義する
 #define down OnRev(OUT_B);Wait(10);Off(OUT_B);//ペンを下す動作を「down」と定義する
 
 task main()
  {
   repeat(2){//「林」を書きたいので「木」を2回繰り返すようにする
        OnFwd(OUT_AC);
        Wait(100);
        rise;
        OnRev(OUT_AC);
        Wait(50);
        OnFwd(OUT_A);
        OnRev(OUT_C);
        Wait(TURN_TIME);
        down;
        OnFwd(OUT_AC);
        Wait(200);
        rise;
        OnRev(OUT_AC);
        Wait(180);
        OnFwd(OUT_A);
        OnRev(OUT_C);
        Wait(TURN_HALF);
        down;
        OnFwd(OUT_AC);
        Wait(75);
        rise;
        OnRev(OUT_AC);
        Wait(75);
        OnRev(OUT_A);
        OnFwd(OUT_C);
        Wait(TURN_TIME);
        down;
        OnFwd(OUT_AC);
        Wait(75);
        rise;
        OnRev(OUT_AC);
        Wait(75);
        OnRev(OUT_A);
        OnFwd(OUT_C);
        Wait(TURN_HALF);
        OnFwd(OUT_AC);
        Wait(60);
                 }
      Off(OUT_AC);
       }
*課題を振り返ってみて [#e6e0be6c]
今回のプログラムで目標である字を書くということは達成できた。しかし、このロボだと細かな作業には限界があり、文字の大きさはA4ぎりぎりになってしまった。アームを作ってそれを動かすほうが今回の課題としては最適だったと思う。プログラムとしてはdefineをもっと使っていけばこんな長いものにはならずにスマートにできたはずだ。これらの反省点は次回以降に生かしていきたい

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