ロボットの構造

まず初めにこれが私たちが作ったロボットの説明をしよう。

今回はロボットが自ら移動し字を書くロボットを作成した。

この形のロボットにした理由は制作が簡単でありほかの部分に時間をかけられると考えたためである。

タイヤ

タイヤの部分はこうなっている。

ロボ2.jpg

3輪にすることで小回りがきくようになっている。

アーム

アームはこのようになっている。

ロボ1.jpg

今回は筆ペンを使用したいと考えたため押し付けるタイプではなく筆を紙に置くといったようになるアームにした。 このようにアームの真下に筆がこないようにし押し付けてしまうことを防いだ。

アームの動き

アームはこのように動き筆の上げ下げを行う。

ロボ3.jpgロボ4.jpg

字を書く

今回は私の名前に入っている「吾」という字を書こうと思う。

書き順

書き順.jpg

ロボットの移動をできるだけ少なくするために

このようにすべての横棒を書いてから縦棒をすべて書いた

プログラム

定義

 #define go(t) OnFwd(OUT_B,32);OnFwd(OUT_C,30);Wait(t); Off(OUT_BC);Wait(1000);          // 前進
 #define back(t) OnFwd(OUT_B,32);OnFwd(OUT_C,30);Wait(t); Off(OUT_BU);Wait(1000);        // 後進
 #define turnl OnFwd(OUT_B,45);OnFwd(OUT_C,-45);Wait(570);Off(OUT_BC);Wait(1000);        // 90°左回り
 #define turnl OnFwd(OUT_B,-45);OnFwd(OUT_C,45);Wait(570);Off(OUT_BC);Wait(1000);        // 90°右回り
 #define up OnFwd(OUT_A,30);Wait(200);Off(OUT_A);Wait(1000);                 // 筆上げ
 #define down OnFwd(OUT_A,-10);Wait(300);Off(OUT_A);Wait(1000);              // 筆下げ

横棒を書く

    task main ()
    {
          down;                        // 1本目
          back(700);
          up;
 
               turnl;                  // 移動
               go(250);
               tuenr;
               go(600);
 
          down;                        // 2本目
          back(600);
          up;
 
               back(200)               // 移動
               turnl;
               go(250);
               tuenr;
               go(1000);
  
          down;                         // 3本目
          back(1000);
          up;  
 
               turnl;                   // 移動
               go(250);
               tuenr;
               go(800);
 
          down;                         // 4本目
          back(600);
          up;
 
               turnl;                   // 移動
               go(250);
               tuenr;
               go(600);
 
          down;                         // 5本目
          back(600);
          up;

縦棒を書く

               go(400);                 // 移動
               OnFwd(OUT_B,45);
               Wait(1100);
               Off(OUT_B);
               Wait(1000);
               back(1400);
 
          down;                          // 1本目
          back(300);
          up;
    
               back(250);                // 移動
 
          down;                          // 2本目
          back(250);
          up;
 
               turnl;                    // 移動
               back(500);
               tuenr;
               back(1500);
       
          down;                           // 3本目
          back(500);
          up;
 
               back(250);                // 移動
 
          down;                           // 4本目
          back(250);
           up;
 }

完成

完成.jpg

少し不格好になっていしまったが書くことができました。

反省・感想

反省

今回難しかったところ苦労したところは、まず電池の残量によってロボットの進む距離が変わってしまうことだった。細かい調整が大変だった。

またロボットの重心が右に偏っていたために左右のモーターの回転数が変わってしまった。これは左右のモーターの出力を調節した。

また「口」などの書き始めなどをそろえることも大変であった。

感想

今回は初めてのプログラミングであった苦労した部分も多くあったが楽しくできた。次回はロボットの製作にもっと時間を割きさらに高度な仕組みのロボットを製作したい。


添付ファイル: file完成.jpg 191件 [詳細] file書き順.jpg 216件 [詳細] fileロボ4.jpg 215件 [詳細] fileロボ3.jpg 196件 [詳細] fileロボ1.jpg 188件 [詳細] fileロボ2.jpg 202件 [詳細]

トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2015-06-11 (木) 23:22:12