目次

はじめに

今回文字を書く「書道ロボット」を作成した。 自分は諸事情によりロボットの組み立てに参加できなかったので、プログラムの説明と簡単なロボットの構造説明を以下に記す。 ロボットに「征」という漢字を書かせた。

ロボットの構造

#refhttp://www.fastpic.jp/images.php?file=0951395848.jpg

#refhttp://www.fastpic.jp/images.php?file=2671512382.jpg

#refhttp://www.fastpic.jp/images.php?file=1093218713.jpg 車輪に二つ、ペンの上げ下げをするのに一つモーターを使った。

プログラム

続いてプログラムについて説明する。

定義

   #define turn_left(t) RotateMotorEx(OUT_BC,50,t,-100,true,true);左折
   #define turn_right(t) RotateMotorEx(OUT_BC,50,t,100,true,true);右折
   #define go(t) RotateMotor(OUT_BC,50,t);直進
   #define back(t) RotateMotor(OUT_BC,-50,t);後退

サブルーチン

   sub hitohude(int t)
   {
   RotateMotor(OUT_A,50,-45); OnFwd(OUT_A,5);ペンを紙に付ける
   RotateMotor(OUT_BC,50,t); Wait(200);
   RotateMotor(OUT_A,50,45);ペンを紙から離す
   }

プログラム

#refhttp://www.fastpic.jp/images.php?file=2846598895.jpg 書き順通りに動くようプログラムした。

   task main ()
   {
   hitohude(85);
   turn_left(360);
   go(50);
   turn_right(360);   
   hitohude(85);
   back(30);
   turn_left(130);
   back(40);
   hitohude(140);
   back(180);
   turn_left(260);
   go(80);
   hitohude(240); 
   back(120);
   turn_right(240);
   back(40);
   hitohude(200);   
   back(100);
   turn_left(260);
   back(30);
   hitohude(120);
   back(120);
   turn_right(240);
   go(60);
   turn_right(240);
   go(20);
   turn_left(240);
   back(120);
   hitohude(120);
   go(30);
   turn_left(280);
   back(100);
   hitohude(260);
   } 

ΔらГ瞭阿は、複雑であり苦戦した。

課題を終えて

このロボットは曲がるときに重心が動いてしまうため、その調整に余分な動きを入れなくてはいけなかった。その結果プログラムが、あまりシンプルではなくなってしまった。 もう少しプログラムを短くしたかったが、選んだ漢字が一画ごとにいろいろな動きをしなくてはいけなかったのでもっと工夫して短くできたのではと思う。 今後の課題では、多くのツールを駆使し、もっとシンプルなロボット、プログラムを作成したい。


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2016-11-10 (木) 22:46:11