[[2019a/Member]]~
&size(40){課題1};~
~
&size(20){目次};~
#contents

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

*完成した文字 [#m978699e]
#ref(甲府.jpg)

*ロボットの説明 [#d163fa3f]
**前輪パーツ [#gdb7009b]
動かすタイヤは前輪一つです。~
パーツを調整しながら重心を真ん中にするのに苦労しました。
#ref(前輪.JPG)
**後輪パーツ [#n98b234e]
後輪パーツはバランスを良くするためできるだけ後ろにつけるため~
棒を2つをくっつけてタイヤを取りつけました。
後輪パーツはバランスを良くするため、棒を2つをくっつけて~
タイヤを出来るだけ後ろに取り付けました。
#ref(後輪.JPG)
**ペンを左右に動かすパーツ [#p7621ed9]
上の写真のように歯車を使ってペンを掴んでいるパーツ全体を左右に動かすことで~
ペンを左右に動かしました。
#ref(ペンを左右に動かすパーツ.JPG)
**ペンの上げ下げ [#zc9fcf8e]
ペンの上げ下げの部分は2つのタイヤでペンを挟み、~
タイヤを回転させて行いました。
#ref(ペンの上げ下げ.JPG)

*プログラム [#r4c70992]
**準備のためのプログラム [#q29864ff]
 #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();    //ペンを下げる
**甲のプログラム [#z982d763]
甲の左上の端から時計回りに外側を囲み、左の真ん中の線の所まで下がって~
真ん中の横棒を書きます。そして、真ん中の縦棒の支店までペンを持って行って~
そのまま下に線を引きます。ペンを上げた状態で終わります。
    right(32);back(17);left(32);front(17);      //甲の字
     back(9);right(32);up();
    front(9);left(18);down();
    back(20);back(10);up();
**移動のプログラム [#r734a5c4]
少し下がってペンを下ろします。
    back(7);down();                             //移動
**府のプログラム [#s22d67aa]
「广」の部分は書き順と同じで、そのまま右に移動して「イ」の~
縦棒を逆から書きます。次に「イ」の上の部分を上から斜めに書きます。~
「寸」の横棒を左から書いて、あとは書き順と同じように書きます。
    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();

*プログラム全体 [#re3f640f]
 #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();
 }

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

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