戻る

2005/A6/コンドの部屋

『左』を書くロボットのプログラム

//『左』を書くロボット
//製作者:コンド
//製作日:05年11月8日
//キャタピラ仕様で、アームでペンを上下させるロボットのプログラムです。

数の定義

#define move_time 20          // アームの上げ、下げの時間
#define Move_time 110         // ロボットの中心とペン先との誤差修正の時間

補助プログラム

void turn_right(int x)        // 右回転のためのプログラム
{
    OnRev(OUT_A); OnFwd(OUT_C);
    Wait(x); Off(OUT_A+OUT_C);
}

void turn_left(int y)         // 左回転のためのプログラム
{
    OnRev(OUT_C); OnFwd(OUT_A);
    Wait(y); Off(OUT_A+OUT_C);
}

void go_straight(int z)       // 直進のためのプログラム
{
    OnFwd(OUT_A+OUT_C); Wait(z);
    Off(OUT_A+OUT_C);
}

void back(int w)              // 後退のためのプログラム
{
    OnRev(OUT_A+OUT_C); Wait(w);
    Off(OUT_A+OUT_C);
}

void right(int t)             // 二画目の右曲線のためのプログラム
{
    Off(OUT_A); OnFwd(OUT_C);
    Wait(t); Off(OUT_C);
}

void up()                     // アームを上げるプログラム
{
    OnFwd(OUT_B); Wait(move_time);
    Off(OUT_B);
}

void down()                   // アームを下げるプログラム
{
    OnRev(OUT_B); Wait(move_time);
    Off(OUT_B);
}

メインのプログラム

task main()                   
{
    down();                   // 一画目、書き始め
    go_straight(177);         // 一画目の直線を書く
    up();                     // 一画目、書き終わり
    back(10);                 // 後ろに移動
    turn_right(159);          // 右に回転
    back(153);                // 二画目の書き始めに移動
    down();                   // 二画目、書き始め
     repeat(8){               // 二画目の右曲線を書く
        go_straight(15);
        right(11);
        }
    up();                     // 二画目、書き終わり
    turn_right(292);          // 右に回転
    back(54);                 // 三画目の始めに移動
    turn_right(170);          // 右に回転
    back(Move_time);          // 誤差修正
    down();                   // 三画目、書き始め
    go_straight(119);         // 三画目の直線
    up();                     // 三画目、書き終わり
    go_straight(65);          // 四画目の始めに移動
    turn_right(159);          // 右に回転
    back(Move_time);          // 誤差修正
    down();                   // 四画目、書き始め
    go_straight(98);          // 四画目の直線
    up();                     // 四画目、書き終わり
    go_straight(Move_time);   // 誤差修正
    turn_left(140);           // 左に回転
    back(235);                // 五画目の書き始めに移動
    down();                   // 画目、書き始め
    go_straight(180);         // 五画目の直線を書く
    up();                     // 五画目、書き終わり
    go_straight(130);         // ロボットが退場して終了
}

反省点

・キャタピラ仕様のため、文字が波文字になってしまった。
・『ナ』と『エ』の接点がずれてしまった。
・プログラミング、ロボットの形が決まるまで時間が掛かってしまった。
  • 見やすくて良いと思います。この調子で… -- ゆん(TA)? 2005-11-11 (金) 16:12:38
  • 大変わかりやすいプログラムになっていると思います。ついでに冒頭のプログラムの説明の部分も // でコメントアウトしておきましょうか。 -- 松本(教員)? 2005-11-11 (金) 22:35:37


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2005-12-16 (金) 15:53:44