shoot

Dependencies:   mbed SBDBT arrc_mbed Servo air

Committer:
asumamatsumura
Date:
Wed Jan 19 08:37:40 2022 +0000
Revision:
0:6f9a457b09e1
Child:
1:cae30876c429
hassya;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
asumamatsumura 0:6f9a457b09e1 1 #include "mbed.h"
asumamatsumura 0:6f9a457b09e1 2 #include "air.hpp"
asumamatsumura 0:6f9a457b09e1 3 #include "sbdbt.hpp"
asumamatsumura 0:6f9a457b09e1 4 sbdbt ds3(A0, A1);
asumamatsumura 0:6f9a457b09e1 5 DigitalIn limitA(PA_9,PullUp);
asumamatsumura 0:6f9a457b09e1 6 Air hassya(PA_0);
asumamatsumura 0:6f9a457b09e1 7 Timer timer;
asumamatsumura 0:6f9a457b09e1 8 //↓モータ用
asumamatsumura 0:6f9a457b09e1 9 void driveMotorS(double pwm){
asumamatsumura 0:6f9a457b09e1 10 PwmOut up_pin_A(PB_13);
asumamatsumura 0:6f9a457b09e1 11 PwmOut up_pin_B(PB_14);
asumamatsumura 0:6f9a457b09e1 12 up_pin_A.period_us(2048);
asumamatsumura 0:6f9a457b09e1 13 up_pin_B.period_us(2048);
asumamatsumura 0:6f9a457b09e1 14 if (!pwm) {
asumamatsumura 0:6f9a457b09e1 15 up_pin_A = 0;
asumamatsumura 0:6f9a457b09e1 16 up_pin_B = 0;
asumamatsumura 0:6f9a457b09e1 17 } else if (0 < pwm) {
asumamatsumura 0:6f9a457b09e1 18 up_pin_A = pwm;
asumamatsumura 0:6f9a457b09e1 19 up_pin_B = 0;
asumamatsumura 0:6f9a457b09e1 20 } else {
asumamatsumura 0:6f9a457b09e1 21 up_pin_A = 0;
asumamatsumura 0:6f9a457b09e1 22 up_pin_B= -pwm;
asumamatsumura 0:6f9a457b09e1 23 }
asumamatsumura 0:6f9a457b09e1 24 }
asumamatsumura 0:6f9a457b09e1 25 // ↓サーボ用(未実装)
asumamatsumura 0:6f9a457b09e1 26 void Servo(bool data){
asumamatsumura 0:6f9a457b09e1 27
asumamatsumura 0:6f9a457b09e1 28 }
asumamatsumura 0:6f9a457b09e1 29 //↓発射用
asumamatsumura 0:6f9a457b09e1 30 void Hassya(bool data,int tim){
asumamatsumura 0:6f9a457b09e1 31 if((data==1 || timer.read_ms()-tim<3000) && limitA){
asumamatsumura 0:6f9a457b09e1 32 hassya.move(0);
asumamatsumura 0:6f9a457b09e1 33 if(timer.read_ms()-tim>1000) Servo(1);
asumamatsumura 0:6f9a457b09e1 34 if(timer.read_ms()-tim>2000) hassya.move(1);
asumamatsumura 0:6f9a457b09e1 35 }else{
asumamatsumura 0:6f9a457b09e1 36 if(limitA){
asumamatsumura 0:6f9a457b09e1 37 driveMotorS(0);
asumamatsumura 0:6f9a457b09e1 38 Servo(0);
asumamatsumura 0:6f9a457b09e1 39 }else{
asumamatsumura 0:6f9a457b09e1 40 driveMotorS(0.06);
asumamatsumura 0:6f9a457b09e1 41 }
asumamatsumura 0:6f9a457b09e1 42 }
asumamatsumura 0:6f9a457b09e1 43 }
asumamatsumura 0:6f9a457b09e1 44 int main(){
asumamatsumura 0:6f9a457b09e1 45 //↓宣言
asumamatsumura 0:6f9a457b09e1 46 bool shoot;
asumamatsumura 0:6f9a457b09e1 47 int tim,old_square=0;
asumamatsumura 0:6f9a457b09e1 48 timer.start();
asumamatsumura 0:6f9a457b09e1 49 while(true){
asumamatsumura 0:6f9a457b09e1 50 //コントローラ関係
asumamatsumura 0:6f9a457b09e1 51 if(old_square<ds3.square()){
asumamatsumura 0:6f9a457b09e1 52 shoot=!shoot;
asumamatsumura 0:6f9a457b09e1 53 tim=timer.read_ms();
asumamatsumura 0:6f9a457b09e1 54 }
asumamatsumura 0:6f9a457b09e1 55 old_square=ds3.square();
asumamatsumura 0:6f9a457b09e1 56 //関数
asumamatsumura 0:6f9a457b09e1 57 Hassya(shoot,tim);
asumamatsumura 0:6f9a457b09e1 58 }
asumamatsumura 0:6f9a457b09e1 59 }