- 追加された行はこの色です。
- 削除された行はこの色です。
[[2019a/Member]]
#contents
*課題について [#dc3b250a]
-「香川」の文字を書くことに決めた。
-僕たちは、「香川」の文字を書くことに決めた。
#contents
#ref(http://yakushi.shinshu-u.ac.jp/robotics/?plugin=attach&pcmd=open&file=8229D173-F667-4BC1-8832-1E330012833A.jpeg&refer=2019a%2FMember%2FTT%2FMission1,ロボの全体像,1000%,)
*ロボの構造について [#b8a3fb1e]
&ref(2019a/Member/TT/Mission1/8229D173-F667-4BC1-8832-1E330012833A.jpg,100%,ロボの構造);
-講義のはじめに作った簡単な車型のロボの先端にペンの上下が可能となるように歯車に当て棒をはめ、輪ゴムでペンを固定した。上側にレゴを付け加え、歯車の回転のストッパーにし、簡単にペンの上下を決められるようにした。
#define pen_up OnRev(OUT_B);Wait(10);
#define pen_down OnFwd(OUT_B);Wait(10);
#define mae(f) OnFwd(OUT_AC);Wait(f);Off(OUT_AC);
#define ushiro(b) OnRev(OUT_AC);Wait(b);Off(OUT_AC);
#define migikaiten(r) OnFwd(OUT_A);OnRev(OUT_C);Wait(r);Off(OUT_AC);
#define hidarikaiten(l) OnFwd(OUT_C);OnRev(OUT_A);Wait(l);Off(OUT_AC);
*プログラムについて [#we694913]
-以下のように、ペンの上げ下げ、前進、後進、右左の回転を定義した
#define pen_up OnRev(OUT_B);Wait(10); //ペンを上げる
#define pen_down OnFwd(OUT_B);Wait(10); //ペンを下げる
#define mae(f) OnFwd(OUT_AC);Wait(f);Off(OUT_AC); //前に進む
#define ushiro(b) OnRev(OUT_AC);Wait(b);Off(OUT_AC); //後ろに下がる
#define migikaiten(r) OnFwd(OUT_A);OnRev(OUT_C);Wait(r);Off(OUT_AC); //右回転
#define hidarikaiten(l) OnFwd(OUT_C);OnRev(OUT_A);Wait(l);Off(OUT_AC); //左回転
-以下のように8つのまとまりに分けてサブルーチンを定義した
+「香」の1・2画目
sub ichinikaku()
{
pen_down;
ushiro(70);
ushiro(70); //「香」の1画目
pen_up;
migikaiten(20);
mae(100);
pen_down;
ushiro(120);
ushiro(120); //「香」の2画目
pen_up;
}
+「香」の3画目
sub sankaku()
{
mae(150);
migikaiten(120);
ushiro(50)
pen_down;
ushiro(80);
pen_up;
}
+「香」の4・5画目
sub yongokaku()
{
mae(40);
pen_down;
OnFwd(OUT_A);
OnFwd(OUT_A); //「香」の4画目
Wait(120);
Off(OUT_A);
pen_up;
OnRev(OUT_A);
Wait(120);
Off(OUT_A);
pen_down;
OnFwd(OUT_C);
OnFwd(OUT_C); //「香」の5画目
Wait(120);
Off(OUT_C);
pen_up;
OnRev(OUT_C);
Wait(120);
Off(OUT_C);
}
+「香」の6画目
sub rokkaku()
{
mae(230);
migikaiten(120);
mae(40);
migikaiten(120);
pen_down;
ushiro(80);
pen_up;
}
+「香」の7画目
sub nanakaku()
{
mae(170);
migikaiten(140);
ushiro(80);
pen_down;
mae(100);
pen_up;
mae(80);
migikaiten(120);
ushiro(100);
pen_down;
mae(80);
pen_up;
mae(40);
}
+「香」の8画目
sub hachikaku()
{
mae(15);
hidarikaiten(120);
ushiro(120);
pen_down;
ushiro(100);
pen_up;
}
+「香」の9画目
sub kyukaku()
{
hidarikaiten(120);
ushiro(30);
hidarikaiten(135);
ushiro(220);
pen_down;
ushiro(100);
pen_up;
}
+「川」の文字
sub jujuichijunikaku()
{
mae(200);
hidarikaiten(120);
pen_down;
mae(100);
mae(100); //「川」の1画目
pen_up;
hidarikaiten(120);
mae(50);
migikaiten(120);
ushiro(30);
pen_down;
ushiro(70);
ushiro(70); //「川」の2画目
pen_up;
migikaiten(120);
ushiro(50);
hidarikaiten(120);
ushiro(40);
pen_down;
mae(120);
mae(120); //「川」の3画目
pen_up;
}
-上記の8つのサブルーチンのみを用いて以下のようにプログラムした
task main()
{
ichinikaku();
sankaku();
yongokaku();
rokkaku();
nanakaku();
hachikaku();
kyukaku();
jujuichijunikaku();
}
-車型で行ったため、誤差が非常に生じやすいが、細かい秒数によって「香川」の文字を書くことができた。
#ref(http://yakushi.shinshu-u.ac.jp/robotics/?plugin=attach&pcmd=open&file=88582F02-4F94-4109-A12E-B1C0B3B8CBAA.jpeg&refer=2019a%2FMember%2FTT%2FMission1,「香川」の文字,100%,)
*結果 [#b80865ce]
上記のプログラムによって以下写真の文字を書くことができた
&ref(2019a/Member/TT/Mission1/88582F02-4F94-4109-A12E-B1C0B3B8CBAA.png,100%,香川の文字);
感想・反省
*感想・反省 [#c60aa714]
-横移動ができる構造のロボを作ればもっとうまく文字が書けたと思う。