[[NQC入門]]

*課題1 似顔絵を描くロボット [#n5b071c7]

*ロボット本体 [#b237cd36]
自分たちは、ロボットの構想を練る際に車タイプのロボットだとタイヤなどで紙が動いてしまったりと、不便な点が多いのでは? と思い、車からかけ離れたこのアームタイプのロボットを作りました。
#ref(2012a/A4/Chako/M1/ロボ4.jpg,10%,ロボット全体)

アームタイプはバランスをとるのが大変難しく、安定させるためにパーツを試行錯誤
しながら取り付けたらこうなりました。コンピュータも重し代わりにしました。
#ref(2012a/A4/Chako/M1/ロボ3.jpg,10%,ロボット安定)
&ref(2012a/A4/Chako/M1/ロボ2.jpg,10%,ロボット安定);

また、アーム部分がかなり重たくそのまま描こうとするとアームの角度が下に向きすぎてしまったりしてうまく描けないので、アームの支えを取り付けました。ただ、アームの動きを邪魔しない位置に支えを取り付けるのが大変だった。
#ref(2012a/A4/Chako/M1/ロボ1.jpg,10%,ロボット支え)
 
*プログラム [#ce9acaa5]
  task main()
  {
  OnFwd(OUT_A,35);
  OnRev(OUT_B,50);
  Wait(1800);
  Off(OUT_AB);   //右顔輪郭
  Wait(500);
  
  OnFwd(OUT_B,25);
  Wait(800);
  Off(OUT_B);
  Wait(500);     //リーゼント
 
  OnRev(OUT_A,30);
  Wait(900);
  Off(OUT_A);
  Wait(500);     //頭輪郭
  
  OnFwd(OUT_A,45);
  OnRev(OUT_B,25);
  Wait(650);
  Off(OUT_AB);
  Wait(500);     //前髪
 
  OnRev(OUT_C,40);
  Wait(500);
  Off(OUT_C);
  Wait(500);     //ペン上げ
 
  OnFwd(OUT_B,20);
  OnRev(OUT_A,45);
  Wait(300);
  Off(OUT_AB);
  Wait(500);     //ペン調整
 
  OnFwd(OUT_C,20);
  Wait(500);
  Off(OUT_C);
  Wait(500);     //ペン下げ
 
  OnFwd(OUT_A,20);
  OnRev(OUT_B,30);
  Wait(300);
  Off(OUT_AB);
  Wait(700);     //左眉
 
  OnRev(OUT_C,40);
  Wait(500);
  Off(OUT_C);
  Wait(500);     //ペン上げ
  
  OnFwd(OUT_A,20);
  OnRev(OUT_B,15);
  Wait(400);
  Off(OUT_AB);
  Wait(700);     //ペン調整
  
  OnFwd(OUT_C,30);
  Wait(700);
  Off(OUT_C);
  Wait(500);     //ペン下げ
 
  OnRev(OUT_A,30);
  OnFwd(OUT_B,10);
  Wait(300);
  Off(OUT_AB);
  Wait(500);     //右眉
 
  OnRev(OUT_C,40);
  Wait(500);
  Off(OUT_C);
  Wait(500);     //ペン上げ
 
  OnRev(OUT_A,35);
  OnFwd(OUT_B,27);
  Wait(650);
  Off(OUT_AB);
  Wait(500);    //調整
 
  OnFwd(OUT_C,30);
  Wait(400);
  Off(OUT_C);
  Wait(500);     //ペン下げ
 
  OnRev(OUT_A,30);
  Wait(400);
  Off(OUT_A);   //口
  Wait(500);
  
  OnRev(OUT_C,50);
  Wait(500);
  Off(OUT_C);
  Wait(500);     //ペン上げ
 
  OnFwd(OUT_A,55);
  OnRev(OUT_B,20);
  Wait(700);
  Off(OUT_AB);
  Wait(500);     //調整
  
  OnFwd(OUT_C,30);
  Wait(800);
  Off(OUT_C);
  Wait(500);     //ペン下げ(右目)
 
  OnRev(OUT_C,50);
  Wait(510);
  Off(OUT_C);
  Wait(500);     //ペン上げ
   
  OnFwd(OUT_B,40);
  OnRev(OUT_A,40);
  Wait(200);
  Off(OUT_AB);
  Wait(500);    //調整
  
  OnFwd(OUT_C,30);
  Wait(1000);
  Off(OUT_C);
  Wait(500);     //ペン下げ(左目)
  
  }

**完成品 [#mc84e0f0]
 

今までうまくいってたのに、本番では予想外の動きをしまくりでした。電池の残量のせいだと思われる。
**反省・感想 [#v35171da]
 アームタイプのロボットなので、曲線は描きやすかったが直線を描くことが非常に困難だった。また、車タイプのロボットよりも電池の残量によって、かなり動きが変わってしまって毎回プログラミングを調整し直すのが大変だった。次回からは、電池の残量などもしっかりとあらかじめ考えてロボットの構想を練ろうと思う。

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