2006a ロボティクス入門ゼミ?

初めてのプログラム

初めてつくったプログラムです。

 task main()

{
   OnFwd(OUT_A+OUT_C); 
   Wait(300);
   OnRev(OUT_C);       
                       
   Wait(200);          
   Off(OUT_A+OUT_C);
}

課題 木を書く

完成までのプロセス

5/12

  • とりあえずプログラムだけ
  • 鉛筆のプログラムはあくまで『こうだろうなあ』と予想。

5/19

  • サブルーチン、関数、マクロを学ぶ。これで、ペンのプログラム を簡略化できると、激しく喜ぶ。
  • 微調整に悩まされる。回転したときの動きの微調整がむずかしい。回転したときに生じる誤差を見越して、プログラムを作らなければいけないことに気づく。
  • 鉛筆ではうまく書けないことが判明。筆ペン、マジック、など濃いものがいい。あと、下書き用の紙をもっと持ってくるべきだった。

プログラム

#define  pen_down OnFwd(OUT_B); Wait(50);Off(OUT_B);//ペンをおろす
#define  pen_up OnRev(OUT_B); Wait(50);Off(OUT_B);//ペンを上げる
task main()
 {
pen_down;//ペンをおろす
 OnFwd(OUT_A+OUT_C);//一画目「一」始め! 
 Wait(150);
 Off(OUT_A+OUT_C);
 pen_up;//ペンをあげる
   OnRev(OUT_A+OUT_C);//二画目に向け来た道を戻る
   Wait(100);
   Off(OUT_A+OUT_C);
    OnRev(OUT_C);//二画目に向け左旋回       
   Wait(200);
   Off(OUT_C);
   pen_down;//ぺんをおろす
    OnFwd(OUT_A+OUT_C);//二画目「|」始め! 
    Wait(280);
    Off(OUT_A+OUT_C);
    pen_up;//ペンをあげる
      OnRev(OUT_A+OUT_C);//三画目に向け二画目の2/3の地点までもどる       
     Wait(200);       
Off(OUT_A +OUT_C);
        OnFwd(OUT_A);//三画目に向け左旋回
      Wait(100);
      Off(OUT_A);
          pen_down;//ぺんをおろす
       OnFwd(OUT_A+OUT_C);//三画目「/」始め!
       Wait(100);
       Off(OUT_A+OUT_C);
       pen_up;ペンをあげる
         OnRev(OUT_A+OUT_C);//三画目の始点までもどる 
        Wait(100);
        Off(OUT_A+OUT_C);
          OnRev(OUT_A);//四画目に向け左旋回
         Wait(200);
                Off(OUT_A);
           OnFwd(OUT_A+OUT_C);//ちょっと調整、前進する 
          Wait(150);
                  Off(OUT_A+OUT_C);
                   pen_down;//ペンをおろす
                   OnFwd(OUT_A+OUT_C); //四画目「\」始め!
          Wait(400);
          Off(OUT_A+OUT_C);//終了。上手く書けたかな?
  }

反省点

  • もっと定義を利用してプログラムを簡略化すればよかった。
  • 旋回するときに片輪で旋回したため、誤差を生む原因となってしまった。両輪をそれぞれ逆に動かして、その場で回転するようにすればよかった。(プログラム作成中)

コメントをどうぞ



トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2006-05-23 (火) 11:10:00