漢字の「木」を書く、書道ロボットを作る

作成日時 5月18日

作成者 

松田 孝裕
進藤 寛也   
篠原 正樹

ロボット名

デロリアン2号

でかいロボット

ターボエンジン

ペンの上げ下げの仕組み

プログラムの概要

 前進、後退、ペンの上げ下げ、旋回を組み合わせて「木」という字を書く。ペンを下げながら移動し、文字を書く。「木」の書き順通りに進む。次の画へはペンを上げたまま移動し、書き始めの位置で止まり、そこでペンを下ろし、移動してまた書く。また、線を書いた、書いてないに関わらず、ロボットが移動した直後には、数秒停止し、ロボットの揺れを止める。

モーターの役割

AとCのモーターで、タイヤを動かし移動する。
Bのモーターで、ペンの上げ下げと後ろのタイヤの回転をする。
ペンの上げ下げの仕組みは、歯車を直角に噛み合わせて、奥へと向かう運動を上下の運動へと変換し、ペンをそれにくっつけて、ペンを上下させる。

プログラム

   #define SUB_TIME 140 //ペンの上げ下げの時間

   sub stop_time()  
   {
      Off(OUT_A+OUT_B+OUT_C); //ロボを止めて安定させる
      Wait(200);
    }
   sub up_time()
   {
       OnFwd(OUT_B);  //ペンを上げる動作
       Wait(SUB_TIME);
       Off(OUT_B);
    }
   sub down_time()
   {
       OnRev(OUT_B);  //ペンを下げる動作
       Wait(SUB_TIME); 
       Off(OUT_B);
    }
    task main()
 { 
  down_time();    //木の一画目を書く
 OnFwd(OUT_A+OUT_C);
 Wait(080);
 Off(OUT_A+OUT_C);
 up_time();
 stop_time();
 OnFwd(OUT_A+OUT_C);
 Wait(025);
 stop_time();
 
 OnFwd(OUT_A);   //90度回転させ木の二画目
 OnRev(OUT_C);
 Wait(065);
 OnRev(OUT_A+OUT_C);
 Wait(020);
 Off(OUT_A+OUT_C);
 down_time();
 OnRev(OUT_A+OUT_C);
 Wait(090);
 stop_time();
 up_time();
 
 OnFwd(OUT_A+OUT_C); //軸を交差している部分に合わせるた
 Wait(114);       め前進
 stop_time();
 
 OnRev(OUT_A);    //木の三画目
 OnFwd(OUT_C);
 Wait(025);
 OnRev(OUT_A+OUT_C);
 Wait(052);
 Off(OUT_A+OUT_C);
 stop_time();
 down_time();
 stop_time();
    SetPower(OUT_C,4);//三画目の曲線を出すためモーターC
 OnRev(OUT_A+OUT_C);   の力を変える
 Wait(075);
 stop_time();
 up_time();
  OnFwd(OUT_A+OUT_C);
  Wait(075);
  SetPower(OUT_C,7);
 stop_time();
  OnRev(OUT_A+OUT_C);
  Wait(055); 
   stop_time();
 OnFwd(OUT_A+OUT_C);
 Wait(111);
 stop_time();
 
 OnFwd(OUT_A);    //木の4画目
 OnRev(OUT_C);
 Wait(050);
 OnRev(OUT_A+OUT_C);
  Wait(065);
 Off(OUT_A+OUT_C);
 stop_time();
 down_time();
 SetPower(OUT_A,4); //曲線を出すためモーターAの力を変え
 OnRev(OUT_A+OUT_C);  る
 Wait(075);
 stop_time();
 up_time();
  
 
 
 Off(OUT_A+OUT_B+OUT_C);//終了
 }     

反省

困った点、苦労した点、工夫した点

 ペンの位置と、ロボットが旋回する軸とが、15センチほど離れているため、ロボットを回転させても、ペンの位置はその位置とはズレている。このため、ロボットを旋回させてから、ペンの先を、回転させた中心までまた移動させてから、ペンを下ろして線を書く動作が必要になった。ここで、重要な考え方が、旋回する軸上をペンは、必ず通るということであった。当然のことであるが、これを考慮してやらないと、ペンの通る位置を調節しにくい。

 また、ロボットの車体を、かなり大きくしてしまったために、動きが全体的に大きくなり、動きの調節が難しかった。

 また、「木」の3、4画目の書きはじめが、1、2画目の線の交点に一致させるのが、先生に予告された通り難しかった。地道に何度も試行錯誤して、調節していった。

 また、どのくらいの長さを走らせたら、どのくらいの長さを走るかということも考えもした。これは、実際の値を使って、比例計算で出すものである。一度前進させる時間を決めて、走らせて、その後その実際走った距離を計って、その値を比例計算に利用する。こうして、走らせたい距離だけ、走らせるには、どれくらいの長さを走らせればよいのか、計算する。

 また、ロボットのデザインにもこだわり、車体の後ろにタイヤをつけて、そのタイヤもペンを上げ下げするモーターで回転するようにした。後ろについたタイヤは、特に役割を果たしていないものの、大きなエンジンをイメージして作った。1つのモーターで、複数の方向への動きをさせれることを学んだ。しかし、タイヤ式のロボットしか作れず、ほかのキャタピラや、虫のような足を利用した、ペンを持つ動きなども今度作ってみようと思った。

 また、木の3、4画目の曲線を描くことにも苦労した。曲がる側のモーターの力を小さくし、曲線を書いた。3画目から、4画目への動きの切り替えの前には、曲線による位置の変更を修正するために、一度直線の動きを混ぜて、元の動きの軸へとも戻らせた。曲線が3、4画目の付け根でついているのだが、少ししか曲がっていないが、できた。    プログラムに関しては、サブルーチンやデファインを使い、プログラムの内容をすっきりさせるように努めた。

今回は、ロボットの写真を載せれなかったが、次回からは、入れようと思った。

コメントをどうぞ



添付ファイル: filedscn2569_Medium.jpg 358件 [詳細] filedscn2568_Medium.jpg 433件 [詳細] filedscn2567_Medium.jpg 345件 [詳細]

トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2006-06-02 (金) 17:17:15