旧機体




変更前の機体です。





田


まずまずの出来でしょうか。
均整のとれた四角を書けるように調整したのですが、
紙の摩擦によって、回転の角度が異なってしまうので難しかったです。






機体


今回の課題で一番工夫した点は、ペンのリフト部分です。
マインドストームを個人で創作している方のサイトを見て、
参考にさせてもらったのですが、写真を見ながらの組み立てだったので苦労しました。






機体



機体完成までの流れ

変更理由

写真、一番上の機体から下の写真までの変更

 まず、ギアの組み方がよくありませんでした。動きが速すぎる(モーターの回転が直にタイヤの回転へと伝わる)という指摘もあり、すぐにロボットの変更を考えました.このロボの場合、後輪駆動となっていることが大きなネックで、例えば回転の際に前輪を引きずりながらの回転となるので、極めて非効率となってしまい、思うように動きませんでした。
 そこで、他の班の方のロボを参考にし、車体を一番基本のもの(ベースステーション)にしました。(今思うと、始めからこれにしておけばと反省しています。)これが変更後のロボになります。前後連動のギアにより回転がスムーズになりました。

 次にペンの装着部分ですが、変更前のペンの動きは「時計の針が6時から8時に動く」ような、円の一部を描くような動作でした。
これは筆圧が安定しない上、線を書くにもぶれてしまい、書道ロボとして最悪のものでした。何か良いアイディアはないかと思い、個人でマインドストームを制作、改良をしている方のHPを見ていたら、機体の一部が上下に動作をするロボを見つけることができました。ただ、そのままをまねるのは良くないので、シンプルだが筆圧を安定させることができる装着部はどうすればと考え、考えた末変更後のものとなりました。写真(一番下)
ギアに平らなギアを絡ませることで上下の動きが可能となりました。モーターをわずかな時間だけ動かし、ペンの上げ下げをします。 結果的に、きちんと線をかけるようになったので良かったと思います。問題点としては、ペンを下げる時間が長いと紙にガツっと当たってしまい、逆に筆圧が強すぎてしまうので、プログラムでの微調整が必要です。

その他

HPを見ていて、たくさんのロボ等を見る事ができました。また、参考にさせて頂きました。動画での紹介もあり、とても楽しかったです。次の課題などで困ったことがあったら先生やTAに聞く事、さらにHPを閲覧するなどしてすばらしいアイディアを自分達のロボにいかせていけたらと思いました。


プログラムの流れ

書き順通りに加え、人間が書く通りにプログラムを組みました。
これが後に少し問題点を生み出すことになりました。

ペンを下げる ー> 線を書く ー> ペンを上げる というのが基本的な流れですが、ペンの軸がロボの中心にないので線を書き終えた後、数センチほど前後の微調整が必要。

move_timeはペンを上げ下げする時間です。
#define move_time  11

task main()
{
   Wait(150);
   
  OnRev(OUT_B);  Wait(move_time);         // 一画目、ペンを下ろす
  Off(OUT_B);  Wait(100);

   OnRev(OUT_A+OUT_C);  Wait(130);                   
   Off(OUT_A+OUT_C);   Wait(100);
   
   OnFwd(OUT_B);  Wait(move_time);          //  ペンを上げる
   Off(OUT_B);  Wait(100);
   
   OnFwd(OUT_A+OUT_C);  Wait(158);                     // 元に戻ります
   Off(OUT_A+OUT_C); Wait(100);
   
   
   
   
   
   
   OnFwd(OUT_C);  OnRev(OUT_A); Wait(100);          // 二画目へ、方向転換
   Off(OUT_A+OUT_C);  Wait(100);
  
   OnRev(OUT_A+OUT_C);  Wait(35);                        // 微調整をします 
   Off(OUT_A+OUT_C);  Wait(100);
   
   
   
   
   
   OnRev(OUT_B);  Wait(move_time);        //  二画目、ペンを下ろす
   Off(OUT_B);  Wait(100);
   
   OnRev(OUT_A+OUT_C);  Wait(130);
   Off(OUT_A+OUT_C);  Wait(100);
       
   OnFwd(OUT_B);  Wait(move_time);
   Off(OUT_B);  Wait(100);                        //       ペンを下ろす 






   
   OnFwd(OUT_A+OUT_C);  Wait(35);                   //  微調整をします
   Off(OUT_A+OUT_C);  Wait(100);
   
   OnFwd(OUT_A);  OnRev(OUT_C);  Wait(106);                // 方向転換 
   Off(OUT_A+OUT_C);  Wait(100);
   
   OnRev(OUT_A+OUT_C);  Wait(35);                 // 微調整 
   Off(OUT_A+OUT_C);  Wait(100);
   
   
   
   
   
   
   
   
   OnRev(OUT_B);  Wait(move_time);       // 2−2画目、ペンを下ろす
   Off(OUT_B);  Wait(100);
   
   OnRev(OUT_A+OUT_C);  Wait(130);
   Off(OUT_A+OUT_C);  Wait(100);
       
   OnFwd(OUT_B);  Wait(move_time);      // 2−2画目、ペンを上げる
   Off(OUT_B);  Wait(100);
  
  
  
  
  
  
  
   
   OnFwd(OUT_C);  OnRev(OUT_A);  Wait(25);             // 方向転換 
   Off(OUT_A+OUT_C);  Wait(100);
   
   OnFwd(OUT_A+OUT_C);  Wait(153);                
   Off(OUT_A+OUT_C);  Wait(100);
   
   OnFwd(OUT_A);  OnRev(OUT_C);  Wait(28);            // 方向転換 
   Off(OUT_A+OUT_C);  Wait(100);
   
   OnRev(OUT_A+OUT_C);  Wait(14);            // 微調整 
   Off(OUT_A+OUT_C);   Wait(100);
   
   
   
   
   
   
   
   
   
   OnRev(OUT_B);  Wait(move_time);        //   3画目、ペンを下ろす
   Off(OUT_B);  Wait(100);
   
   OnRev(OUT_A+OUT_C);  Wait(130);           
   Off(OUT_A+OUT_C);  Wait(100);
   
   OnFwd(OUT_B);  Wait(move_time);          // ペンを上げる
   Off(OUT_B);  Wait(100);
   
   
   
   
   
   
   OnFwd(OUT_C);  OnRev(OUT_A);  Wait(18);                   // 方向転換
   Off(OUT_A+OUT_C);  Wait(100);
   
   OnFwd(OUT_A+OUT_C) ;  Wait(115);
   Off(OUT_A+OUT_C);  Wait(100);
   
   OnFwd(OUT_C);  OnRev(OUT_A);  Wait(81);                //  方向転換 
   Off(OUT_A+OUT_C);  Wait(100);
   
   
  OnRev(OUT_A+OUT_C);  Wait(5);
  Off(OUT_A+OUT_C);  Wait(100);
  
   
   OnRev(OUT_B);  Wait(move_time);        //    ペンを下げる
   Off(OUT_B);  Wait(100);
   
   OnRev(OUT_A+OUT_C);  Wait(130);
   Off(OUT_A+OUT_C);  Wait(100);
   
   OnFwd(OUT_B);  Wait(move_time);          
   Off(OUT_B);  Wait(100);
   
   OnFwd(OUT_C);  OnRev(OUT_A);  Wait(34);              // 方向転換
   Off(OUT_A+OUT_C);  Wait(100);
   
   OnFwd(OUT_A+OUT_C);  Wait(130);
   Off(OUT_A+OUT_C);  Wait(100);
   
   OnFwd(OUT_A);  OnRev(OUT_C);  Wait(37);                 // 方向転換
   Off(OUT_A+OUT_C);  Wait(100);
   
   OnFwd(OUT_A+OUT_C);  Wait(17);
   Off(OUT_A+OUT_C);  Wait(100);
   
   
   OnRev(OUT_B);  Wait(move_time);         // ペンを下ろす
   Off(OUT_B);  Wait(100);

   
   OnRev(OUT_A+OUT_C);  Wait(135);
   Off(OUT_A+OUT_C);  Wait(100);
   
   OnFwd(OUT_B);  Wait(move_time);         // ペンを上げる
   Off(OUT_B);  Wait(100);

   }

プログラムの反省

一画ずつの動作において、すべて移動する時間が異なっているため、サブルーチンやマクロを用い、工夫してプログラムを書くことができませんでした。
まだまだ、改良の余地が十分にあるし、発表の時までにこれより良いものに仕上げることができなくてとても残念でした。

全体の感想および反省

今回の課題で、ロボットの基本的性質を少しですが学ぶ事が出来ました。機体の構造に関する事や物理的な動作に関してが主でしたが、自分達の考察が浅かったためロボを丸ごと作り直すという大変な失敗をしてしまい、トホホとしか言いようのないところです。
これらの反省を次にいかすことを強く念頭に入れておきたいです。
HPも、もう少しカラフルにするといいんですが。。。

よろしければコメントをお願いします。

  • 他の班のページも参考にして、苦労・工夫・改善点をもっと膨らましてみましょう。いっぱい書けばよいというものはありませんが、装着部分の改良はどのようなものから、どのようにして、どのようなものになったのか。もうマシンはないかもしれませんが、ある程度は文章で記述できるはずです。プログラムの書き直しはどこの部分をどういう風にいじったのか。など、また膨らませる余地はあるかと思います。 -- まいける(TA) 2006-12-07 (木) 22:27:36
  • 他のページを参考にしながらも、自分でも考え工夫する態度は良いですね。 -- ゆき(TA)? 2006-12-08 (金) 10:51:24


添付ファイル: filetawamure1.jpg 219件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2006-12-08 (金) 10:51:24