書道ロボットの概観

3つのモーターを

  • 車体の前後左右の移動(モーターA,C)
  • ペンの上下(モーターB)

に用いて書道ロボットを製作した。

DSC_0003 (2).JPG

ペンと車体は一体化しており車体を動かすことで文字を書くようにした。

製作上の問題点と苦労した点

車体とペンのずれ

上記のようにペンと車体を一体化したため、車体を大きく動かさなければならなくなった。 そのため車体の動きや、ペンと地面との摩擦などで少しずつずれが生じてしまい書くたびに文字が変化するという事態が起こってしまった。

車体のサイズ

ペンが車体の前についているので車体の向きを変更するたびにペンの位置がずれてしまうため,プログラミングの段階で、車体の大きさを考慮しなければならなかった。

動力の力の差

車体を動かすモーターに力の差が生じたため、直線のつもりが左に寄っていってしまい方向転換の際に、まっすぐ進まないことを考慮し、少し多めに回転させるなどの工夫をしたプログラムを作らなければならなかった。

文字を書く最中の移動

前進をしながら文字を書こうとすると、うまくペンが地面と接触せずたくさんの点が並ぶという事態が発生してしまったので、文字を書くときはなるべく後進を利用したり、筆圧を調整するなどの工夫をした。

書き順の変更と字の設定

「聡」という漢字を書くロボットを製作しようとしたが、画数が多く車体の方向転換が多いので少しずつずれが生じることから、書き順を変更することにした。 「聡」という漢字をみると、「耳」「公」「心」と分けることができる。

「耳」に関して

DSC_0007.JPG

「耳」を書くとき、方向転換をなるべく減らすために横線を一気に4本引くことにした。(「耳」の 一画目、三画目、四画目、五画目)その後六画目、二画目を書くことでずれを最小限に抑えることが できた。

「公」と「心」に関して

DSC_0006.JPG

「公」を書くとき、「耳」とは違い垂直ではなかったので「公」の一画目と三画目を先に書き、角度 の違う二画目と四画目を後回しにした。 「心」は書き順通りに書いたが、「心」の四画目と「公」の二画目と四画目の角度を同じにしても違 和感がなかったので、「心」を書いた後「公」の四画目と二画目を書いた。

プログラム

「聡」を書くプログラム

#define go OnFwd(OUT_AC);
#define up OnRev(OUT_B);Wait(10);Off(OUT_B);
#define down OnFwd(OUT_B);Wait(10);Off(OUT_B);
#define left OnFwd(OUT_C);OnRev(OUT_A);
#define right OnFwd(OUT_A);OnRev(OUT_C);
#define back OnRev(OUT_AC);


task main()
{
  down;
  go;Wait(45);//「耳」一画目
  up;
  back;Wait(40);
  right;Wait(90);Off(OUT_AC);
  go;Wait(15);
  left;Wait(90);Off(OUT_AC);
  down;
  go;Wait(15);//「耳」三画目
  up;
  back;Wait(30);
  right;Wait(90);Off(OUT_AC);
  go;Wait(15);
  left;Wait(90);Off(OUT_AC);
  down;
  go;Wait(15);//「耳」四画目
  up;
  back;Wait(45);
  right;Wait(90);Off(OUT_AC);
  go;Wait(15);
  left;Wait(90);Off(OUT_AC);
  down;
  go;Wait(30);Off(OUT_AC);//「耳」五画目
  up;
  go;Wait(70);
  left;Wait(95);Off(OUT_AC);
  back;Wait(60);
  down;
  back;Wait(70);//「耳」六画目
  up;
  go;Wait(30);
  left;Wait(90);Off(OUT_AC);
  go;Wait(15);
  right;Wait(90);Off(OUT_AC);
  down;
  go;Wait(50);//「耳」二画目
  up;
  right;Wait(50);
  go;Wait(25);
  left;Wait(20);
  down;
  back;Wait(25);//「公」一画目
  up;
  right;Wait(90);Off(OUT_AC);
  go;Wait(15);
  left;Wait(90);Off(OUT_AC);
  down;
  go;Wait(20);//「公」三画目前半
  up;
  go;Wait(60);
  right;Wait(55);Off(OUT_AC);
  back;Wait(35);
  down;
  back;Wait(25);//「公」三画目後半
  up;
  go;Wait(75);
  right;Wait(52);Off(OUT_AC);
  back;Wait(20);
  down;
  back;Wait(15);//「心」一画目
  up;
  left;Wait(90);Off(OUT_AC);
  go;Wait(25);
  right;Wait(90);Off(OUT_AC);
  go;Wait(15);
  down;
  go;Wait(30);//「心」二画目
  left;Wait(10);Off(OUT_AC);
  up;
  right;Wait(10);Off(OUT_AC);
  back;Wait(20);
  left;Wait(90);Off(OUT_AC);
  go;Wait(15);
  right;Wait(90);Off(OUT_AC);
  down;
  go;Wait(15);Off(OUT_AC);//「心」三画目
  up;
  left;Wait(90);Off(OUT_AC);
  go;Wait(25);
  right;Wait(90);Off(OUT_AC);
  down;
  back;Wait(15);//「心」四画目
  up;
  back;Wait(10);
  down;
  back;Wait(15);//「公」四画目
  up;
  left;Wait(90);Off(OUT_AC);
  go;Wait(25);
  right;Wait(90);Off(OUT_AC);
  down;
  go;Wait(25);//「公」二画目
  Off(OUT_AC);
}

書道ロボットによる作品

DSC_0005 (3).JPG

まとめと反省

車体とペンを一体化してしまったことで、プログラムが多くなってしまったり方向転換が増えることで、ずれが大きくなってしまうので、ペンと車体は分離することが好ましかった。 何度も、繰り返しのプログラミング言語を利用する場面はあったのだが、利用しなかったためにプログラムが長くなり見づらくなってしまった。 書くたびに字体が変化し、書くことができないことやレポート上にアップした画像もきれいに線がつ ながっていないなど様々な問題点は残ってしまったが、なんとか読めるレベルまで持っていくことが できた。


添付ファイル: fileDSC_0006.JPG 100件 [詳細] fileDSC_0007.JPG 108件 [詳細] fileDSC_0005 (3).JPG 96件 [詳細] fileDSC_0003 (2).JPG 119件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2015-06-24 (水) 13:48:52 (1518d)