目次
#contents
*課題について [#z69071de]
詳しくは[[2017a/Mission1]]を参照
*ロボット本体について [#lc18146e]
サンプルのロボットを改良して制作した。そのためロボット自身を走らせて文字を書くシステムになっている。
**試作機 [#e179c6b0]
初めに下記のロボットを制作した。
#ref(2017a/Member/alien/Mission1/rerekairyumae.jpg,50%)
知能ブロックの部分が片方に寄っているため、タイヤにかかる負荷が異なり、真っ直ぐ進まなかった。
**完成形 [#me6d3246]
上記の問題点を下記のロボットのように知能ブロックの位置を真ん中に移すことで解決した。
#ref(2017a/Member/alien/Mission1/rekairyuato.jpg,50%)
**ペンの上げ下げをするアームについて [#q6f6594a]
下記のように外側の2つのモーターでタイヤを動かし、真ん中のモーターでアームを上下させる仕組みである。二回棒で挟むことによってゴムを使わず固定することが出来た。
#ref(2017a/Member/alien/Mission1/rekairyuato.jpg,50%)
*プログラミングについて [#s60ebf0f]
書き順はロボットの動きの都合上無視している。
ロボットが回転する際ペンの位置がずれるため、下がるなどの調節が必要となった。
イメージ図
#ref(2017a/Member/alien/Mission1/mihonn.png,50%)
#define AC OUT_AC
#define A OUT_A
#define B OUT_B
#define C OUT_C
sub arm_up() //ペンを上げる
{
OnRev(B,25);Wait(100);Off(B);
}
sub arm_down() //ペンを下げる
{
OnFwd(B,25);Wait(100);Off(B);
}
void go_st(int t) //t秒間前に進む
{
OnFwd(AC,50);Wait(t);Off(AC);
}
void go_back(int t) //t秒間後ろに進む
{
OnRev(AC,50);Wait(t);Off(AC);
}
void spin_left(int t) //t秒間左回りに回る
{
OnFwd(A,100);OnRev(C,50);Wait(t);Off(AC);
}
void spin_right(int t) //t秒間右回りに回る
{
OnFwd(C,100);OnRev(A,50);Wait(t);Off(AC);
}
�� 斜めに線を引く
task main()
{
arm_up();
spin_right(300);
arm_down();
go_st(100);
�↓��き� 口を書く
repeat(4){
arm_up();
spin_left(1200);
go_back(1000);
arm_down();
go_st(500);
}
�� 日になる
arm_up();
spin_left(1200);
go_back(1000);
arm_down();
go_st(250);
arm_up();
spin_left(1200);
go_back(1000);
arm_down();
go_st(500);
�Л┃���4つの点を書く
arm_up();
spin_left(300);
arm_down();
go_st(100);
arm_up();
spin_right(1800);
go_st(150);
spin_right(1800);
arm_down();
go_st(100);
arm_up();
spin_left(300);
go_st(750);
spin_left(300);
arm_down();
go_st(100);
arm_up();
spin_right(1800);
go_st(150);
spin_right(1800);
arm_down();
go_st(100);
arm_up();
��������木を書く
spin_right(100);
go_st(200);
spin_left(1550);
arm_down();
go_st(500);
arm_up();
spin_left(1900);
go_st(200);
spin_left(1700);
go_back(900);
arm_down();
go_st(600);
arm_up();
go_back(700);
spin_right(200);
go_back(500);
arm_down();
go_st(200);
arm_up();
spin_left(1520);
go_st(600);
spin_left(1520);
arm_down();
go_st(400);
}
*結果 [#gd2ab49e]
書けた文字は以下である。ボールペンで書いたことによって何回か書けなかった場合があった。マジックなどにすれば良かった。
#ref(2017a/Member/alien/Mission1/kansei.png,50%)
*まとめ [#a2ec47b7]
後輪に負荷がかかりスピンする度に少しの誤差があり、知能ブロックを前にずらすなどの工夫をすれば良かった。また、文字の交わるのが交わりきらなかった所があり、さらなる調整が必要だと感じた。プログラミングももっとスマートにできる所があったと思う。「楽」という漢字は楽ではなかった。