2019a/Member
課題1

目次

書いた字とロボットについて

私たちが書いた感じは「甲府」です。作成時間はざっと20時間です。
ロボットは、ペンを左右に動かすパーツと、ペンを上下させるパーツ、
そしてロボットを前後に動かすための車輪を3つです。そのうち2つは
ロボットを支えるためのもので、実際にプログラムで動いている車輪は1つです。
ペンを左右に移動させて横棒を、ロボットを前後に動かして縦棒を書き、
それを同時に行うことで斜め線を書きました。

完成した文字

甲府.jpg

ロボットの説明

前輪パーツ

動かすタイヤは前輪一つです。
パーツを調整しながら重心を真ん中にするのに苦労しました。

前輪.JPG

後輪パーツ

後輪パーツはバランスを良くするため、棒を2つをくっつけて
タイヤを出来るだけ後ろに取り付けました。

後輪.JPG

ペンを左右に動かすパーツ

上の写真のように歯車を使ってペンを掴んでいるパーツ全体を左右に動かすことで
ペンを左右に動かしました。

ペンを左右に動かすパーツ.JPG

ペンの上げ下げ

ペンの上げ下げの部分は2つのタイヤでペンを挟み、
タイヤを回転させて行いました。

ペンの上げ下げ.JPG

プログラム

準備のためのプログラム

#define wait(t) Wait(t);                       //簡略化
#define off() Off(OUT_ABC);wait(100);

#define front(t) OnFwd(OUT_B);wait(t);off();   //前へ
#define back(t) OnRev(OUT_B);wait(t);off();    //後ろへ

#define right(t) OnRev(OUT_A);wait(t);off();   //ペンを右へ
#define left(t) OnFwd(OUT_A);wait(t);off();    //ペンを左へ
#define up() OnRev(OUT_C);wait(4);off();       //ペンを上げる
#define down() OnFwd(OUT_C);wait(10);off();    //ペンを下げる

甲のプログラム

甲の左上の端から時計回りに外側を囲み、左の真ん中の線の所まで下がって
真ん中の横棒を書きます。そして、真ん中の縦棒の支店までペンを持って行って
そのまま下に線を引きます。ペンを上げた状態で終わります。

   right(32);back(17);left(32);front(17);      //甲の字
    back(9);right(32);up();
   front(9);left(18);down();
   back(20);back(10);up();

移動のプログラム

少し下がってペンを下ろします。

   back(7);down();                             //移動

府のプログラム

「广」の部分は書き順と同じで、そのまま右に移動して「イ」の
縦棒を逆から書きます。次に「イ」の上の部分を上から斜めに書きます。
「寸」の横棒を左から書いて、あとは書き順と同じように書きます。

   back(10);up();                              //府の字
   right(16);down();
   left(32);back(20);back(10);up();
   right(12);down();
   front(14);front(10);up();
   front(6)right(6);down();
   OnFwd(OUT_A);OnRev(OUT_B);wait(10);
    Off(OUT_B);wait(3);off();up();
   right(16);down();
   right(14);up();
   left(4);front(7);
   back(15);back(10);up();
   left(12);front(14);down();
   OnRev(OUT_AB);wait(4);Off(OUT_B);
    wait(2);off();

プログラム全体

#define wait(t) Wait(t);                       //簡略化
#define off() Off(OUT_ABC);wait(100);

#define front(t) OnFwd(OUT_B);wait(t);off();   //前へ
#define back(t) OnRev(OUT_B);wait(t);off();    //後ろへ

#define right(t) OnRev(OUT_A);wait(t);off();   //ペンを右へ
#define left(t) OnFwd(OUT_A);wait(t);off();    //ペンを左へ
#define up() OnRev(OUT_C);wait(4);off();       //ペンを上げる
#define down() OnFwd(OUT_C);wait(10);off();    //ペンを下げる

task main{
   right(32);back(17);left(32);front(17);      //甲の字
    back(9);right(32);up();
   front(9);left(18);down();
   back(20);back(10);up();
   
   back(7);down();                             //移動
   
   back(10);up();                              //府の字
   right(16);down();
   left(32);back(20);back(10);up();
   right(12);down();
   front(14);front(10);up();
   front(6)right(6);down();
   OnFwd(OUT_A);OnRev(OUT_B);wait(10);
    Off(OUT_B);wait(3);off();up();
   right(16);down();
   right(14);up();
   left(4);front(7);
   back(15);back(10);up();
   left(12);front(14);down();
   OnRev(OUT_AB);wait(4);Off(OUT_B);
    wait(2);off();
}

感想

ロボットがしっかりしていないとプログラムをきちんと書いても、
ペンが浮いたり、実行するたび違う動きをしたりするので難しかった。
ペンが浮くのを対処するのに、2度に分けて長い棒を書いたり、
ペンを上げるのより下げる時間を長くしたり工夫しました。
工夫一つで大きく動きが変わるので驚きました。




添付ファイル: file後輪.JPG 174件 [詳細] file前輪.JPG 184件 [詳細] fileペンを左右に動かすパーツ.JPG 144件 [詳細] fileペンの上げ下げ.JPG 179件 [詳細] file甲府.jpg 185件 [詳細]

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