機構部
Dependents: 2019BSyudo Bsyudo 2019Bsyudo
mechanism.cpp
- Committer:
- THtakahiro702286
- Date:
- 2019-09-13
- Revision:
- 1:58b20a731e15
- Parent:
- 0:0b7a52a20594
- Child:
- 3:ff9bb9f8fabe
File content as of revision 1:58b20a731e15:
#include "mechanism.h" Mechanism::Mechanism(Serial* serial) //////nano (LEDTX,LEDRX,LEDBAUD) //encoder(encoder1, encoder2, NC, PPR, QEI::X4_ENCODING) { md = new ikarashiMDC*[12]; for(int i = 0; i < 4; i++) md[i] = new ikarashiMDC(1,i,SM,serial); for(int i = 0; i < 4; i++) md[i]->braking = true; for(int i = 0; i < 4; i++) omni.wheel[i].setRadian(PI / 4.0 * (2.0*i+1.0)); for(int i = 4; i < 8; i++)md[i] = new ikarashiMDC(2,i-4,SM,serial); for(int i = 8; i < 11; i++)md[i] = new ikarashiMDC(3,i-7,SM,serial); for(int i = 4; i < 12; i++)md[i]-> braking = true; } void Mechanism::sendHeader() { } void Mechanism::getTrigger(int Trigger) { trigger = Trigger; } void Mechanism::up() { md[8]-> setSpeed(riseSpeed); //nano .putc(0x01); md[4]-> setSpeed(0); md[5]-> setSpeed(0); md[6]-> setSpeed(0); md[7]-> setSpeed(0); // md[8]-> setSpeed(0); md[9]-> setSpeed(0); md[10]-> setSpeed(0); } void Mechanism::down() { md[8]-> setSpeed(follSpeed); md[4]-> setSpeed(0); md[5]-> setSpeed(0); md[6]-> setSpeed(0); md[7]-> setSpeed(0); // md[8]-> setSpeed(0); md[9]-> setSpeed(0); md[10]-> setSpeed(0); } void Mechanism::collect() { if(trigger >= 50){ md[10]-> setSpeed(collectSpeed); } else { md[10]-> setSpeed(-collectSpeed); } md[4]-> setSpeed(0); md[5]-> setSpeed(0); md[6]-> setSpeed(0); md[7]-> setSpeed(0); md[8]-> setSpeed(0); md[9]-> setSpeed(0); // md[10]-> setSpeed(0); } void Mechanism::hookRight() { if(trigger >= 50){ md[4]-> setSpeed(-hookSpeed); } else { md[4]-> setSpeed(hookSpeed); } // md[4]-> setSpeed(0); md[5]-> setSpeed(0); md[6]-> setSpeed(0); md[7]-> setSpeed(0); md[8]-> setSpeed(0); md[9]-> setSpeed(0); md[10]-> setSpeed(0); } void Mechanism::hookLeft() { if(trigger >= 50){ md[6]-> setSpeed(hookSpeed); } else { md[6]-> setSpeed(-hookSpeed); } md[4]-> setSpeed(0); md[5]-> setSpeed(0); // md[6]-> setSpeed(0); md[7]-> setSpeed(0); md[8]-> setSpeed(0); md[9]-> setSpeed(0); md[10]-> setSpeed(0); } void Mechanism::loadRight() { if(trigger >= 50){ md[5]-> setSpeed(loadSpeed); } else{ md[5]-> setSpeed(-loadSpeed); } md[4]-> setSpeed(0); // md[5]-> setSpeed(0); md[6]-> setSpeed(0); md[7]-> setSpeed(0); md[8]-> setSpeed(0); md[9]-> setSpeed(0); md[10]-> setSpeed(0); } void Mechanism::loadLeft() { if(trigger >= 50){ md[7]-> setSpeed(loadSpeed); } else{ md[7]-> setSpeed(-loadSpeed); } md[4]-> setSpeed(0); md[5]-> setSpeed(0); md[6]-> setSpeed(0); // md[7]-> setSpeed(0); md[8]-> setSpeed(0); md[9]-> setSpeed(0); md[10]-> setSpeed(0); } void Mechanism::lift() { if(trigger >= 50){ md[9]-> setSpeed(liftSpeed); } else{ md[9]-> setSpeed(-liftSpeed); } md[4]-> setSpeed(0); md[5]-> setSpeed(0); md[6]-> setSpeed(0); md[7]-> setSpeed(0); md[8]-> setSpeed(0); // md[9]-> setSpeed(0); md[10]-> setSpeed(0); } void Mechanism::setBrake(int trigger) { brake = trigger / 255.0; } void Mechanism::move(float x,float y,float turnPower) { omni.computeXY(x,y,turnPower); for (int i = 0; i < 4; ++i) wheel[i] = omni.wheel[i]; for (int i = 0; i < 4; ++i) md[i]->setSpeed(wheel[i] * brake); } void Mechanism::stop() { for (int i = 0; i < 4; ++i) md[i]->setSpeed(0); } void Mechanism::noAct() { md[4]-> setSpeed(0); md[5]-> setSpeed(0); md[6]-> setSpeed(0); md[7]-> setSpeed(0); md[8]-> setSpeed(0); md[9]-> setSpeed(0); md[10]-> setSpeed(0); }