2013a/Member/ryu/Mission2
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[2013a/Member]]
*ロボットの紹介 [#r757f719]
自分たちのロボットは、最初に相手のパスを受けるので、い...
*コース攻略 [#g4ffa1ab]
まず初めに、コースには障害物として4つの空き缶が置かれ...
*プログラムの説明 [#y6cb181e]
#define THRESHOLD 48 //しき値
#define HIPOWER 7 //モーターの強さ
#define LOWPOWER 2 //モーターの強さ
#define NOMALPOWER 5 //モーターの強さ
#define set_power_H SetPower(OUT_AC,HIPOWER); //モーター...
#define set_power_L SetPower(OUT_AC,LOWPOWER); //モータ...
#define set_power_N SetPower(OUT_B,NOMALPOWER); //モータ...
#define set_power_S SetPower(OUT_B,HIPOWER); //モーターB...
#define go_forward set_power_H; OnFwd(OUT_AC); //前進する
#define turn_left1 set_power_L ;\ //左に曲がる
OnFwd(OUT_C);OnRev(OUT_A);
#define turn_left0 set_power_L ;\ //左に曲がる
OnFwd(OUT_C);Off(OUT_A);
#define turn_right0 set_power_L ;\ //右に曲がる
OnFwd(OUT_A);Off(OUT_C);
#define turn_right1 set_power_L ;\ //右に曲がる
OnFwd(OUT_A);OnRev(OUT_C);
#define STEP 1
#define nMAX 300
#define short_break Off(OUT_AC); Wait(100); //休憩
#define CROSS_TIME 20
#define cross_line set_power_L;\
go_forward;\
Wait(CROSS_TIME);short_break;
#define arm_forward set_power_N; OnFwd(OUT_B); //モータ...
#define arm_backward set_power_N; OnRev(OUT_B); //モータ...
#define shoot set_power_S; OnRev(OUT_B); //モーターBの強...
#define SIGNALON 1
#define SIGNALOFF 2
task main ()
{
SetSensor(SENSOR_2, SENSOR_LIGHT);
int nOnline=0;
ClearTimer(0); //タイマーをリセット
while(FastTimer(0)<=200){ //二秒まで
if(SENSOR_2< THRESHOLD -10) { //センサーの値が-10...
turn_right1; //右に曲がる
nOnline++;
}else{
if(SENSOR_2< THRESHOLD -4){ //センサーの値が-4よ...
turn_right0; //右に曲がる
}else if(SENSOR_2< THRESHOLD +3){ //センサーの値が...
go_forward; //直進する
}else if(SENSOR_2< THRESHOLD +10){ //センサーの値...
turn_left0; //左に曲がる
}else{
turn_left1; //左に曲がる
}
nOnline=0;
}
Wait(STEP);
}
PlaySound(SOUND_UP);
turn_left1;Wait(120);Off(OUT_AC); //左に1.2秒間曲がる
arm_backward;Wait(100);Off(OUT_B);Wait(1500);アームを上...
arm_forward;Wait(10);Off(OUT_B); //アームを下げる
PlaySound(SOUND_UP);
turn_left1;Wait(130);Off(OUT_AC); //左に1.3秒間曲がる
以後同様に
ClearTimer(0);
while(FastTimer(0)<=300){
if((nOnline < nMAX)&&(SENSOR_2< THRESHOLD -8)){
turn_right1;
nOnline++;
}else{
if((nOnline < nMAX)&&(SENSOR_2< THRESHOLD -3)){
turn_right0;
}else if((nOnline < nMAX)&&(SENSOR_2< THRESHOLD +3...
go_forward;
}else if((nOnline < nMAX)&&(SENSOR_2< THRESHOLD +8...
turn_left0;
}else if(nOnline < nMAX){
turn_left1;
}
nOnline=0;
} if(nOnline >= nMAX){
short_break;
turn_left1;
Wait(STEP);
cross_line;
nOnline=0;
}
}
PlaySound(SOUND_UP);Off(OUT_AC);
turn_right1;Wait(145);go_forward;Wait(30);
shoot;Wait(50);Off(OUT_AC);Wait(0);Off(OUT_B);
OnRev(OUT_AC);Wait(80);turn_left1;Wait(130);Off(OUT_AC);
ClearTimer(0);
while(FastTimer(0)<=700){
if((nOnline < nMAX)&&(SENSOR_2< THRESHOLD -8)){
turn_right1;
nOnline++;
}else{
if((nOnline < nMAX)&&(SENSOR_2< THRESHOLD -3)){
turn_right0;
}else if((nOnline < nMAX)&&(SENSOR_2< THRESHOLD +3...
go_forward;
}else if((nOnline < nMAX)&&(SENSOR_2< THRESHOLD +8...
turn_left0;
}else if(nOnline < nMAX){
turn_left1;
}
nOnline=0;
} if(nOnline >= nMAX){
short_break;
turn_left1;
Wait(STEP);
cross_line;
nOnline=0;
}
}
PlaySound(SOUND_UP);
turn_right1;
Wait(120);
arm_backward;
ClearTimer(0);
while(FastTimer(0)<=2600){
if((nOnline < nMAX)&&(SENSOR_2< THRESHOLD -8)){
turn_left1;
nOnline++;
}else{
if((nOnline < nMAX)&&(SENSOR_2< THRESHOLD -3)){
turn_left0;
}else if((nOnline < nMAX)&&(SENSOR_2< THRESHOLD +3...
go_forward;
}else if((nOnline < nMAX)&&(SENSOR_2< THRESHOLD +8...
turn_right0;
}else if(nOnline < nMAX){
turn_right1;
}
nOnline=0;
}if(nOnline >= nMAX){
short_break;
turn_right1;
Wait(STEP);
cross_line;
nOnline=0;
}
}
PlaySound(SOUND_UP);
arm_forward;
ClearTimer(0);
while(FastTimer(0)<=4000){
if((nOnline < nMAX)&&(SENSOR_2< THRESHOLD -8)){
turn_right1;
nOnline++;
}else{
if((nOnline < nMAX)&&(SENSOR_2< THRESHOLD -3)){
turn_right0;
}else if((nOnline < nMAX)&&(SENSOR_2< THRESHOLD +3...
go_forward;
}else if((nOnline < nMAX)&&(SENSOR_2< THRESHOLD +8...
turn_left0;
}else if(nOnline < nMAX){
turn_left1;
}
nOnline=0;
}if(nOnline >= nMAX){
short_break;
turn_left1;
Wait(STEP);
cross_line;
nOnline=0;
}
}
}
*まとめ [#c8597bea]
今回が最後のロボットコンテストでした。今まで学んだこと...
終了行:
[[2013a/Member]]
*ロボットの紹介 [#r757f719]
自分たちのロボットは、最初に相手のパスを受けるので、い...
*コース攻略 [#g4ffa1ab]
まず初めに、コースには障害物として4つの空き缶が置かれ...
*プログラムの説明 [#y6cb181e]
#define THRESHOLD 48 //しき値
#define HIPOWER 7 //モーターの強さ
#define LOWPOWER 2 //モーターの強さ
#define NOMALPOWER 5 //モーターの強さ
#define set_power_H SetPower(OUT_AC,HIPOWER); //モーター...
#define set_power_L SetPower(OUT_AC,LOWPOWER); //モータ...
#define set_power_N SetPower(OUT_B,NOMALPOWER); //モータ...
#define set_power_S SetPower(OUT_B,HIPOWER); //モーターB...
#define go_forward set_power_H; OnFwd(OUT_AC); //前進する
#define turn_left1 set_power_L ;\ //左に曲がる
OnFwd(OUT_C);OnRev(OUT_A);
#define turn_left0 set_power_L ;\ //左に曲がる
OnFwd(OUT_C);Off(OUT_A);
#define turn_right0 set_power_L ;\ //右に曲がる
OnFwd(OUT_A);Off(OUT_C);
#define turn_right1 set_power_L ;\ //右に曲がる
OnFwd(OUT_A);OnRev(OUT_C);
#define STEP 1
#define nMAX 300
#define short_break Off(OUT_AC); Wait(100); //休憩
#define CROSS_TIME 20
#define cross_line set_power_L;\
go_forward;\
Wait(CROSS_TIME);short_break;
#define arm_forward set_power_N; OnFwd(OUT_B); //モータ...
#define arm_backward set_power_N; OnRev(OUT_B); //モータ...
#define shoot set_power_S; OnRev(OUT_B); //モーターBの強...
#define SIGNALON 1
#define SIGNALOFF 2
task main ()
{
SetSensor(SENSOR_2, SENSOR_LIGHT);
int nOnline=0;
ClearTimer(0); //タイマーをリセット
while(FastTimer(0)<=200){ //二秒まで
if(SENSOR_2< THRESHOLD -10) { //センサーの値が-10...
turn_right1; //右に曲がる
nOnline++;
}else{
if(SENSOR_2< THRESHOLD -4){ //センサーの値が-4よ...
turn_right0; //右に曲がる
}else if(SENSOR_2< THRESHOLD +3){ //センサーの値が...
go_forward; //直進する
}else if(SENSOR_2< THRESHOLD +10){ //センサーの値...
turn_left0; //左に曲がる
}else{
turn_left1; //左に曲がる
}
nOnline=0;
}
Wait(STEP);
}
PlaySound(SOUND_UP);
turn_left1;Wait(120);Off(OUT_AC); //左に1.2秒間曲がる
arm_backward;Wait(100);Off(OUT_B);Wait(1500);アームを上...
arm_forward;Wait(10);Off(OUT_B); //アームを下げる
PlaySound(SOUND_UP);
turn_left1;Wait(130);Off(OUT_AC); //左に1.3秒間曲がる
以後同様に
ClearTimer(0);
while(FastTimer(0)<=300){
if((nOnline < nMAX)&&(SENSOR_2< THRESHOLD -8)){
turn_right1;
nOnline++;
}else{
if((nOnline < nMAX)&&(SENSOR_2< THRESHOLD -3)){
turn_right0;
}else if((nOnline < nMAX)&&(SENSOR_2< THRESHOLD +3...
go_forward;
}else if((nOnline < nMAX)&&(SENSOR_2< THRESHOLD +8...
turn_left0;
}else if(nOnline < nMAX){
turn_left1;
}
nOnline=0;
} if(nOnline >= nMAX){
short_break;
turn_left1;
Wait(STEP);
cross_line;
nOnline=0;
}
}
PlaySound(SOUND_UP);Off(OUT_AC);
turn_right1;Wait(145);go_forward;Wait(30);
shoot;Wait(50);Off(OUT_AC);Wait(0);Off(OUT_B);
OnRev(OUT_AC);Wait(80);turn_left1;Wait(130);Off(OUT_AC);
ClearTimer(0);
while(FastTimer(0)<=700){
if((nOnline < nMAX)&&(SENSOR_2< THRESHOLD -8)){
turn_right1;
nOnline++;
}else{
if((nOnline < nMAX)&&(SENSOR_2< THRESHOLD -3)){
turn_right0;
}else if((nOnline < nMAX)&&(SENSOR_2< THRESHOLD +3...
go_forward;
}else if((nOnline < nMAX)&&(SENSOR_2< THRESHOLD +8...
turn_left0;
}else if(nOnline < nMAX){
turn_left1;
}
nOnline=0;
} if(nOnline >= nMAX){
short_break;
turn_left1;
Wait(STEP);
cross_line;
nOnline=0;
}
}
PlaySound(SOUND_UP);
turn_right1;
Wait(120);
arm_backward;
ClearTimer(0);
while(FastTimer(0)<=2600){
if((nOnline < nMAX)&&(SENSOR_2< THRESHOLD -8)){
turn_left1;
nOnline++;
}else{
if((nOnline < nMAX)&&(SENSOR_2< THRESHOLD -3)){
turn_left0;
}else if((nOnline < nMAX)&&(SENSOR_2< THRESHOLD +3...
go_forward;
}else if((nOnline < nMAX)&&(SENSOR_2< THRESHOLD +8...
turn_right0;
}else if(nOnline < nMAX){
turn_right1;
}
nOnline=0;
}if(nOnline >= nMAX){
short_break;
turn_right1;
Wait(STEP);
cross_line;
nOnline=0;
}
}
PlaySound(SOUND_UP);
arm_forward;
ClearTimer(0);
while(FastTimer(0)<=4000){
if((nOnline < nMAX)&&(SENSOR_2< THRESHOLD -8)){
turn_right1;
nOnline++;
}else{
if((nOnline < nMAX)&&(SENSOR_2< THRESHOLD -3)){
turn_right0;
}else if((nOnline < nMAX)&&(SENSOR_2< THRESHOLD +3...
go_forward;
}else if((nOnline < nMAX)&&(SENSOR_2< THRESHOLD +8...
turn_left0;
}else if(nOnline < nMAX){
turn_left1;
}
nOnline=0;
}if(nOnline >= nMAX){
short_break;
turn_left1;
Wait(STEP);
cross_line;
nOnline=0;
}
}
}
*まとめ [#c8597bea]
今回が最後のロボットコンテストでした。今まで学んだこと...
ページ名: