タコ 駆動側
Dependencies: 2017NHKpin_config FEP R1307 PID ikarashiMDC omni_wheel
Fork of NHK2017_octopus2 by
bot/bot.cpp
- Committer:
- uchitake
- Date:
- 2017-09-06
- Revision:
- 4:1073deb368df
- Parent:
- 3:369d9ee17e84
- Child:
- 5:16ea97725085
File content as of revision 4:1073deb368df:
#include "bot.h" Bot::Bot() : PIDC(), pad(XBee1TX, XBee1RX, ADDR), motor(MDSDA, MDSCL, solenoidPin) { motor.goXY(0, 0, 0); motor.moveSlider(0); motor.destroy(0); motor.swing(0); motor.shakeHead(0); } void Bot::confirmAll() { suc = pad.receiveState(); PIDC::confirm(); if(!suc) { motor.goXY(0, 0, 0); motor.moveSlider(0); motor.destroy(0); motor.swing(0); motor.shakeHead(0); } } void Bot::controllDrive() { if(suc) { if(pad.getNorm(1) > 0.5) { PIDC::setSetPoint((pad.getRadian(1) - M_PI / 2) * (180.0 / M_PI)); PIDC::confirm(); } motor.goXY(pad.getStick(0) / 2.0,-pad.getStick(1) /2.0, PIDC::co); } else { motor.goXY(0, 0, 0); } } void Bot::controllDrive2() { float moment = 0; static float beforestick = pad.getStick(2); if((beforestick >= 0.5 && pad.getStick(2) < 0.5) || (beforestick <= -0.5 && pad.getStick(2) > -0.5)) { PIDC::setSetPoint(PIDC::getDegree() / 10.0); } if(pad.getStick(2) > 0.5 || pad.getStick(2) < -0.5) { moment = pad.getStick(2) / 2.0; PIDC::confirm(); } if(fabs(pad.getStick(2)) < 0.5) { PIDC::confirm(); moment = PIDC::co; } if(suc) { motor.goCircular(pad.getNorm(0),pad.getRadian(0) - PIDC::getDegree() / 10.0 * (M_PI / 180.0) + M_PI, moment); } else { motor.goXY(0, 0, 0); } beforestick = pad.getStick(2); } void Bot::controllMech() { if(suc) { // if(!pad.getButton1(0)) motor.moveSlider(ARM_MAX_SPEED); // if(!pad.getButton1(1)) motor.moveSlider(-ARM_MAX_SPEED); // if(pad.getButton1(0) && pad.getButton1(1)) motor.moveSlider(0); // // if(!pad.getButton1(3)) motor.shakeHead(ARM_MAX_SPEED); // if(!pad.getButton1(4)) motor.shakeHead(-ARM_MAX_SPEED); // if(pad.getButton1(3) && pad.getButton1(4)) motor.shakeHead(0); // if(!pad.getButton1(5)) motor.swing(0.2); if(!pad.getButton1(6)) motor.swing(-0.2); if(pad.getButton1(5) && pad.getButton1(6)) motor.swing(0); // // if(!pad.getButton1(2)) { // motor.destroy(DESTROY_MAX_SPEED); // } else { // motor.destroy(0); // } // if(!pad.getButton2(1)) motor.release(); } else { motor.moveSlider(0); motor.destroy(0); motor.swing(0); motor.shakeHead(0); } } void Bot::calibrate() { if(suc && !pad.getButton2(0) && !pad.getButton2(1)) { PIDC::calibration(HMC6352_ENTER_CALIB); motor.goXY(0, 0, 0.4); wait(5.0); motor.goXY(0, 0, 0); PIDC::calibration(HMC6352_EXIT_CALIB); } }