#contents

*ロボット本体の説明 [#zfd9f992]

これは今回の課題で(似顔絵)このロポットで描いた絵です。本体にエクストラのものをつけて、それに簡単にペンを付けました。

#ref(A1.JPG)

#ref(A2.JPG)

エクストラ部品をつけて、そしてそれを黒いものでペンを付けました。このようになりました。
この構造で一番苦労したのは本体とペンが通る道の差がとても大きかったことです。最初は似顔絵を作ろうとした時、ひげのところを三角形のように作りたかったが、通る道の差で大変だったので、四角形のような形にしました。ですからプログラミングで少し工夫ができたと思います。


*書き順 [#b9d83a6f]

このように書き順をしました。前に述べたように、本体とペンが通る道の差が大きかったため、この書き順にしました。

#ref(A3.JPG)





*プログラムの定義 [#ua8357ed]

   #define go(t) OnFwd(OUT_AC);Wait(t);Off(OUT_AC)
   #define turn_right(t) OnRev(OUT_A);OnFwd(OUT_C);Wait(t);Off(OUT_AC)
   #define turn_left(t) OnRev(OUT_C);OnFwd(OUT_A);Wait(t);Off(OUT_AC)
   #define back(t) OnRev(OUT_AC);Wait(t);Off(OUT_AC)
   #define up OnRev(OUT_B);Wait(10);Off(OUT_B)
   #define down OnFwd(OUT_B);Wait(12);Off(OUT_B)

実は定義に間違いがあり、turn rightのところに左を曲がり、turn leftのところに右を曲がります。それに遅く気がつきましたが、変えませんでした。

この定義ではペンを上げたり下げたり、右と左に曲げたり、前と後ろに行ったりするという動作です。


*プログラム [#k339bdfb]

このプログラミングでロボットは多く回転するから、紙を押さえておかないとえがけないのです。そしてこの最後にできた似顔絵をするためにいっぱい紙を使ってやっていました。


   task main()
   {
       go(100);                         //1一番最初の線。
       up;                            //ペンを上げる
       go(10);                        //2番目の線を描き始まる位置。
       turn_left(115);
       go(70);
       down;                          //2番目の線の位置に着いた時にペンを下げる。
       go(95);                        //2番目の線を描く。
       up;                           //ペンを上げる
       back(230);                       //3番目の線を描き始まる位置。
       turn_right(120);
       back(25);  
       down;                          //3番目の線の位置に着いた時にペンを下げる
       back(100);                       //3番目の線を描く。
       up;                           //ペンを上げる
       back(135);                       //4番目の線を描き始まる位置。
       turn_right(120);
       back(85); 
       down;                          //4番目の線の位置に着いた時にペンを下げる。
       go(15);                        //4番目の線を描く。(左側のめ)
       up;                          //ペンを上げる。
       go(20);                         //5番目の線を描き始まる位置。
       down;                          //5番目の線の位置に着いた時にペンを下げる。
       go(15);                        //5番目の線を描く。(右側の目)
       up;                           //ペンを上げる。
       back(15);                       //6番目の線を描き始まる位置。
       turn_left(110);
       go(155);
       down;                          //6番目の線の位置に着いた時にペンを下げる。
       go(20);                        //6番目の線を描く。(鼻)
       up;                           //ペンを上げる。
       go(50);                        //7番目の線を描き始まる位置。
       turn_left(115);  
       go(140);
       down;                          //7番目の線の位置に着いた時にペンを下げる。
       go(20);                        //7番目の線を描く。(口)
       up;                           //ペンを上げる
       go(100);                        //8番目の線を描き始まる位置。
       turn_left(15);
       back(60);
       turn_right(15);
       back(65);
       down;                          //8番目の線の位置に着いた時にペンを下げる。
       repeat(3) {                     //8番目の線を描く。(ひげ)
       go(10);
       turn_left(10);
       turn_right(10);
    }
  }

1番目の線から3番目は顔の形で、4,5は目です。6は鼻で、7は口です。最後に8番目は私の顔に似させるため、ひげを描きました

*最後 [#h6f51078]
できたことについて一言をいいます。

#ref(A4.JPG)

一番大変だったのは本体とペンが通る道が異なっていたことです。
また、紙を押さえておかないと紙がずれてしまいます。しかし、その後それで工夫できて嬉しかったです。

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS