2019a/Member/sotaex/Mission1
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
N14のロボットを作成しました。~
*文字 [#z3bac0b7]
課題1~
''これまで住んだことのある都道府県名、市町村名、地区名な...
に基づき、私の出身の浜田市からとって 「浜田」とした。
*ハード [#kf72856b]
+構造の決定
++前後側、左右側にモーターを1つずつ配置しその動きによって...
++左右対称にモーターを配置し、その回転軸にペン先がくるよ...
&ref(A.jpeg);
+原案との変更点~
モーターが普通のものと違い、ギアボックス付きのモーターの...
&ref(B.jpeg);
&ref(C.jpeg);~
更に、組み立てるとき、使用できるパーツの関係で重心がぶれ...
&ref(B91032F7-142F-4E92-A7B3-9F383D131A03.jpeg);~
+ペンを下ろすクレーン~
以下の図のような構造にした。~
図~
&ref(DF4771B1-4392-408B-9C12-478901373EED.jpeg);~
実際に搭載した写真~
&ref(2D4229F0-8F58-4ECB-8C3A-B5FD27B9D24A.jpeg);~
工夫した点としては~
-ギアを入れたことで少しモーターの元々の可動域とずれたよう...
-ギアを含め両側から挟んだことで安定性を向上させた点~
が挙げられる。~
その他ハード全体としての工夫点~
正確な動きにするため低速での運転を想定して、極端に大きさ...
&ref(ギア.jpeg);
*プログラム [#s8f0bb34]
-方針~
1文字あたり6×6の枠を用意し、一つの正方形の一辺をA、対角線...
&ref(マス.jpeg);~
これを使って座標もどきの設定をしていく。~
&ref(座標もどき.jpeg);~
全体像はこのようになる。手数は非常に多い。因みにこの図の...
この図から理解できるように、全ての動作は全てペンの上げ下...
-マクロ定義~
++直進、後退、右回転、左回転
#define Turn_right(r) repeat(r){OnFwd(OUT_C,50);\
OnRev(OUT_B,50);Wait(1);Off(OUT_BC);}
#define Turn_left(l) repeat(l){OnFwd(OUT_B,50);\
OnRev(OUT_C,50);Wait(1);Off(OUT_BC);}
#define GO(g) repeat(g){OnFwd(OUT_B,50);\
OnFwd(OUT_C,48);Wait(1);Off(OUT_BC);}
#define BACK(b) repeat(b){OnRev(OUT_B,50);\
OnRev(OUT_C,48);Wait(1);Off(OUT_BC);}
順に右回転、左回転、直進、後退のマクロ定義である。~
工夫した点は3つ。~
工夫点A.それぞれのマクロでは、関数を用いて、適当な時間で...
工夫点B.モーターにガタがきているのか、はたまた不良品なの...
工夫点C.当初は~
#define Turn_right(r) OnFwd(OUT_C,50);\
OnRev(OUT_B,50);Wait(r);
#define Turn_left(l) OnFwd(OUT_B,50);\
OnRev(OUT_C,50);Wait(l)
#define GO(g) OnFwd(OUT_B,50);\
OnFwd(OUT_C,48);Wait(g);
#define BACK(b) OnRev(OUT_B,50);\
OnRev(OUT_C,48);Wait(b);
のように、マクロの変数はWait()の中身となるようにしていた。~
しかし、可能な限り同じ条件で実験し続けても、確実に同じ距...
そこで上の完成形にように、動作→1/100待つ→停止の流れを変数...
これはえ絶え間なくほんの一瞬ブレーキをかけることで正確さ...
1/100秒という微々たる時間では変化がないと思って試しにやっ...
++A&Bに関して~
A、Bに関する距離を直進、後退する時に使う時間指定用のマク...
#define A_1 550
#define B_1 700
#define A_2 1260
#define B_2 1720
#define A_3 1880
#define A_4 2460
#define B_5 3920
当初はプログラム上では、Aのn倍移動するときの時間設定をA_n...
++DEG45&DEG90に関して~
同様に、45度、90度回転にかかる時間も定義した。~
#define DEG_45 1900
#define DEG_90 3350
しかし、A、Bの時同様に、45度の時間分の動作を整数倍して使...
++P_ONとP_OFFに関して~
順にペンを置く動作、ペンを離す動作のマクロを定義した。~
#define P_ON;OnFwd(OUT_A,40);\
Wait(500);Off(OUT_A);
#define P_OFF OnRev(OUT_A,40);\
Wait(500);Off(OUT_A);
これに関しては、ひたすらトライアンドエラーを繰り返し、モ...
-task main~
定期的に付いている//番号の数字は、上で示した座標もどきの...
++浜の字を書く~
1~5:氵を書く~
&ref(1to5.jpeg);
task main()
{
Turn_left(DEG_45);
P_ON;BACK(B_1);//1
P_OFF;Turn_right(DEG_45);
BACK(A_2);//2
Turn_left(DEG_45);
P_ON;
GO(B_1);//3
P_OFF;
Turn_right(DEG_45);
BACK(A_4);//4
Turn_right(DEG_45);
P_ON;
GO(B_1);//5
6:ペンを離し丘の右上まで移動~
&ref(6.jpeg);
P_OFF;
repeat(5){GO(B_1)};//6。ただし7はプログラム上の設計ミ...
8~16:丘を書く~
&ref(8to16.jpeg);
P_ON;
BACK(B_1);//8
Turn_right(DEG_45);
repeat(2){BACK(A_1)};//9
repeat(2){Turn_left(DEG_45)};
repeat(3){BACK(A_1)};//10
P_OFF;
repeat(2){Turn_right(DEG_45)};
BACK(A_1);//11
P_ON;
repeat(4){GO(A_1)};//12
P_OFF;
BACK(A_1);//13
repeat(2){Turn_left(DEG_45)};
P_ON;
repeat(2){GO(A_1)};//14
P_OFF;
repeat(2){Turn_left(DEG_45)};
BACK(A_1);//15
P_ON;
repeat(3){GO(A_1)};//16
17~22:ハの左上まで移動しハを書く(ハまでの移動は17のみ)~
&ref(17to22.jpeg);
P_OFF;
repeat(2){Turn_right(DEG_45)};
repeat(3){BACK(A_1)};//17。ただし18はプログラム上の...
P_ON;
Turn_right(DEG_45);
BACK(B_1);//19
P_OFF;
Turn_left(DEG_45);
repeat(2){Turn_left(DEG_45)};
repeat(4){BACK(A_1)};//20
Turn_right(DEG_45);
P_ON;
GO(B_1);//21
P_OFF;
BACK(B_1);//22
23~24:浜の右下から田の右上へ移動~
&ref(23to24.jpeg);
Turn_right(DEG_45);
repeat(2){BACK(A_1);};//23
repeat(2){Turn_left(DEG_45)};GO(A_1);//24
++田を書く~
25~28:外枠の正方形を書く~
&ref(25to28.jpeg);
P_ON;
repeat(4){GO(A_1)};//25
repeat(3){
repeat(2){
Turn_left(DEG_45)};
repeat(4){GO(A_1)
}
};//26から28
これまではただ番号に従ってやってきたが、26~28は同じ動作の...
29~32:田の右上からの移動(29)と十の字を書く(30~33)~
&ref(29to32.jpeg);
P_OFF;
repeat(2){BACK(A_1)};//29
repeat(2){Turn_left(DEG_45)};
P_ON;
repeat(4){GO(A_1)};//30
P_OFF;
Turn_right(DEG_45);
repeat(2){BACK(B_1)};//31
Turn_right(DEG_45);
P_ON;
repeat(4){GO(A_1)};//32
P_OFF;//最後にペンを上げて完成
}
完成した文字がこれである。~
&ref(complete.jpeg);
*反省点 [#cf89d495]
試行錯誤を繰り返すことで、そこそこ綺麗な文字を書くことが...
しかしながら、色々な工夫を凝らしたつもりだが、まだ人間で...
第2の反省点は、マクロに頼っても簡略化など全くできていない...
第3の反省点としては、ミスで番号がずれたことである。番号が...
*MOVIE[#a10a29b7]
[[youtubeより実演動画・浜田を書くロボット:https://youtu.b...
(URLからのみアクセスできる限定公開)
終了行:
N14のロボットを作成しました。~
*文字 [#z3bac0b7]
課題1~
''これまで住んだことのある都道府県名、市町村名、地区名な...
に基づき、私の出身の浜田市からとって 「浜田」とした。
*ハード [#kf72856b]
+構造の決定
++前後側、左右側にモーターを1つずつ配置しその動きによって...
++左右対称にモーターを配置し、その回転軸にペン先がくるよ...
&ref(A.jpeg);
+原案との変更点~
モーターが普通のものと違い、ギアボックス付きのモーターの...
&ref(B.jpeg);
&ref(C.jpeg);~
更に、組み立てるとき、使用できるパーツの関係で重心がぶれ...
&ref(B91032F7-142F-4E92-A7B3-9F383D131A03.jpeg);~
+ペンを下ろすクレーン~
以下の図のような構造にした。~
図~
&ref(DF4771B1-4392-408B-9C12-478901373EED.jpeg);~
実際に搭載した写真~
&ref(2D4229F0-8F58-4ECB-8C3A-B5FD27B9D24A.jpeg);~
工夫した点としては~
-ギアを入れたことで少しモーターの元々の可動域とずれたよう...
-ギアを含め両側から挟んだことで安定性を向上させた点~
が挙げられる。~
その他ハード全体としての工夫点~
正確な動きにするため低速での運転を想定して、極端に大きさ...
&ref(ギア.jpeg);
*プログラム [#s8f0bb34]
-方針~
1文字あたり6×6の枠を用意し、一つの正方形の一辺をA、対角線...
&ref(マス.jpeg);~
これを使って座標もどきの設定をしていく。~
&ref(座標もどき.jpeg);~
全体像はこのようになる。手数は非常に多い。因みにこの図の...
この図から理解できるように、全ての動作は全てペンの上げ下...
-マクロ定義~
++直進、後退、右回転、左回転
#define Turn_right(r) repeat(r){OnFwd(OUT_C,50);\
OnRev(OUT_B,50);Wait(1);Off(OUT_BC);}
#define Turn_left(l) repeat(l){OnFwd(OUT_B,50);\
OnRev(OUT_C,50);Wait(1);Off(OUT_BC);}
#define GO(g) repeat(g){OnFwd(OUT_B,50);\
OnFwd(OUT_C,48);Wait(1);Off(OUT_BC);}
#define BACK(b) repeat(b){OnRev(OUT_B,50);\
OnRev(OUT_C,48);Wait(1);Off(OUT_BC);}
順に右回転、左回転、直進、後退のマクロ定義である。~
工夫した点は3つ。~
工夫点A.それぞれのマクロでは、関数を用いて、適当な時間で...
工夫点B.モーターにガタがきているのか、はたまた不良品なの...
工夫点C.当初は~
#define Turn_right(r) OnFwd(OUT_C,50);\
OnRev(OUT_B,50);Wait(r);
#define Turn_left(l) OnFwd(OUT_B,50);\
OnRev(OUT_C,50);Wait(l)
#define GO(g) OnFwd(OUT_B,50);\
OnFwd(OUT_C,48);Wait(g);
#define BACK(b) OnRev(OUT_B,50);\
OnRev(OUT_C,48);Wait(b);
のように、マクロの変数はWait()の中身となるようにしていた。~
しかし、可能な限り同じ条件で実験し続けても、確実に同じ距...
そこで上の完成形にように、動作→1/100待つ→停止の流れを変数...
これはえ絶え間なくほんの一瞬ブレーキをかけることで正確さ...
1/100秒という微々たる時間では変化がないと思って試しにやっ...
++A&Bに関して~
A、Bに関する距離を直進、後退する時に使う時間指定用のマク...
#define A_1 550
#define B_1 700
#define A_2 1260
#define B_2 1720
#define A_3 1880
#define A_4 2460
#define B_5 3920
当初はプログラム上では、Aのn倍移動するときの時間設定をA_n...
++DEG45&DEG90に関して~
同様に、45度、90度回転にかかる時間も定義した。~
#define DEG_45 1900
#define DEG_90 3350
しかし、A、Bの時同様に、45度の時間分の動作を整数倍して使...
++P_ONとP_OFFに関して~
順にペンを置く動作、ペンを離す動作のマクロを定義した。~
#define P_ON;OnFwd(OUT_A,40);\
Wait(500);Off(OUT_A);
#define P_OFF OnRev(OUT_A,40);\
Wait(500);Off(OUT_A);
これに関しては、ひたすらトライアンドエラーを繰り返し、モ...
-task main~
定期的に付いている//番号の数字は、上で示した座標もどきの...
++浜の字を書く~
1~5:氵を書く~
&ref(1to5.jpeg);
task main()
{
Turn_left(DEG_45);
P_ON;BACK(B_1);//1
P_OFF;Turn_right(DEG_45);
BACK(A_2);//2
Turn_left(DEG_45);
P_ON;
GO(B_1);//3
P_OFF;
Turn_right(DEG_45);
BACK(A_4);//4
Turn_right(DEG_45);
P_ON;
GO(B_1);//5
6:ペンを離し丘の右上まで移動~
&ref(6.jpeg);
P_OFF;
repeat(5){GO(B_1)};//6。ただし7はプログラム上の設計ミ...
8~16:丘を書く~
&ref(8to16.jpeg);
P_ON;
BACK(B_1);//8
Turn_right(DEG_45);
repeat(2){BACK(A_1)};//9
repeat(2){Turn_left(DEG_45)};
repeat(3){BACK(A_1)};//10
P_OFF;
repeat(2){Turn_right(DEG_45)};
BACK(A_1);//11
P_ON;
repeat(4){GO(A_1)};//12
P_OFF;
BACK(A_1);//13
repeat(2){Turn_left(DEG_45)};
P_ON;
repeat(2){GO(A_1)};//14
P_OFF;
repeat(2){Turn_left(DEG_45)};
BACK(A_1);//15
P_ON;
repeat(3){GO(A_1)};//16
17~22:ハの左上まで移動しハを書く(ハまでの移動は17のみ)~
&ref(17to22.jpeg);
P_OFF;
repeat(2){Turn_right(DEG_45)};
repeat(3){BACK(A_1)};//17。ただし18はプログラム上の...
P_ON;
Turn_right(DEG_45);
BACK(B_1);//19
P_OFF;
Turn_left(DEG_45);
repeat(2){Turn_left(DEG_45)};
repeat(4){BACK(A_1)};//20
Turn_right(DEG_45);
P_ON;
GO(B_1);//21
P_OFF;
BACK(B_1);//22
23~24:浜の右下から田の右上へ移動~
&ref(23to24.jpeg);
Turn_right(DEG_45);
repeat(2){BACK(A_1);};//23
repeat(2){Turn_left(DEG_45)};GO(A_1);//24
++田を書く~
25~28:外枠の正方形を書く~
&ref(25to28.jpeg);
P_ON;
repeat(4){GO(A_1)};//25
repeat(3){
repeat(2){
Turn_left(DEG_45)};
repeat(4){GO(A_1)
}
};//26から28
これまではただ番号に従ってやってきたが、26~28は同じ動作の...
29~32:田の右上からの移動(29)と十の字を書く(30~33)~
&ref(29to32.jpeg);
P_OFF;
repeat(2){BACK(A_1)};//29
repeat(2){Turn_left(DEG_45)};
P_ON;
repeat(4){GO(A_1)};//30
P_OFF;
Turn_right(DEG_45);
repeat(2){BACK(B_1)};//31
Turn_right(DEG_45);
P_ON;
repeat(4){GO(A_1)};//32
P_OFF;//最後にペンを上げて完成
}
完成した文字がこれである。~
&ref(complete.jpeg);
*反省点 [#cf89d495]
試行錯誤を繰り返すことで、そこそこ綺麗な文字を書くことが...
しかしながら、色々な工夫を凝らしたつもりだが、まだ人間で...
第2の反省点は、マクロに頼っても簡略化など全くできていない...
第3の反省点としては、ミスで番号がずれたことである。番号が...
*MOVIE[#a10a29b7]
[[youtubeより実演動画・浜田を書くロボット:https://youtu.b...
(URLからのみアクセスできる限定公開)
ページ名: