*ロボット [#a836b987]
*「上田」を書くためのプログラム [#a836b987]

#define PEN_UP OnFwd(OUT_B);Wait(8);Off(OUT_B);//ペンを上げる
#define PEN_DOWN OnRev(OUT_B);Wait(8);Off(OUT_B);//ペンを下げる
#define SIDE_MAX_FWD OnFwd(OUT_A);Wait(15);Off(OUT_A);//横に最大限伸ばす
#define SIDE_MAX_REV OnRev(OUT_A);Wait(15);Off(OUT_A);//横に最大限戻す
#define SIDE_HALF_FWD OnFwd(OUT_A);Wait(7);Off(OUT_A);//横に半分伸ばす
#define SIDE_HALF_REV OnRev(OUT_A);Wait(7);Off(OUT_A);//横に半分戻す
#define LENGTH_MAX_FWD OnFwd(OUT_C);Wait(60);Off(OUT_C);//縦に最大限進む
#define LENGTH_MAX_REV OnRev(OUT_C);Wait(60);Off(OUT_C);//縦に最大限戻る
#define LENGTH_HALF_FWD OnFwd(OUT_C);Wait(30);Off(OUT_C);//縦に半分進む
#define LENGTH_HALF_REV OnRev(OUT_C);Wait(30);Off(OUT_C);//縦に半分戻る
 #define PEN_UP OnFwd(OUT_B);Wait(8);Off(OUT_B);//ペンを上げる
 #define PEN_DOWN OnRev(OUT_B);Wait(8);Off(OUT_B);//ペンを下げる
 #define SIDE_MAX_FWD OnFwd(OUT_A);Wait(15);Off(OUT_A);//横に最大限伸ばす
 #define SIDE_MAX_REV OnRev(OUT_A);Wait(15);Off(OUT_A);//横に最大限戻す
 #define SIDE_HALF_FWD OnFwd(OUT_A);Wait(7);Off(OUT_A);//横に半分伸ばす
 #define SIDE_HALF_REV OnRev(OUT_A);Wait(7);Off(OUT_A);//横に半分戻す
 #define LENGTH_MAX_FWD OnFwd(OUT_C);Wait(60);Off(OUT_C);//縦に最大限進む
 #define LENGTH_MAX_REV OnRev(OUT_C);Wait(60);Off(OUT_C);//縦に最大限戻る
 #define LENGTH_HALF_FWD OnFwd(OUT_C);Wait(30);Off(OUT_C);//縦に半分進む
 #define LENGTH_HALF_REV OnRev(OUT_C);Wait(30);Off(OUT_C);//縦に半分戻る
 
 task main()
 {
     SIDE_HALF_FWD;//「上」の縦棒
     PEN_DOWN;
     LENGTH_MAX_FWD;
     PEN_UP;
     LENGTH_HALF_REV;//「上」の上の横棒
     PEN_DOWN;
     SIDE_HALF_FWD;
     PEN_UP;
     SIDE_MAX_REV;//「上」の下の横棒
     LENGTH_HALF_FWD;
     PEN_DOWN;
     SIDE_MAX_FWD;
     PEN_UP;
     SIDE_MAX_REV;//初期位置に戻す
     LENGTH_HALF_FWD;//字間を空ける
     PEN_DOWN;//「田」の口部分
     SIDE_MAX_FWD;
     LENGTH_MAX_FWD;
     SIDE_MAX_REV;
     LENGTH_MAX_REV;
     PEN_UP;
     SIDE_HALF_FWD;//「田」の十の縦棒
     PEN_DOWN;
     LENGTH_MAX_FWD;
     PEN_UP;
     SIDE_HALF_REV;//「田」の十の横棒
     LENGTH_HALF_REV;
     PEN_DOWN;
     SIDE_MAX_FWD;
     PEN_UP;
     SIDE_MAX_REV;//初期位置に戻す
 } 

task main()
{
    SIDE_HALF_FWD;
    PEN_DOWN;
    LENGTH_MAX_FWD;//「上」の縦棒
    PEN_UP;
    LENGTH_HALF_REV;
    PEN_DOWN;
    SIDE_HALF_FWD;//「上」の上の横棒
    PEN_UP;
    SIDE_MAX_REV;
    LENGTH_HALF_FWD;
    PEN_DOWN;
    SIDE_MAX_FWD;//「上」の下の横棒
    PEN_UP;
    SIDE_MAX_REV;
**プログラム解説 [#vee404e6]

    LENGTH_HALF_FWD;
    PEN_DOWN;
    SIDE_MAX_FWD;
    LENGTH_MAX_FWD;
    SIDE_MAX_REV;
    LENGTH_MAX_REV;//「田」の口部分
    PEN_UP;
    SIDE_HALF_FWD;
    PEN_DOWN;
    LENGTH_MAX_FWD;//「田」の十の縦棒
    PEN_UP;
    SIDE_HALF_REV;
    LENGTH_HALF_REV;
    PEN_DOWN;
    SIDE_MAX_FWD;//「田」の十の横棒
    PEN_UP;
    SIDE_MAX_REV;
}
ロボットをx軸とy軸に沿って動かすものにし、縦移動や横移動などの基本的な動きだけで十分対応できるようにしたので、その動きをあらかじめ定義した。そうすることで、プログラムを書きやすくした。
また、ロボットの性質上横移動に限界があったため、限界値に達するまでの時間を地道に調べた。そうして、半分の長さを書くことが出来るようになった。

あいうえお
**robtto [#vee404e6]
さしす

*ロボ [#v1a6e1bb]
*ロボット [#v1a6e1bb]

かきくけこ


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