2013b/Member/dtb/Mission1
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
index
#contents
*ロボットの説明 [#l0ebd109]
&ref(2013b/Member/dtb/Mission1/mimi.gif,100%,ロボット説明);
-タッチセンサー
私達の考えたタッチセンサーは軽い空き缶に対してちゃんと反...
-ハサミ
ハサミにはモーターはついておらずハサミのどちらか片一方に...
-光センサー
なるべく本体に近づけるようにした。そのおかげでより本体が...
*コース攻略 [#k1b5328d]
-コースを5分割する。詳しくは図より。それに伴いプログラム...
&ref(2013b/Member/dtb/Mission1/bk201.gif,100%,経路説明);
(なお走る順番は?→?→?→?→?→ゴールで、吹き出しの中の数字は交...
**交差点判断 [#d5bb0210]
交差点4つとゴール(コースの図を参照)に差し掛かる時の大体...
**空き缶をどかす動作 [#i05120f7]
2つの缶の位置はコースの図を参照。まず缶が目の前に来た時...
&ref(2013b/Member/dtb/Mission1/k_k_d.gif,60%,カンの動きそ...
&ref(2013b/Member/dtb/Mission1/kagero.gif,60%,カンの動き...
*プログラム [#lcf8f042]
#define THRESHOLD 37
#define set_power_H SetPower(OUT_AC,5);//強い力を設定
#define set_power_L Set Power(OUT_AC,1);//弱い力を設定
#define turn_left set_power_L;Off(OUT_A);OnFwd(OUT_C);//...
#define senkai_left set_power_L;OnRev(OUT_A);OnFwd(OUT_C...
#define turn_right set_power_L;Off(OUT_C);OnFwd(OUT_A);/...
#define senkai_right set_power_L;OnRev(OUT_C);OnFwd(OUT_...
#define go_forward set_power_H;OnFwd(OUT_AC);//直進
#define STEP 1//0.001秒ごとに白黒を判断
#define SAIDAI 3//交差点に差し掛かった時、3回真っ黒にな...
#define short_break Off(OUT_AC);Wait(80); //小休憩
#define CROSS_TIME 60 //交差点を渡る時間
#define cross_line(p,q) short_break;senkai_right;Wait(p)...
Wait(CROSS_TIME);Off(OUT_AC);//...
#define counter3 PlaySound(SOUND_CLICK);Off(OUT_AC);Wait...
#define GOOL short_break;go_forward;Wait(50);senkai_left...
Off(OUT_AC);//最後のゴールのプログラム
ここまでが数値や基本動作の定義。
sub akikan_1() //1回目に缶をどかすプロ...
{
if(SENSOR_3==1){
Off(OUT_AC);Wait(60);
turn_right;Wait(510);
go_forward;Wait(45);
senkai_left;Wait(470);
OnRev(OUT_AC);Wait(50);
senkai_right;Wait(150);}
}
sub akikan_2() //2回目に缶をどかすプログ...
{
if(SENSOR_3==1){
Off(OUT_AC);Wait(60);
turn_right;Wait(1400);
senkai_left;Wait(750);
go_forward;Wait(50);
OnRev(OUT_AC);Wait(50);
senkai_right;Wait(200);}
}
sub line_race() //交差点がないところを走...
{
if(SENSOR_2 < THRESHOLD -2){
senkai_left;
}else if(SENSOR_2 <= THRESHOLD -1){
turn_left;
}else if(SENSOR_2 <= THRESHOLD){
go_forward;
}else if(SENSOR_2 < THRESHOLD +2){
turn_right;
}else{senkai_right;}
Wait(STEP);}
}
sub before_cross_line() //交差点付近を走るプログラム
{
int nOnline=0;
while (nOnline < SAIDAI){
if(SENSOR_2 < THRESHOLD -2){
counter3;
senkai_left;
nOnline++;
}else{
if(SENSOR_2 <= THRESHOLD -1){
turn_left;
}else if(SENSOR_2 <= THRESHOLD){
go_forward;
}else if(SENSOR_2 < THRESHOLD +2){
turn_right;
}else{senkai_right;}
nOnline=0;
}
Wait(STEP);
}
}
ここまでがサブルーチン。
task main()
{
SetSensor(SENSOR_3,SENSOR_TOUCH);//タッチセンサーを設置
SetSensor(SENSOR_2,SENSOR_LIGHT);//光センサーを設置
int nCross=0;//交差点を渡った回数(nCross=5,6は例外)
int nOnline=0;//黒を判断した時の回数
ClearTimer(0);//タイマー(0)を0に設定
while(nCross<6){
これ以降からロボットの動作のプログラム ...
if(nCross==0){
while(FastTimer(0)<3000){
line_race();akikan_1();
}
if(FastTimer(0)>=3000){ //この時間か...
before_cross_line();
cross_line(60,0);
}
PlaySound(SOUND_DOWN);
nCross++;
nOnline=0;
ClearTimer(0);
} //nCross0...
ここまでが一個目の空き缶をどかし、一回目の交差点を渡る時...
else if(nCross==1){
while(FastTimer(0)<1200){
line_race();
}
if(FastTimer(1)>=1200){ //この時間から交...
before_cross_line();
cross_line(0,0);
}
PlaySound(SOUND_DOWN);
nCross++;
nOnline=0;
ClearTimer(0);
} //nCross1終...
ここまでが二回目の交差点を渡るプログラム。(上の図の?に相当)
else if(nCross==2){
while(FastTimer(0)<170){
line_race();
}
if(FastTimer(0)>=170){ //この時間から交差...
before_cross_line();
cross_line(0,0);
}
PlaySound(SOUND_DOWN);
nCross++;
nOnline=0;
ClearTimer(0);
} //nCross2...
ここまでが三回目の交差点を渡るプログラム。(上の図の?に相当)
else if(nCross==3){
while(FastTimer(0)<1000){
line_race();
}
if(FastTimer(1)>=1000){ //この時間か...
before_cross_line();
cross_line(0,20);
}
PlaySound(SOUND_DOWN);
nCross++;
nOnline=0;
ClearTimer(0);
} //nCross3...
ここまでが四回目の交差点を渡るプログラム。(上の図の?に相当)
else if(nCross==4){
while(FastTimer(0)<3500){
line_race();akikan_2();
}
if(FastTimer(0)>=3500){ //この時間か...
before_cross_line();
}
PlaySound(SOUND_UP);
nCross++;
} //nCross4終...
ここまでが2個目の空き缶をどかし、ゴールする直前までのプ...
else{
GOOL;
nCross++;
} ...
} //while(n...
} //task ma...
*プログラムの補足 [#d7b6111a]
-nCross=5,6が例外というのはnCross=5はゴールと認識させるも...
-cross_lineのプログラムがそれぞれ違うのは交差点ごとにロボ...
*反省すべき点 [#eb2a5e59]
+ペアーの人と講義以外の時間に一緒にやることが少なく、個人...
+ロボットのハサミの作りがあまり良くなくプログラムで何とか...
+ロボットのスピードが遅い。
終了行:
index
#contents
*ロボットの説明 [#l0ebd109]
&ref(2013b/Member/dtb/Mission1/mimi.gif,100%,ロボット説明);
-タッチセンサー
私達の考えたタッチセンサーは軽い空き缶に対してちゃんと反...
-ハサミ
ハサミにはモーターはついておらずハサミのどちらか片一方に...
-光センサー
なるべく本体に近づけるようにした。そのおかげでより本体が...
*コース攻略 [#k1b5328d]
-コースを5分割する。詳しくは図より。それに伴いプログラム...
&ref(2013b/Member/dtb/Mission1/bk201.gif,100%,経路説明);
(なお走る順番は?→?→?→?→?→ゴールで、吹き出しの中の数字は交...
**交差点判断 [#d5bb0210]
交差点4つとゴール(コースの図を参照)に差し掛かる時の大体...
**空き缶をどかす動作 [#i05120f7]
2つの缶の位置はコースの図を参照。まず缶が目の前に来た時...
&ref(2013b/Member/dtb/Mission1/k_k_d.gif,60%,カンの動きそ...
&ref(2013b/Member/dtb/Mission1/kagero.gif,60%,カンの動き...
*プログラム [#lcf8f042]
#define THRESHOLD 37
#define set_power_H SetPower(OUT_AC,5);//強い力を設定
#define set_power_L Set Power(OUT_AC,1);//弱い力を設定
#define turn_left set_power_L;Off(OUT_A);OnFwd(OUT_C);//...
#define senkai_left set_power_L;OnRev(OUT_A);OnFwd(OUT_C...
#define turn_right set_power_L;Off(OUT_C);OnFwd(OUT_A);/...
#define senkai_right set_power_L;OnRev(OUT_C);OnFwd(OUT_...
#define go_forward set_power_H;OnFwd(OUT_AC);//直進
#define STEP 1//0.001秒ごとに白黒を判断
#define SAIDAI 3//交差点に差し掛かった時、3回真っ黒にな...
#define short_break Off(OUT_AC);Wait(80); //小休憩
#define CROSS_TIME 60 //交差点を渡る時間
#define cross_line(p,q) short_break;senkai_right;Wait(p)...
Wait(CROSS_TIME);Off(OUT_AC);//...
#define counter3 PlaySound(SOUND_CLICK);Off(OUT_AC);Wait...
#define GOOL short_break;go_forward;Wait(50);senkai_left...
Off(OUT_AC);//最後のゴールのプログラム
ここまでが数値や基本動作の定義。
sub akikan_1() //1回目に缶をどかすプロ...
{
if(SENSOR_3==1){
Off(OUT_AC);Wait(60);
turn_right;Wait(510);
go_forward;Wait(45);
senkai_left;Wait(470);
OnRev(OUT_AC);Wait(50);
senkai_right;Wait(150);}
}
sub akikan_2() //2回目に缶をどかすプログ...
{
if(SENSOR_3==1){
Off(OUT_AC);Wait(60);
turn_right;Wait(1400);
senkai_left;Wait(750);
go_forward;Wait(50);
OnRev(OUT_AC);Wait(50);
senkai_right;Wait(200);}
}
sub line_race() //交差点がないところを走...
{
if(SENSOR_2 < THRESHOLD -2){
senkai_left;
}else if(SENSOR_2 <= THRESHOLD -1){
turn_left;
}else if(SENSOR_2 <= THRESHOLD){
go_forward;
}else if(SENSOR_2 < THRESHOLD +2){
turn_right;
}else{senkai_right;}
Wait(STEP);}
}
sub before_cross_line() //交差点付近を走るプログラム
{
int nOnline=0;
while (nOnline < SAIDAI){
if(SENSOR_2 < THRESHOLD -2){
counter3;
senkai_left;
nOnline++;
}else{
if(SENSOR_2 <= THRESHOLD -1){
turn_left;
}else if(SENSOR_2 <= THRESHOLD){
go_forward;
}else if(SENSOR_2 < THRESHOLD +2){
turn_right;
}else{senkai_right;}
nOnline=0;
}
Wait(STEP);
}
}
ここまでがサブルーチン。
task main()
{
SetSensor(SENSOR_3,SENSOR_TOUCH);//タッチセンサーを設置
SetSensor(SENSOR_2,SENSOR_LIGHT);//光センサーを設置
int nCross=0;//交差点を渡った回数(nCross=5,6は例外)
int nOnline=0;//黒を判断した時の回数
ClearTimer(0);//タイマー(0)を0に設定
while(nCross<6){
これ以降からロボットの動作のプログラム ...
if(nCross==0){
while(FastTimer(0)<3000){
line_race();akikan_1();
}
if(FastTimer(0)>=3000){ //この時間か...
before_cross_line();
cross_line(60,0);
}
PlaySound(SOUND_DOWN);
nCross++;
nOnline=0;
ClearTimer(0);
} //nCross0...
ここまでが一個目の空き缶をどかし、一回目の交差点を渡る時...
else if(nCross==1){
while(FastTimer(0)<1200){
line_race();
}
if(FastTimer(1)>=1200){ //この時間から交...
before_cross_line();
cross_line(0,0);
}
PlaySound(SOUND_DOWN);
nCross++;
nOnline=0;
ClearTimer(0);
} //nCross1終...
ここまでが二回目の交差点を渡るプログラム。(上の図の?に相当)
else if(nCross==2){
while(FastTimer(0)<170){
line_race();
}
if(FastTimer(0)>=170){ //この時間から交差...
before_cross_line();
cross_line(0,0);
}
PlaySound(SOUND_DOWN);
nCross++;
nOnline=0;
ClearTimer(0);
} //nCross2...
ここまでが三回目の交差点を渡るプログラム。(上の図の?に相当)
else if(nCross==3){
while(FastTimer(0)<1000){
line_race();
}
if(FastTimer(1)>=1000){ //この時間か...
before_cross_line();
cross_line(0,20);
}
PlaySound(SOUND_DOWN);
nCross++;
nOnline=0;
ClearTimer(0);
} //nCross3...
ここまでが四回目の交差点を渡るプログラム。(上の図の?に相当)
else if(nCross==4){
while(FastTimer(0)<3500){
line_race();akikan_2();
}
if(FastTimer(0)>=3500){ //この時間か...
before_cross_line();
}
PlaySound(SOUND_UP);
nCross++;
} //nCross4終...
ここまでが2個目の空き缶をどかし、ゴールする直前までのプ...
else{
GOOL;
nCross++;
} ...
} //while(n...
} //task ma...
*プログラムの補足 [#d7b6111a]
-nCross=5,6が例外というのはnCross=5はゴールと認識させるも...
-cross_lineのプログラムがそれぞれ違うのは交差点ごとにロボ...
*反省すべき点 [#eb2a5e59]
+ペアーの人と講義以外の時間に一緒にやることが少なく、個人...
+ロボットのハサミの作りがあまり良くなくプログラムで何とか...
+ロボットのスピードが遅い。
ページ名: