2016a/Member/michiya/Mission1
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
目次
#contents
*課題 [#uf6cc320]
今回の課題は、似顔絵を描くロボットを作ることである。~
詳しくは[[こちら:http://yakushi.shinshu-u.ac.jp/robotics/...
*ロボット本体の説明 [#o8811721]
**本体の説明 [#h51b7730]
2つのモーター(A,C)を用いて本体の前後の動作を行っている...
&ref(2016a/Member/michiya/Mission1/IMG_3641.JPG,50%,zenta...
**ペン部分の説明 [#a2ceef28]
モーター(B)とタイヤ2つを用いてベンの上下の動作を行って...
モーターとギアを噛み合わせてタイヤ2つを動かしている。~
タイヤ2つで挟むだけでは安定しなかったのでグレーのパーツで...
&ref(2016a/Member/michiya/Mission1/IMG_3624.JPG,50%,pen1);~
&ref(2016a/Member/michiya/Mission1/IMG_3623.JPG,50%,pen2);
*似顔絵の作成 [#z1822482]
**下書き [#xeda085f]
プログラミングしやすいように角ばった顔にした。~
旋回によってペン先がずれてしまうため、一度後退してからペ...
&ref(2016a/Member/michiya/Mission1/image2.JPG,25%,kao);
**描き順 [#g347dd0b]
下図のように、1〜13の順で描いた。~
&ref(2016a/Member/michiya/Mission1/IMG_1266 (1).JPG,120%,...
*プログラムの説明 [#yaa38967]
**定義の説明 [#j5f9361e]
旋回、前進後退の時間の定義である。
#define TURN_TIMEi 125
#define TURN_TIMEii 90
#define TURN_TIMEiii 46
#define TURN_TIMEiv 80
#define TURN_TIMEv 200
#define forword_TIME 50
ペンの上下運動の定義である。
#define down OnFwd(OUT_B);Wait(10);Off(OUT_B);
#define up OnRev(OUT_B);Wait(10);Off(OUT_B);
直進、左右旋回の定義である。(行変更の際の記号が¥となっ...
#define go_forward(t) OnFwd(OUT_AC);Wait(t);Off(OUT_AC);
#define turn_right_i up;OnRev(OUT_AC);Wait(50); \
OnRev(OUT_C); OnFwd(OUT_A);Wait(TUR...
go_forward(forword_TIME);down;Off(O...
#define turn_left_i up;OnRev(OUT_A); OnFwd(OUT_C);Wait(T...
go_forward(forword_TIME); ...
#define turn_right_ii up;OnRev(OUT_AC);Wait(50); \
OnRev(OUT_C); OnFwd(OUT_A);Wait(TU...
go_forward(forword_TIME);down;Off(...
#define turn_left_ii up;OnRev(OUT_AC);Wait(50); \
OnRev(OUT_A); OnFwd(OUT_C);Wait(TUR...
go_forward(forword_TIME);down;Off(O...
#define turn_right_iii up;OnRev(OUT_AC);Wait(50); \
OnRev(OUT_C); OnFwd(OUT_A);Wait(T...
go_forward(forword_TIME);down;Off...
#define turn_right_iv up;OnRev(OUT_AC);Wait(40); \
OnRev(OUT_C); OnFwd(OUT_A);Wait(T...
go_forward(forword_TIME);down;Off...
直進、左右旋回の定義を利用して、実際にプログラム本文でよ...
#define face(t) turn_right_iii; go_forward(t); ...
#define face_i(t) turn_right_ii; go_forward(t);
#define face_ii(t) turn_right_iv; go_forward(t);
#define face_iii(t) turn_left_ii; go_forward(t);
**実際に使ったプログラム [#p9bbdbd2]
#define TURN_TIMEi 125
#define TURN_TIMEii 90
#define TURN_TIMEiii 46
#define TURN_TIMEiv 80
#define TURN_TIMEv 200
#define forword_TIME 50
#define down OnFwd(OUT_B);Wait(10);Off(OUT_B);
#define up OnRev(OUT_B);Wait(10);Off(OUT_B);
#define go_forward(t) OnFwd(OUT_AC);Wait(t);Off(OUT_AC);
#define turn_right_i up;OnRev(OUT_AC);Wait(50); \
OnRev(OUT_C); OnFwd(OUT_A);Wait(TUR...
go_forward(forword_TIME);down;Off(O...
#define turn_left_i up;OnRev(OUT_A); OnFwd(OUT_C);Wait(T...
go_forward(forword_TIME); ...
#define turn_right_ii up;OnRev(OUT_AC);Wait(50); \
OnRev(OUT_C); OnFwd(OUT_A);Wait(TU...
go_forward(forword_TIME);down;Off(...
#define turn_left_ii up;OnRev(OUT_AC);Wait(50); \
OnRev(OUT_A); OnFwd(OUT_C);Wait(TUR...
go_forward(forword_TIME);down;Off(O...
#define turn_right_iii up;OnRev(OUT_AC);Wait(50); \
OnRev(OUT_C); OnFwd(OUT_A);Wait(T...
go_forward(forword_TIME);down;Off...
#define turn_right_iv up;OnRev(OUT_AC);Wait(40); \
OnRev(OUT_C); OnFwd(OUT_A);Wait(T...
go_forward(forword_TIME);down;Off...
#define face(t) turn_right_iii; go_forward(t); ...
#define face_i(t) turn_right_ii; go_forward(t);
#define face_ii(t) turn_right_iv; go_forward(t);
#define face_iii(t) turn_left_ii; go_forward(t);
task main()
{
OnFwd(OUT_B);
Wait(3);
Off(OUT_B);
go_forward(100);
face(32);
face(80);
face(32);
face(100);
face_i(110); //輪郭終了
face_i(25);
face_ii(50);
face_i(20);
face_iii(60); //髪終了
turn_left_i;
go_forward(30);
repeat(2){
go_forward(30);
down;
go_forward(30);
up; //目終了
}
OnRev(OUT_C);
OnFwd(OUT_A);
Wait(TURN_TIMEi);
go_forward(TURN_TIMEiii);
OnRev(OUT_C);
OnFwd(OUT_A);
Wait(TURN_TIMEiv);
go_forward(TURN_TIMEi);
down;
go_forward(forword_TIME);
Off(OUT_ABC); //口終了
}
*結果 [#k42d9a05]
写真を撮るのを忘れたため写真は掲載できません。~
輪郭は下書き通りにうまく書くことができた。
下書き通りうまく描くことは出来なかったが、何とか顔の中に...
しかし、顔のパーツの位置が全体的に右側に1?位ずれてしまっ...
具体的には、髪を描き終わったあとの旋回のあとに1回バックす...
*感想・反省点[#ffa246d0]
顔のパーツを顔の中に収めるようにプログラミングするのが難...
また、一画かき終わった後にその続きから顔を描けるようにペ...
repeatやdefineをもっとうまく使いこなしてコンパクトなプロ...
電池の減り具合でロボットの動きのスピードが変わってしまい...
ペンを上下させるシステムはうまく作れたと思う。
次の課題も頑張りたい。
終了行:
目次
#contents
*課題 [#uf6cc320]
今回の課題は、似顔絵を描くロボットを作ることである。~
詳しくは[[こちら:http://yakushi.shinshu-u.ac.jp/robotics/...
*ロボット本体の説明 [#o8811721]
**本体の説明 [#h51b7730]
2つのモーター(A,C)を用いて本体の前後の動作を行っている...
&ref(2016a/Member/michiya/Mission1/IMG_3641.JPG,50%,zenta...
**ペン部分の説明 [#a2ceef28]
モーター(B)とタイヤ2つを用いてベンの上下の動作を行って...
モーターとギアを噛み合わせてタイヤ2つを動かしている。~
タイヤ2つで挟むだけでは安定しなかったのでグレーのパーツで...
&ref(2016a/Member/michiya/Mission1/IMG_3624.JPG,50%,pen1);~
&ref(2016a/Member/michiya/Mission1/IMG_3623.JPG,50%,pen2);
*似顔絵の作成 [#z1822482]
**下書き [#xeda085f]
プログラミングしやすいように角ばった顔にした。~
旋回によってペン先がずれてしまうため、一度後退してからペ...
&ref(2016a/Member/michiya/Mission1/image2.JPG,25%,kao);
**描き順 [#g347dd0b]
下図のように、1〜13の順で描いた。~
&ref(2016a/Member/michiya/Mission1/IMG_1266 (1).JPG,120%,...
*プログラムの説明 [#yaa38967]
**定義の説明 [#j5f9361e]
旋回、前進後退の時間の定義である。
#define TURN_TIMEi 125
#define TURN_TIMEii 90
#define TURN_TIMEiii 46
#define TURN_TIMEiv 80
#define TURN_TIMEv 200
#define forword_TIME 50
ペンの上下運動の定義である。
#define down OnFwd(OUT_B);Wait(10);Off(OUT_B);
#define up OnRev(OUT_B);Wait(10);Off(OUT_B);
直進、左右旋回の定義である。(行変更の際の記号が¥となっ...
#define go_forward(t) OnFwd(OUT_AC);Wait(t);Off(OUT_AC);
#define turn_right_i up;OnRev(OUT_AC);Wait(50); \
OnRev(OUT_C); OnFwd(OUT_A);Wait(TUR...
go_forward(forword_TIME);down;Off(O...
#define turn_left_i up;OnRev(OUT_A); OnFwd(OUT_C);Wait(T...
go_forward(forword_TIME); ...
#define turn_right_ii up;OnRev(OUT_AC);Wait(50); \
OnRev(OUT_C); OnFwd(OUT_A);Wait(TU...
go_forward(forword_TIME);down;Off(...
#define turn_left_ii up;OnRev(OUT_AC);Wait(50); \
OnRev(OUT_A); OnFwd(OUT_C);Wait(TUR...
go_forward(forword_TIME);down;Off(O...
#define turn_right_iii up;OnRev(OUT_AC);Wait(50); \
OnRev(OUT_C); OnFwd(OUT_A);Wait(T...
go_forward(forword_TIME);down;Off...
#define turn_right_iv up;OnRev(OUT_AC);Wait(40); \
OnRev(OUT_C); OnFwd(OUT_A);Wait(T...
go_forward(forword_TIME);down;Off...
直進、左右旋回の定義を利用して、実際にプログラム本文でよ...
#define face(t) turn_right_iii; go_forward(t); ...
#define face_i(t) turn_right_ii; go_forward(t);
#define face_ii(t) turn_right_iv; go_forward(t);
#define face_iii(t) turn_left_ii; go_forward(t);
**実際に使ったプログラム [#p9bbdbd2]
#define TURN_TIMEi 125
#define TURN_TIMEii 90
#define TURN_TIMEiii 46
#define TURN_TIMEiv 80
#define TURN_TIMEv 200
#define forword_TIME 50
#define down OnFwd(OUT_B);Wait(10);Off(OUT_B);
#define up OnRev(OUT_B);Wait(10);Off(OUT_B);
#define go_forward(t) OnFwd(OUT_AC);Wait(t);Off(OUT_AC);
#define turn_right_i up;OnRev(OUT_AC);Wait(50); \
OnRev(OUT_C); OnFwd(OUT_A);Wait(TUR...
go_forward(forword_TIME);down;Off(O...
#define turn_left_i up;OnRev(OUT_A); OnFwd(OUT_C);Wait(T...
go_forward(forword_TIME); ...
#define turn_right_ii up;OnRev(OUT_AC);Wait(50); \
OnRev(OUT_C); OnFwd(OUT_A);Wait(TU...
go_forward(forword_TIME);down;Off(...
#define turn_left_ii up;OnRev(OUT_AC);Wait(50); \
OnRev(OUT_A); OnFwd(OUT_C);Wait(TUR...
go_forward(forword_TIME);down;Off(O...
#define turn_right_iii up;OnRev(OUT_AC);Wait(50); \
OnRev(OUT_C); OnFwd(OUT_A);Wait(T...
go_forward(forword_TIME);down;Off...
#define turn_right_iv up;OnRev(OUT_AC);Wait(40); \
OnRev(OUT_C); OnFwd(OUT_A);Wait(T...
go_forward(forword_TIME);down;Off...
#define face(t) turn_right_iii; go_forward(t); ...
#define face_i(t) turn_right_ii; go_forward(t);
#define face_ii(t) turn_right_iv; go_forward(t);
#define face_iii(t) turn_left_ii; go_forward(t);
task main()
{
OnFwd(OUT_B);
Wait(3);
Off(OUT_B);
go_forward(100);
face(32);
face(80);
face(32);
face(100);
face_i(110); //輪郭終了
face_i(25);
face_ii(50);
face_i(20);
face_iii(60); //髪終了
turn_left_i;
go_forward(30);
repeat(2){
go_forward(30);
down;
go_forward(30);
up; //目終了
}
OnRev(OUT_C);
OnFwd(OUT_A);
Wait(TURN_TIMEi);
go_forward(TURN_TIMEiii);
OnRev(OUT_C);
OnFwd(OUT_A);
Wait(TURN_TIMEiv);
go_forward(TURN_TIMEi);
down;
go_forward(forword_TIME);
Off(OUT_ABC); //口終了
}
*結果 [#k42d9a05]
写真を撮るのを忘れたため写真は掲載できません。~
輪郭は下書き通りにうまく書くことができた。
下書き通りうまく描くことは出来なかったが、何とか顔の中に...
しかし、顔のパーツの位置が全体的に右側に1?位ずれてしまっ...
具体的には、髪を描き終わったあとの旋回のあとに1回バックす...
*感想・反省点[#ffa246d0]
顔のパーツを顔の中に収めるようにプログラミングするのが難...
また、一画かき終わった後にその続きから顔を描けるようにペ...
repeatやdefineをもっとうまく使いこなしてコンパクトなプロ...
電池の減り具合でロボットの動きのスピードが変わってしまい...
ペンを上下させるシステムはうまく作れたと思う。
次の課題も頑張りたい。
ページ名: