2017b/Member/cyanomelana/Mission1
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
#contents
*課題1 [#m33913e0]
A4サイズの紙に地元に関する漢字二文字を書くロボットを作る。
今回私が選んだ文字は「大阪」です。
*作成したロボット [#eaf37845]
作成したロボットはX軸Y軸でそれぞれ独立して動くロボットで...
部品点数を少なくすることにより軽量化し、ロボットが安定し...
#ref(2017b/Member/cyanomelana/Mission1/IMG_5895.JPG,45%,...
#ref(2017b/Member/cyanomelana/Mission1/robo1IMG_5893.JPG,...
**ロボットの詳細 [#mee85b7a]
Y軸方向(前後方向)の移動
Y軸方向(前後方向)への移動の工夫として、タイヤを4輪一列...
さらにモーターの位置をロボットの中央にすることによってモ...
#ref(2017b/Member/cyanomelana/Mission1/tire.jpg,30%,書道...
#ref(2017b/Member/cyanomelana/Mission1/robo_5873.JPG,45%,...
X軸方向(左右方向)の移動
X軸方向(左右方向)への移動には二本のレールの上をタイヤが...
#ref(2017b/Member/cyanomelana/Mission1/rorobo.JPG,30%,書...
#ref(2017b/Member/cyanomelana/Mission1/roboboIMG_5898.JPG...
ペンの上げ下げの機構
X軸方向に動くモーターに対して垂直にモーターを取り付けるよ...
#ref(2017b/Member/cyanomelana/Mission1/roboobo_5873.JPG,6...
動作の確認で分かったことだが、ペンを下してY軸下方向(手前...
#ref(2017b/Member/cyanomelana/Mission1/pen.JPG,30%,書道ロ...
さらにペンを上げ下げを繰り返すと少しずつペンの角度がずれ...
#ref(2017b/Member/cyanomelana/Mission1/penrobo.JPG,30%,書...
*作成したプログラミング [#xf4828b2]
「大阪」という文字を書くにあたり、曲線と正しい書き順を意...
下の写真の番号の順にプログラムを書いた。
#ref(2017b/Member/cyanomelana/Mission1/IMG_5944.JPG,25%,...
X軸はA、Y軸はCのモーターで動くようにして、~
それぞれの移動方向を図のように決めてdefineで定義した。~
#ref(2017b/Member/cyanomelana/Mission1/direction.JPG,30%,...
#define XR(t) OnFwd(OUT_A,40); Wait(t); Off(OUT_A); Wait...
#define XL(t) OnRev(OUT_A,40); Wait(t); Off(OUT_A); Wait...
#define YD(t) OnFwd(OUT_C,40); Wait(t); Off(OUT_C); Wait...
#define YU(t) OnRev(OUT_C,40); Wait(t); Off(OUT_C); Wait...
ペンの上げ下げは角度で動くプログラミングをdefineで定義し...
#define PU RotateMotor(OUT_B,20,30); Off(OUT_B); //ペン...
#define PD RotateMotor(OUT_B,-20,30); Off(OUT_B); //ペ...
**「大」のプログラミング [#p6ec576f]
曲線を描くために、時間ごとに速度を変えるプログラミングを...
例えば「大」の二画目はYD(Cのモーター)の速度の数値を時間ご...
XL(Aのモーター)の速度の数値をを時間ごとに上げた。~
PD; //一画目(?)
XR(1200);
PU;
XL(620); //二画目の書き始めの位置に移動
YU(150);
PD; //二画目(?)
OnFwd(OUT_C,40); //Y軸下方向の速さを徐々に遅くしていく
OnRev(OUT_A,10); //X軸左方向の速さを徐々に速くしていく
Wait(200);
OnFwd(OUT_C,40);
OnRev(OUT_A,20);
Wait(200);
OnFwd(OUT_C,30);
OnRev(OUT_A,30);
Wait(200);
OnFwd(OUT_C,20);
OnRev(OUT_A,40);
Wait(200);
OnFwd(OUT_C,10);
OnRev(OUT_A,50);
Wait(200);
Off(OUT_AC);
PU;
XR(710); //三画目の書きはじめの位置に移動
YU(510);
PD; //三画目(?)
OnFwd(OUT_C,40); //Y軸下方向の速さを徐々に遅くしていく
OnRev(OUT_A,20); //X軸右方向の速さを徐々に速くしていく
Wait(150);
OnFwd(OUT_C,30);
OnFwd(OUT_A,26);
Wait(200);
OnFwd(OUT_C,20);
OnFwd(OUT_A,30);
Wait(200);
OnFwd(OUT_C,20);
OnFwd(OUT_A,40);
Wait(200);
OnFwd(OUT_C,10);
OnFwd(OUT_A,50);
Wait(230);
Off(OUT_AC);
PU;
**「阪」のプログラミング [#t5dab093]
「阪」も同様に、こざとへん、右側の「反」の曲線が書けるよ...
「阪」を書き終わると元の位置に戻るようにプログラミングを...
XL(1300); //「阪」の一画目の書き始めの位置への移動
YD(220);
PD; //一画目(?)
YD(735);
PU; //二画目の書きはじめの位置に移動
YU(710);
PD; //二画目(?)
XR(520);
OnRev(OUT_A,30);
OnFwd(OUT_C,10);
Wait(550);
Off(OUT_AC);
//三画目(?)放物線を描くためにY軸下方向の速度を一定に...
OnFwd(OUT_C,22); //Y軸下方向の速度は一定
OnFwd(OUT_A,40); //X軸右方向の速度を途中まで徐々に下げる
Wait(150);
OnFwd(OUT_C,22);
OnFwd(OUT_A,25);
Wait(100);
OnFwd(OUT_C,22);
OnFwd(OUT_A,15);
Wait(100);
OnFwd(OUT_C,22);
OnRev(OUT_A,15); //X軸左方向の速さを徐々に上げる
Wait(100);
OnFwd(OUT_C,22);
OnRev(OUT_A,25);
Wait(100);
OnFwd(OUT_C,22);
OnRev(OUT_A,40);
Wait(150);
Off(OUT_AC);
PU;
YU(450); //四画目の書き始めの位置に移動
XR(660);
PD; //四画目(?)
XR(550);
PU;
XL(660); //五画目の書き始めの位置に移動
PD; //五画目(?)左へ少しずつ曲がる曲線を描くためにY軸...
OnFwd(OUT_C,40); //Y軸下方向の速さは一定
OnRev(OUT_A,10); //X軸左方向の速さを徐々に速くしていく
Wait(300);
OnFwd(OUT_C,40);
OnRev(OUT_A,17);
Wait(200);
OnFwd(OUT_C,40);
OnRev(OUT_A,25);
Wait(240);
Off(OUT_AC);
PU;
XR(265); //六画目の書き始めの位置に移動
YU(520);
PD; //六画目(?)
XR(525); //途中まで直線
OnFwd(OUT_C,40); //Y軸下方向の速さを徐々に遅くしていく
OnRev(OUT_A,20); //X軸左方向の速さを徐々に速くしていく
Wait(240);
OnFwd(OUT_C,40);
OnRev(OUT_A,20);
Wait(120);
OnFwd(OUT_C,35);
OnRev(OUT_A,30);
Wait(120);
OnFwd(OUT_C,30);
OnRev(OUT_A,40);
Wait(120);
Off(OUT_AC);
PU;
YU(540); //七画目の書き始めの位置に移動
XL(150);
PD; //七画目(?)
OnFwd(OUT_C,40); //Y軸下方向の速さを徐々に遅くしていく
OnFwd(OUT_A,30); //X軸右方向の速さを徐々に速くしていく
Wait(180);
OnFwd(OUT_C,40);
OnFwd(OUT_A,40);
Wait(110);
OnFwd(OUT_C,35);
OnFwd(OUT_A,40);
Wait(130);
OnFwd(OUT_C,30);
OnFwd(OUT_A,50);
Wait(240);
Off(OUT_AC);
PU;
XL(1500); //ロボットが動き始めた始めの位置に戻る
YU(2000);
*書けた文字 [#oed7f7d3]
読める文字はかけた。
#ref(2017b/Member/cyanomelana/Mission1/oosaka.jpg,65%,大阪)
*感想、反省点 [#c5981acb]
感想
ロボットは安定して動いたので達成感があった。~
曲線はきれいにかけたと思うが、字の形があまり納得いくもの...
完成するまでの道のりが果てしなかった。~
反省点
サブルーチンがとても長くなると思い、サブルーチンを作らな...
こざとへんの書き順を間違えてしまった。
終了行:
#contents
*課題1 [#m33913e0]
A4サイズの紙に地元に関する漢字二文字を書くロボットを作る。
今回私が選んだ文字は「大阪」です。
*作成したロボット [#eaf37845]
作成したロボットはX軸Y軸でそれぞれ独立して動くロボットで...
部品点数を少なくすることにより軽量化し、ロボットが安定し...
#ref(2017b/Member/cyanomelana/Mission1/IMG_5895.JPG,45%,...
#ref(2017b/Member/cyanomelana/Mission1/robo1IMG_5893.JPG,...
**ロボットの詳細 [#mee85b7a]
Y軸方向(前後方向)の移動
Y軸方向(前後方向)への移動の工夫として、タイヤを4輪一列...
さらにモーターの位置をロボットの中央にすることによってモ...
#ref(2017b/Member/cyanomelana/Mission1/tire.jpg,30%,書道...
#ref(2017b/Member/cyanomelana/Mission1/robo_5873.JPG,45%,...
X軸方向(左右方向)の移動
X軸方向(左右方向)への移動には二本のレールの上をタイヤが...
#ref(2017b/Member/cyanomelana/Mission1/rorobo.JPG,30%,書...
#ref(2017b/Member/cyanomelana/Mission1/roboboIMG_5898.JPG...
ペンの上げ下げの機構
X軸方向に動くモーターに対して垂直にモーターを取り付けるよ...
#ref(2017b/Member/cyanomelana/Mission1/roboobo_5873.JPG,6...
動作の確認で分かったことだが、ペンを下してY軸下方向(手前...
#ref(2017b/Member/cyanomelana/Mission1/pen.JPG,30%,書道ロ...
さらにペンを上げ下げを繰り返すと少しずつペンの角度がずれ...
#ref(2017b/Member/cyanomelana/Mission1/penrobo.JPG,30%,書...
*作成したプログラミング [#xf4828b2]
「大阪」という文字を書くにあたり、曲線と正しい書き順を意...
下の写真の番号の順にプログラムを書いた。
#ref(2017b/Member/cyanomelana/Mission1/IMG_5944.JPG,25%,...
X軸はA、Y軸はCのモーターで動くようにして、~
それぞれの移動方向を図のように決めてdefineで定義した。~
#ref(2017b/Member/cyanomelana/Mission1/direction.JPG,30%,...
#define XR(t) OnFwd(OUT_A,40); Wait(t); Off(OUT_A); Wait...
#define XL(t) OnRev(OUT_A,40); Wait(t); Off(OUT_A); Wait...
#define YD(t) OnFwd(OUT_C,40); Wait(t); Off(OUT_C); Wait...
#define YU(t) OnRev(OUT_C,40); Wait(t); Off(OUT_C); Wait...
ペンの上げ下げは角度で動くプログラミングをdefineで定義し...
#define PU RotateMotor(OUT_B,20,30); Off(OUT_B); //ペン...
#define PD RotateMotor(OUT_B,-20,30); Off(OUT_B); //ペ...
**「大」のプログラミング [#p6ec576f]
曲線を描くために、時間ごとに速度を変えるプログラミングを...
例えば「大」の二画目はYD(Cのモーター)の速度の数値を時間ご...
XL(Aのモーター)の速度の数値をを時間ごとに上げた。~
PD; //一画目(?)
XR(1200);
PU;
XL(620); //二画目の書き始めの位置に移動
YU(150);
PD; //二画目(?)
OnFwd(OUT_C,40); //Y軸下方向の速さを徐々に遅くしていく
OnRev(OUT_A,10); //X軸左方向の速さを徐々に速くしていく
Wait(200);
OnFwd(OUT_C,40);
OnRev(OUT_A,20);
Wait(200);
OnFwd(OUT_C,30);
OnRev(OUT_A,30);
Wait(200);
OnFwd(OUT_C,20);
OnRev(OUT_A,40);
Wait(200);
OnFwd(OUT_C,10);
OnRev(OUT_A,50);
Wait(200);
Off(OUT_AC);
PU;
XR(710); //三画目の書きはじめの位置に移動
YU(510);
PD; //三画目(?)
OnFwd(OUT_C,40); //Y軸下方向の速さを徐々に遅くしていく
OnRev(OUT_A,20); //X軸右方向の速さを徐々に速くしていく
Wait(150);
OnFwd(OUT_C,30);
OnFwd(OUT_A,26);
Wait(200);
OnFwd(OUT_C,20);
OnFwd(OUT_A,30);
Wait(200);
OnFwd(OUT_C,20);
OnFwd(OUT_A,40);
Wait(200);
OnFwd(OUT_C,10);
OnFwd(OUT_A,50);
Wait(230);
Off(OUT_AC);
PU;
**「阪」のプログラミング [#t5dab093]
「阪」も同様に、こざとへん、右側の「反」の曲線が書けるよ...
「阪」を書き終わると元の位置に戻るようにプログラミングを...
XL(1300); //「阪」の一画目の書き始めの位置への移動
YD(220);
PD; //一画目(?)
YD(735);
PU; //二画目の書きはじめの位置に移動
YU(710);
PD; //二画目(?)
XR(520);
OnRev(OUT_A,30);
OnFwd(OUT_C,10);
Wait(550);
Off(OUT_AC);
//三画目(?)放物線を描くためにY軸下方向の速度を一定に...
OnFwd(OUT_C,22); //Y軸下方向の速度は一定
OnFwd(OUT_A,40); //X軸右方向の速度を途中まで徐々に下げる
Wait(150);
OnFwd(OUT_C,22);
OnFwd(OUT_A,25);
Wait(100);
OnFwd(OUT_C,22);
OnFwd(OUT_A,15);
Wait(100);
OnFwd(OUT_C,22);
OnRev(OUT_A,15); //X軸左方向の速さを徐々に上げる
Wait(100);
OnFwd(OUT_C,22);
OnRev(OUT_A,25);
Wait(100);
OnFwd(OUT_C,22);
OnRev(OUT_A,40);
Wait(150);
Off(OUT_AC);
PU;
YU(450); //四画目の書き始めの位置に移動
XR(660);
PD; //四画目(?)
XR(550);
PU;
XL(660); //五画目の書き始めの位置に移動
PD; //五画目(?)左へ少しずつ曲がる曲線を描くためにY軸...
OnFwd(OUT_C,40); //Y軸下方向の速さは一定
OnRev(OUT_A,10); //X軸左方向の速さを徐々に速くしていく
Wait(300);
OnFwd(OUT_C,40);
OnRev(OUT_A,17);
Wait(200);
OnFwd(OUT_C,40);
OnRev(OUT_A,25);
Wait(240);
Off(OUT_AC);
PU;
XR(265); //六画目の書き始めの位置に移動
YU(520);
PD; //六画目(?)
XR(525); //途中まで直線
OnFwd(OUT_C,40); //Y軸下方向の速さを徐々に遅くしていく
OnRev(OUT_A,20); //X軸左方向の速さを徐々に速くしていく
Wait(240);
OnFwd(OUT_C,40);
OnRev(OUT_A,20);
Wait(120);
OnFwd(OUT_C,35);
OnRev(OUT_A,30);
Wait(120);
OnFwd(OUT_C,30);
OnRev(OUT_A,40);
Wait(120);
Off(OUT_AC);
PU;
YU(540); //七画目の書き始めの位置に移動
XL(150);
PD; //七画目(?)
OnFwd(OUT_C,40); //Y軸下方向の速さを徐々に遅くしていく
OnFwd(OUT_A,30); //X軸右方向の速さを徐々に速くしていく
Wait(180);
OnFwd(OUT_C,40);
OnFwd(OUT_A,40);
Wait(110);
OnFwd(OUT_C,35);
OnFwd(OUT_A,40);
Wait(130);
OnFwd(OUT_C,30);
OnFwd(OUT_A,50);
Wait(240);
Off(OUT_AC);
PU;
XL(1500); //ロボットが動き始めた始めの位置に戻る
YU(2000);
*書けた文字 [#oed7f7d3]
読める文字はかけた。
#ref(2017b/Member/cyanomelana/Mission1/oosaka.jpg,65%,大阪)
*感想、反省点 [#c5981acb]
感想
ロボットは安定して動いたので達成感があった。~
曲線はきれいにかけたと思うが、字の形があまり納得いくもの...
完成するまでの道のりが果てしなかった。~
反省点
サブルーチンがとても長くなると思い、サブルーチンを作らな...
こざとへんの書き順を間違えてしまった。
ページ名: