[[2006b/A3/課題1右]]
#contents
*プログラミング [#ubc5d8c7]
「林」という字を書くためのプログラムです。
 task main()
 {
     Wait(100);         
     OnFwd(OUT_A+OUT_C); Wait(50);
     Off(OUT_A+OUT_C);
     OnFwd(OUT_B); Wait(250);
     Off(OUT_B);
     OnFwd(OUT_A+OUT_C); Wait(60);
     OnRev(OUT_C); Wait(77);
     OnRev(OUT_A); Wait(120);
     Off(OUT_A+OUT_C);
     OnRev(OUT_B); Wait(250);
     Off(OUT_B);
     OnRev(OUT_A+OUT_C); Wait(120);
     Off(OUT_A+OUT_C);
     OnFwd(OUT_B); Wait(250);
     Off(OUT_B);
     OnFwd(OUT_A+OUT_C); Wait(215);
     OnRev(OUT_A); Wait(38);
     OnRev(OUT_C); Wait(103);
     Off(OUT_A+OUT_C);
     OnRev(OUT_B); Wait(250);
     Off(OUT_B);
     OnRev(OUT_A+OUT_C); Wait(40);
     Float(OUT_A+OUT_C);
     OnFwd(OUT_B); Wait(250);
     Off(OUT_B);
     OnFwd(OUT_A+OUT_C); Wait(144);
     OnRev(OUT_C); Wait(80);
     OnRev(OUT_A); Wait(150);
     Off(OUT_A+OUT_C);
     OnRev(OUT_B); Wait(250);
     Off(OUT_B);
     OnRev(OUT_A+OUT_C); Wait(25);
     Off(OUT_A+OUT_C);
     OnFwd(OUT_B); Wait(250);
     Off(OUT_B);
     OnFwd(OUT_C); OnRev(OUT_A); Wait(40);
     OnFwd(OUT_A); Wait(140);
     OnRev(OUT_A); Wait(77);
     OnRev(OUT_C); Wait(180);
     Off(OUT_A+OUT_C);
    Wait(100);                        /少し待つ        
    OnFwd(OUT_A+OUT_C); Wait(50);   /一画目
    Off(OUT_A+OUT_C);
    OnFwd(OUT_B); Wait(250);      /ペン上げる
    Off(OUT_B);
    OnFwd(OUT_A+OUT_C); Wait(60);
    OnRev(OUT_C); Wait(77);
    OnRev(OUT_A); Wait(120);
    Off(OUT_A+OUT_C);
    OnRev(OUT_B); Wait(250);     /ペン下げる
    Off(OUT_B);
    OnRev(OUT_A+OUT_C); Wait(120);  /二画目
    Off(OUT_A+OUT_C);
    OnFwd(OUT_B); Wait(250);
    Off(OUT_B);            /ペン上げる
    OnFwd(OUT_A+OUT_C); Wait(215);  /交点まで移動
    OnRev(OUT_A); Wait(38);
    OnRev(OUT_C); Wait(103);
    Off(OUT_A+OUT_C);
    OnRev(OUT_B); Wait(250);     /ペン下げる
    Off(OUT_B);
    OnRev(OUT_A+OUT_C); Wait(40);   /三画目
    Float(OUT_A+OUT_C);         /滑らかにはらう
    OnFwd(OUT_B); Wait(250);     /ペン上げる
    Off(OUT_B);
    OnFwd(OUT_A+OUT_C); Wait(144);  /再び交点へ
    OnRev(OUT_C); Wait(80);
    OnRev(OUT_A); Wait(150);
    Off(OUT_A+OUT_C);
    OnRev(OUT_B); Wait(250);     /ペン下げる                                                        
    Off(OUT_B); 
    OnRev(OUT_A+OUT_C); Wait(25);   /四画目
    Off(OUT_A+OUT_C);
    OnFwd(OUT_B); Wait(250);        /ペン上げる
    Off(OUT_B);
    OnFwd(OUT_C); OnRev(OUT_A); Wait(40); /二つ目の「木」へ
    OnFwd(OUT_A); Wait(140);    
    OnRev(OUT_A); Wait(77);
    OnRev(OUT_C); Wait(180);
    Off(OUT_A+OUT_C);
     
     OnRev(OUT_B); Wait(250);
     Off(OUT_B);
     OnFwd(OUT_A+OUT_C); Wait(50);
     Off(OUT_A+OUT_C);
     OnFwd(OUT_B); Wait(250);
     Off(OUT_B);
     OnFwd(OUT_A+OUT_C); Wait(50);
     OnRev(OUT_C); Wait(77);
     OnRev(OUT_A); Wait(110);
     Off(OUT_A+OUT_C);
     OnRev(OUT_B); Wait(250);
     Off(OUT_B);
     OnRev(OUT_A+OUT_C); Wait(120);
     Off(OUT_A+OUT_C);
     OnFwd(OUT_B); Wait(250);
     Off(OUT_B);
     OnFwd(OUT_A+OUT_C); Wait(210);
     OnRev(OUT_A); Wait(40);
     OnRev(OUT_C); Wait(100);
     Off(OUT_A+OUT_C);
     OnRev(OUT_B); Wait(250);
     Off(OUT_B);
     OnRev(OUT_A+OUT_C); Wait(33);
     Float(OUT_A+OUT_C);
     OnFwd(OUT_B); Wait(250);
     Off(OUT_B);
     OnFwd(OUT_A+OUT_C); Wait(140);
     OnRev(OUT_C); Wait(80);
     OnRev(OUT_A); Wait(147);
     Off(OUT_A+OUT_C);
     OnRev(OUT_B); Wait(250);
     Off(OUT_B);
     OnRev(OUT_A+OUT_C); Wait(40);
     Float(OUT_A+OUT_C);
     OnFwd(OUT_B); Wait(250);
     Off(OUT_B);
     }
    OnRev(OUT_B); Wait(250);           /ペン下げる
    Off(OUT_B);
    OnFwd(OUT_A+OUT_C); Wait(50);   /五画目
    Off(OUT_A+OUT_C);
    OnFwd(OUT_B); Wait(250);           /ペン上げる
    Off(OUT_B);
    OnFwd(OUT_A+OUT_C); Wait(50);
    OnRev(OUT_C); Wait(77);
    OnRev(OUT_A); Wait(110);
    Off(OUT_A+OUT_C);
    OnRev(OUT_B); Wait(250);      /ペン下げる
    Off(OUT_B);
    OnRev(OUT_A+OUT_C); Wait(120);   /六画目
    Off(OUT_A+OUT_C);
    OnFwd(OUT_B); Wait(250);           /ペン上げる
    Off(OUT_B);
    OnFwd(OUT_A+OUT_C); Wait(210);     /交点に向かう
    OnRev(OUT_A); Wait(40);
    OnRev(OUT_C); Wait(100);
    Off(OUT_A+OUT_C);
    OnRev(OUT_B); Wait(250);      /ペン下げる
    Off(OUT_B);
    OnRev(OUT_A+OUT_C); Wait(33);   /七画目
    Float(OUT_A+OUT_C);        /滑らかにはらう
    OnFwd(OUT_B); Wait(250);         /ペン上げる
    Off(OUT_B);
    OnFwd(OUT_A+OUT_C); Wait(140);   /交点へ戻る
    OnRev(OUT_C); Wait(80);
    OnRev(OUT_A); Wait(147);
    Off(OUT_A+OUT_C);
    OnRev(OUT_B); Wait(250);      /ペン下げる
    Off(OUT_B);
    OnRev(OUT_A+OUT_C); Wait(40);   /ラスト八画目
    Float(OUT_A+OUT_C);        /滑らかにはらう
    OnFwd(OUT_B); Wait(250);      /ペン上げて終了
    Off(OUT_B);            
    }
以上「林」を書くためのプログラムでした。長かった〜。
*苦労した点 [#ef8508c9]
 始めからどういうふうに書かせるか悩みました。僕らのロボットは本体より少し先の方で字を書くので回転するとペン先の位置が全く違うところにいってしまうのでそのことも考えてプログラムを作らなければなりませんでした。また、「林」では交点が存在するのでうまく重なるように何度もプログラムの数値を入れ直して試さなければいけなかったのでとても大変でした。
*工夫した点 [#r2b54ce3]
 最初にスイッチを押すと本体が浮いてしまい一画目が書けなくなるので少し待たせることでうまく問題を解消しました。あと、四画目は少し短めにすることで隣と交わらないようにしました。



そしてロボットに書かせた字はこちらです。少しずれてしまった所もありますが、「林」に見えるので結果良しです。
#ref(2006b/A3/ナオ 課題1/hayasi.jpg)

プログラムやホームページに対するコメントをお願いします。
#comment


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