[[2009b]]
*課題 [#t023d88b]

ロボット、プログラムを工夫して、グループの人の似顔絵を描こう。

*メンバー [#z7375f65]

SHIMA  ゆうたろう☆  NISHI

*ロボット概要 [#k829a746]

**製作 [#k59932d3]

当初は、キャタピラを使っていました。そして、僕たちは気づいた…

僕たちの方針じゃあキャタピラは使えないということに。紙の上を進むタイプだと、紙を

巻き込んで全く描けないのですorz

#ref(2000.jpg)

失敗を生かして、タイヤに変更しました〜〜!

現在は、こんな感じです。

#ref(6000.jpg)

  ↑前

#ref(aaaa.jpg)

  ↑後ろ

タイヤは、MIND STORMS の組み方を参考にしました。

ペンの仕組みは単純で、ギアに直接つなげたアームにペンを固定して、ギアの回転によりペンを上げ下げさせます。(上の図は、ペンをあげた状態です。)
アームは、ギアで動作を遅くしたのと、稼動したとき下がらないようにペンの固定部分をかるくしました。

また、後ろのゴタゴタした配線は、短い配線の調子が悪かったため、長い配線を使用し束ねたためです。


**プログラム [#g3a53485]

大体の構図はできても、直進や回転の微調整が難しかったです。

以下に、各々の最終的なプログラムをアップします。

SHIMA.ver

 #define p 10
 task main()
 {
  
  //face line start
         OnFwd(OUT_B);        //down a pen
         Wait(p);
         Off(OUT_B); 
         OnRev(OUT_C);        //face line (a big circle)
         Wait(1200);
         OnRev(OUT_B);        //up a pen
         Wait(p);
         Off(OUT_B+OUT_C);
  //face line end
  
  //nose start  
        OnRev(OUT_A);        //turn-right (a 90 degree)
         Wait(100);
         Off(OUT_A);
         OnFwd(OUT_A+OUT_C);  //go front
         Wait(15);
         Off(OUT_A+OUT_C);
         OnFwd(OUT_B);        //down a pen
         Wait(p);
         Off(OUT_B);
         OnFwd(OUT_A+OUT_C);  //go front
         Wait(30);
         Off(OUT_A+OUT_C);
         OnRev(OUT_B);        //up a pen
         Wait(p);
         Off(OUT_B);
  //nose end
  
  //mouth start
        OnFwd(OUT_A+OUT_C);  //go front
         Wait(15);
         Off(OUT_A+OUT_C);
         OnFwd(OUT_B);        //down a pen
         Wait(p);
         Off(OUT_B);
         OnRev(OUT_C);        //turn-left (a 90 degree)
         Wait(100);
         Off(OUT_C);
         OnRev(OUT_B);        //up a pen
         Wait(p);
         Off(OUT_B);
         OnRev(OUT_C);        //turn-left (a 90 degree)
         Wait(100);
         Off(OUT_C);
         OnFwd(OUT_A+OUT_C);  //go front
         Wait(70);
         Off(OUT_A+OUT_C);
  //mouth end
  
  //right eye start  
         OnRev(OUT_C);        //turn-left
         Wait(120);
         Off(OUT_C);
         OnRev(OUT_A+OUT_C);  //go back
         Wait(50);
         Off(OUT_A+OUT_C);
         OnFwd(OUT_B);        //down a pen
         Wait(p);
         Off(OUT_B);
         OnRev(OUT_A+OUT_C);  //go back
         Wait(30);
         Off(OUT_A+OUT_C);
         OnRev(OUT_B);        //up a pen
         Wait(p);
         Off(OUT_B);
  //right eye end
  
  //left eye start
         OnRev(OUT_A+OUT_C);  //go back
         Wait(30);
         OnFwd(OUT_B);        //down a pen
         Wait(p);
         Off(OUT_B);
         OnRev(OUT_A+OUT_C);  //go back
         Wait(30);
         Off(OUT_A+OUT_C);
         OnRev(OUT_B);        //up a pen
         Wait(p);
         Off(OUT_B);
  //left eye end
  }

僕(SHIMA)の作品です。↓

#ref(no1.jpg)

↑右目が輪郭の外にはみ出してしまいました。

そして、口と鼻が近すぎました。

#ref(no2.jpg)

↑よく見ると、こんな見方もできます。

ニコちゃんマークがよだれを垂らしています。




NISHI.ver

  void lift(){                                 // ude wo ageru
     OnRev(OUT_B); Wait(16); 
     Off(OUT_B); }
 void down(){                            // ude wo sageru
      OnFwd(OUT_B); Wait(16);
      Off(OUT_B); }
 void turn_left(int t){             // sasetu
      OnRev(OUT_A); OnFwd(OUT_C); Wait(t);
      Float(OUT_A+OUT_C); }
 void turn_right(int t){           // usetu
       OnRev(OUT_C); OnFwd(OUT_A); Wait(t);
       Float(OUT_A+OUT_C); }
 void  go_straight(int t){       // tyokusin
       OnFwd(OUT_A+OUT_C); Wait(t);
       Float(OUT_A+OUT_C); }
 void go_back(int t){              // koutai
       OnRev(OUT_A+OUT_C); Wait(t);
       Float(OUT_A+OUT_C); }
 
 task main(){
       go_straight(30); lift();        // me wo kaku
       go_straight(15); down(); 
       go_straight(30); lift();
       turn_right(89); go_straight(10); 
       turn_right(89); go_straight(34);
        
       turn_left(90); go_straight(12);   // hana kuti wo kaku
       down(); go_straight(20); lift();
       go_straight(47); turn_right(89); 
       down(); go_back(35); go_straight(30); 
       lift();
        
       turn_right(45); go_straight(116);     // rinkaku wo kaku
       turn_left(134); down(); go_straight(90); 
       lift(); go_straight(10); 
       turn_left(89); down(); go_straight(87);
       lift(); go_straight(10); 
       turn_left(89); down(); go_straight(95); 
       turn_left(90);                              // maegami wo kaku
 repeat(5){
       OnFwd(OUT_C); Wait(20); Off(OUT_C); 
       OnFwd(OUT_A); Wait(20); Off(OUT_A); }
       lift(); 
 }

このプログラムだと、目、鼻、口まではうまく描けるのですが、輪郭が途中から歪んでしまいました。

目、鼻あたりと同じ角度で設定しましたが、設定を変えるべきでした。

#ref(2.jpg)

↑なんかゆる〜いブラック・○ックっぽいかも?

ちなみに これSHIMA(のつもり)です。


ゆうたろう☆.ver

 #define pen_up OnRev(OUT_B);SetPower(OUT_B,2);Wait(40);Off(OUT_B); //ペン上げる
 #define pen_down OnFwd(OUT_B);SetPower(OUT_B,2);Wait(40);Off(OUT_B); //ペン下げる 
 #define turn_right OnFwd(OUT_A);OnRev(OUT_C); //右に向く
 #define turn_left OnFwd(OUT_C);OnRev(OUT_A); //左に向く
 #define stop_wheel Off(OUT_A+OUT_C); //止まる

 task main()
 {
 pen_down;
 OnFwd(OUT_A);
 Wait(1000);
 stop_wheel;
 pen_up;      //輪郭を描く
 
 OnFwd(OUT_A+OUT_C);
 Wait(35);
 Float(OUT_A+OUT_C);
 
 turn_right;
 Wait(95);
 stop_wheel;
 
 OnRev(OUT_A+OUT_C);
 Wait(60);
 stop_wheel;
 
 pen_down;
 OnFwd(OUT_A+OUT_C);
 Wait(150);
 Float(OUT_A+OUT_C);
 pen_up;        //帽子を描く
 
 turn_right;
 Wait(150);
 stop_wheel; 
 
 OnRev(OUT_A+OUT_C);
 Wait(20);
 stop_wheel; 
 
 pen_down;
 OnFwd(OUT_A+OUT_C);
 Wait(30);
 stop_wheel;
 pen_up;        //左目を描く
 
 OnFwd(OUT_A+OUT_C);
 Wait(40);
 stop_wheel; 
 
 turn_right;
 Wait(56);
 stop_wheel; 
 
 pen_down;
 OnFwd(OUT_A+OUT_C);
 Wait(25);
 Off(OUT_A+OUT_C);
 pen_up;         //右目を描く 
 
 turn_left;
 Wait(150);
 stop_wheel;
 
 OnFwd(OUT_A+OUT_C);
 Wait(65);
 stop_wheel;
 
 turn_left;
 Wait(60);
 stop_wheel;
 
 OnRev(OUT_A+OUT_C);
 Wait(80);
 stop_wheel;
 
 pen_down;
 OnFwd(OUT_A+OUT_C);
 Wait(30);
 stop_wheel;
 pen_up;           //口を描く
 }

僕がプログラムを入力してる最中、西尾君は帽子をかぶってたので帽子を描きました。
鼻がない?なに、気にすることはない。クリリンだって鼻はないじゃない。
気にすることはない。

#ref(911.jpg)

↑

**感想 [#b340e663]
  
SHIMA :時間との格闘の末、7割ぐらいうまくいったと思います。まだ、手直しが必要な部分があり、改善の余地が必要です。時間の調節が、かなり難しかったです。プログラミングもまだ簡単にできると思うので、試行錯誤したいと思います。
最後に、キャタピラは、お勧めできません。(紙を巻き込むため)なので、皆さんお気をつけ下さい。


NISHI  :タイヤでは動作が早すぎて、微調整が難し過ぎました。その点ではキャタピラは最高でした。

ロボットとプログラムのバランスが重要だと学びました。


ゆうたろう☆ :本当は笑い男が描きたかったんDA。点数をつけるなら50点くらいなんDA。あと、キャタピラは罠です。


まだタイヤに変えた後の写真が貼れてなかったり、プログラムに説明がなかったりと終わってないと判断したので、評価はしていません。 FI

写真等はまた補完していただくとして、言葉の説明が少し少なすぎます。ロボットについても、外見だけでなく、どこを工夫したかという点を説明してください。それから、プログラムの中に、コメントとして説明を入れてみてください。ページの見た目を見やすくするためにも、ソースは半角空白ではじめて整形済みテキストにするなどを徹底してください。他の点も、[[整形ルール]]を参考して直してみてください。 こさか(KA)

ページの整形ができて、格段に見やすくなりましたね!ロボットの説明については、言葉の説明だけでは少し分かりづらい点(例えばペンまわり)の写真もあった方がいいかと思います。プログラムのコメントには日本語の文字や文章を使っていただいてかまいません(もちろん、英語でもいいですが、私は苦手です。笑)。プログラムの説明をもう少し詳しくするとわかりやすいです。例えば、一口に「目を描く」といっても、目の位置に移動する、どんな線を描く(直線、曲線等)というように色々あります。それから、[[コメントフォーム>整形ルール#x23849ca]]をつけていただけると、こちらとしては楽でいいです。 こさか

ロボットの説明に関しては、こさかさんの言うとおり、ペンの上げ下げの写真や図があった方がいいです。工夫した点や構造・機能がわかりにくい点は焦点をあてて説明していきましょう。また、一人目のプログラムはサブルーチンや関数を使った方がすっきりすると思います。 FI

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