2018b/Member

課題1

これまで住んだことのある都道府県名、市町村名、地区名などの中から 2文字以上のものを選び、それをA4の紙を書くロボットを製作せよ。

選んだ文字

自分の出身地が三日市だったので、それを書くことにした。

ロボットの説明

書くための工夫

x軸方向への移動を上の小さな車体で行い、y軸方向への移動を下の大きな車体で行うことにした。z軸方向(ペンの上げ下げ)は、上の車体についている小さなモーターで行う。

書く順番

x軸方向、y軸方向への動きだけで、斜めの動きがないので、横を先に書き、縦を後に書くことにした。ただ、x軸、y軸の正の方向へ書こうとするとペンが思うように動かず文字が書けないので、面倒ではあるがそれぞれ負の方向への動きだけに限定することにした。 まず、上の三本を完成させる。その次にy軸方向へ車体を動かし、真ん中の三本を完成させる。そして、またy軸方向へ車体を動かし、“日”の下側と“三”の下側を完成させる。そのあとにx軸方向へと動かし、“日”の縦棒を日本完成させ、最後にx軸方向へと動かし、“市”の縦棒を完成させる。 紙に書くとわかりやすいと思ったので書いてみた

S__227377155.jpg

こんな感じで、自分が考えられる書き順の中で最も簡単だと思うものを採用した。

S__225419270.jpg

この部分がx軸方向への動きとz軸方向への動きを可能にしている。 S__225419273.jpg

この部分が上にある写真の部品を乗っける部分と、y軸方向への動きを可能にしている。

プログラミング

動かすにあたって歳先ほどにも述べたように工夫が必要だったので、少しプログラムが長くなってしまった。まずはプログラミング一つ一つの紹介をする。

  OnRev(OUT_C,4); これがz軸方向正の部分への動きである。

  OnFwd(OUT_C,13); これがz軸方向負の部分への動きである。

  OnFwd(OUT_B,10);,OnRev(OUT_B,10); これがそれぞれx軸方向負の部分、正の部分への動きである。

   OnFwd(OUT_A,10);,OnRev(OUT_A,10); これがそれぞれy軸方向への動きである。 また、y軸方向へ文字を書くときは、少し速さがないといけなかったので、

  OnRev(OUT_A,15); として、少しだけ速さを持たせた。 すべてのプログラミングを合わせると、このようになる。

   OnRev(OUT_B,10);
   Wait(500);
   Off(OUT_B);
   OnRev(OUT_C,4);
   Wait(1500);
   Off(OUT_C);
   OnFwd(OUT_B,10);
   Wait(2000);
   Off(OUT_B);
   OnFwd(OUT_C,13);
   Wait(1300);
   Off(OUT_C);//ここで“峇粟(市1画目)
   OnFwd(OUT_B,10);
   Wait(1000);
   Off(OUT_B);
   OnRev(OUT_C,4);
   Wait(1500);
   Off(OUT_C);
   OnFwd(OUT_B,10);
   Wait(2000);
   Off(OUT_B);
   OnFwd(OUT_C,13);
   Wait(1300);
   Off(OUT_C);//ここで番完成(日2画目途中)
   OnFwd(OUT_B,10);
   Wait(1000);
   Off(OUT_B);
   OnRev(OUT_C,4);
   Wait(1500);
   Off(OUT_C);
   OnFwd(OUT_B,10);
   Wait(2000);
   Off(OUT_B);
   OnFwd(OUT_C,13);
   Wait(1300);
   Off(OUT_C);//ここでH峇粟(三1画目)

ここまでが上の3本である。

   OnFwd(OUT_A,10);
   Wait(750);
   Off(OUT_A);//ここで前に出る
   OnRev(OUT_B,10);
   Wait(7500);
   Off(OUT_B);
   OnRev(OUT_C,4);
   Wait(1500);
   Off(OUT_C);
   OnFwd(OUT_B,10);
   Wait(2000);
   Off(OUT_B);
   OnFwd(OUT_C,13);
   Wait(1300);
   Off(OUT_C);//ここで4番完成(市4画目途中)
   OnFwd(OUT_B,10);
   Wait(1000);
   Off(OUT_B);
   OnRev(OUT_C,4);
   Wait(1500);
   Off(OUT_C);
   OnFwd(OUT_B,10);
   Wait(2000);
   Off(OUT_B);
   OnFwd(OUT_C,13);
   Wait(1300);
   Off(OUT_C);//ここでト峇粟(日3画目)
   OnFwd(OUT_B,10);
   Wait(1500);
   Off(OUT_B);
   OnRev(OUT_C,4);
   Wait(1500);
   Off(OUT_C);
   OnFwd(OUT_B,10);
   Wait(1000);
   Off(OUT_B);
   OnFwd(OUT_C,13);
   Wait(1300);
   Off(OUT_C);//ここでθ峇粟(三2画目)

ここまでで真ん中の3本を書く

   OnFwd(OUT_A,10);
   Wait(1000);
   Off(OUT_A);//前に出る
   OnRev(OUT_B,10);
   Wait(3800);
   Off(OUT_B);
   OnRev(OUT_C,4);
   Wait(1500);
   Off(OUT_C);
   OnFwd(OUT_B,10);
   Wait(2000);
   Off(OUT_B);
   OnFwd(OUT_C,13);
   Wait(1300);
   Off(OUT_C);//ここで番完成(日4画目)
   OnFwd(OUT_B,10);
   Wait(1000);
   Off(OUT_B);
   OnRev(OUT_C,4);
   Wait(1500);
   Off(OUT_C);
   OnFwd(OUT_B,10);
   Wait(2000);
   Off(OUT_B);
   OnFwd(OUT_C,13);
   Wait(1300);
   Off(OUT_C);//ここで番完成(三3画目)

ここまででしたの2本線を書く

   OnRev(OUT_B,10);
   Wait(4200);
   Off(OUT_B);
   OnRev(OUT_C,4);
   Wait(1500);
   Off(OUT_C);
   OnRev(OUT_A,15);
   Wait(800);
   Off(OUT_A);
   OnFwd(OUT_C,13);
   Wait(1300);
   Off(OUT_C);//ここで番完成(日2画目途中)
   OnFwd(OUT_B,10);
   Wait(2000);
   Off(OUT_B);
   OnFwd(OUT_A,10);
   Wait(1600);
   Off(OUT_A);
   OnRev(OUT_C,4);
   Wait(1500);
   Off(OUT_C);
   OnRev(OUT_A,15);
   Wait(800);
   Off(OUT_A);
   OnFwd(OUT_C,13);
   Wait(1300);
   Off(OUT_C);//ここで番完成(日1画目)

ここまでで“日”が完成する

   OnRev(OUT_B,10);
   Wait(3700);
   Off(OUT_B);
   OnFwd(OUT_A,10);
   Wait(2200);
   Off(OUT_A);
   OnRev(OUT_C,4);
   Wait(1500);
   Off(OUT_C);
   OnRev(OUT_A,15);
   Wait(1300);
   Off(OUT_A);
   OnFwd(OUT_C,13);
   Wait(1300);
   Off(OUT_C);//ここで番完成(市1画目と5画目)
   OnFwd(OUT_A,10);
   Wait(2200);
   Off(OUT_A);
   OnFwd(OUT_B,10);
   Wait(1200);
   Off(OUT_B);
   OnRev(OUT_C,4);
   Wait(1500);
   Off(OUT_C);
   OnRev(OUT_A,15);
   Wait(300);
   Off(OUT_A);
   OnFwd(OUT_C,13);
   Wait(1300);
   Off(OUT_C);//ここで番完成(市3画目)
   OnRev(OUT_B,10);
   Wait(2000);
   Off(OUT_B);
   OnFwd(OUT_A,10);
   Wait(700);
   Off(OUT_A);
   OnRev(OUT_C,4);
   Wait(1500);
   Off(OUT_C);
   OnRev(OUT_A,15);
   Wait(300);
   Off(OUT_A);
   OnFwd(OUT_C,13);
   Wait(1300);
   Off(OUT_C);//ここで番完成(市4画目途中)

ここで“市”が完成する

完成した文字

本番の一日前に完成した文字がこれである。

S__225501189.jpg

感想と考察

・キャタピラの部分がなかったためにX軸方向への動きを作るのに苦労した。 ・パーツが少し足りずにバランスが悪くなってしまい、まっすぐに描くことができなかった。 ・上からのおもりがなかったために、少し文字が曲がってしまった。 ・文字を書くプログラミングが、こんなにも難しいものだと知った。 ・次からは関数などを勉強してもっと簡単なプログラミングを書こうと考えた。 次回のプログラミング作成に先駆けして、大量に使用するプログラミングを簡単な定義づけをすることにより短くする。


添付ファイル: fileS__227377155.jpg 2件 [詳細] fileS__225501189.jpg 4件 [詳細] fileS__225419273.jpg 1件 [詳細] fileS__225419270.jpg 4件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2018-12-07 (金) 16:38:25 (8d)