- 追加された行はこの色です。
- 削除された行はこの色です。
*ロボット [#i9e7309f]
**概要 [#x9e1c8a4]
&ref(./DSC_0342.JPG,10%);
&ref(./DSC_0343.JPG,10%);
写真のとおりヒトの腕に見立てたロボットを組み立てました。
モーターはそれぞれ
-ペンの上げ下げ
-手首の役割
-肘の役割
ロボット本体は据え置きでアームの動きだけで書くところへ移動できます。
書ける範囲は限られますが手首と肘の動きの組み合わせで直線も曲線もしっかりと書くことができます。
**工夫 [#sc561c46]
ペンは円運動で上げ下げするのでペン先を引きずらないようストッパーを取り付けた。
ペンは円運動で上げ下げするのでペン先を引きずらないようストッパーを取り付けました。
#ref(./DSC_0359.JPG,10%)
肘のモーターの下にタイヤを寝かせて付けることでモーターを動かしてもずれないようにした。
肘のモーターの下にタイヤを寝かせて付けることでモーターを動かしてもずれないようにしました。
*プログラム [#wf0be67c]
#define up_pen OnRev(OUT_A,10);Wait(700);Off(OUT_A); //ペンを上げる
#define down_pen OnFwd(OUT_A,10);Wait(800);Off(OUT_A); //ペンを下げる
#define turn_left_b(t) OnRev(OUT_B,20);Wait(t);Off(OUT_B); //手首を左
#define turn_right_b(t) OnFwd(OUT_B,20);Wait(t);Off(OUT_B); //手首を右
#define turn_left_c(t) OnFwd(OUT_C,25);Wait(t);Off(OUT_C); //肘を左
#define turn_right_c(t) OnRev(OUT_C,25);Wait(t);Off(OUT_C); //肘を右
#define all_off Off(OUT_ABC);Wait(1800); //モーターを止め静止
task main ()
{
turn_left_b(900);
turn_right_c(200);
down_pen;
all_off; //最初の位置へ
OnRev(OUT_B,20);
OnRev(OUT_C,25);
Wait(250);
all_off; //1
up_pen;
turn_left_c(100);
down_pen;
all_off;
OnRev(OUT_B,20);
OnRev(OUT_C,25);
Wait(200);
all_off; //2
up_pen;
turn_left_b(600);
turn_left_c(100);
down_pen;
all_off;
OnFwd(OUT_B,25);
OnRev(OUT_C,20);
Wait(300);
all_off; //3
up_pen;
turn_right_b(300);
turn_left_c(100)
down_pen;
all_off;
OnFwd(OUT_B,20);
OnRev(OUT_C,20);
Wait(400);
all_off; //4
OnRev(OUT_B,18);
OnRev(OUT_C,25);
Wait(650);
all_off; //5
OnRev(OUT_B,21);
OnFwd(OUT_C,25);
Wait(200);
Off(OUT_B);
Wait(50);
all_off; //6
OnFwd(OUT_B,25);
OnFwd(OUT_C,20);
Wait(250);
all_off; //7
up_pen;
OnRev(OUT_B,18);
OnRev(OUT_C,18);
Wait(150);
all_off;
down_pen;
all_off;
OnFwd(OUT_B,14);
OnRev(OUT_C,20);
Wait(550);
all_off; //8
up_pen;
OnRev(OUT_B,18);
OnRev(OUT_C,20);
Wait(500);
all_off;
down_pen;
all_off;
OnRev(OUT_B,17);
OnRev(OUT_C,18); //9
Wait(400);
all_off;
up_pen;
turn_right_b(100)
turn_left_c(100)
down_pen;
all_off;
OnRev(OUT_B,20);
OnRev(OUT_C,20);
Wait(180);
all_off; //10
up_pen;
turn_right_b(200);
turn_right_c(200);
down_pen;
all_off;
OnRev(OUT_B,15);
OnRev(OUT_C,20);
Wait(330);
all_off; //11
up_pen;
turn_left_b(100)
turn_left_c(200)
down_pen;
all_off;
OnFwd(OUT_B,18);
OnRev(OUT_C,30);
Wait(270);
all_off; //12
up_pen;
turn_left_b(200)
turn_left_c(100)
down_pen;
all_off;
OnRev(OUT_B,20);
Wait(600);
all_off; //13
up_pen;
OnFwd(OUT_B,13);
OnRev(OUT_C,17);
Wait(400);
all_off;
down_pen;
all_off;
OnRev(OUT_B,17);
OnRev(OUT_C,25);
Wait(600);
all_off; //14
OnFwd(OUT_B,15);
OnRev(OUT_C,20);
Wait(400);
all_off; //15
OnFwd(OUT_B,20);
OnFwd(OUT_C,20);
Wait(100);
all_off; //16
}
書き順は下の写真の通りです。
#ref(./DSC_0368.JPG,20%)
#ref(./DSC_0348.JPG,10%)
#ref(./DSC_0350.JPG,10%)