[[2018a/Member]]
上げる
 task main(){
 OnRev(OUT_BC,30);
 OnRev(OUT_A,10);
 Wait(8000);
 }

#define CONN 1//スレーブの番号を割り振り
#define AGERU RemoteStartProgram(CONN,"ageru.rxe");Wait(4500); //アームの上げるのを定義
#define SAGERU RemoteStartProgram(CONN,"sageru.rxe");Wait(3000); //アームの下げるのを定義
#define TUKAMU RemoteStartProgram(CONN,"tukamu.rxe");Wait(3500); //アームで掴むのを定義
#define HANASU RemoteStartProgram(CONN,"hanasu.rxe");Wait(3000); //アームで放すのを定義
#define MODOSU RemoteStartProgram(CONN,"modosu.rxe");Wait(3000); //アームを開きもとに戻す
#define KUZUSU TUKAMU;AGERU;OnRev(OUT_BC,10);Wait(1000);Off(OUT_BC);OnFwd(OUT_B,15);OnRev(OUT_C,15);Wait(1500);Off(OUT_BC);OnFwd(OUT_BC,10);Wait(1000);Off(OUT_BC);Wait(3000);SAGERU;HANASU;TUKAMU;AGERU;OnRev(OUT_BC,10);Wait(1000);Off(OUT_BC);OnFwd(OUT_C,15);OnRev(OUT_B,15);Wait(1600);Off(OUT_BC);OnFwd(OUT_BC,10);Wait(1300);Off(OUT_BC);Wait(1000);SAGERU;HANASU;
#define BLACK 40
#define LITTLE_BLACK 47
#define LITTLE_WHITE 53 
#define WHITE 60
#define LEFT OnFwd(OUT_B,20);OnRev(OUT_C,20);Wait(1);Off(OUT_BC);
#define LITTLE_LEFT OnFwd(OUT_B,25);OnFwd(OUT_C,10);Wait(1);Off(OUT_BC);
#define LITTLE_RIGHT OnFwd(OUT_B,10);OnFwd(OUT_C,25);Wait(1);Off(OUT_BC);
#define RIGHT OnFwd(OUT_C,20);OnRev(OUT_B,20);Wait(1);Off(OUT_BC);
#define FRONT OnFwd(OUT_BC,15);Wait(1);Off(OUT_AC);
#define LINE_LEFT if (SENSOR_1 < BLACK) {LEFT;KAZU += 3;} else if (SENSOR_1 < LITTLE_BLACK) {LITTLE_LEFT;KAZU += 1;} else if (SENSOR_1 > WHITE) {RIGHT;KAZU -= 1;}   else if (SENSOR_1 > LITTLE_WHITE) {LITTLE_RIGHT;KAZU -= 3;} else {FRONT;KAZU *= 0;}
#define LINE_RIGHT if (SENSOR_1 < BLACK) {RIGHT;KAZU += 3;} else if (SENSOR_1 < LITTLE_BLACK) {LITTLE_RIGHT;KAZU += 1;} else if (SENSOR_1 > WHITE) {LEFT;KAZU -= 1;}else if (SENSOR_1 > LITTLE_WHITE) {LITTLE_LEFT;KAZU -= 3;} else {FRONT;KAZU *= 0;}         

task main()
{
 SetSensorLight(S1); //光センサを定義
 int KAZU=0;
 int n =  0;
 long t0 = CurrentTick();

 // until(BluetoothStatus(CONN)==NO_ERR); //つながるまで待機


 RemotePlayTone(1,440,1000);Wait(1500);   //最初に音を鳴らす

 MODOSU;  //最初に念のため開いておく


 while(n < 1){
              if (SENSOR_1  < BLACK){OnFwd(OUT_C,20);OnFwd(OUT_B,15);Wait(700);Off(OUT_BC);n++;Off(OUT_BC);Wait(1);}
              else {OnFwd(OUT_BC,20);Wait(1);Off(OUT_BC);} 
                }
 n = 0;    //黒を感知するまで進む//線を超えるために進む

 while(n < 1){
              if (SENSOR_1  < BLACK){OnFwd(OUT_C,35);OnFwd(OUT_B,20);Wait(100);Off(OUT_BC);n++;Off(OUT_BC);Wait(1);}
              else {OnFwd(OUT_B,20);OnFwd(OUT_C,10);Wait(1);Off(OUT_BC);} 
                }
 n = 0;    //黒を感知するまで曲がる


 repeat(1000){LINE_RIGHT;};KAZU *= 0;
 while(KAZU < 270){LINE_RIGHT;};
 PlaySound(SOUND_DOUBLE_BEEP);   //十字の交差点を感知

 OnFwd(OUT_C,20);OnRev(OUT_B,20);Wait(1200);    //右に曲がる
 OnFwd(OUT_BC,15);Wait(300);Off(OUT_BC);

 repeat(2000){LINE_RIGHT;};KAZU *= 0;
 while(KAZU < 200){LINE_RIGHT;};
 PlaySound(SOUND_DOUBLE_BEEP);    //円との交差点を感知

 KUZUSU;     //缶を崩す

 OnFwd(OUT_BC,15);Wait(200);Off(OUT_BC);
 OnRev(OUT_BC,15);Wait(200);Off(OUT_BC);
 OnFwd(OUT_C,15);OnRev(OUT_B,30);Wait(200);Off(OUT_BC);  
 OnFwd(OUT_B,15);OnRev(OUT_C,15);Wait(200);Off(OUT_BC);   //ぐちゃぐちゃやって整える

戻す
 task main(){
 OnFwd(OUT_A,20);
 Wait(1000);
 Off(OUT_A);
 }

 SAGERU;TUKAMU;  //引きずるために掴む

 Wait(2000);
下げる
 task main(){
 OnFwd(OUT_BC,20);
 Wait(600);
 Off(OUT_BC);
 }

 OnFwd(OUT_B,40);OnFwd(OUT_C,30);Wait(3000);Off(OUT_BC);    //円を超えるために進む

 repeat(3000){LINE_RIGHT};KAZU *= 0;
 while(KAZU < 200){LINE_RIGHT};
 PlaySound(SOUND_DOUBLE_BEEP);   //十字の交差点を感知

/*
OnFwd(OUT_C,20);OnRev(OUT_B,20);//右に曲がる
Wait(2500);
Off(OUT_BC);

repeat(1500){LINE_RIGHT};
KAZU *= 0;
while(KAZU < 100){LINE_RIGHT};
PlaySound(SOUND_DOUBLE_BEEP);//十字の交差点を感知

while(n < 1){
 if (SENSOR_1  < BLACK){OnFwd(OUT_BC,20);Wait(1);Off(OUT_BC);}
 else{n++;Off(OUT_BC);Wait(1);} 
}
n = 0;  //白を感知するまで進む
OnFwd(OUT_BC,25);
Wait(700);
Off(OUT_BC);
MODOSU;*/
 
 
/*TUKAMU;AGERU;
OnRev(OUT_BC,20);Wait(2000);Off(OUT_BC);
OnFwd(OUT_B,30);OnRev(OUT_C,30);
Wait(1000);
Off(OUT_BC);
OnFwd(OUT_BC,20);Wait(2000);Off(OUT_BC);
SAGERU;HANASU;
TUKAMU;AGERU;
OnRev(OUT_BC,20);Wait(2000);Off(OUT_BC);
OnFwd(OUT_C,30);OnRev(OUT_B,30);
Wait(1000);
Off(OUT_BC);
OnFwd(OUT_BC,20);Wait(2000);Off(OUT_BC);
SAGERU;HANASU;MODOSU;*/
 
 
/*repeat(1000){LINE_RIGHT};
KAZU *= 0;
while(KAZU < 100){LINE_RIGHT};
PlaySound(SOUND_DOUBLE_BEEP);//円との交差点を感知
*/ [#d5d7e8e9]
 
//repeat(1000){LINE_LEFT};
//while(KAZU < 250){LINE_LEFT;};
 
//RemoteStopProgram(CONN); //接続を切る
 
掴む
 task main(){
 OnRev(OUT_A,20);
 Wait(1000);
 }



トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS