2015_robocon_bteam / Mbed 2 deprecated 2015robot_main

Dependencies:   PID QEI mbed

Fork of 2015robot_main by Naoto Deguchi

Revision:
11:ce3083681efa
Parent:
10:36f81cc33202
Child:
12:24a444bed6a0
diff -r 36f81cc33202 -r ce3083681efa main_ps3.cpp
--- a/main_ps3.cpp	Wed Sep 09 11:20:07 2015 +0000
+++ b/main_ps3.cpp	Sat Sep 12 10:35:51 2015 +0000
@@ -5,254 +5,85 @@
 #include "machine_ps3.h"
 
 Serial pc(USBTX, USBRX);
-#define speed 50.0
-
 //LocalFileSystem local("local");
-//次はRで曲がる
 
 
 int main()
 {
-    //FILE *fp_d = fopen("/local/out_d.dat", "w");
+//    FILE *fp_r = fopen("/local/out_d.dat", "w");
     wait(0.1);
     initializeSBDBT();
     wait(0.1);
     while(analog_ly==-64)
     initializeMotors();
     initializeControllers();
-    RS485.putc(10);
+    sita=PI/4.0,targ_sita=PI/4.0;
     while(1) {
-        short exc=0;
-        if(analog_ry<-50) Move_r(-0.18),exc=1;
-        else if(analog_ry>50) Move_r(0.13),exc=1;
-        if(analog_ly<-50) Move_l(-0.18),exc=1;
-        else if(analog_ly>50) Move_l(0.18),exc=1;
-        if(exc&&(analog_ry==0)) Move_r(0.0);
-        if(exc&&(analog_ly==0)) Move_l(0.0);
-        if(up){
-            step=1;
-            Move_r_sense.reset();
-            Move_l_sense.reset();
-        }
-        else if(down){
-            step=7;
-            Move_r_sense.reset();
-            Move_l_sense.reset();
+        if(up) targ_velocity=speed;
+        else if(down) targ_velocity=-speed;
+        else if(right) targ_velocity=0.0,targ_sita=-PI/4.0;
+        else if(left) targ_velocity=0.0,targ_sita=PI/4.0;
+        else if(r1) targ_sita=-PI/4.0;
+        else if(l1) targ_sita=PI/4.0;
+        else if(square) targ_velocity=0.0;
+        else if(circle) Emergency_toggle();
+        else if(cross){
+            sita=PI/4.0,x=0.0,y=0.0;
+            targ_velocity=0.0;
+            targ_sita=PI/4.0;
+            velocity_controller.reset();
+            direction_controller.reset();
+            wait(0.3);
+            sita=PI/4.0,x=0.0,y=0.0;
+            velocity_controller.reset();
+            direction_controller.reset();
         }
-        else if(right){
-            step=2;
-            Move_r_sense.reset();
-            Move_l_sense.reset();
-        }
-        else if(left){
-            step=9;
-            Move_r_sense.reset();
-            Move_l_sense.reset();
-        }
-/////////////////////////////////////////////
-        else if(r1){
-            step=6;
-            Move_r_sense.reset();
-            Move_l_sense.reset();
-        }
-        else if(l1){
-            step=4;
-            Move_r_sense.reset();
-            Move_l_sense.reset();
-        }
-///////////////////////////////////////////// 
+        /*else if(cross){
+            fclose(fp_r);
+            Move_r(0.0),Move_l(0.0);
+        }*/
         else if(r2){
             if(edge_r1){
                 edge_r1=0;
-                RS485.putc(5);
-                wait(0.5);
-                RS485.putc(7);
+                sendData(1, 1);
+                wait(0.1);
+                sendData(1, 4);
+                wait(0.01);
+                sendData(1, 2);
+                wait(0.1);
+                sendData(1, 4);
             }
         }
         else if(l2){
             if(edge_l1){
                 edge_l1=0;
-                RS485.putc(6);
-                wait(0.5);
-                RS485.putc(7);
-            }
-        }
-        else if(cross) {
-            move_r_controller.reset();
-            move_l_controller.reset();
-            targ_move_r_velocity=0.0;
-            targ_move_l_velocity=0.0;
-            Move_r_sense.reset();
-            Move_l_sense.reset();
-            step=0;
-            //fclose(fp_r);
-        } else if(square) {
-            targ_move_r_velocity=0.0;
-            targ_move_l_velocity=0.0;
-        } else if(circle) Emergency_toggle();
-        else if(triangle){
-            if(edge_up){
-                edge_up=0;
-                if(cylinder_step==3) cylinder_step=0;
-                cylinder_step++;
-                RS485.putc(cylinder_step);
-                wait(0.5);
-                RS485.putc(4);
-            }
-        }
-        if(step==0){
-            targ_move_r_velocity=0.0;
-            targ_move_l_velocity=0.0;
-            move_r_controller.reset();
-            move_l_controller.reset();
-        }
-        else if(step==1){
-            targ_move_r_velocity=speed;
-            targ_move_l_velocity=speed;
-            if(((long long)Move_r_sense.getPulses()>2900)||(((long long)Move_l_sense.getPulses())>2900)){
-                /*move_r_controller.reset();
-                move_l_controller.reset();
-                targ_move_r_velocity=0.0;
-                targ_move_l_velocity=0.0;
-                wait(0.3);
-                Move_r_sense.reset();
-                Move_l_sense.reset();
-                step=0;*/                
-                targ_move_r_velocity=0.0;
-                targ_move_l_velocity=0.0;
-                step=8;
-            }
-        }
-        else if(step==8){
-            targ_move_r_velocity=0.0;
-            targ_move_l_velocity=speed;
-            if((long long)Move_l_sense.getPulses()>4300){
-                targ_move_r_velocity=0.0;
-                targ_move_l_velocity=0.0;
-            }
-        }
-        else if(step==9){
-            targ_move_r_velocity=0.0;
-            targ_move_l_velocity=speed;
-            if((long long)Move_l_sense.getPulses()>500){
-                targ_move_r_velocity=0.0;
-                targ_move_l_velocity=0.0;
-                step=10;
-            }
-        }
-        else if(step==10){
-            targ_move_r_velocity=speed;
-            targ_move_l_velocity=speed;
-            if(((long long)Move_r_sense.getPulses()>3700)||(((long long)Move_l_sense.getPulses())>3700)){
-                targ_move_r_velocity=0.0;
-                targ_move_l_velocity=0.0;
-            }
-        }
-        else if(step==2){
-            targ_move_r_velocity=-speed;
-            targ_move_l_velocity=0.0;
-            if((long long)Move_r_sense.getPulses()<-700){
-                move_r_controller.reset();
-                move_l_controller.reset();
-                targ_move_r_velocity=0.0;
-                targ_move_l_velocity=0.0;
-                wait(0.3);
-                Move_r_sense.reset();
-                Move_l_sense.reset();
-                step=0;
+                sendData(1, 3);
+                wait(0.1);
+                sendData(1, 4);
+                wait(0.01);
+                sendData(1, 5);
+                wait(0.1);
+                sendData(1, 7);
             }
         }
-        else if(step==3){
-            targ_move_r_velocity=speed;
-            targ_move_l_velocity=speed;
-            if(((long long)Move_r_sense.getPulses()>10000)||(((long long)Move_l_sense.getPulses())>10000)){
-                move_r_controller.reset();
-                move_l_controller.reset();
-                targ_move_r_velocity=0.0;
-                targ_move_l_velocity=0.0;
-                wait(0.3);
-                Move_r_sense.reset();
-                Move_l_sense.reset();
-                step=0;
-            }
-        }
-        else if(step==4){
-            targ_move_r_velocity=speed;
-            targ_move_l_velocity=0.0;
-            if((long long)Move_r_sense.getPulses()>700){
-                move_r_controller.reset();
-                move_l_controller.reset();
-                targ_move_r_velocity=0.0;
-                targ_move_l_velocity=0.0;
-                wait(0.3);
-                Move_r_sense.reset();
-                Move_l_sense.reset();
-                step=0;
-            }
-        }
-        else if(step==5){
-            targ_move_r_velocity=-speed;
-            targ_move_l_velocity=-speed;
-            if(((long long)Move_r_sense.getPulses()<-5000)||(((long long)Move_l_sense.getPulses())<-5000)){
-                move_r_controller.reset();
-                move_l_controller.reset();
-                targ_move_r_velocity=0.0;
-                targ_move_l_velocity=0.0;
-                wait(0.3);
-                Move_r_sense.reset();
-                Move_l_sense.reset();
-                step=0;
+        else if(triangle){
+            if(edge_triangle){
+                edge_triangle=0;
+                if(cylinder_step==3) cylinder_step=0;
+                cylinder_step++;
+                sendData(1, cylinder_step);
+                wait(0.5);
+                sendData(1, 4);
             }
         }
-        else if(step==6){
-            targ_move_r_velocity=0.0;
-            targ_move_l_velocity=speed;
-            if((long long)Move_l_sense.getPulses()>500){
-                move_r_controller.reset();
-                move_l_controller.reset();
-                targ_move_r_velocity=0.0;
-                targ_move_l_velocity=0.0;
-                wait(0.3);
-                Move_r_sense.reset();
-                Move_l_sense.reset();
-                step=0;
-            }
-        }
-        else if(step==7){
-            targ_move_r_velocity=-speed;
-            targ_move_l_velocity=-speed;
-            if(((long long)Move_r_sense.getPulses()<-10000)||(((long long)Move_l_sense.getPulses())<-10000)){
-                move_r_controller.reset();
-                move_l_controller.reset();
-                targ_move_r_velocity=0.0;
-                targ_move_l_velocity=0.0;
-                wait(0.3);
-                Move_r_sense.reset();
-                Move_l_sense.reset();
-                step=0;                
-            }
-        }
-        if(!exc){
-            mesure_move_l_velocity();
-            mesure_move_r_velocity();
-            Move_r_speed_following();
-            Move_l_speed_following();
-        }
-        else{
-            targ_move_r_velocity=0.0;
-            targ_move_l_velocity=0.0;
-            move_r_controller.reset();
-            move_l_controller.reset();
-        }
-        //pc.printf("ry is:%d ,ly is:%d ,rx is %d ,lx is:%d\r\n", analog_ry, analog_ly, analog_rx, analog_lx);
-        //pc.printf("targ is:%ld ,velocity is:%ld ,cont is %f\r\n", targ_swing_velocity, swing_velocity, cont_swing);
-        //pc.printf("velocity r is:%f\r\n",swing_velocity);
-        //pc.printf("compute swing is:%f\r\n",cont_swing);
-        pc.printf("compute r is:%f,compute l is:%f\r\n",cont_move_r,cont_move_l);
-        //pc.printf("sens r is:%ld ,sens l is:%ld\r\n",Move_r_sense.getPulses(),Move_l_sense.getPulses());
-        //pc.printf("step:%d\r\n",step);
-        //pc.printf("square:%ld, cross:%ld\r\n",square,cross);
-        //fprintf(fp_r, "%ld\r\n",move_r_velocity);
+//        if((753.0>x)&&(x>500.0)) targ_sita=-PI/4.0;
+//        if(x>753.0) targ_velocity=0.0;
+        if(x>1000) targ_velocity=0.0;
+//      2270mm
+        mesure_state();
+        move_following();
+//        fprintf(fp_r, "%f\r\n",velocity);
+        pc.printf("sita:%f, x:%f, y:%f ,x1:%f ,x2:%f ,velocity:%f\r\n",sita,x,y,x1,x2,velocity);
         wait(RATE);
     }
 }
\ No newline at end of file