機構部

Dependents:   2019BSyudo Bsyudo 2019Bsyudo

Committer:
THtakahiro702286
Date:
Fri Sep 13 03:01:24 2019 +0000
Revision:
1:58b20a731e15
Parent:
0:0b7a52a20594
Child:
3:ff9bb9f8fabe
mechanism

Who changed what in which revision?

UserRevisionLine numberNew contents of line
THtakahiro702286 0:0b7a52a20594 1 #include "mechanism.h"
THtakahiro702286 0:0b7a52a20594 2
THtakahiro702286 1:58b20a731e15 3 Mechanism::Mechanism(Serial* serial)
THtakahiro702286 1:58b20a731e15 4 //////nano (LEDTX,LEDRX,LEDBAUD)
THtakahiro702286 0:0b7a52a20594 5
THtakahiro702286 1:58b20a731e15 6 //encoder(encoder1, encoder2, NC, PPR, QEI::X4_ENCODING)
THtakahiro702286 0:0b7a52a20594 7 {
THtakahiro702286 1:58b20a731e15 8 md = new ikarashiMDC*[12];
THtakahiro702286 1:58b20a731e15 9 for(int i = 0; i < 4; i++) md[i] = new ikarashiMDC(1,i,SM,serial);
THtakahiro702286 1:58b20a731e15 10 for(int i = 0; i < 4; i++) md[i]->braking = true;
THtakahiro702286 1:58b20a731e15 11 for(int i = 0; i < 4; i++) omni.wheel[i].setRadian(PI / 4.0 * (2.0*i+1.0));
THtakahiro702286 1:58b20a731e15 12 for(int i = 4; i < 8; i++)md[i] = new ikarashiMDC(2,i-4,SM,serial);
THtakahiro702286 1:58b20a731e15 13 for(int i = 8; i < 11; i++)md[i] = new ikarashiMDC(3,i-7,SM,serial);
THtakahiro702286 1:58b20a731e15 14 for(int i = 4; i < 12; i++)md[i]-> braking = true;
THtakahiro702286 1:58b20a731e15 15
THtakahiro702286 0:0b7a52a20594 16 }
THtakahiro702286 1:58b20a731e15 17
THtakahiro702286 1:58b20a731e15 18 void Mechanism::sendHeader()
THtakahiro702286 1:58b20a731e15 19 {
THtakahiro702286 1:58b20a731e15 20 }
THtakahiro702286 1:58b20a731e15 21
THtakahiro702286 0:0b7a52a20594 22 void Mechanism::getTrigger(int Trigger)
THtakahiro702286 0:0b7a52a20594 23 {
THtakahiro702286 0:0b7a52a20594 24 trigger = Trigger;
THtakahiro702286 0:0b7a52a20594 25 }
THtakahiro702286 0:0b7a52a20594 26
THtakahiro702286 0:0b7a52a20594 27 void Mechanism::up()
THtakahiro702286 0:0b7a52a20594 28 {
THtakahiro702286 1:58b20a731e15 29 md[8]-> setSpeed(riseSpeed);
THtakahiro702286 1:58b20a731e15 30 //nano .putc(0x01);
THtakahiro702286 1:58b20a731e15 31 md[4]-> setSpeed(0);
THtakahiro702286 1:58b20a731e15 32 md[5]-> setSpeed(0);
THtakahiro702286 1:58b20a731e15 33 md[6]-> setSpeed(0);
THtakahiro702286 1:58b20a731e15 34 md[7]-> setSpeed(0);
THtakahiro702286 1:58b20a731e15 35 // md[8]-> setSpeed(0);
THtakahiro702286 1:58b20a731e15 36 md[9]-> setSpeed(0);
THtakahiro702286 1:58b20a731e15 37 md[10]-> setSpeed(0);
THtakahiro702286 0:0b7a52a20594 38
THtakahiro702286 0:0b7a52a20594 39 }
THtakahiro702286 0:0b7a52a20594 40
THtakahiro702286 0:0b7a52a20594 41 void Mechanism::down()
THtakahiro702286 0:0b7a52a20594 42 {
THtakahiro702286 1:58b20a731e15 43 md[8]-> setSpeed(follSpeed);
THtakahiro702286 1:58b20a731e15 44 md[4]-> setSpeed(0);
THtakahiro702286 1:58b20a731e15 45 md[5]-> setSpeed(0);
THtakahiro702286 1:58b20a731e15 46 md[6]-> setSpeed(0);
THtakahiro702286 1:58b20a731e15 47 md[7]-> setSpeed(0);
THtakahiro702286 1:58b20a731e15 48 // md[8]-> setSpeed(0);
THtakahiro702286 1:58b20a731e15 49 md[9]-> setSpeed(0);
THtakahiro702286 1:58b20a731e15 50 md[10]-> setSpeed(0);
THtakahiro702286 0:0b7a52a20594 51 }
THtakahiro702286 0:0b7a52a20594 52
THtakahiro702286 0:0b7a52a20594 53 void Mechanism::collect()
THtakahiro702286 0:0b7a52a20594 54 {
THtakahiro702286 1:58b20a731e15 55 if(trigger >= 50){
THtakahiro702286 1:58b20a731e15 56 md[10]-> setSpeed(collectSpeed);
THtakahiro702286 0:0b7a52a20594 57 }
THtakahiro702286 0:0b7a52a20594 58 else
THtakahiro702286 0:0b7a52a20594 59 {
THtakahiro702286 1:58b20a731e15 60 md[10]-> setSpeed(-collectSpeed);
THtakahiro702286 0:0b7a52a20594 61 }
THtakahiro702286 1:58b20a731e15 62 md[4]-> setSpeed(0);
THtakahiro702286 1:58b20a731e15 63 md[5]-> setSpeed(0);
THtakahiro702286 1:58b20a731e15 64 md[6]-> setSpeed(0);
THtakahiro702286 1:58b20a731e15 65 md[7]-> setSpeed(0);
THtakahiro702286 1:58b20a731e15 66 md[8]-> setSpeed(0);
THtakahiro702286 1:58b20a731e15 67 md[9]-> setSpeed(0);
THtakahiro702286 1:58b20a731e15 68 // md[10]-> setSpeed(0);
THtakahiro702286 0:0b7a52a20594 69 }
THtakahiro702286 0:0b7a52a20594 70
THtakahiro702286 0:0b7a52a20594 71 void Mechanism::hookRight()
THtakahiro702286 0:0b7a52a20594 72 {
THtakahiro702286 1:58b20a731e15 73 if(trigger >= 50){
THtakahiro702286 1:58b20a731e15 74 md[4]-> setSpeed(-hookSpeed);
THtakahiro702286 0:0b7a52a20594 75 }
THtakahiro702286 0:0b7a52a20594 76 else
THtakahiro702286 0:0b7a52a20594 77 {
THtakahiro702286 1:58b20a731e15 78 md[4]-> setSpeed(hookSpeed);
THtakahiro702286 0:0b7a52a20594 79 }
THtakahiro702286 1:58b20a731e15 80 // md[4]-> setSpeed(0);
THtakahiro702286 1:58b20a731e15 81 md[5]-> setSpeed(0);
THtakahiro702286 1:58b20a731e15 82 md[6]-> setSpeed(0);
THtakahiro702286 1:58b20a731e15 83 md[7]-> setSpeed(0);
THtakahiro702286 1:58b20a731e15 84 md[8]-> setSpeed(0);
THtakahiro702286 1:58b20a731e15 85 md[9]-> setSpeed(0);
THtakahiro702286 1:58b20a731e15 86 md[10]-> setSpeed(0);
THtakahiro702286 0:0b7a52a20594 87 }
THtakahiro702286 0:0b7a52a20594 88
THtakahiro702286 0:0b7a52a20594 89 void Mechanism::hookLeft()
THtakahiro702286 0:0b7a52a20594 90 {
THtakahiro702286 1:58b20a731e15 91 if(trigger >= 50){
THtakahiro702286 1:58b20a731e15 92 md[6]-> setSpeed(hookSpeed);
THtakahiro702286 0:0b7a52a20594 93 }
THtakahiro702286 0:0b7a52a20594 94 else
THtakahiro702286 0:0b7a52a20594 95 {
THtakahiro702286 1:58b20a731e15 96 md[6]-> setSpeed(-hookSpeed);
THtakahiro702286 0:0b7a52a20594 97 }
THtakahiro702286 1:58b20a731e15 98 md[4]-> setSpeed(0);
THtakahiro702286 1:58b20a731e15 99 md[5]-> setSpeed(0);
THtakahiro702286 1:58b20a731e15 100 // md[6]-> setSpeed(0);
THtakahiro702286 1:58b20a731e15 101 md[7]-> setSpeed(0);
THtakahiro702286 1:58b20a731e15 102 md[8]-> setSpeed(0);
THtakahiro702286 1:58b20a731e15 103 md[9]-> setSpeed(0);
THtakahiro702286 1:58b20a731e15 104 md[10]-> setSpeed(0);
THtakahiro702286 0:0b7a52a20594 105 }
THtakahiro702286 0:0b7a52a20594 106
THtakahiro702286 0:0b7a52a20594 107 void Mechanism::loadRight()
THtakahiro702286 0:0b7a52a20594 108 {
THtakahiro702286 1:58b20a731e15 109 if(trigger >= 50){
THtakahiro702286 1:58b20a731e15 110 md[5]-> setSpeed(loadSpeed);
THtakahiro702286 0:0b7a52a20594 111 }
THtakahiro702286 0:0b7a52a20594 112 else{
THtakahiro702286 1:58b20a731e15 113 md[5]-> setSpeed(-loadSpeed);
THtakahiro702286 0:0b7a52a20594 114 }
THtakahiro702286 1:58b20a731e15 115 md[4]-> setSpeed(0);
THtakahiro702286 1:58b20a731e15 116 // md[5]-> setSpeed(0);
THtakahiro702286 1:58b20a731e15 117 md[6]-> setSpeed(0);
THtakahiro702286 1:58b20a731e15 118 md[7]-> setSpeed(0);
THtakahiro702286 1:58b20a731e15 119 md[8]-> setSpeed(0);
THtakahiro702286 1:58b20a731e15 120 md[9]-> setSpeed(0);
THtakahiro702286 1:58b20a731e15 121 md[10]-> setSpeed(0);
THtakahiro702286 0:0b7a52a20594 122 }
THtakahiro702286 0:0b7a52a20594 123
THtakahiro702286 0:0b7a52a20594 124 void Mechanism::loadLeft()
THtakahiro702286 0:0b7a52a20594 125 {
THtakahiro702286 1:58b20a731e15 126 if(trigger >= 50){
THtakahiro702286 0:0b7a52a20594 127 md[7]-> setSpeed(loadSpeed);
THtakahiro702286 0:0b7a52a20594 128 }
THtakahiro702286 0:0b7a52a20594 129 else{
THtakahiro702286 0:0b7a52a20594 130 md[7]-> setSpeed(-loadSpeed);
THtakahiro702286 0:0b7a52a20594 131 }
THtakahiro702286 1:58b20a731e15 132 md[4]-> setSpeed(0);
THtakahiro702286 1:58b20a731e15 133 md[5]-> setSpeed(0);
THtakahiro702286 1:58b20a731e15 134 md[6]-> setSpeed(0);
THtakahiro702286 1:58b20a731e15 135 // md[7]-> setSpeed(0);
THtakahiro702286 1:58b20a731e15 136 md[8]-> setSpeed(0);
THtakahiro702286 1:58b20a731e15 137 md[9]-> setSpeed(0);
THtakahiro702286 1:58b20a731e15 138 md[10]-> setSpeed(0);
THtakahiro702286 0:0b7a52a20594 139 }
THtakahiro702286 0:0b7a52a20594 140
THtakahiro702286 0:0b7a52a20594 141 void Mechanism::lift()
THtakahiro702286 0:0b7a52a20594 142 {
THtakahiro702286 1:58b20a731e15 143 if(trigger >= 50){
THtakahiro702286 1:58b20a731e15 144 md[9]-> setSpeed(liftSpeed);
THtakahiro702286 0:0b7a52a20594 145 }
THtakahiro702286 0:0b7a52a20594 146 else{
THtakahiro702286 1:58b20a731e15 147 md[9]-> setSpeed(-liftSpeed);
THtakahiro702286 0:0b7a52a20594 148 }
THtakahiro702286 1:58b20a731e15 149 md[4]-> setSpeed(0);
THtakahiro702286 1:58b20a731e15 150 md[5]-> setSpeed(0);
THtakahiro702286 1:58b20a731e15 151 md[6]-> setSpeed(0);
THtakahiro702286 1:58b20a731e15 152 md[7]-> setSpeed(0);
THtakahiro702286 1:58b20a731e15 153 md[8]-> setSpeed(0);
THtakahiro702286 1:58b20a731e15 154 // md[9]-> setSpeed(0);
THtakahiro702286 1:58b20a731e15 155 md[10]-> setSpeed(0);
THtakahiro702286 0:0b7a52a20594 156 }
THtakahiro702286 1:58b20a731e15 157
THtakahiro702286 1:58b20a731e15 158 void Mechanism::setBrake(int trigger)
THtakahiro702286 1:58b20a731e15 159 {
THtakahiro702286 1:58b20a731e15 160 brake = trigger / 255.0;
THtakahiro702286 1:58b20a731e15 161 }
THtakahiro702286 1:58b20a731e15 162
THtakahiro702286 1:58b20a731e15 163 void Mechanism::move(float x,float y,float turnPower)
THtakahiro702286 1:58b20a731e15 164 {
THtakahiro702286 1:58b20a731e15 165 omni.computeXY(x,y,turnPower);
THtakahiro702286 1:58b20a731e15 166 for (int i = 0; i < 4; ++i) wheel[i] = omni.wheel[i];
THtakahiro702286 1:58b20a731e15 167 for (int i = 0; i < 4; ++i) md[i]->setSpeed(wheel[i] * brake);
THtakahiro702286 1:58b20a731e15 168 }
THtakahiro702286 1:58b20a731e15 169
THtakahiro702286 1:58b20a731e15 170 void Mechanism::stop()
THtakahiro702286 1:58b20a731e15 171 {
THtakahiro702286 1:58b20a731e15 172 for (int i = 0; i < 4; ++i) md[i]->setSpeed(0);
THtakahiro702286 1:58b20a731e15 173 }
THtakahiro702286 1:58b20a731e15 174
THtakahiro702286 1:58b20a731e15 175 void Mechanism::noAct()
THtakahiro702286 1:58b20a731e15 176 {
THtakahiro702286 1:58b20a731e15 177 md[4]-> setSpeed(0);
THtakahiro702286 1:58b20a731e15 178 md[5]-> setSpeed(0);
THtakahiro702286 1:58b20a731e15 179 md[6]-> setSpeed(0);
THtakahiro702286 1:58b20a731e15 180 md[7]-> setSpeed(0);
THtakahiro702286 1:58b20a731e15 181 md[8]-> setSpeed(0);
THtakahiro702286 1:58b20a731e15 182 md[9]-> setSpeed(0);
THtakahiro702286 1:58b20a731e15 183 md[10]-> setSpeed(0);
THtakahiro702286 1:58b20a731e15 184 }