[[2008a/MemberOnly/進行状況A]]
*目次 [#p7316d32]
#contents
*課題 [#v8c3ecf3]
レゴマインドストームを使って、人!?の顔を書く!!
*ロボット [#j463e2f9]
**写真 [#n6c2ec10]
#ref(2008a/A8/課題1右/114.jpg)
斜め前から(タッチセンサーは関係ないものである)
#ref(2008a/A8/課題1右/112.jpg)
真横から。非常にコンパクトである。
#ref(2008a/A8/課題1右/115.jpg)

シンプルに、かつ丈夫で小回りが利くコンパクトな仕上がりとなった。
#ref(2008a/A8/課題1右/113.jpg)
アームは、間にペンを差し込めば、完全にホールドできる。

*プログラム [#f7585ae3]
*プログラム1 作成:平井[#f7585ae3]
/* This program makes robot draw face*/
   #define Go_straight(t) OnFwd(OUT_A+OUT_C);Wait(t);Off(OUT_A+OUT_C); 
   #define Go_back(t) OnRev(OUT_A+OUT_C);Wait(t);Off(OUT_A+OUT_C);   
   #define Turn_right(t) OnFrd(OUT_A);OnRev(OUT_C);Wait(t);Off(OUT_A+OUT_C); 
   #define Turn_left(t) OnFwd(OUT_C);OnRev(OUT_A);Wait(t);Off(OUT_A+OUT_C);
   #define U_turn OnFwd(OUT_A);OnRev(OUT_C);Wait(200);Off(OUT_A+OUT_C);
   #define Pen_up OnRev(OUT_B);Wait(15);Off(OUT_B);
   #define Pen_down OnFwd(OUT_B);Wait(15);Off(OUT_B);
   #define Stop_Time 20
   #define Go_straight(t) OnFwd(OUT_A+OUT_C);Wait(t);Off(OUT_A+OUT_C); //直進
   #define Go_back(t) OnRev(OUT_A+OUT_C);Wait(t);Off(OUT_A+OUT_C);   //後退
   #define Turn_right(t) OnFrd(OUT_A);OnRev(OUT_C);Wait(t);Off(OUT_A+OUT_C); //右に90度曲がる
   #define Turn_left(t) OnFwd(OUT_C);OnRev(OUT_A);Wait(t);Off(OUT_A+OUT_C); //左に90度曲がる
   #define U_turn OnFwd(OUT_A);OnRev(OUT_C);Wait(200);Off(OUT_A+OUT_C); //180度回転
   #define Pen_up OnRev(OUT_B);Wait(15);Off(OUT_B); //ペンを上げる
   #define Pen_down OnFwd(OUT_B);Wait(15);Off(OUT_B); //ペンを下げる
   #define Stop_Time 20 //止まる時間
   


   task main()
   {
   SetPower(OUT_A+OUT_C,4);
   OnFwd(OUT_A);  /*Outline of face*/
   OnFwd(OUT_A);  //顔の輪郭
   OnRev(OUT_C);
   Wait(400);
   Off(OUT_A+OUT_C);
   Wait(Stop_Time);
    repeat(2) /*Eyebrow*/
    repeat(2) //眉毛
     {
      Pen_up;
      Go_back(30);
      Pen_down;
      Go_back(30)
     }
   Pen_up; /*Eye*/
   Pen_up; //目
   Go_straight(55);
   Turn_left;
   Pen_down;/*Right eye*/
   Pen_down;//右目
   Go_straight(20);
   Pen_up;
   Go_back(20);
   Turn_right;
   Go_straight(30);
   Turn_left;
   Pen_down; /*Left eye*/
   Pen_down; //左目
   Go_straight(20);
   Pen_up;
   Go_straight(20);
   Turn_left;
   Go_straight(35); /*Mouth*/
   Go_straight(35); //口
   Off(OUT_A+OUT_B+OUT_C);   
   
   }
*プログラムの解説 [#x58ebcbf]
*プログラム1の解説 [#x58ebcbf]
1;まず輪郭を書かせる。(円)
2;そこから眉毛を書く。
3;眉毛の途中まで戻って、左に90度回転し、目をかく。
4;最後に口の位置まで動き、口をかく。
*プログラム2作成:福本 [#l3a3e668]
/*This program makes robot draw face*/
  #define PEN_DOWN OnFwd(OUT_B);Wait(15);Off(OUT_B); //ペンを上げる
  #define PEN_UP OnRev(OUT_B);Wait(15);Off(OUT_B);  //ペンを下げる

  task main()
  {
  SetPower(OUT_A+OUT_C,4);
  PEN_DOWN;
  OnFwd(OUT_A+OUT_C);  //顔の輪郭
  Wait(80);
  OnRev(OUT_C); //顎
  Wait(20);
  OnFwd(OUT_C);
  Wait(30);
  OnRev(OUT_C);
  Wait(94);
  OnFwd(OUT_C);
  Wait(30);
  OnRev(OUT_C);
  Wait(20);  //ここまで顎
  OnFwd(OUT_C);
  Wait(80);
  OnRev(OUT_C); 
  Wait(105);
  repeat(5) //ジグザグの髪の毛
  {
  OnFwd(OUT_A);
  Wait(5); 
  Off(OUT_A);

  OnFwd(OUT_A+OUT_C);
  Wait(2);
  Off(OUT_A+OUT_C);

  OnFwd(OUT_C);
  Wait(5);
  Off(OUT_C);

  OnFwd(OUT_A+OUT_C);
  Wait(2);
  Off(OUT_A+OUT_C);
  }
  PEN_UP;
  OnRev(OUT_C);  //目の位置まで移動
  Wait(112);
  OnFwd(OUT_C);
  Wait(15);
  OnRev(OUT_C);
  Wait(105);
  repeat(2);  //目
  {
  OnFwd(OUT_A+OUT_C);
  Wait(20);
  PEN_DOWN;  //左目→右目
  OnFwd(OUT_A+OUT_C);
  Wait(30);
  PEN_UP;
  }
  OnRev(OUT_A+OUT_C); //右目と左目の中央まで戻る。
  Wait(40);
  OnFwd(OUT_C); //右に90度回転
  Wait(105);
  OnFwd(OUT_A+OUT_C);
  Wait(8); 
  PEN_DOWN;   //鼻
  OnFwd(OUT_A+OUT_C);
  Wait(20);
  PEN_UP;
  OnFwd(OUT_A+OUT_C);  //口の位置まで移動
  Wait(8);
  OnRev(OUT_A);
  Wait(108);
  OnRev(OUT_A+OUT_C);
  Wait(20);
  PEN_DOWN;  //口 
  OnFwd(OUT_A+OUT_C);
  Wait(40);
  Off(OUT_A+OUT_C);
  }

*プログラム2の解説 [#n9d2636b]
1.まず、顎のとがった輪郭を描く。
2.次に髪の毛をジグザグに書く。
3.目の位置まで移動して、目を書く。
4.目と目の間まで戻り、90度回転して鼻を描く。
5.鼻を描いてから口の位置まで移動し、90度回転して、一気に口を書く(直線)
*工夫した点 [#ue3d52f4]
ペンを完全に固定できるようにアームを工夫した。それから、ロボットのほうはシンプルだが頑丈に作った。
*苦労した点 [#ae80edd9]
プログラムを作ったロボットにあわせるのが大変。
*失敗した点 [#oaf7aceb]
タイヤが前輪後輪とも大きく、摩擦によって、回転がうまくいかない。
よって前後の幅を短くしタイヤも小さくし、小回りができるようにした。
さらに四輪駆動にすることによって、滝機動性を確保できた。
*感想 [#l438e9fe]
関数を理解することができない。この先がかなり不安だ。
ロボティクスの授業はかなり奥が深いが、それなりに時間が確保できないと、なかなかうまくできない。

*その他 [#w558af0f]

プログラムに説明を書いてください。他のグループを参考にしてみてください。


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS