タコ 駆動側
Dependencies: 2017NHKpin_config FEP R1307 PID ikarashiMDC omni_wheel
Fork of NHK2017_octopus2 by
bot/bot.cpp
- Committer:
- uchitake
- Date:
- 2017-09-06
- Revision:
- 6:fe9767a50891
- Parent:
- 5:16ea97725085
- Child:
- 9:39be1525dfe0
File content as of revision 6:fe9767a50891:
#include "bot.h" Bot::Bot() : PIDC(), pad(XBee1TX, XBee1RX, ADDR), motor(MDSDA, MDSCL, solenoidPin), led({DebugLED1, DebugLED2, DebugLED3, DebugLED4}), debugSerial(USBTX, USBRX, 11520) { motor.goXY(0, 0, 0); motor.moveSlider(0); motor.destroy(0); motor.swing(0); motor.shakeHead(0); } void Bot::confirmAll() { receiveSuccessed = pad.receiveState(); if(!receiveSuccessed) { motor.goXY(0, 0, 0); motor.moveSlider(0); motor.destroy(0); motor.swing(0); motor.shakeHead(0); } } void Bot::controllDrive() { if(receiveSuccessed) { if(pad.getNorm(1) > 0.5) { PIDC::PID::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::calculationResult ); } else { motor.goXY(0, 0, 0); } } void Bot::controllDrive2() { float moment = 0; static float beforestick = pad.getStick(2); if(!pad.getButton2(2)) { PIDC::resetPlaneOffset(); } if((beforestick >= 0.5 && pad.getStick(2) < 0.5) || (beforestick <= -0.5 && pad.getStick(2) > -0.5)) { PIDC::PID::setSetPoint(0.0); PIDC::resetAxisOffset(); } if(pad.getStick(2) > 0.5 || pad.getStick(2) < -0.5) { moment = pad.getStick(2) / 4.0; PIDC::confirm(); } if(fabs(pad.getStick(2)) < 0.5) { PIDC::confirm(); moment = PIDC::calculationResult; } if(receiveSuccessed) { motor.goCircular( pad.getNorm(0) / 2.0, pad.getRadian(0) - PIDC::planeCurrentDegree / 10.0 * (M_PI / 180.0) + M_PI, moment ); } else { motor.goXY(0, 0, 0); } beforestick = pad.getStick(2); } void Bot::controllMech() { if(receiveSuccessed) { // 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.6); if(!pad.getButton1(6)) motor.swing(-0.6); 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(receiveSuccessed && !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); } }