*目次 [#l10175d2]
#contents

*書道ロボット [#m05901ec]
漢字の「矢」と「吉」という字を書くロボットを作りました。

&ref(071106_1652~012.jpg);

写真は全体像です。モーターを後ろに積んでいるので全長が長くなってしまいました。

&ref(071106_1651~011.jpg);

ペンをアームにくくりつけて上下に運動するようにしました。

ペンを振り上げるスピードが早すぎて上げきった衝撃で少しペンがずれてしまいそうなのでがっちりと固定するようにしました。

**工夫した点 [#r2764344]
 ロボットの重心のバランスを考え、モーターを乗せる荷台を取り付けました。

 また文字を書くとき、ペンがぶれないように輪ゴムとパーツでしっかりと固定できるようにしました。
**苦労した点 [#t41e4ff4]
 初めは足で動くロボットでいく予定だったのですが、それだと書く文字がぶれてしまうので途中からタイヤにかえました。

 また、ペンを動かす機能は初めはスライドで動きロボットの中央の穴から文字を書く装置にしたかったのですが、スライド機能のパーツ作りが不可能となったためペンを振り下ろすタイプの装置に変更しました。
*プログラム [#u7b6db86]
**「矢」のプログラム [#x861e5bf]
**「吉」のプログラム [#vb37e0d6]
***工夫したところ [#bf3c0786]
サブルーチンを使ってプログラムの簡略化を試みてみました。

またペンの軌道と本体の軌道がずれるため、ごく短い時間の微調整を入れました。

***プログラム [#d937b9d9]
 
    #define TURN_TIME 100
         sub turn_left()                         //左に90°曲がるサブルーチン     
    }  
         OnRev(OUT_A); OnFwd(OUT_C);   
         Wait(TURN_TIME);
         Off(OUT_A+OUT_C); 
    }
         sub turn_right()                         //右に90°曲がるサブルーチン 
    {
         OnFwd(OUT_A); OnRev(OUT_C);
         Wait(TURN_TIME);
         Off(OUT_A+OUT_C);
    }
        sub pen_up()                             //ペンを上げるサブルーチン
    {
        OnRev(OUT_B);
        Wait(5);
        Off(OUT_B);
    }
        sub pen_down()                           //ペンを下げるサブルーチン
    {
        OnFwd(OUT_B);
        Wait(5);
        Off(OUT_B);
    }
        task main()
   {
       OnFwd(OUT_A+OUT_C); Wait(300);        //一画目
       Off(OUT_A+OUT_C);
       pen_up();
   
       OnRev(OUT_A+OUT_C); Wait(130);        //二画目への移動
       turn_right();
       OnRev(OUT_A+OUT_C); Wait(170);
       Off(OUT_A+OUT_C):
   
       pen_down();                  //二画目
      OnFwd(OUT_A+OUT_C); Wait(250);
      Off(OUT_A+OUT_C);
      pen_up();
   
      OnFwd(OUT_A+OUT_C); Wait(20);        //三画目への移動。本体軌道とペンの軌道がずれるため微調整
      turn_left();
      OnRev(OUT_A+OUT_C); Wait(120);
      Off(OUT_A+OUT_C);
   
      pen_down();                  //三画目
     OnFwd(OUT_A+OUT_C); Wait(200);
      Off(OUT_A+OUT_C);
      pen_up();
  
      OnRev(OUT_A+OUT_C); Wait(180);        //四画目への移動
      turn_right();
      OnFwd(OUT_A+OUT_C); Wait(70);
      Off(OUT_A+OUT_C);
   
      pen_down();                  //四画目
      OnFwd(OUT_A+OUT_C); Wait(150);
      pen_up();
   
      OnRev(OUT_A+OUT_C); Wait(130);       //五画目への移動、微調整
      turn_left();
      OnRev(OUT_A+OUT_C); Wait(20); 
      Off(OUT_A+OUT_C);
      
      pen_down();                  //五画目
      OnFwd(OUT_A+OUT_C); Wait(200);
      pen_up();
   
      OnFwd(OUT_A+OUT_C); Wait(20);        //五画目を一度に書くことができないためペンを上げて微調整
      turn_right();
      OnRev(OUT_A+OUT_C); Wait(20);
      Off(OUT_A+OUT_C);
   
      pen_down();                  //五画目のつづき
      OnFwd(OUT_A+OUT_C); Wait(150);
      Off(OUT_A+OUT_C);
      pen_up();
   
      OnFwd(OUT_A+OUT_C); Wait(20);        //六画目への移動
      turn_left();
      OnRev(OUT_A+OUT_C); Wait(220);
      Off(OUT_A+OUT_C);
      
      pen_down();                  //六画目
      OnFwd(OUT_A+OUT_C); Wait(200);
      Off(OUT_A+OUT_C);
      pen_up();
   }                          //終了

***苦労したところ [#i8b6b1b7]
ペンを本体の前につけたため、プログラムと動きに微妙にずれが生じ、うまく書くのが難しかったです。

完成がギリギリになってしまい不安でした。

*感想 [#g667e7a9]
思った以上に時間がなく、また二人の時間もあわず苦戦しました。

しかし忙しい中でも楽しく作業ができてよかったです。

***コメントをお願いします。 [#v4740b9d]
-矢の方も期待しています。吉のプログラムももう少し、工夫・苦労した点はありませんか? 些細なことでも重要ですよ。 -- [[まいける(TA)]] &new{2007-11-07 (水) 19:10:23};

#comment


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