2008a/A7/課題1右

お絵描きロボット

<ロボットの説明>

●前ページのロボットと同一のものを使用

<工夫点>

●前髪をギザギザしたかったので、プログラミングの際RevとFwdを使い、回転時間を摩擦に気をつけながら設定をした。

●プログラムが重複するところがあったため、repeatを使った。

●ペンをロボットの真ん中に設置したためプログラミングしやすかった。

●サブルーチンを利用した。

<今後の課題>

●プログラムを見やすく、簡潔にする。

●目に表情がないので表情をつけたい。

●ペンがうまく紙につかず上手にかけないので、ペンの位置や上下させる時間などの細部を考える。

<顔のプログラム>

#define PEN_TIME 100

sub pen_up()
{
        Off(OUT_A+OUT_C);
                OnRev(OUT_B);
       Wait(PEN_TIME);
       Off(OUT_B);//ペンを上げるためのサブルーチン。
}
sub pen_down()
{
        Off(OUT_A+OUT_C);
        OnFwd(OUT_B);
        Wait(PEN_TIME);
        Off(OUT_B);//ペンを下げるためのサブルーチン。
        }
task main()
{
        OnFwd(OUT_A+OUT_C);//輪郭を書き始める
        Wait(130);
        Off(OUT_C);//CをOffすることで顎の丸みをつける。
        Wait(390);//少し面長にしたかったのでCを長めにOffし、小さめの半円を描かせた。
        OnFwd(OUT_A+OUT_C);
        Wait(130);
nigaie1.jpg
        OnRev(OUT_C);//ここからペンをつけたままの状態で回転させ、前髪のギザギザを描くのに備える。
        Wait(180);
        Off(OUT_C);
        repeat(3){ OnFwd(OUT_C);//ここからrepeatを使って3回ギザギザを描かせる。
        Wait(50);
        OnRev(OUT_A);
        Wait(130);
        OnFwd(OUT_A);
        Wait(50);
        OnRev(OUT_C);
        Wait(130);
        Off(OUT_C);
        }
        pen_up();//ペンを上げる
nigaoe2.jpg
        OnRev(OUT_C);//移動
        OnFwd(OUT_A);
        Wait(80);
        OnFwd(OUT_C);
        Wait(30);
        OnRev(OUT_C);
        Wait(98);
        pen_down();//ペンを下げる。
        OnFwd(OUT_A+OUT_C);//右目を描く。
        Wait(50);
        pen_up();//ペンをあげる。
        OnFwd(OUT_A+OUT_C);//ペンをあげた状態でAとCのモーターを動かして眉間の間隔だけ進む。
        Wait(15);
       pen_down();//ペンを下げる。
        OnFwd(OUT_A+OUT_C);//左目をかく
        Wait(50);
nigaoe3.jpg
       pen_up();//ペンを上げる。
        OnRev(OUT_A+OUT_C);//目の長さより少し長くバックする。
        Wait(53);
        OnFwd(OUT_C);//バックした状態でCを正回転させることで、ロボットの向きをかえる。
        Wait(95);
        OnFwd(OUT_A);
        Wait(30);
        pen_down();ペンを下げる。
        OnFwd(OUT_A+OUT_C);
        Wait(35);//鼻をかく。
nigaoe4.jpg
        pen_up();//ペンをあげる。
        OnFwd(OUT_A+OUT_C);
        Wait(50);
        Rev(OUT_A);
        Wait(60);//移動。
        pen_down();//ペンをさげる。
        OnFwd(OUT_A+OUT_C);
        Wait(80 );//口をかく。
nigaoe5.jpg
        
        Off(OUT_A+OUT_C+OUT_B);
        }

<感想>

初めてロボットのプログラミングをしてみて、普通に打ち込むのは簡単だけどどうやって簡潔に見やすいプログラミングをするかが大変だった。

<コメントをお願いします>


良かった点

  1. ペンの位置やサブルーチン等いろいろと工夫しているようです。

改善点

  1. ロボットの説明がないのでどんなロボットを作ったかわかりません。
  2. 一部プログラムをうまく貼付けられていない等、ホームページの形式を見やすくしたほうがいいかもしれません
  3. 工夫した点は図や写真を使うとわかりやすいと思います。

添付ファイル: filenigaoe5.jpg 308件 [詳細] filenigaoe4.jpg 282件 [詳細] filenigaoe3.jpg 303件 [詳細] filenigaoe2.jpg 313件 [詳細] filenigaie1.jpg 306件 [詳細]

トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2008-07-17 (木) 16:50:06