skipper_raspi_uart_test

Dependencies:   mbed MPU6050_2 HMC5883L_4 SDFileSystem3

Revision:
17:83db05cab3d1
Parent:
16:26cee2aaf61d
Child:
18:4566d1f5fc60
diff -r 26cee2aaf61d -r 83db05cab3d1 main.cpp
--- a/main.cpp	Wed Feb 13 08:18:10 2019 +0000
+++ b/main.cpp	Thu Feb 14 09:09:25 2019 +0000
@@ -8,25 +8,20 @@
 //MPU_check用
 #define PI 3.14159265358979
 
-#define servo_NEUTRAL_R    1614
-#define servo_NEUTRAL_L    1621
+#define servo_NEUTRAL_R         1614
+#define servo_NEUTRAL_L         1621
 #define servo_slow_FORWARD_R    1560
 #define servo_slow_FORWARD_L    1560
-#define servo_low_FORWARD_R     1560   //RasPi速さ調節用 
 #define servo_high_FORWARD_R    1860
-#define servo_low_FORWARD_L     1560
 #define servo_high_FORWARD_L    1860
-#define servo_low_back_R        1360
-#define servo_high_back_R       1160
-#define servo_low_back_L        1360
-#define servo_high_back_L       1160
-#define turntable_NEUTRAL     1180 //カメラ台座のサーボ
-#define matchspeed 1500 + 100 //カメラと方向を合わせるときの車輪の速度
-#define focus_NEUTRAL  1455  //焦点合わせ用サーボ
-#define camera_deg_A 1400   //カメラ角度調整
-#define camera_deg_B 1800
-#define pint_speed 25
-#define pint_wait 3.5
+#define turntable_NEUTRAL       1180        //カメラ台座のサーボ
+#define matchspeed              1500 + 100  //カメラと方向を合わせるときの車輪の速度
+#define focus_NEUTRAL           1455        //焦点合わせ用サーボ
+#define camera_deg_A            1400        //カメラ角度調整
+#define camera_deg_B            1800
+#define pint_speed              25
+#define pint_wait               3.5
+#define turntable_speed         1800 
 
 #define MOVE_NEUTRAL    0
 #define MOVE_FORWARD    1   
@@ -63,7 +58,8 @@
             int *Servo_slow_FORWARD_R,int *Servo_slow_FORWARD_L,
             int *Turntable_NEUTRAL,int *Matchspeed,int *Focus_NEUTRAL,
             int *Camera_deg_A, int *Camera_deg_B,
-            int *Pint_speed, float *Pint_wait
+            int *Pint_speed, float *Pint_wait,
+            int *Turntable_speed
             );
 
 static float nowAngle[3] = {0,0,0},nowAngle_HMC=0;
@@ -101,6 +97,12 @@
 
 /*超音波はRaspberryPiに積む*/
 
+DigitalOut led1(PA_0);  //黄色のコネクタ
+DigitalOut led2(PA_1);
+DigitalOut led3(PB_5); 
+DigitalOut led4(PB_4);
+
+
 //外付けコンパス
 HMC5883L compass(PB_9, PB_8);    //コンパスセンサー TIM4_CH3とCH4
 
@@ -115,7 +117,7 @@
     //MPU_check
     setup();
     
-    servoCameradeg.pulsewidth_us(camera_deg_A);
+    servoCameradeg.pulsewidth_us(Camera_deg_A);
     
     // シリアル通信受信の割り込みイベント登録
     pc.attach(getSF_Serial_jevois, Serial::RxIrq);
@@ -147,51 +149,51 @@
     //NVIC_DisableIRQ(USART2_IRQn);
     switch(g_landingcommand){
         case 'N': //MOVE_NEUTRAL 
-            servoR.pulsewidth_us(servo_NEUTRAL_R);
-            servoL.pulsewidth_us(servo_NEUTRAL_L);
+            servoR.pulsewidth_us(Servo_NEUTRAL_R);
+            servoL.pulsewidth_us(Servo_NEUTRAL_L);
             //NVIC_EnableIRQ(USART1_IRQn);
             //NVIC_EnableIRQ(USART2_IRQn);
             break;
             
         case 'Y': //MOVE_FORWARD
-            servoR.pulsewidth_us(servo_high_FORWARD_R);
-            servoL.pulsewidth_us(servo_high_FORWARD_L);
+            servoR.pulsewidth_us(Servo_high_FORWARD_R);
+            servoL.pulsewidth_us(Servo_high_FORWARD_L);
             //NVIC_EnableIRQ(USART1_IRQn);
             //NVIC_EnableIRQ(USART2_IRQn); 
             break;
             
         case 'l': //MOVE_LEFT Low Speed
-            servoR.pulsewidth_us(servo_low_FORWARD_R);
+            servoR.pulsewidth_us(Servo_slow_FORWARD_R);
             //NVIC_EnableIRQ(USART1_IRQn);
             //NVIC_EnableIRQ(USART2_IRQn); 
         
         case 'L': //MOVE_LEFT High Speed
-            servoR.pulsewidth_us(servo_high_FORWARD_R);
+            servoR.pulsewidth_us(Servo_high_FORWARD_R);
             //NVIC_EnableIRQ(USART1_IRQn);
             //NVIC_EnableIRQ(USART2_IRQn); 
             
         case 'r': //MOVE_RIGHT Low Speed  
-            servoL.pulsewidth_us(servo_low_FORWARD_L);
+            servoL.pulsewidth_us(Servo_slow_FORWARD_L);
             //NVIC_EnableIRQ(USART1_IRQn);
             //NVIC_EnableIRQ(USART2_IRQn); 
             break;
         
         case 'R': //MOVE_RIGHT  High Speed
-            servoL.pulsewidth_us(servo_high_FORWARD_L);
+            servoL.pulsewidth_us(Servo_high_FORWARD_L);
             //NVIC_EnableIRQ(USART1_IRQn);
             //NVIC_EnableIRQ(USART2_IRQn); 
             break;
             
         case 'G': //GOAL_FORWARD
-            servoR.pulsewidth_us(servo_slow_FORWARD_R);
-            servoL.pulsewidth_us(servo_slow_FORWARD_L);
+            servoR.pulsewidth_us(Servo_slow_FORWARD_R);
+            servoL.pulsewidth_us(Servo_slow_FORWARD_L);
             //NVIC_EnableIRQ(USART1_IRQn);
             //NVIC_EnableIRQ(USART2_IRQn); 
             break;
         
         case '1': //MOVE_FORWARD Speed Level 1
-            servoR.pulsewidth_us(servo_high_FORWARD_R);
-            servoL.pulsewidth_us(servo_high_FORWARD_L);
+            servoR.pulsewidth_us(Servo_high_FORWARD_R);
+            servoL.pulsewidth_us(Servo_high_FORWARD_L);
             //NVIC_EnableIRQ(USART1_IRQn);
             wait(1);
             do{
@@ -200,8 +202,8 @@
             break;
         
         case '2': //MOVE_FORWARD Speed Level 2
-            servoR.pulsewidth_us(servo_high_FORWARD_R);
-            servoL.pulsewidth_us(servo_high_FORWARD_L);
+            servoR.pulsewidth_us(Servo_high_FORWARD_R);
+            servoL.pulsewidth_us(Servo_high_FORWARD_L);
             //NVIC_EnableIRQ(USART1_IRQn);
             wait(2);
             do{
@@ -210,8 +212,8 @@
             break;
         
         case '3': //MOVE_FORWARD Speed Level 3
-            servoR.pulsewidth_us(servo_high_FORWARD_R);
-            servoL.pulsewidth_us(servo_high_FORWARD_L);
+            servoR.pulsewidth_us(Servo_high_FORWARD_R);
+            servoL.pulsewidth_us(Servo_high_FORWARD_L);
             //NVIC_EnableIRQ(USART1_IRQn);
             wait(3);
             do{
@@ -220,8 +222,8 @@
             break;
         
         case '4': //MOVE_FORWARD Speed Level 4
-            servoR.pulsewidth_us(servo_high_FORWARD_R);
-            servoL.pulsewidth_us(servo_high_FORWARD_L);
+            servoR.pulsewidth_us(Servo_high_FORWARD_R);
+            servoL.pulsewidth_us(Servo_high_FORWARD_L);
             //NVIC_EnableIRQ(USART1_IRQn);
             wait(4);
             do{
@@ -230,8 +232,8 @@
             break;
             
         case '5': //MOVE_FORWARD Speed Level 5
-            servoR.pulsewidth_us(servo_high_FORWARD_R);
-            servoL.pulsewidth_us(servo_high_FORWARD_L);
+            servoR.pulsewidth_us(Servo_high_FORWARD_R);
+            servoL.pulsewidth_us(Servo_high_FORWARD_L);
             //NVIC_EnableIRQ(USART1_IRQn);
             wait(5);
             do{
@@ -240,7 +242,7 @@
             break;
             
         case 'M': //MatchPosition
-            servoR.pulsewidth_us(matchspeed);
+            servoR.pulsewidth_us(Matchspeed);
             //NVIC_EnableIRQ(USART1_IRQn);
             //NVIC_EnableIRQ(USART2_IRQn); 
             break;
@@ -267,22 +269,22 @@
 void MoveCameraBoard(){
     MoveCansat('N');
     g_landingcommand='N';
-    servoTurnTable.pulsewidth_us(1800);
+    servoTurnTable.pulsewidth_us(Turntable_speed);
     wait_ms(600);
-    servoTurnTable.pulsewidth_us(turntable_NEUTRAL);
+    servoTurnTable.pulsewidth_us(Turntable_NEUTRAL);
     if(jevoisFlag == true) FocusAdjust();
     else wait(1);
     
     if(g_landingcommand!='N') return;
     if(!CameraDegFlag){
-        for(int i=0; i<camera_deg_B-camera_deg_A;i=i+10){
-            servoCameradeg.pulsewidth_us(camera_deg_A+10);
+        for(int i=0; i<Camera_deg_B-Camera_deg_A;i=i+10){
+            servoCameradeg.pulsewidth_us(Camera_deg_A+10);
             wait_ms(20);
             }
         CameraDegFlag=!CameraDegFlag;
         }else{
-            for(int i=0; i<camera_deg_B-camera_deg_A;i=i+10){
-            servoCameradeg.pulsewidth_us(camera_deg_A-10);
+            for(int i=0; i<Camera_deg_B-Camera_deg_A;i=i+10){
+            servoCameradeg.pulsewidth_us(Camera_deg_A-10);
             }
         CameraDegFlag = !CameraDegFlag;
     }
@@ -306,14 +308,14 @@
 }
 
 void FocusAdjust(){
-    servoCameraPinto.pulsewidth_us(focus_NEUTRAL-200);
+    servoCameraPinto.pulsewidth_us(Focus_NEUTRAL-200);
     //pc.printf("set\r\n");
     wait(1);
     
-    servoCameraPinto.pulsewidth_us(focus_NEUTRAL+pint_speed);
+    servoCameraPinto.pulsewidth_us(Focus_NEUTRAL+Pint_speed);
     //pc.printf("check\r\n");
     wait(pint_wait);
-    servoCameraPinto.pulsewidth_us(focus_NEUTRAL);
+    servoCameraPinto.pulsewidth_us(Focus_NEUTRAL);
       
   return;      
 }     
@@ -423,8 +425,8 @@
                &Servo_slow_FORWARD_R,&Servo_slow_FORWARD_L,
                &Turntable_NEUTRAL,&Matchspeed,&Focus_NEUTRAL,
                &Camera_deg_A, &Camera_deg_B,
-               &Pint_speed,&Pint_wait
-               
+               &Pint_speed,&Pint_wait,
+               &Turntable_speed
                );
      
     Init_sensors();
@@ -587,7 +589,8 @@
                int *Servo_slow_FORWARD_R,int *Servo_slow_FORWARD_L,
                int *Turntable_NEUTRAL,int *Matchspeed,int *Focus_NEUTRAL,
                int *Camera_deg_A, int *Camera_deg_B,
-               int *Pint_speed, float *Pint_wait
+               int *Pint_speed, float *Pint_wait,
+               int *Turntable_speed
                ){
 
     pc.printf("SDsetup start.\r\n");    
@@ -608,7 +611,8 @@
         "CAMERA_DEG_A",
         "CAMERA_DEG_B",
         "PINT_SPEED",
-        "PINT_WAIT"
+        "PINT_WAIT",
+        "TURNTABLE_SPEED"
     };
 
     fp = fopen("/sd/option.txt","r");
@@ -668,7 +672,10 @@
         else{                                         *Pint_wait = pint_wait;
                                                       SDerrorcount++;
         }
-        
+         if(GetParameter(fp,paramNames[13],parameter)) *Turntable_speed = atof(parameter);
+        else{                                         *Turntable_speed = turntable_speed;
+                                                      SDerrorcount++;
+        }
         fclose(fp);
 
     }else{  //ファイルがなかったら
@@ -687,6 +694,7 @@
         *Camera_deg_B = camera_deg_B;
         *Pint_speed = pint_speed;
         *Pint_wait = pint_wait;
+        *Turntable_speed = turntable_speed;
         SDerrorcount = -1;
     }
     pc.printf("SDsetup finished.\r\n");
@@ -701,6 +709,7 @@
     pc.printf("Focus_NEUTRAL = %d\r\n", *Focus_NEUTRAL);
     pc.printf("Camera_deg_A = %d, Camera_deg_B =  %d\r\n", *Camera_deg_A, *Camera_deg_B);
     pc.printf("Pint_speed = %d, Pint_wait =  %f\r\n", *Pint_speed, *Pint_wait);
+    pc.printf("Turntable_speed = %d\r\n",*Turntable_speed);
     
     return SDerrorcount;
 }