Taiyo Koga
/
teamA_kamifubuki
Unko buriburi
main.cpp
- Committer:
- koga641028
- Date:
- 2020-08-26
- Revision:
- 0:dfd7b420339f
- Child:
- 1:aec7284f51de
File content as of revision 0:dfd7b420339f:
/* * ====================== * VS-C3/VS-RCV3 PIN * ====================== * 1:NC 2:NC * 3:DAT 4:CMD * 5:SEL 6:CLK * 7:+5~7V 8:NC * 9:+3V 10:GND * */ #include "mbed.h" #include "PS_PAD.h" class Motor{ PwmOut a, b; public: Motor(PinName A_term, PinName B_term) : a(A_term), b(B_term) { a.period(0.001); b.period(0.001); } Motor& operator=(double duty) { if(duty > 0){ a = duty < 1 ? duty : 1; b = 0; }else { a = 0; b = duty > -1 ? -duty : -1; } return *this; } }; PS_PAD vsc3(PA_7, PA_6, PA_5, PA_4); //MOSI, MISO, SCK, SS DigitalIn lim[7] = {PD_2, PD_3, PD_4, PD_5, PD_6, PD_7, PG_9}; Motor rmotor(PE_9, PE_11); Motor lmotor(PE_13, PE_14); Motor sxmotor(PA_0, PA_1); Motor tsmotor(PA_2, PA_3); Motor trmotor(PC_6, PC_7); Motor tlmotor(PC_8, PC_9); int main() { vsc3.init(); double movey = 0, turn = 0; printf("START\n"); while(1) { vsc3.poll(); if (vsc3.read(PS_PAD::PAD_TOP)){ movey = -1; }else if(vsc3.read(PS_PAD::PAD_BOTTOM)){ movey = 1; }else if(abs(vsc3.read(PS_PAD::ANALOG_LY)) > 10){ movey = (vsc3.read(PS_PAD::ANALOG_LY)) / 128.0; }else{ movey = 0; } if (vsc3.read(PS_PAD::PAD_RIGHT)){ turn = -1; }else if(PS_PAD::PAD_LEFT){ turn = 1; }else if(abs(vsc3.read(PS_PAD::ANALOG_LX)) > 10){ turn = (vsc3.read(PS_PAD::ANALOG_LX)) / 128.0; }else{ turn = 0; } rmotor = -movey+turn; //move lmotor = -movey-turn; if (vsc3.read(PS_PAD::PAD_CIRCLE) && lim[0] == 0){ //limitswitch sxmotor = 1; }else if(vsc3.read(PS_PAD::PAD_X) && lim[1] == 0){ sxmotor = -1; }else if(vsc3.read(PS_PAD::PAD_CIRCLE) && vsc3.read(PS_PAD::PAD_X)){ sxmotor = 0; }else{ sxmotor = 0; } if (vsc3.read(PS_PAD::PAD_TRIANGLE) && lim[2] == 0){ tsmotor = 1; }else if(vsc3.read(PS_PAD::PAD_SQUARE) && lim[3] == 0){ tsmotor = -1; }else if(vsc3.read(PS_PAD::PAD_TRIANGLE) && vsc3.read(PS_PAD::PAD_SQUARE)){ tsmotor = 0; }else{ tsmotor = 0; } if (vsc3.read(PS_PAD::PAD_R1) && lim[4] == 0){ trmotor = 1; }else if(vsc3.read(PS_PAD::PAD_R2) && lim[5] == 0){ trmotor = -1; }else if(vsc3.read(PS_PAD::PAD_R1) && vsc3.read(PS_PAD::PAD_R2)){ trmotor = 0; }else{ trmotor = 0; } if (vsc3.read(PS_PAD::PAD_L1) && lim[6] == 0){ tlmotor = 1; }else if(vsc3.read(PS_PAD::PAD_L2) && lim[7] == 0){ tlmotor = -1; }else if(vsc3.read(PS_PAD::PAD_L1) && vsc3.read(PS_PAD::PAD_L2)){ tlmotor = 0; }else{ tlmotor = 0; } wait(0.05); } }