*書道ロボa2L [#x2a6ac62]
#contents
**ロボット  name「       」[#c48337eb]
  このロボットは指定した文字を書くために作られ、もともとキャタピラ型だったものを都合上タイヤの方が動きやすいだろうということで急きょタイヤ型にチェンジし、また、数々の試行錯誤を重ねたのちに出来上がった2aLの初号機である。
***作成過程 [#x8c310e8]
  1 基礎部分・・・授業の初めの方で作った物を少し改造して使用  

  2 アーム部分・・・メンバーが自宅にて作成して来たものを使用

  3 接合&調整・・・ロボティクス授業時間内に進行、完了。   
***工夫(特徴) [#ba46ec93]
  アーム部分においてただ腕を振り下ろす仕組みではなく、ギアを駆使してペンを垂直に降ろせるようなものを作った。ギアは低速で、確実に降ろしたい場所におろせるように工夫。また、マシンの旋回のことを考え、ペンの位置をマシンの中央部に設置。マシン自体はバランスをとるために正面から見たときにできるだけ左右対称になるように心がけた。
**「木」の字を書くプログラム [#d24ca4f0]
 #define PEN_TIME 10
 sub pendown()         //ペンを下ろす
 {     OnFwd(OUT_B);
       Wait(PEN_TIME);
       Off(OUT_B);
  }
 
 sub penup()          //ペンを上げる
 {
       OnRev(OUT_B);
       Wait(PEN_TIME);
       Off(OUT_B);
 } 
 
 task main()
 {
       pendown();           //1画目
       OnFwd(OUT_A+OUT_C);
       Wait(120);
       Off(OUT_A+OUT_C);
       penup();
       OnFwd(OUT_A);          //線を書かずに2画目へと移動
       OnRev(OUT_C);      
       Wait(92);   
       OnFwd(OUT_A+OUT_C);
       Wait(50);
       Off(OUT_A+OUT_C);
       OnFwd(OUT_A);
       OnRev(OUT_C);       
       Wait(92);
       OnFwd(OUT_A+OUT_C); 
       Wait(60);
       OnFwd(OUT_A);       
       OnRev(OUT_C);      
       Wait(92);   
       Off(OUT_A+OUT_C);
       pendown();          //2画目
       OnFwd(OUT_A+OUT_C);
       Wait(150);
       Off(OUT_A+OUT_C);
       penup();
       OnRev(OUT_A+OUT_C);            //線を書かずに後退、3画目へと移動
       Wait(100);
       Off(OUT_A+OUT_C);
       OnFwd(OUT_C);
       OnRev(OUT_A);        
       Wait(35);
       pendown();          //3画目
       OnFwd(OUT_A+OUT_C);
       Wait(100);
       Off(OUT_A+OUT_C);
       penup();
       OnRev(OUT_A+OUT_C);          //ペンを上げ、次の4画目のため向きを変える
       Wait(100);
       Off(OUT_A+OUT_C);
       OnFwd(OUT_A);
       OnRev(OUT_C);       
       Wait(70);
       pendown();          //4画目
       OnFwd(OUT_A+OUT_C);
       Wait(100);
       Off(OUT_A+OUT_C);
       penup();
 }
**「田」の字を書くプログラム [#j558415a]
 #define TURN_TIME 93
   sub turnright()
 {
         OnRev(OUT_A);  OnFwd(OUT_C);
         Wait(TURN_TIME);
         Off(OUT_A+OUT_C);
 }
   
 sub turnleft()
 {
        OnFwd(OUT_A);  OnRev(OUT_C);
        Wait(TURN_TIME);
        Off(OUT_A+OUT_C);
 }
   
 sub pendown()
 {
         OnFwd(OUT_B); 
         Wait(10);
         Off(OUT_B);
 }
    
 sub penup()
 {
          OnRev(OUT_B);
          Wait(10);
          Off(OUT_B);
 }
    
 task main()
 {
           pendown();
           OnFwd(OUT_A+OUT_C);
           Wait(115);
           Off(OUT_A+OUT_C);
           penup();
           OnRev(OUT_A+OUT_C);
           Wait(60);
           Off(OUT_A+OUT_C);
           turnleft();
           OnFwd(OUT_A+OUT_C);
           Wait(42);
           Off(OUT_A+OUT_C);
           pendown();
           OnRev(OUT_A+OUT_C);
           Wait(100);
           Off(OUT_A+OUT_C);
           penup();
           turnleft();
           OnRev(OUT_A+OUT_C);
           Wait(53);
           Off(OUT_A+OUT_C);
           pendown();
           OnFwd(OUT_A+OUT_C);
           Wait(100);
           Off(OUT_A+OUT_C);
           penup();
           turnright();
           pendown();
           OnFwd(OUT_A+OUT_C);
           Wait(100);
           Off(OUT_A+OUT_C);
           penup();
           turnright();
           pendown();
           OnFwd(OUT_A+OUT_C);
           Wait(120);
           Off(OUT_A+OUT_C); 
           penup();
           OnRev(OUT_A);  OnFwd(OUT_C);
           Wait(100);
           Off(OUT_A+OUT_C);
           pendown();
           OnFwd(OUT_A+OUT_C);
           Wait(95);
           Off(OUT_A+OUT_C);
           penup();
 }
**プログラム作成にあたっての考察 [#l6675e8f]

**反省と感想etc [#vefaf9cb]

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