2015b/Member/Azuma/Mission1
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[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]
相方との意思の疎通がなかなか図れず、
無駄に時間を消費してしまった。
「報告、連絡、相談」は大事である。
講師のアドバイスでもあるが
キットは交互に持ち帰ったほうがいいと感じた。さもないと惨劇をうむ(かもしれない)。
終了行:
[[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]
相方との意思の疎通がなかなか図れず、
無駄に時間を消費してしまった。
「報告、連絡、相談」は大事である。
講師のアドバイスでもあるが
キットは交互に持ち帰ったほうがいいと感じた。さもないと惨劇をうむ(かもしれない)。
ページ名: