広大 目黑 / Mbed 2 deprecated src2019

Dependencies:   mbed

Committer:
megu29
Date:
Fri Sep 13 11:18:21 2019 +0000
Revision:
0:d14e21c64226
Child:
1:8a67adccebd9
0913;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
megu29 0:d14e21c64226 1 #include "mbed.h"
megu29 0:d14e21c64226 2 #include "main.h"
megu29 0:d14e21c64226 3 #include "moterdrive.h"
megu29 0:d14e21c64226 4 #include "DualShockMod.h"
megu29 0:d14e21c64226 5
megu29 0:d14e21c64226 6 #define PERIOD 100
megu29 0:d14e21c64226 7
megu29 0:d14e21c64226 8 DigitalOut my_led(LED1);
megu29 0:d14e21c64226 9 PwmOut md1_pwm1(PB_2);
megu29 0:d14e21c64226 10 DigitalOut md1_cw1(PB_12);
megu29 0:d14e21c64226 11 DigitalOut md1_ccw1(PB_1);
megu29 0:d14e21c64226 12 DigitalOut md1_dis1(PA_11);
megu29 0:d14e21c64226 13
megu29 0:d14e21c64226 14 PwmOut md1_pwm2(PB_15);
megu29 0:d14e21c64226 15 DigitalOut md1_cw2(PA_12);
megu29 0:d14e21c64226 16 DigitalOut md1_ccw2(PB_14);
megu29 0:d14e21c64226 17 DigitalOut md1_dis2(PB_13);
megu29 0:d14e21c64226 18
megu29 0:d14e21c64226 19 PwmOut md2_pwm1(PC_7);
megu29 0:d14e21c64226 20 DigitalOut md2_cw1(PA_8);
megu29 0:d14e21c64226 21 DigitalOut md2_ccw1(PA_3);
megu29 0:d14e21c64226 22 DigitalOut md2_dis1(PB_10);
megu29 0:d14e21c64226 23
megu29 0:d14e21c64226 24 PwmOut md2_pwm2(PB_3);
megu29 0:d14e21c64226 25 DigitalOut md2_cw2(PB_4);
megu29 0:d14e21c64226 26 DigitalOut md2_ccw2(PA_10);
megu29 0:d14e21c64226 27 DigitalOut md2_dis2(PB_5);
megu29 0:d14e21c64226 28
megu29 0:d14e21c64226 29 DigitalIn Limit1(PC_9);
megu29 0:d14e21c64226 30 DigitalIn Limit2(PC_8);
megu29 0:d14e21c64226 31 DigitalIn Limit3(PC_6);
megu29 0:d14e21c64226 32 DigitalIn Limit4(PC_5);
megu29 0:d14e21c64226 33
megu29 0:d14e21c64226 34 DigitalIn photo1(PA_6);
megu29 0:d14e21c64226 35 DigitalIn photo2(PA_7);
megu29 0:d14e21c64226 36 DigitalIn photo3(PB_6);
megu29 0:d14e21c64226 37
megu29 0:d14e21c64226 38 //serial通信
megu29 0:d14e21c64226 39 Serial pc(SERIAL_TX, SERIAL_RX);
megu29 0:d14e21c64226 40 Serial tsuushin(PC_10,PC_11);
megu29 0:d14e21c64226 41
megu29 0:d14e21c64226 42
megu29 0:d14e21c64226 43 /*プロトタイプ宣言*/
megu29 0:d14e21c64226 44 void moter(int num, char dir, float power);
megu29 0:d14e21c64226 45
megu29 0:d14e21c64226 46
megu29 0:d14e21c64226 47 Timer timer;
megu29 0:d14e21c64226 48
megu29 0:d14e21c64226 49 int main(){
megu29 0:d14e21c64226 50 double posX = 0;
megu29 0:d14e21c64226 51 double posY = 0;
megu29 0:d14e21c64226 52
megu29 0:d14e21c64226 53 typedef enum{
megu29 0:d14e21c64226 54 WAIT,
megu29 0:d14e21c64226 55 HARI1,
megu29 0:d14e21c64226 56 HARI2,
megu29 0:d14e21c64226 57 HARI3,
megu29 0:d14e21c64226 58 SYM1,
megu29 0:d14e21c64226 59 END
megu29 0:d14e21c64226 60 }SEQENCE;
megu29 0:d14e21c64226 61 SEQENCE seq = WAIT;
megu29 0:d14e21c64226 62
megu29 0:d14e21c64226 63 typedef enum{
megu29 0:d14e21c64226 64 STOP,
megu29 0:d14e21c64226 65 FFAST,
megu29 0:d14e21c64226 66 FSLOW,
megu29 0:d14e21c64226 67 RIGHT,
megu29 0:d14e21c64226 68 LEFT,
megu29 0:d14e21c64226 69 RROLL,
megu29 0:d14e21c64226 70 LROLL,
megu29 0:d14e21c64226 71 BACK
megu29 0:d14e21c64226 72 }MOVEDIR;
megu29 0:d14e21c64226 73 MOVEDIR move = STOP;
megu29 0:d14e21c64226 74
megu29 0:d14e21c64226 75 //エンコーダーの値
megu29 0:d14e21c64226 76 pc.printf("posX=%d,posY=%d\n\r",posX,posY);
megu29 0:d14e21c64226 77 uint8_t InitDS(Serial* f_serial);
megu29 0:d14e21c64226 78 void getPOSdata(void);
megu29 0:d14e21c64226 79 tsuushin.baud(115200);
megu29 0:d14e21c64226 80 InitDS(&tsuushin);
megu29 0:d14e21c64226 81 tsuushin.attach(&getPOSdata, Serial::RxIrq); //受信したら割り込み開始
megu29 0:d14e21c64226 82
megu29 0:d14e21c64226 83
megu29 0:d14e21c64226 84 timer.start();
megu29 0:d14e21c64226 85 while(1){
megu29 0:d14e21c64226 86 //代入部
megu29 0:d14e21c64226 87 // posX = ;
megu29 0:d14e21c64226 88 // posY = ;
megu29 0:d14e21c64226 89
megu29 0:d14e21c64226 90 switch(seq){
megu29 0:d14e21c64226 91 case WAIT:
megu29 0:d14e21c64226 92 if(timer.read_ms() > 3000){
megu29 0:d14e21c64226 93 seq = HARI1;
megu29 0:d14e21c64226 94 timer.reset();
megu29 0:d14e21c64226 95 }
megu29 0:d14e21c64226 96 break;
megu29 0:d14e21c64226 97 case HARI1:
megu29 0:d14e21c64226 98 move = FFAST;
megu29 0:d14e21c64226 99
megu29 0:d14e21c64226 100 break;
megu29 0:d14e21c64226 101
megu29 0:d14e21c64226 102 }
megu29 0:d14e21c64226 103
megu29 0:d14e21c64226 104
megu29 0:d14e21c64226 105 switch(move){
megu29 0:d14e21c64226 106 case STOP:
megu29 0:d14e21c64226 107 moter(0,STOP,0);
megu29 0:d14e21c64226 108 moter(1,STOP,0);
megu29 0:d14e21c64226 109 moter(2,STOP,0);
megu29 0:d14e21c64226 110 break;
megu29 0:d14e21c64226 111 case FFAST:
megu29 0:d14e21c64226 112 moter(0,STOP,0);
megu29 0:d14e21c64226 113 moter(1,cw,1);
megu29 0:d14e21c64226 114 moter(2,ccw,1);
megu29 0:d14e21c64226 115 break;
megu29 0:d14e21c64226 116 case FSLOW:
megu29 0:d14e21c64226 117 moter(0,STOP,0);
megu29 0:d14e21c64226 118 moter(1,cw,0.5);
megu29 0:d14e21c64226 119 moter(2,ccw,0.5);
megu29 0:d14e21c64226 120 break;
megu29 0:d14e21c64226 121 case BACK:
megu29 0:d14e21c64226 122 moter(0,STOP,0);
megu29 0:d14e21c64226 123 moter(1,ccw,1);
megu29 0:d14e21c64226 124 moter(2,cw,1);
megu29 0:d14e21c64226 125 break;
megu29 0:d14e21c64226 126 case RROLL:
megu29 0:d14e21c64226 127 moter(0,ccw,0.3);
megu29 0:d14e21c64226 128 moter(1,ccw,0.3);
megu29 0:d14e21c64226 129 moter(2,ccw,0.3);
megu29 0:d14e21c64226 130 break;
megu29 0:d14e21c64226 131 case LROLL:
megu29 0:d14e21c64226 132 moter(0,cw,0.3);
megu29 0:d14e21c64226 133 moter(1,cw,0.3);
megu29 0:d14e21c64226 134 moter(2,cw,0.3);
megu29 0:d14e21c64226 135 break;
megu29 0:d14e21c64226 136 case RIGHT:
megu29 0:d14e21c64226 137 moter(0,cw,1);
megu29 0:d14e21c64226 138 moter(1,ccw,0.5);
megu29 0:d14e21c64226 139 moter(2,ccw,0.5);
megu29 0:d14e21c64226 140 break;
megu29 0:d14e21c64226 141 case LEFT:
megu29 0:d14e21c64226 142 moter(0,ccw,1);
megu29 0:d14e21c64226 143 moter(1,cw,0.5);
megu29 0:d14e21c64226 144 moter(2,cw,0.5);
megu29 0:d14e21c64226 145 break;
megu29 0:d14e21c64226 146
megu29 0:d14e21c64226 147 }
megu29 0:d14e21c64226 148
megu29 0:d14e21c64226 149
megu29 0:d14e21c64226 150
megu29 0:d14e21c64226 151
megu29 0:d14e21c64226 152 }
megu29 0:d14e21c64226 153 }
megu29 0:d14e21c64226 154
megu29 0:d14e21c64226 155
megu29 0:d14e21c64226 156
megu29 0:d14e21c64226 157 void moter(int num, char dir, float power){
megu29 0:d14e21c64226 158
megu29 0:d14e21c64226 159 int output;
megu29 0:d14e21c64226 160 if(num == 0){
megu29 0:d14e21c64226 161 if(dir == cw){
megu29 0:d14e21c64226 162 md1_cw1 = 1;
megu29 0:d14e21c64226 163 md1_ccw1 = 0;
megu29 0:d14e21c64226 164 }
megu29 0:d14e21c64226 165 else if(dir == ccw){
megu29 0:d14e21c64226 166 md1_cw1 = 0;
megu29 0:d14e21c64226 167 md1_ccw1 = 1;
megu29 0:d14e21c64226 168 }
megu29 0:d14e21c64226 169 else if(dir == STOP){
megu29 0:d14e21c64226 170 md1_cw1 = 0;
megu29 0:d14e21c64226 171 md1_ccw1 = 0;
megu29 0:d14e21c64226 172 }
megu29 0:d14e21c64226 173 output = PERIOD * power ;
megu29 0:d14e21c64226 174 md1_pwm1.pulsewidth_ms(output);
megu29 0:d14e21c64226 175 }
megu29 0:d14e21c64226 176 if(num == 1){
megu29 0:d14e21c64226 177 if(dir == cw){
megu29 0:d14e21c64226 178 md1_cw2 = 1;
megu29 0:d14e21c64226 179 md1_ccw2 = 0;
megu29 0:d14e21c64226 180 }
megu29 0:d14e21c64226 181 else if(dir == ccw){
megu29 0:d14e21c64226 182 md1_cw2 = 0;
megu29 0:d14e21c64226 183 md1_ccw2 = 1;
megu29 0:d14e21c64226 184 }
megu29 0:d14e21c64226 185 else if(dir == STOP){
megu29 0:d14e21c64226 186 md1_cw2 = 0;
megu29 0:d14e21c64226 187 md1_ccw2 = 0;
megu29 0:d14e21c64226 188 }
megu29 0:d14e21c64226 189 output = PERIOD * power ;
megu29 0:d14e21c64226 190 md1_pwm2.pulsewidth_ms(output);
megu29 0:d14e21c64226 191 }
megu29 0:d14e21c64226 192 if(num == 2){
megu29 0:d14e21c64226 193 if(dir == cw){
megu29 0:d14e21c64226 194 md2_cw1 = 1;
megu29 0:d14e21c64226 195 md2_ccw1 = 0;
megu29 0:d14e21c64226 196 }
megu29 0:d14e21c64226 197 else if(dir == ccw){
megu29 0:d14e21c64226 198 md2_cw1 = 0;
megu29 0:d14e21c64226 199 md2_ccw1 = 1;
megu29 0:d14e21c64226 200 }
megu29 0:d14e21c64226 201 else if(dir == STOP){
megu29 0:d14e21c64226 202 md2_cw1 = 0;
megu29 0:d14e21c64226 203 md2_ccw1 = 0;
megu29 0:d14e21c64226 204 }
megu29 0:d14e21c64226 205 output = PERIOD * power ;
megu29 0:d14e21c64226 206 md2_pwm1.pulsewidth_ms(output);
megu29 0:d14e21c64226 207 }
megu29 0:d14e21c64226 208 if(num == 3){
megu29 0:d14e21c64226 209 if(dir == cw){
megu29 0:d14e21c64226 210 md2_cw2 = 1;
megu29 0:d14e21c64226 211 md2_ccw2 = 0;
megu29 0:d14e21c64226 212 }
megu29 0:d14e21c64226 213 else if(dir == ccw){
megu29 0:d14e21c64226 214 md2_cw2 = 0;
megu29 0:d14e21c64226 215 md2_ccw2 = 1;
megu29 0:d14e21c64226 216 }
megu29 0:d14e21c64226 217 else if(dir == STOP){
megu29 0:d14e21c64226 218 md2_cw2 = 0;
megu29 0:d14e21c64226 219 md2_ccw2 = 0;
megu29 0:d14e21c64226 220 }
megu29 0:d14e21c64226 221 output = PERIOD * power ;
megu29 0:d14e21c64226 222 md2_pwm2.pulsewidth_ms(output);
megu29 0:d14e21c64226 223 }
megu29 0:d14e21c64226 224
megu29 0:d14e21c64226 225
megu29 0:d14e21c64226 226
megu29 0:d14e21c64226 227
megu29 0:d14e21c64226 228 }
megu29 0:d14e21c64226 229