2022_gorobo_Ateam
/
beenbag_shoot
program to shoot beenbags
arrcmbedをインクルードしてください。
Diff: main.cpp
- 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;