*みんなの製作日記 [#aee1197c]
**5月19日 製作日記 [#u16287c7]
はじめはモーターに直接アームを付け、モーターの回転により接地させようとする。モーターの出力自体を変え、上手く書けるようにはしたものの、本体回転時に線がぶれてしまい、プログラミングを複雑にしなければならず断念。5月17日に再び本体を壊して、1から作り直した。
ペンを持たせるのに、ゴムを使うのは普通すぎると思い、二つのタイヤで挟むことで対応。
#ref(./070520_1342~02.JPG,100%,ok)
本体回転時に接地部がずれないように、タイヤの中心部にペンがくるように製作。その際、最初に作った、説明書通りの土台では、タイヤの中心にペンを持ってくることができなかったので、可動タイヤは二つにして中央が開くように設計。そして今回はアームの回旋ではなく、ギアを使うことによりペンを上下させた。
#ref(./+-.jpg,75%,gia)
次の課題が、前輪をどうするか。タイヤの中心をあけるために、独自の土台を作ったため、前輪後輪ともにギアにつなぐ動かすことは不可能。そこで杉さんの提案により、補助輪を使うことに決定。そして、出力装置をどこに置くか。はじめは、後ろにおくイメージで作っていたのだが、前におくことを思いつく。そして、出力本体とタイヤ部分をつなぎ、余ったパーツで強度を上げて完成!!
#ref(./itidankai.jpg,150%,SIPPAI)
**5月28日 [#w66af00a]
全体の重量オーバーで、補助輪が上手く機能せず曲がってしまう。その理由は、摩擦力。誰もが知っていることであり、自身も高校の時に学んだこと。しかし、いざこういったことをやってみると、そんな力が働くことは全く考えずに設計してしまう。
#ref(./無題.jpg,100%,ok) 
一番問題なのが、出力本体の位置。動かない補助輪の上に乗せてしまっている。そしてもう一つは、ペンを上下させる装置が大きく重いこと。この二つを何とかしなければならない。
まずは、ペン上下部分の改善に取り組む。まずはギアを減らし、極力軽くする!その結果、
#ref(./ok.jpg,100%,ouu)
大体半分程度のパーツで作ることに成功。そして次に、出力本体をどこに設置するか。全体のバランスをとるために、ペンとは反対方向におくか?それとも、出力本体をたてにして、極力重心に近ずけるか?そのときに目に付いた部品が、長いコード!これをつかって・・・
#ref(./OO.jpg,100%,saigo)
完成!!コードによる動きの制約があるものの、摩擦の問題を見事クリアー!!
*プログラミング [#h7b2ea42]
**<中> [#x3de81b4]
 #define tyokkaku 138
 #define usiromuki 220
 #define donnkaku 200
 #define go 80
 #define gogo 250
 #define updown 10 
 void mizikai()
 {
 OnFwd(OUT_A+OUT_C);Wait(go);
 Off(OUT_A+OUT_C);
 }
 void nagai()
 {
 OnFwd(OUT_A+OUT_C);Wait(gogo);
 Off(OUT_A+OUT_C);
 }
 void kyuuzyuudo()
 {
 OnFwd(OUT_C);Wait(tyokkaku);
 Off(OUT_A);
 }
 void hyakuhatizyuu()
 {
 OnFwd(OUT_C);Wait(usiromuki);
 Off(OUT_A);
 }
 void penup()
 {
 OnFwd(OUT_B);Wait(updown);
 Off(OUT_B);
 }
 void pendown()
 {
 OnRev(OUT_B);Wait(updown);
 Off(OUT_B);
 }
 void donkaku()
 {
 OnFwd(OUT_C);Wait(190);
 Off(OUT_C);
 } 
 void owari()
 {
 OnFwd(OUT_A+OUT_C);Wait(350);
 Float(OUT_A+OUT_C);
 }
 task main()
 {
 pendown();
 mizikai();
 penup();
 hyakuhatizyuu();
 mizikai();
 kyuuzyuudo();
 pendown();
 nagai();
 penup();
 kyuuzyuudo();
 pendown();
 mizikai();
 penup();
 kyuuzyuudo();
 pendown();
 nagai();
 penup();
 hyakuhatizyuu();
 nagai();
 donkaku();
 nagai();
 donkaku();
 pendown();
 owari();
 penup();
 }
**<白> [#q699413c]
 void arm_return()
 {  SetPower(OUT_B,3);
   OnRev(OUT_B);
   Wait(100);
   Float(OUT_B); 
 }  
 void arm_go()
 { SetPower(OUT_B,3);
   OnFwd(OUT_B);
   Wait(100);
   Float(OUT_B);
 }
 task main ()
 { OnFwd(OUT_A+OUT_C);
  Wait(100);
  Float(OUT_A+OUT_C); 
  arm_return();
  OnFwd(OUT_A);
  Wait(50);
  Float(OUT_A);
  arm_go();
  OnFwd(OUT_A+OUT_C);
  Wait(200);
  Float(OUT_A+OUT_C);
  arm_return();
  OnRev(OUT_A+OUT_C);
  Wait(200);
  Float(OUT_A+OUT_C);
  OnFwd(OUT_A);
  Wait(70);
  Float(OUT_A);
  arm_go();
  OnFwd(OUT_A+OUT_B);
  Wait(150);
  Float(OUT_A+OUT_B);
  OnFwd(OUT_A);
  Wait(70);
  OnFwd(OUT_A+OUT_C);
  Wait(200);
  Float(OUT_A+OUT_C);
  arm_return();
  OnRev(OUT_A+OUT_C);
  Wait(100);
  OnRev(OUT_C);
  Wait(70);
  OnRev(OUT_A+OUT_C);
  Wait(100);
  Float(OUT_A+OUT_C);
  arm_go();
  OnFwd(OUT_A+OUT_C);
  Wait(100);
  Float(OUT_A+OUT_C);
  arm_return();
  OnRev(OUT_A+OUT_C);
  Wait(100);
  OnRev(OUT_A);
  Wait(70);
  OnFwd(OUT_A+OUT_C);
  Wait(100);
  Float(OUT_A+OUT_C);
  OnFwd(OUT_A);
  Wait(70);
  Float(OUT_A);
  arm_go();
  OnFwd(OUT_A+OUT_C);
  Wait(100);
  Float(OUT_A+OUT_C);  
  }
#ref(./070529_1548~01[1].JPG,100%,siro)

**<北> [#ha8faa75]
   task main()
  {
   OnFwd(OUT_A+OUT_C);
   Wait(100);  
   OnRev(OUT_B);
   Wait(15);
   Float(OUT_B);  
   OnRev(OUT_C);     
   Wait(65); 
   OnFwd(OUT_A+OUT_C);
   Wait(100);
   OnFwd(OUT_B);
   Wait(15);
   Float(OUT_B);
   OnRev(OUT_A+OUT_C);
   Wait(200);
   OnFwd(OUT_A);
   Wait(65);
   OnRev(OUT_B);
   Wait(15);
   Float(OUT_B);
   OnFwd(OUT_A+OUT_C);
   Wait(100);
   OnRev(OUT_B);
   Wait(15);
   Float(OUT_B);
   OnRev(OUT_A+OUT_C);
   Wait(100);
   OnRev(OUT_B);
   Wait(15);
   Float(OUT_B);
   OnFwd(OUT_C);
   Wait(65);
   OnFwd(OUT_A+OUT_C);
   Wait(100);
   OnRev(OUT_A);
   Wait(65);
   OnFwd(OUT_A+OUT_C);
   Wait(200);
   OnFwd(OUT_B);
   Wait(15);
   Float(OUT_B);
   OnRev(OUT_A+OUT_C);
   Wait(100);
   OnRev(OUT_B);
   Wait(15);
   Float(OUT_B);
   OnFwd(OUT_A);
   Wait(65);
   OnFwd(OUT_A+OUT_C);
   Wait(100);
   OnFwd(OUT_B);
   Wait(15);
   Float(OUT_B);
   OnRev(OUT_A+OUT_C);
   Wait(200);
   OnFwd(OUT_C);
   Wait(65);
   OnFwd(OUT_A+OUT_C);
   Wait(100);
   Off(OUT_A+OUT_C); 
  }

*工夫点 [#v05cf4dd]
何よりもまず、SCILAB
ペンを固定するのにゴムという裏技を使わずに、タイヤと棒で固定しました。
あと、本体の方には補助輪をつけて対応しました。
*苦労点 [#va893e4b]
ペンをどこに置くか試行錯誤の連続で、最終的に後輪の中心に置くことに落ち着きました。
あと、ペンの上げ下げもどのようにさせるか悩みました。
*感想 [#uf178fcb]
・僕たちはこれを作るのに25時間ほど費やしました。にも関わらず、なかなか完成させることができず何度も何度もロボットを作り直しました。ロボットを作っていく中で、ロボットをひとまず完成させて、実際に動かしてみたら思っていたような動きをとってくれなかったりということもあって、投げ出したくもなりましたが、最後まであきらめずにがんばりました。


コメントをどうぞ
-お疲れ様でした。プログラムの解説を入れるとさらによいでしょう。「製作日記」に若干誤字あり。 -- [[ヒロヤ]] &new{2007-05-24 (木) 01:24:55};
-お疲れ様でした。ロボット本体もプログラムと同様に、いくつかのユニット(assy)に分けて製作するようにすれば、細かな改良の際にはロボット全体を分解する必要がなくなるので、製作時間を短縮できることが多いと思います。もちろん初期の段階でどのようなユニットで全体を構成していくか、という点については少し時間をかけて案を練る必要がありますが… -- [[松本]] &new{2007-05-24 (木) 09:04:44};

#comment

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