目次
#contents
 

*はじめに [#h871c360]
課題は書道ロボットの作成をした。

詳しい内容としては7画以上の文字で15cmの紙に収めること。

私はロボットに「沙」を書かせることにした。

*失敗作 [#w860d86c]
#ref(2016b/Member/yusaku/Mission1/image1.JPG,100%,失敗作)
画像は最初に作ったロボットである。

予定としては、初めに作った車体にモーターを2枚重ねてペンを上げ下げして文字を画く機体にしようとした。

しかし、問題としてモーターを動かすと歯車が咬み合わなくなってしまう、ゴムをきつく縛ってしまうという点があり新しく機体を作りなおすことにした。
#ref(2016b/Member/yusaku/Mission1/image6.JPG,100%,失敗作)

*新しい機体の説明 [#i6d3d172]
新たに車輪を大きなタイヤ2つに変え、後ろに支柱をつけることにした。 
#ref(2016b/Member/yusaku/Mission1/image4.JPG,100%,新しい機体)
また、ペンの上げ下げをゴムで取り付けるのではなく2つのタイヤの摩擦でおこなう事にした。
#ref(2016b/Member/yusaku/Mission1/image3.JPG,100%,新しい機体)
歯車の後ろに棒のようなブロックをつけることにより歯車が噛み合わなくなってしまう問題を解消しようとした。
#ref(2016b/Member/yusaku/Mission1/image5.JPG,100%,新しい機体)


*プログラムの説明 [#e145bb73]
**定義 [#m64d3040]
真っ直ぐや後ろ向き、左右などの何度も出てくるものは時間を書くだけでいいように定義した。

また、ペンを上げたり下げたりした時に一呼吸置くようにRESTという休憩時間を定義した。


 #define GO(t) OnFwd(OUT_AC);Wait(t);Off(OUT_AC);
 #define BACK(t) OnRev(OUT_AC);Wait(t);Off(OUT_AC);
 #define RIGHT(t) OnFwd(OUT_A);Wait(t);Off(OUT_A);
 #define LEFT(t) OnFwd(OUT_C);Wait(t);Off(OUT_C);
 #define REST  Wait(100);

**ペンの上げ下げのプログラム [#q3a00ce4]
タイヤをモーターで動かす事で摩擦によりペンを上げ下げさせるためsubを書いた。

案外、タイヤの回転速度が速かったためタイヤを回す時間は少なかった。


 sub pen_up(){
           OnRev(OUT_B);
           Wait(50);
           Off(OUT_B);            
                  
 }

 sub  pen_down(){
         OnFwd(OUT_B);
         Wait(50);
         Off(OUT_B);
 }

**沙のプログラム [#u841da01]
時間を調節するのが大変だった。
  

 task main(){
         GO(30);         #一画目(さんずいの一画目)を書く
         pen_up(); 
         REST;
         RIGHT(150);   #二画目に移動
         GO(50);
         RIGHT(150);
   
         pen_down();     
         REST;
         GO(50);    #二画目(さんずいの二画目)を書く
         pen_up(); 
         REST;
         LEFT(150);   #三画目に移動
         GO(50);
         LEFT(150);
          
         pen_down();     
         REST;
         GO(50);     #三画目(さんずいの三画目)を書く
         pen_up();
         REST;
         LEFT(150);
         BACK(70);    #三画目の続きを書くため一旦後退
         pen_down();
         REST;
         GO(50);
         pen_up();    #四画目に移動
         GO(100);
          
         pen_down();     
         REST;
         GO(50);     #四画目(小の一番右)を書く
         pen_up();
         REST;
         GO(25);     #五角目に移動
         RIGHT(75);
          
         pen_down();      
         REST;
         GO(60);     #五画目(小の真ん中)を書く
         pen_up();
         REST;
         RIGHT(225); 
         BACK(70);    #五画目の続きを書くため一旦後退
         pen_down();
         REST;
         GO(25);
         pen_up();
         REST;
         RIGHT(150);
         GO(60);     #六画目に移動
         RIGHT(150);
          
         pen_down();   
         REST;
         GO(110);     #六角目(小の左)を書く
         pen_up();
         REST;
         BACK(100);    #七角目の続き
         RIGHT(150);
          
         pen_down();   #七画目を書く
         REST;
         GO(70);
       
 }

*二度目の失敗 [#u70d34bf]
プログラムもできモーター部分も補強したので次は「沙」を書けるという希望を持ちましたが、またまた歯車が噛み合いませんでした(多少は動けるようになった)。

私の心の情熱の炎はこの時点で燃え尽きました。

*感想 [#y0c32bf7]

ペンを上げ下げするのにゴムをただ取り付けた機体からタイヤの摩擦にシフトチェンジしたのは良い点だと思いました。

ただ、動かすと歯車が咬み合わなくなってしまう点は補強しても防ぐことができなかったので根本的に機体がだめだったのかもしれない。

ロボットを作るまでは良かったもののプラグラミングは難しかった。機会は人のように融通がきかないものだと感じた。

それでも、なんとか自分の思っている通りに動かせることができたら達成感が得られた。


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