*漢字の「木」を書く、書道ロボットを作る [#uce82ebc]

***作成日時 5月18日 [#ed242424]
***作成者  [#d4f02f89]
松田 孝裕~
進藤 寛也   
篠原 正樹
***ロボット名 [#gd585d1f]
デロリアン2号

**プログラムの概要 [#x23dafb1]
***モーターの役割 [#j1cfe2c3]
 前進と、後退、ペンの上げ下げ、旋回を組み合わせて「木」という字を書く。ペンを下げながら移動し、文字を書く。「木」の書き順通りに進む。次の画へはペンを上げたまま移動し、書き始めの位置で止まり、そこでペンを下ろし、移動してまた書く。

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




**プログラム [#g62e5f06]
 
#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);
  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();
  OnRev(OUT_A+OUT_C);
  Wait(055);
  stop_time();
  up_time();
  stop_time();
  OnFwd(OUT_A+OUT_C);
  Wait(111);
  stop_time();
  
  OnFwd(OUT_A);
  OnRev(OUT_C);
  Wait(050);
  OnRev(OUT_A+OUT_C);
  Wait(052);
  Off(OUT_A+OUT_C);
  stop_time();
  down_time();
  OnRev(OUT_A+OUT_C);
  Wait(055);
  stop_time();
  up_time();
   
  
  
  Off(OUT_A+OUT_B+OUT_C);
  }  


**反省 [#r43fbe1b]
***困った点、苦労した点、工夫した点 [#z87ebce2]
 ペンの位置と、ロボットが旋回する軸とが、15センチほど離れているため、ロボットを回転させても、ペンの位置はその位置とはズレている。このため、ロボットを旋回させてから、ペンの先を、回転させた中心までまた移動させてから、ペンを下ろして線を書く動作が必要になった。ここで、重要な考え方が、旋回する軸上をペンは、必ず通るということであった。当然のことであるが、これを考慮してやらないと、ペンの通る位置を調節しにくい。
 また、ロボットの車体を、かなり大きくしてしまったために、動きが全体的に大きくなり、動きの調節が難しかった。
 また、「木」の3、4画目の書きはじめが、1、2画目の線の交点に一致させるのが、先生に予告された通り難しかった。地道に何度も試行錯誤して、調節していった。
 また、どのくらいの長さを走らせたら、どのくらいの長さを走るかということも考えもした。これは、実際の値を使って、比例計算で出すものである。一度前進させる時間を決めて、走らせて、その後その実際走った距離を計って、その値を比例計算に利用する。こうして、走らせたい距離だけ、走らせるには、どれくらいの長さを走らせればよいのか、計算する。




***感想 [#d1437c34]


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