[[2015b/Member]]
*はじめに [#pb7f0ad1]
課題は書道ロボットの作成。
-文字は地元の住所の一文字(但し七画以上)
-A4の紙に書く(文字の大きさは自由)
-ペンの種類はなんでもあり

今回は「里」という漢字を書きました。

ペンは後述の理由で筆ペンを使いました。

*ロボットの説明 [#z3d710ca]

#ref(2.JPG)

三輪車の前にペンをつけた形です。

ペン先が地面に垂直ではないので、カスレ対策として筆ペンを使用しました。

ペンは輪ゴムで固定しています。



*ロボットの動作・プログラミングの説明 [#gc6f2941]
書道ロボットに必要な動きは
-ペンの上げ下げ
-横方向の動き
-縦方向の動き   の三種類です。

今回、以下のように再現しました。

(以下のプログラミングの最後にoff,Waitがついていますが
-Offを入れないとまれに誤作動を起こす(相方談,要検証)
-Waitを入れないと動作が終わる前に次の動作に行ってしまう

ため、入れています)

**ペンの上げ下げ [#z72d661b]
ロボット前方のモーターの回転によって制御しました。

プログラミング的には

「RotateMotor」をつかってモーターの回転数で制御しました。

{使い方はRotateMotor(OUT_モーターの接続場所の記号,パワーのパーセント、回転角)}

-ペンを上げる
 #define up 
 RotateMotor(OUT_C,40,30);
 Off(OUT_C);
 Wait(300);

-ペンを下げる
 #define down 
 RotateMotor(OUT_C,25,-30);
 Off(OUT_C)
 Wait(300);

**横方向の動き [#lf5b8983]
右と左のタイヤを反対に同時に回転させました。

曲線を描きますが、小さな範囲では気にならない程度だと考えました。

-左から右に線を引く
 #define yoko(a)
 down;Off(OUT_ABC);
 OnFwd(OUT_B,30);
 OnRev(OUT_A,30);
 Wait(a);
 Off(OUT_AB);
 Wait(300);

-ペンを左に持ってくる
 #define yokor(d) 
 OnRev(OUT_B,30);
 OnFwd(OUT_A,30);
 Wait(d);
 Off(OUT_AB);
 Wait(300);

**縦方向の動き [#edf231e4]
右と左のタイヤを後ろに回転させました。

問題は中心から外れた縦線ですが、

「里」いう漢字の構造上、まっすぐでなくてもよいと判断しました。

-後進
 #define back(b) 
 OnRev(OUT_AB,30);
 Wait(b);
 Off(OUT_AB);
 Wait(300);

-前進
 #define go(c) 
 OnFwd(OUT_AB,30);
 Wait(c);
 Off(OUT_AB);
 Wait(300);

*書き順 [#yfdf5312]
「里」の書き順をそのまま再現しました。

*プログラム [#nd67a210]
定義は前述したものだけです。(因みにyokorのrはreverseのr)
 #define up RotateMotor(OUT_C,40,30);Off(OUT_C);Wait(300);
 #define down RotateMotor(OUT_C,25,-30);Wait(300);
 #define yoko(a) down;Off(OUT_ABC);OnFwd(OUT_B,30);OnRev(OUT_A,30);Wait(a);
                 Off(OUT_AB);Wait(300);
 #define yokor(d) OnRev(OUT_B,30);OnFwd(OUT_A,30);Wait(d);Off(OUT_AB);Wait(300);
 #define back(b) OnRev(OUT_AB,30);Wait(b);Off(OUT_AB);Wait(300);
 #define go(c) OnFwd(OUT_AB,30);Wait(c);Off(OUT_AB);Wait(300);

 task main()
 {
  Off(OUT_ABC)

一画目(左の縦棒 l )
 up;
 back(100);
 OnRev(OUT_B,30);
 Wait(250);
 Off(OUT_ABC);
 down;
 back(350);
 up;//一画目

二画目(横縦棒  ̄l)
 go(350);
 yoko(400);
 back(500);
 up;//二画目

三画目(田の中横棒ー)
 go(250);
 yokor(300);
 yoko(300);
 up;//三画目

四画目(田の下横棒ー)
 back(250);
 yokor(300);
 yoko(300);
 up;//四画目

五画目(真ん中縦棒l) 
 yokor(300);
 go(500);
 down;
 back(1000);
 up;//五画目

六画目(下の短横棒-)  
 go(250);
 yokor(150);
 yoko(300);
 up;//六画目

七画目(下の長横棒ー)
 back(250);
 yokor(250);
 yoko(500);
 up;//七画目

 }

fin
#ref(1.JPG)
*考察 [#qdb6ed6c]
書くたびに文字のゆがむ場所が変わっていた。

前方部分を突貫工事で改善(改悪?)したのが

原因だと思われる。

時間があれば構造を見直してみたい。

また、今回の課題について考えてみと

漢字は直線的な縦と横の動きで書けるが

手元には回転系のモーターが3つあるだけである。

ということは、3つのモーターを、
-ペンの上下
-縦の動き
-横の動き
にそれぞれ割り当て、

さらに、いかに回転の動きを直線的な動きに変えるか

が今回の課題の肝であったと考える。

となると、今回のようなロボットはあまり適していなかったかもしれない。



*感想・ [#c86b5219]
相方との意思の疎通がなかなか図れず、

無駄な時間を消費してしまった。
無駄に時間を消費してしまった。

「報告、連絡、相談」は大事である。

講師のアドバイスでもあるが

キットは交互に持ち帰ったほうがいいと感じた。さもないと惨劇をうむ(かもしれない)。

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS