目次
#contents
*課題1 似顔絵を描くロボット [#c35450fb]

*ロボット本体 [#wa4b35cf]

ロボット本体については、ペンをロボットの重心に置けるように工夫しました。そこで問題となったのはどうやってモーターをとりつけるかでした。いろいろと試したあげく、逆さに取り付けることでペンを水平に取り付けることに成功しました

これが自分たちのグループが作ったロボットです。
#ref(./CIMG1534t.jpg,1015.2,)
見た目は悪いですがロボットのバランスをとることを優先しました。
#ref(./CIMG1499t.jpg,56.8,)
ロボット本体については、ペンをロボットの重心に置けるように工夫しました。そこで問題となったのはどうやってモーターをとりつけるかでした。いろいろと試したあげく、逆さに取り付けることでペンを水平に取り付けることに成功しました。
#ref(./CIMG1502t.jpg,57.5,)
このように、ペンが重心にあるために,ふらつきを軽減できました。
*プログラム [#xe52bac9]

 sub spin_ahead(int z)
 { 
    OnFwd(OUT_A,40);
    Wait(z);
 }

 sub back(int y)
 {
    OnRev(OUT_AC,35); 
    Wait(y);
    Off(OUT_AC);
 }

 sub pen_down()
 {
    OnFwd(OUT_B,30);
    Wait(510);
    Off(OUT_B);
 }

 sub pen_up()
 {
    OnRev(OUT_B,30);
    Wait(500);
    Off(OUT_B);
 }

 void go_straight(int x)
 {
    OnFwd(OUT_AC,20); 
    Wait(x);
    Off(OUT_AC);
 }


 task main()
 {          
      go_straight(600);				//顔の輪郭を描く
      spin_ahead(4200);
      go_straight(600);
      pen_up();					//ペンを上げる
      back(600);
      spin_ahead(1400);
      Off(OUT_AC); 
      back(300);
      pen_down();				//ペンを下げる
      go_straight(600); 			    //目を描く
      pen_up();
      go_straight(600); 			    //左目を描く
      pen_up();    
      go_straight(700);
      pen_down();
      go_straight(400);
      go_straight(400);             //右目を描く
      pen_up();					//ペンを上げる	
      back(1000);                 //鼻を描くための移動
      OnFwd(OUT_A,35); 
      Wait(2000);
      Off(OUT_A);
      back(400);
      pen_down();				//ペンを下げる
      go_straight(500);				//鼻を描く
      Off(OUT_AC);
      OnFwd(OUT_C,35);
      Wait(250);
      Off(OUT_A);
      pen_up();					//ペンを上げる
      back(400);
      OnFwd(OUT_C,35);
      Wait(1500);
      Off(OUT_C);
      back(300);
      pen_down();				//ペンを下げる
      OnRev(OUT_C,35);				//口を描く
      Wait(1200);
      Off(OUT_AC);
 }
かなり単調なプログラムですが、多くの時間を費やしました。顔の輪郭は、最初は円をベースにする予定でしたが、紙からロボットがはみ出てしまう点から、長い楕円を用いて描きました。目を描くプログラムで左右の走行時間が違うのは、何度走らせても左目だけが短くなってしまったので、左右のバランスを考えたうえでこのようになりました。
*感想 [#y4e5e64b]
紙を動かさずに描く、これが最大の難関でした。 最初に描こうとしていた絵では、紙が動いてしまい、途中から描けなくなってしまいました。そこで、絵のクォリティーを下げて紙の上からロボットが出ないようなプログラムにしました。電池残量によっても、モーターの速度が変わり微調整に苦労しました。また、ロボットが絵を描いているうちにペンが紙から離れてしまいペンを上げ下げするプログラムを何度も変更してみましたが、結局改善できなかったことがくやしいです。 
紙を動かさずに描く、これが最大の難関でした。 最初に描こうとしていた絵では、紙が動いてしまい、途中から描けなくなってしまいました。そこで、絵のクォリティーを下げて紙の上からロボットが出ないようなプログラムにしました。電池残量によっても、モーターの速度が変わり微調整に苦労しました。また、ロボットが絵を描いているうちにペンが紙から離れてしまいペンを上げ下げするプログラムを何度も変更してみましたが、結局改善できず、本番でも途中でペンが浮いてしまったことがくやしいです。


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