課題

  • 自分の名前の漢字から7画以上の漢字を選びロボットで描く

字の書き方

1434724672962.jpg

「康」という漢字を,ら書きました。

大変だった点

  • 書き数が多い漢字だったので一つ一つ動かす時間を調整するのが大変だった。
  • 書き数が多いのであえてdefineは使わず一つ一つプログラムを作るのが大変だった。

工夫した点

  • 書いた漢字の4つの点をちゃんと斜めになるように時間を長めにしたり短めにしたり調整した。
  • 筆を上下に動かすという動きだけで複雑な動きをせずに簡単にした。

問題点

  • ロボットが動くと書いている紙が動いてしまった。
  • ロボットが曲がると前に書いた線に合わない。
  • 〜までをすべて合わさったようにしたくて同じところを往復させペンで書こうとしたがったがロボットが毎回右にずれてしまい2本の線ができてしまった。

改善点

  • 紙を床にテープで貼り固定した。
  • ロボットがペンをあげている時間を調整したりロボットを前後に動かし前に書いた線に合うようにしました。
  • タイヤをしっかりはめて走らせたが途中からどうしても右にずれてきてしまったので少しずれても妥協した。

作ったロボットの説明

1433681608232.jpg
  • モーターは左右のタイヤに2つとペンの上げ下げに1つ使用
  • 車にペンをはさむ(写真にはないがペンを輪ゴムを使い縛ってロボットに固定しました)
  • 字を書くときはペンを下げ書かないときは上にあげておくという仕組み
  • ペンを上下に動かす時間が長いとペンがロボットにあたり部品が外れてしまうので何度か実験をしちょうどいい0.05秒にしました。

作成したプログラム

task main ()
{
 OnFwd(OUT_AC);
 Wait(100);       //1画目
 OnRev(OUT_B);   //ペンを上げる
 Wait(5);
 OnRev(OUT_C);
 OnFwd(OUT_A);
 Wait(105);
 OnFwd(OUT_B); //ペンを下げる
 Wait(5);     // 2画目
 OnFwd(OUT_AC);
 Wait(100);       
 OnRev(OUT_AC);  //前に書いた線をなぞる  
 Wait(50);    
 OnRev(OUT_B);  //ペンを上げる
 Wait(5);
 OnRev(OUT_A);
 OnFwd(OUT_C);
 Wait(105);
 OnFwd(OUT_B);  //ペンを下げる
 Wait(5);     
 OnFwd(OUT_AC);
 Wait(50);        //3画目   まだれが書き終わる
 OnRev(OUT_AC);  //前に書いた線をなぞる
 Wait(125);       //4画目   まだれの一番短い点を下に延長させる
 OnFwd(OUT_AC);
 Wait(50);
 OnRev(OUT_B);    //ペンを上げる
 Wait(5);
 OnRev(OUT_A);
 OnFwd(OUT_C);
 Wait(115);
 OnFwd(OUT_B);  //ペンを下げる
 Wait(5);      //5画目  4つの点のうちの左下
 OnFwd(OUT_AC);
 Wait(50);
 OnRev(OUT_B);    //ペンを上げる
 Wait(5);
 OnFwd(OUT_A);
 OnRev(OUT_C);
 Wait(105);
 OnFwd(OUT_B);  //ペンを下げる
 Wait(5);
 OnFwd(OUT_AC);
 Wait(50);       //6画目   4つの点のうちの右上
 OnRev(OUT_B);   //ペンを上げる
 Wait(5);
 OnFwd(OUT_A);
 OnRev(OUT_C);
 Wait(130);
 OnFwd(OUT_B);  /ペンを下げる
 Wait(5);
 OnFwd(OUT_AC);
 Wait(150);      //7画目  4つの点のうちの右下
 OnRev(OUT_B);   //ペンを上げる
 Wait(5);
 OnRev(OUT_A);
 OnFwd(OUT_C);
 Wait(120);
 OnFwd(OUT_B);  //ペンを下げる
 Wait(5);
 OnFwd(OUT_AC);
 Wait(50); 
 OnRev(OUT_B);   //ペンを上げる
 Wait(5);      
 OnRev(OUT_A);
 OnFwd(OUT_C);
 Wait(105);    
 OnFwd(OUT_B);   //ペンを下げる
 Wait(5);       
 OnFwd(OUT_AC);  //8画目  4つの点のうちの左上
 Wait(150);
 OnRev(OUT_B);    //ペンを上げる
 Wait(5);
 OnRev(OUT_C);
 OnFwd(OUT_A);
 Wait(115);
 OnFwd(OUT_B);  //ペンを下げる
 Wait(5);       //9画目
 OnFwd(OUT_AC);
 Wait(50);        
 OnRev(OUT_B);   //ペンを上げる
 Wait(5);
 OnRev(OUT_A);
 OnFwd(OUT_C);
 Wait(105);
 OnFwd(OUT_B); //ペンを下げる
 Wait(5);
 OnFwd(OUT_AC);
 Wait(50);     //10画目
 OnRev(OUT_AC);    //前に書いた線をなぞる
 Wait(100);       
 OnRev(OUT_B);    //ペンを上げる
 Wait(5);
 OnFwd(OUT_A);
 OnRev(OUT_C);
 Wait(105);
 OnFwd(OUT_B);  //ペンを下げる
 Wait(5);
 OnFwd(OUT_AC);
 Wait(50);      //11画目
 OnRev(OUT_B);    //ペンを上げる
 Wait(5);
 OnFwd(OUT_A);
 OnRev(OUT_C);
 Wait(105);
 OnFwd(OUT_B); //ペンを下げる
 Wait(5);     //12画目
 OnFwd(OUT_AC);
 Wait(50);
 OnRev(OUT_AC);   //前に書いた線をなぞる
 Wait(300);
 OnFwd(OUT_AC);
 Wait(100);
 OnRev(OUT_B);  //ペンを上げる
 Wait(5);
 OnRev(OUT_A);
 OnFwd(OUT_C);
 Wait(105);
 OnFwd(OUT_B); //ペンを下げる
 Wait(5);    //13画目
 OnFwd(OUT_AC);
 Wait(50);
 OnRev(OUT_B);  //ペンを上げる
 Wait(5);      
 OnFwd(OUT_A);
 OnRev(OUT_C);
 Wait(105);
 OnFwd(OUT_B);  //ペンを下げる
 Wait(5);     //14画目
 OnFwd(OUT_AC);
 Wait(100);
 OnRev(OUT_AC);   //前に書いた線をなぞる
 Wait(200);
 Off(OUT_AC);
}

プログラムの説明

  • OnFwdやOnRevの基本的な動きの繰り返しです。
  • OnRevでペンを上にあげOnFwdでペンを下に下げます。
  • 4つの点をしっかりと斜めにしたかったので旋回する時間を1.05秒や1.2秒、1.3秒にするとうまく斜めに描くことができた
  • 「康」という漢字は線と線が交わるところが多いので一度書いた線をロボットをバックさせてなぞるようにしたので書く場所によってすべての時間を変えてプログラムを作りました。

反省・感想

ロボットを前や後ろ右左に動かす知識しかなく組立も初めてやることだったのでとても難しくうまく書くことができなかったのがとても残念。 defineを使わなかったので途中によくわからなくなってしまったことがよくあったので今度からは必ず使うようにする。 今回得た知識や反省をいかして次のロボット製作に専念したい。


添付ファイル: file1434724672962.jpg 118件 [詳細] file1433775200559.jpg 66件 [詳細] file1433681608232.jpg 123件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2015-06-21 (日) 16:05:15