another

Dependencies:   mbed KondoServoLibrary Encoder

Revision:
25:4eb2f2795120
Parent:
24:674b011da45b
Child:
26:3adbabf7d770
--- a/User.cpp	Thu Mar 19 06:18:37 2020 +0000
+++ b/User.cpp	Thu Mar 19 08:35:23 2020 +0000
@@ -33,17 +33,17 @@
 
 DigitalIn touchSensor(p14);//タッチセンサー
 
-DigitalOut out1(p19);//エアシリンダー(つかむ方)
-DigitalOut out2(p20);//エアシリンダー(投擲))
+DigitalOut out1(p19);//エアシリンダー(投擲)
+DigitalOut out2(p20);//エアシリンダー(つかむ)
 DigitalOut out3(p18);//エアシリンダー(ボックス)
 
-int id  = 1;//ballbreak;
-int id2 = 0;//box
+int id  = 0;//ballbreak;
+int id2 = 1;//box
 double SERVO2DEG = 270.0 / (11500 - 3500);
-double first_ball = (5000 - 3500) * SERVO2DEG;
-double first_box = (5000 - 3500) * SERVO2DEG;  //X haven't be decided
-double grab_ball = (3500 - 3500) * SERVO2DEG;
-double pass = (8000 - 3500) * SERVO2DEG;
+double first_ball = (4500 - 3500) * SERVO2DEG;
+double first_box = (4000 - 3500) * SERVO2DEG;  //X haven't be decided
+double grab_ball = (3830 - 3500) * SERVO2DEG;
+double pass = (7080 - 3500) * SERVO2DEG;
 double grab_box = (3500 - 3500) * SERVO2DEG;
 
 void cal()
@@ -100,6 +100,11 @@
     led2=0;
     led3=0;
     led4=0;
+    //reset
+    if((ButtonState >> BUTTONUP)&1 == 1 &&(ButtonState >> BUTTONTRIANGEL)&1 == 1 ) {//R2
+        NVIC_SystemReset();
+        printf("reset\r\n");
+    }
 
     //move
     if((ButtonState >> BUTTONUP)&1 == 1&&(ButtonState >> BUTTONL1)&1 == 1) { //UPL1
@@ -126,7 +131,7 @@
         move = 10;
     } else if((ButtonState >> BUTTONR1)&1 == 1) { //R1
         move = 11;
-    } else if((ButtonState >> BUTTONSTART)&1 == 1 ) {//対応するボタンを書く(今回SELLECTボタン
+    } else if((ButtonState >> BUTTONSTART)&1 == 1 ) {//対応するボタンを書く(今回startボタン
         move = 12;
     } else if((ButtonState >> BUTTONSELECT)&1 == 1 ) {//対応するボタンを書く(今回SELLECTボタン
         move = 13;
@@ -156,6 +161,7 @@
         printf("box 2\r\n");
         led4 = 1;
     }
+
     show_angle();
     //CAN通信用プログラム
     if(shoot==1)shot();
@@ -192,13 +198,13 @@
 }
 void shot()
 {
-    out1=1;
     int breaknum=0;
     X.rise(&Xcount);
     double a=0,r=0.4,v=0;
     int i=0,count;//rで半径指定 a*r=v
     ticker.attach(&cal,0.05);
     while(1) {
+        out1=1;
         printf("%d\r\n",touchSensor.read());
         f=0;
         b=0.05;
@@ -208,11 +214,9 @@
             printf("%d",EC.getCount());
             EC.reset();
             printf("%d",EC.getCount());
-            wait(2);
-            out1=0;
             wait(1);
             out2=0;
-            wait(1);
+            out2=1;
             printf("passed\r\n");
             wait(1);
             while(1) {
@@ -253,7 +257,7 @@
         if(m>1) {
             m=1;
         }
-        f=0.45*m;//速度一定
+        f=0.1*m;//速度一定
         b=0.0;
         if(X_count>2) {
             if(i > 345 && i < 355) {//離す角度を決める