program to shoot beenbags

Dependencies:   mbed MOTOR

arrcmbedをインクルードしてください。

Revision:
20:4db5f042a45c
Parent:
19:fbb3b5331641
Child:
21:9f917ee199ff
--- a/main.cpp	Sun Jan 30 07:25:47 2022 +0000
+++ b/main.cpp	Tue Feb 01 07:22:36 2022 +0000
@@ -1,13 +1,13 @@
-#include "mbed.h"
+d#include "mbed.h"
 #include "rotary_inc.hpp"
 #include "scrp_slave.hpp"
 #include "Motor.hpp"
 
 //-----インスタンス--------------------------
 
-Motor motor_revolver(PA_8,PA_7);//リボルバーモーター
-Motor motor_shoot(PB_6,PA_11);//発射機構モーター
-PwmOut servo(PA_1);//ロック解除用サーボ
+Motor motor_revolver(PA_7,PA_8);//リボルバーモーター
+Motor motor_shoot(PA_1,PA_3);//発射機構モーター
+PwmOut servo(PB_6);//ロック解除用サーボ
 
 ScrpSlave slave(PA_9,PA_10,PA_12,SERIAL_TX,SERIAL_RX,3);//id=3
 
@@ -24,9 +24,9 @@
 
 bool mode = 0;//0:手動 1:自動
 bool emergency = 0;//0:停止 1:停止
-double revolver_pwm = -0.03;//リボルバー回転速度
-double load_pwm = -0.3;//装填モーター速度
-double back_pwm = 0.3;//復帰モーター速度
+double revolver_pwm = -0.1;//リボルバー回転速度
+double load_pwm = -0.5;//装填モーター速度
+double back_pwm = 0.5;//復帰モーター速度
 
 int theta_0 = 1290;//0度
 int theta_45 = 1875;//45度
@@ -49,16 +49,18 @@
     }else{
         mode = 0;
     }
+    return 0;
 }
 
 //非常停止を受信
 bool get_stop(int rx_data,int &tx_data){
     if(emergency == 0){
         emergency = 1;//停止
-        shootphase = 10;
+        shoot_phase = 10;
     }else{
         emergency = 0;//解除
     }
+    return 0;
 }
 
 //リボルバー、ラック復帰
@@ -99,7 +101,7 @@
         if(turn_able == 0 && back_able == 0){
             break;
         }
-        wait(0.1);
+        wait(0.01);
     }
 }
 
@@ -114,7 +116,7 @@
     
     slave.addCMD(2,get_start);
     slave.addCMD(50,get_changemode);
-    slabe.addCMD(51,get_stop);
+    slave.addCMD(51,get_stop);
     
     while(1){
         if(mode == 1){
@@ -156,8 +158,7 @@
                 servo.pulsewidth_us(theta_45);
                 printf("%d shot\n",count);  
                 wait(3);
-                s
-                ervo.pulsewidth_us(theta_0);
+                servo.pulsewidth_us(theta_0);
                 motor_shoot.output(load_pwm);
                 wait(0.15);
                 motor_shoot.output(0);
@@ -166,11 +167,11 @@
                 count ++;
                 break;   
                 
-                //非常停止
-                case 10:
+                case 10://非常停止
                 while(emergency == 1){
                     motor_shoot.output(0);
                     motor_revolver.output(0);
+                    printf("emergency\n"); 
                     wait(0.1);
                 }
                 break;