[[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] 相方との意思の疎通がなかなか図れず、 無駄な時間を消費してしまった。 無駄に時間を消費してしまった。 「報告、連絡、相談」は大事である。 講師のアドバイスでもあるが キットは交互に持ち帰ったほうがいいと感じた。さもないと惨劇をうむ(かもしれない)。