課題1の目次

課題

今回は書道ロボットを作成するという課題だった。

自分の漢字で7画以上の文字を書くという課題だったので「相」という漢字を選び書き順通りに書くことにした。

ロボットについて

最初は、初めに作ったロボットにペンを上下させるモーターを取り付けただけだったが、そのやり方では字を綺麗に書くのが大変だったので次に、前後移動するロボットにアームを付けたロボットを作ろうとした。

しかしアームを取り付けるのが思っていたよりも難しく、結局前に作ったロボットを作り直し、工夫して文字を書くことにした。

ペンの上げ下げにモーターを一つ、前後のタイヤに二つモーターを使用し、ペンを上げると紙からペンが浮き、下げると字が書けるようになっている。

ペンの上げ下げをするモーターは動かしすぎると本体にぶつかってしまい、足りないとペンが紙から離れないので、何度か調整して0.05秒にするとちょうどいいことが分かった。また、ペンは輪ゴムで固定した。

image.jpg

プログラム

#define turn_left OnFwd(OUT_A); OnRev(OUT_C); Wait(110);
#define turn_right OnRev(OUT_A); OnFwd(OUT_C); Wait(110);
#define up OnFwd(OUT_B); Wait(5); Off(OUT_B);
#define down OnRev(OUT_B); Wait(5); Off(OUT_B);
task main()
{
  OnRev(OUT_AC);
  Wait(70);    //1画目
  up;
  OnFwd(OUT_AC);
  Wait(110);
  turn_right; 
  OnRev(OUT_AC);
  Wait(50);
  down;
  OnRev(OUT_AC);
  Wait(200);    //2画目
  up;
  OnFwd(OUT_AC);
  Wait(230);
  OnRev(OUT_A);
  OnFwd(OUT_C);
  Wait(50);
  OnRev(OUT_AC);
  Wait(100);
  down;
  OnRev(OUT_AC);
  Wait(50);        //3画目
  up;
  OnFwd(OUT_AC);
  Wait(170);
  turn_left;
  OnRev(OUT_AC);
  Wait(70);
  down;
  OnRev(OUT_AC);
  Wait(50);        //4画目
  up;
  OnRev(OUT_A);
  OnFwd(OUT_C);
  Wait(50);
  OnFwd(OUT_AC);
  Wait(50);
  turn_left;
  OnFwd(OUT_AC);
  Wait(50);
  turn_right;
  down;
  OnRev(OUT_AC);
  Wait(180);    //5画目
  up;
  OnFwd(OUT_AC);
  Wait(300);
  turn_left;
  OnRev(OUT_AC);
  Wait(80); 
  down;           
  OnRev(OUT_AC);
  Wait(50);     //6-1画目
  up;
  OnFwd(OUT_AC);
  Wait(100);
  turn_right;
  OnRev(OUT_AC);
  Wait(100);
  down;
  OnRev(OUT_AC);
  Wait(180);       //6-2画目
  up;
  OnFwd(OUT_AC);
  Wait(220);
  turn_left;
  OeRev(OUT_AC);
  Wait(10);
  down;
  OnRev(OUT_AC);
  Wait(50);       //7画目
  up;
  turn_right;
  OnRev(OUT_AC);
  Wait(30);
  turn_left;
  OnFwd(OUT_AC);
  Wait(20);
  down;
  OnRev(OUT_AC);
  Wait(50);          //8画目 
  up;
  turn_right;
  OnRev(OUT_AC);
  Wait(40);
  turn_left;
  OnFwd(OUT_AC);
  Wait(30);
  down;
  OnRev(OUT_AC);
  Wait(50);         //9画目
  Off(OUT_AC);

工夫した点

字を書くときに本体後ろにペンがついているため曲がる時にペンが大きくずれてしまうので、そのずれを修正するために少し下がってからペンを下げる工夫をすることでずれをできるだけ小さくした。

修正する時には何度も動かしてその動きを見てプログラムを少しずつ修正していった。

また、ペンを前にして字を書こうとするとペン先がかすれてきてうまく書けなくなるので、ペンが後ろになるようにプログラムを書くことで字がかすれることなく書くことができた。

直角に曲がることと、ペンの上げ下げが多いので右折と左折とペンの上げ下げを定義することでプログラムを短くできた。

反省

本体にペンを取り付けたため細かい調整が多くプログラムが長くなってしまった。

また、「木」の部分は普通に読めるくらいにはなったが、時間が足りず「目」の部分があまりきれいにできなかったのが残念だった。

次の課題ではもっとうまくできるようにしたい。


添付ファイル: fileimage.jpg 180件 [詳細]

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