a

Dependencies:   mbed SBDBT arrc_mbed air

Committer:
asumamatsumura
Date:
Thu Mar 03 04:38:27 2022 +0000
Revision:
0:01e14841369a
hassya_ras;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
asumamatsumura 0:01e14841369a 1 #include "mbed.h"
asumamatsumura 0:01e14841369a 2 #include "scrp_slave.hpp"
asumamatsumura 0:01e14841369a 3 #include "air.hpp"
asumamatsumura 0:01e14841369a 4 #include "sbdbt.hpp"
asumamatsumura 0:01e14841369a 5 ScrpSlave slave(PC_12,PD_2,PH_1,SERIAL_TX,SERIAL_RX,0x0807ffff);
asumamatsumura 0:01e14841369a 6 Serial pc(SERIAL_TX,SERIAL_RX);
asumamatsumura 0:01e14841369a 7 DigitalIn limitA(PB_12,PullUp);
asumamatsumura 0:01e14841369a 8 DigitalIn limitB(PC_8,PullUp);
asumamatsumura 0:01e14841369a 9 Air catch_no(PA_0);
asumamatsumura 0:01e14841369a 10 DigitalOut Led1(PA_10);
asumamatsumura 0:01e14841369a 11 DigitalOut Led2(PB_15);
asumamatsumura 0:01e14841369a 12 //↓モーター
asumamatsumura 0:01e14841369a 13 void driveMotorS(double pwm){
asumamatsumura 0:01e14841369a 14 PwmOut up_pin_A(PB_13);
asumamatsumura 0:01e14841369a 15 PwmOut up_pin_B(PB_14);
asumamatsumura 0:01e14841369a 16 up_pin_A.period_us(2048);
asumamatsumura 0:01e14841369a 17 up_pin_B.period_us(2048);
asumamatsumura 0:01e14841369a 18 if (!pwm) {
asumamatsumura 0:01e14841369a 19 up_pin_A = 0;
asumamatsumura 0:01e14841369a 20 up_pin_B = 0;
asumamatsumura 0:01e14841369a 21 } else if (0 < pwm) {
asumamatsumura 0:01e14841369a 22 up_pin_A = pwm;
asumamatsumura 0:01e14841369a 23 up_pin_B = 0;
asumamatsumura 0:01e14841369a 24 } else {
asumamatsumura 0:01e14841369a 25 up_pin_A = 0;
asumamatsumura 0:01e14841369a 26 up_pin_B= -pwm;
asumamatsumura 0:01e14841369a 27 }
asumamatsumura 0:01e14841369a 28 }
asumamatsumura 0:01e14841369a 29 //↓昇降
asumamatsumura 0:01e14841369a 30 //速さはテキトー
asumamatsumura 0:01e14841369a 31 bool Up(int rx_data,int &tx_data){
asumamatsumura 0:01e14841369a 32 if(rx_data==1 && !limitA){
asumamatsumura 0:01e14841369a 33 driveMotorS(0.3);
asumamatsumura 0:01e14841369a 34 Led2.write(1);
asumamatsumura 0:01e14841369a 35 }else if(rx_data==-1 && !limitB){
asumamatsumura 0:01e14841369a 36 driveMotorS(-0.3);
asumamatsumura 0:01e14841369a 37 Led2.write(1);
asumamatsumura 0:01e14841369a 38 }else{
asumamatsumura 0:01e14841369a 39 driveMotorS(0);
asumamatsumura 0:01e14841369a 40 Led2.write(0);
asumamatsumura 0:01e14841369a 41 }
asumamatsumura 0:01e14841369a 42 return true;
asumamatsumura 0:01e14841369a 43 }
asumamatsumura 0:01e14841369a 44 //↓回収用
asumamatsumura 0:01e14841369a 45 bool CATCH_NO(int rx_data,int &tx_data){
asumamatsumura 0:01e14841369a 46 catch_no.move(rx_data);
asumamatsumura 0:01e14841369a 47 Led1.write(rx_data);
asumamatsumura 0:01e14841369a 48 return true;
asumamatsumura 0:01e14841369a 49 }
asumamatsumura 0:01e14841369a 50
asumamatsumura 0:01e14841369a 51 int main(){
asumamatsumura 0:01e14841369a 52 slave.addCMD(7,CATCH_NO);
asumamatsumura 0:01e14841369a 53 slave.addCMD(8,Up);
asumamatsumura 0:01e14841369a 54 while(true);
asumamatsumura 0:01e14841369a 55 }