a

Dependencies:   Locate Move Servo button mbed

Fork of 4thcomp by 涼太郎 中村

Revision:
21:7df0f8cd2737
Parent:
20:4b8ce61a00b2
diff -r 4b8ce61a00b2 -r 7df0f8cd2737 main.cpp
--- a/main.cpp	Fri Sep 16 08:51:16 2016 +0000
+++ b/main.cpp	Sat Sep 17 23:23:08 2016 +0000
@@ -21,65 +21,79 @@
 
 
 int main()
-{   
-
+{
+    Serial pc(SERIAL_TX, SERIAL_RX);    //pcと通信
     int teams=1,phase=0;
     teams=teamLED();
     int team = 1;
     setup(teams);
     initmotor(teams);
+
     open_arm();
     wait(2);
     close_arm();
     buzzer(1);
     wait(1);
     buzzer(0);
-    
-   int targetx[9] = { 600,600,600,1200,900,1200,900,1200,900 };
-   int targety[9] = { team*(300+slidedist),team*(600+slidedist),team*(900+slidedist),team*(1200+slidedist),team*(900+slidedist),team*(600+slidedist),team*(600+slidedist),team*(0+slidedist),team*(300+slidedist) };
-   int goalx=220,goaly=1200-30+(slidedist)*0;//yへのslidediatを無視
-    
+
+    int targetx[9] = { 600,600,600,1200,900,1200,900,1200,900 };
+    int targety[9] = { team*(300+slidedist),team*(600+slidedist),team*(900+slidedist),team*(1200+slidedist),team*(900+slidedist),team*(600+slidedist),team*(600+slidedist),team*(0+slidedist),team*(300+slidedist) };
+    int goalx=220,goaly=1200-30+(slidedist)*0;//yへのslidediatを無視
+
     phase=phaseSW();
-    
-    if(phase==0){
-    buzzer(1);
-    wait(0.4);
-    buzzer(0);
-    wait(0.2);
-    buzzer(1);
-    wait(0.4);
-    buzzer(0);
-    wait(0.2);
-    buzzer(1);
-    wait(0.4);
-    buzzer(0);}
-    
-        while(start()){}
-    if(phase==15){
+
+    if(phase==0) {
+        buzzer(1);
+        wait(0.4);
+        buzzer(0);
+        wait(0.2);
+        buzzer(1);
+        wait(0.4);
+        buzzer(0);
+        wait(0.2);
+        buzzer(1);
+        wait(0.4);
+        buzzer(0);
+    }
+
+    while(start()) {}
+    if(phase==15) {
         movelength(900);
+        buzzer(1);
+
+        while(1) {
+            update();
+        }
+    }
+
+    if(phase==14) {
+        int i = 1;
+        while(1)
+        {
+            
+            turnrad(-2*PI*3*(i++));
+            wait(5);
         }
         
-    if(phase==14){
-       while(1){ 
-        turnrad_cw(-2*PI,1);
-        turnrad_ccw(0,1);
-       }
-    } 
-    if(phase==13){
-        nxback300();
+        while(1) {
+            update();
         }
-    
-    if(phase==12){
-        while(1){
+    }
+    if(phase==13) {
+        move(-70, -70);
+    }
+
+    if(phase==12) {
+        while(1) {
             open_arm();
             wait(3);
             close_arm();
             wait(3);
         }
     }
-    
-        if(phase==11){
-        while(1){
+
+    if(phase==11) {
+        while(1) {
             close_hand();
             wait(0.3);
             lift();
@@ -88,236 +102,257 @@
             wait(2);
         }
     }
+
+    if(phase==10) {
+        while(1) {
+            move(70,70);
+            update();
+        }
+    }
+    if(phase==9) {
+        while(1) {
+            move(32,30);
+            while(1) {
+                update_np();
+                if(coordinateX()>900) {
+                    break;
+                }
+            }
+            pc.printf("start");
+            update();
+        }
+    }
+
 //オブジェクト0,1,2回収
-    if(phase==0){
-       
-       pmove2(targetx[0],-60); 
-       open_hand();
-       pmove2(targetx[0],targety[0]);
-       close_hand();
-       wait(0.3);
+    if(phase==0) {
+
+        pmove2(targetx[0],-60);
+        open_hand();
+        pmove2(targetx[0],targety[0]);
+        close_hand();
+        wait(0.3);
         lift();
-       open_hand();
-       //回収
-       pmove2(targetx[1],targety[1]);
-       close_hand();
-       wait(0.3);
+        open_hand();
+        //回収
+        pmove2(targetx[1],targety[1]);
+        close_hand();
+        wait(0.3);
         lift();
-       open_hand();
-       //回収
-       pmove2(targetx[2],targety[2]);
-       //回収
-       close_hand();
-       pmove2(goalx,goaly-40);
-       //リリース
-       turnrad_ccw(PI,team);
-       open_arm();
-       open_hand();
-       wait(0.5);
-       
-       back300();//(300,1200)なう
+        open_hand();
+        //回収
+        pmove2(targetx[2],targety[2]);
+        //回収
+        close_hand();
+        pmove2(goalx,goaly-40);
+        //リリース
+        turnrad_ccw(PI,team);
+        open_arm();
+        open_hand();
+        wait(0.5);
+
+        back300();//(300,1200)なう
         turnrad_ccw(2*PI,team);
 //--------------------------------------------------------------------
-       open_hand();
-       
-       pmove(targetx[3]-50,targety[3]);
-       
-       close_arm();
-       close_hand();
-       turnrad_cw(PI,team);
+        open_hand();
+        \
+        pmove2(targetx[3]-50,targety[3]);
 
-       pmove2(150,team*(goaly));//ゴール
+        close_arm();
+        close_hand();
+        turnrad_cw(PI,team);
+
+        pmove2(300,team*(goaly));//ゴール
 
         open_arm();
         open_hand();
         wait(0.3);
 
-       
+
         back300();
         turnrad_ccw(2*PI,team);
         phase=2;
-        
-       //また縦に回収
-       close_arm();
-       pmove2(900,team*(1200+30));
+
+        //また縦に回収
+        close_arm();
+        pmove2(900,team*(1200+30));
 
-       open_hand();
-       pmove2(targetx[4],targety[4]);
-       close_hand();
-       wait(0.3);
+        open_hand();
+        pmove2(targetx[4],targety[4]);
+        close_hand();
+        wait(0.3);
         lift();
-       open_hand();
-       //回収
-       pmove2(targetx[6],targety[6]);
-       close_hand();
-       wait(0.3);
+        open_hand();
+        //回収
+        pmove2(targetx[6],targety[6]);
+        close_hand();
+        wait(0.3);
         lift();
-       open_hand();
-       //回収
-       pmove2(targetx[8],targety[8]);
-       //回収
-       close_hand();
-       pmove2(150,team*(600+slidedist));//斜め移動
-       
-       turnrad_ccw(PI,team);
-       open_arm();
-       open_hand();
-       back300();
-      
-           
-    pmove2(600,600);
-     pmove2(targetx[5],targety[5]);
-     close_arm();
-     close_hand();
-     nxback300();
-     pmove2(150,600+slidedist);
-    open_arm();
-    open_hand();
-    back300();
-     pmove2(900,50);
-     pmove2(1200-50,0);
-     close_arm();
-     close_hand();
-     nxback300();
-     pmove2(150,900+slidedist);
-     turnrad_ccw(PI,team);
-     open_arm();
-     open_hand();
-     back300();
-     
-        while(1){
+        open_hand();
+        //回収
+        pmove2(targetx[8],targety[8]);
+        //回収
+        close_hand();
+        pmove2(150,team*(600+slidedist));//斜め移動
+
+        turnrad_ccw(PI,team);
+        open_arm();
+        open_hand();
+        back300();
+
+
+        pmove2(600,600);
+        pmove2(targetx[5]-50,targety[5]);
+        close_arm();
+        close_hand();
+        nxback300();
+        pmove2(150,600+slidedist);
+        open_arm();
+        open_hand();
+        back300();
+        pmove2(900-50,50);
+        pmove2(1200-90,0);
+        close_arm();
+        close_hand();
+        nxback300();
+        pmove2(150,900+slidedist);
+        turnrad_ccw(PI,team);
+        open_arm();
+        open_hand();
+        back300();
+
+        while(1) {
             buzzer(1);
             wait(0.5);
             buzzer(0);
-            wait(1);   
+            wait(1);
         }
     }
-    
-    
-    if(phase==2){
+
+
+    if(phase==2) {
         open_arm();
-        
+
         open_hand();
-     pmove2(900,0);
-     pmove2(1200-80,0);//オブジェクト
-     close_arm();
-     close_hand();
-     nxback300();
-     pmove2(150,900+slidedist);
-     turnrad_ccw(PI,team);
-     open_arm();
-     open_hand();
-     back300();
-     
-    pmove2(600,600);
-     pmove2(targetx[5]-80,targety[5]);
-     close_arm();
-     close_hand();
-     nxback300();
-     pmove2(150,600+slidedist);
-     back300();
-        
+        pmove2(900,0);
+        pmove2(1200-80,0);//オブジェクト
+        close_arm();
+        close_hand();
+        nxback300();
+        pmove2(150,900+slidedist);
+        turnrad_ccw(PI,team);
+        open_arm();
+        open_hand();
+        back300();
+
+        pmove2(600,600);
+        pmove2(targetx[5]-80,targety[5]);
+        close_arm();
+        close_hand();
+        nxback300();
+        pmove2(150,600+slidedist);
+        back300();
+
     }
-    
-        if(phase==1){
+
+    if(phase==1) {
 
-     pmove(900,0); 
-       open_hand();
-       pmove2(targetx[8],targety[8]);
-       close_hand();
-       wait(0.3);
+        pmove(900,0);
+        open_hand();
+        pmove2(targetx[8],targety[8]);
+        close_hand();
+        wait(0.3);
         lift();
-       open_hand();
-       //回収
-       pmove2(targetx[6],targety[6]);
-       close_hand();
-       wait(0.3);
+        open_hand();
+        //回収
+        pmove2(targetx[6],targety[6]);
+        close_hand();
+        wait(0.3);
         lift();
-       open_hand();
-       //回収
-       pmove(targetx[4],targety[4]);
-       //回収
-       close_hand();
-       pmove2(goalx,goaly-40);
-       //リリース
-       turnrad_ccw(PI,team);
-       open_arm();
-       open_hand();
-       wait(0.5);
-       back300();//(300,1200)なう
-        
+        open_hand();
+        //回収
+        pmove(targetx[4],targety[4]);
+        //回収
+        close_hand();
+        pmove2(goalx,goaly-40);
+        //リリース
+        turnrad_ccw(PI,team);
+        open_arm();
+        open_hand();
+        wait(0.5);
+        back300();//(300,1200)なう
+
     }
-    
-    
-        if(phase==3){
-            
+
+
+    if(phase==3) {
+
 
-       pmove2(targetx[0],-60); 
-       open_hand();
-       pmove2(targetx[0],targety[0]);
-       close_hand();
-       wait(0.3);
+        pmove2(targetx[0],-60);
+        open_hand();
+        pmove2(targetx[0],targety[0]);
+        close_hand();
+        wait(0.3);
         lift();
-       open_hand();
-       //回収
-       pmove2(targetx[1],targety[1]);
-       close_hand();
-       wait(0.3);
+        open_hand();
+        //回収
+        pmove2(targetx[1],targety[1]);
+        close_hand();
+        wait(0.3);
         lift();
-       open_hand();
-       //回収
-       pmove2(targetx[2],targety[2]);
-       //回収
-       close_hand();
-       pmove2(goalx,goaly-40);
-       //リリース
-       turnrad_ccw(PI,team);
-       open_arm();
-       open_hand();
-       wait(0.5);
-       back300();//(300,1200)なう
+        open_hand();
+        //回収
+        pmove2(targetx[2],targety[2]);
+        //回収
+        close_hand();
+        pmove2(goalx,goaly-40);
+        //リリース
+        turnrad_ccw(PI,team);
+        open_arm();
+        open_hand();
+        wait(0.5);
+        back300();//(300,1200)なう
         turnrad_ccw(2*PI,team);
-     
-     
+
+
         close_arm();
-       pmove2(900,team*(1200+30));
+        pmove2(900,team*(1200+30));
 
-       open_hand();
-       pmove2(targetx[4],targety[4]);
-       close_hand();
-       wait(0.3);
+        open_hand();
+        pmove2(targetx[4],targety[4]);
+        close_hand();
+        wait(0.3);
         lift();
-       open_hand();
-       //回収
-       pmove2(targetx[6],targety[6]);
-       close_hand();
-       wait(0.3);
+        open_hand();
+        //回収
+        pmove2(targetx[6],targety[6]);
+        close_hand();
+        wait(0.3);
         lift();
-       open_hand();
-       //回収
-       pmove2(targetx[8],targety[8]);
-       //回収
-       close_hand();
-       pmove2(150,team*(600+slidedist));//斜め移動
-       
-       turnrad_ccw((-1)*PI,team);
-       open_arm();
-       open_hand();
-       back300();
+        open_hand();
+        //回収
+        pmove2(targetx[8],targety[8]);
+        //回収
+        close_hand();
+        pmove2(150,team*(600+slidedist));//斜め移動
+
+        turnrad_ccw((-1)*PI,team);
+        open_arm();
+        open_hand();
+        back300();
     }
-    
-    if(phase == 10)
-    {buzzer(1);
+
+    if(phase == 10) {
+        buzzer(1);
         turnrad(6*PI);
         while(1) update();
     }
-    
-    
-    
-    if(phase == 8)
-    {   open_arm();
+
+
+
+    if(phase == 8) {
+        open_arm();
         open_hand();
-        
+
         pmove2(0,1000);
         pmove2(600,1200);
         pmove2(1200-50,1200);
@@ -328,7 +363,7 @@
         open_hand();
         open_arm();
         back300();
-        
+
         turnrad_ccw(0,1);
         pmove2(1800,1200);
         close_hand();
@@ -339,11 +374,11 @@
         open_arm();
         back300();
     }
-    
-    if(phase == 7)
-    {   open_arm();
+
+    if(phase == 7) {
+        open_arm();
         open_hand();
-        
+
         pmove2(0,1000);
         pmove2(600,1200);
         pmove2(1800,1200);
@@ -354,25 +389,26 @@
         open_hand();
         open_arm();
         back300();
-        
-        
+
+
     }
-    
-    if(phase == 6)
-    {buzzer(1);
+
+    if(phase == 6) {
+        buzzer(1);
         initbutton();
         int command[3];
         commandIn(command);
-        
+
         commandMove(command[0], command[1], command[2]);
     }
-    
-    if(phase == 5)
-    {buzzer(1);
+
+    if(phase == 5) {
+        buzzer(1);
         initbutton();
         int command[3];
         commandIn(command);
-        
+
         commandMoveEnemy(command[0], command[1], command[2]);
     }
+
 }
\ No newline at end of file