NHK

Dependencies:   mbed ikarashiMDC PS3

Committer:
ee30059v
Date:
Tue Sep 24 01:01:47 2019 +0000
Revision:
8:1a4d1e8b361c
Parent:
7:7b9157f8a307
NHK

Who changed what in which revision?

UserRevisionLine numberNew contents of line
WAT34 0:3b9eb11e9b4b 1 #include "mbed.h"
WAT34 0:3b9eb11e9b4b 2 #include "ikarashiMDC.h"
ee30059v 8:1a4d1e8b361c 3 #include "PS3.h"
ee30059v 8:1a4d1e8b361c 4 Serial serial(PA_0, PA_1,115200);
WAT34 1:f63faad28bb1 5 DigitalOut serialcontrol(D2);
ee30059v 8:1a4d1e8b361c 6 Serial pc(USBTX,USBRX,115200);
ee30059v 8:1a4d1e8b361c 7 DigitalIn joystickB(D2);
ee30059v 8:1a4d1e8b361c 8 AnalogIn triggerX(A4);
ee30059v 8:1a4d1e8b361c 9 AnalogIn triggerY(A5);
ee30059v 8:1a4d1e8b361c 10 PS3 ps3(PC_10,PC_11);
ee30059v 8:1a4d1e8b361c 11 ikarashiMDC ikarashi[]{
WAT34 4:c298acf71fa8 12 ikarashiMDC(&serialcontrol,2,0,SM,&serial),
WAT34 4:c298acf71fa8 13 ikarashiMDC(&serialcontrol,2,1,SM,&serial),
WAT34 1:f63faad28bb1 14 ikarashiMDC(&serialcontrol,2,2,SM,&serial),
WAT34 4:c298acf71fa8 15 ikarashiMDC(&serialcontrol,2,3,SM,&serial)
WAT34 1:f63faad28bb1 16 };
WAT34 1:f63faad28bb1 17 PwmOut pwm(LED1);
WAT34 0:3b9eb11e9b4b 18
tanabe2000 7:7b9157f8a307 19 int main()
tanabe2000 7:7b9157f8a307 20 {
tanabe2000 7:7b9157f8a307 21 serial.baud(115200);
WAT34 2:211e4d6e430b 22 float i = -1;
tanabe2000 7:7b9157f8a307 23 ikarashi[0].braking = true;
tanabe2000 7:7b9157f8a307 24 float pwm = 0;
ee30059v 8:1a4d1e8b361c 25 int b[12], stick[4], trigger[2];
ee30059v 8:1a4d1e8b361c 26 /*ボタンスイッチ*/
ee30059v 8:1a4d1e8b361c 27 for(int i = 0; i < 12; i++) {
ee30059v 8:1a4d1e8b361c 28 b[i] = ps3.getButton(i);
ee30059v 8:1a4d1e8b361c 29 pc.printf("%2d",b[i]);
ee30059v 8:1a4d1e8b361c 30 }
ee30059v 8:1a4d1e8b361c 31 /*㊧(R)=4、右(L)=5*/
ee30059v 8:1a4d1e8b361c 32 double S[4];
ee30059v 8:1a4d1e8b361c 33
ee30059v 8:1a4d1e8b361c 34 double X;
ee30059v 8:1a4d1e8b361c 35 double Y;
ee30059v 8:1a4d1e8b361c 36 int T;
ee30059v 8:1a4d1e8b361c 37 int F;
ee30059v 8:1a4d1e8b361c 38 ikarashi[0].braking = true;
WAT34 0:3b9eb11e9b4b 39 while(1) {
ee30059v 8:1a4d1e8b361c 40 X = triggerX*100;
ee30059v 8:1a4d1e8b361c 41 Y = triggerY*100;
ee30059v 8:1a4d1e8b361c 42 T = b[6];
ee30059v 8:1a4d1e8b361c 43 F = b[8];
ee30059v 8:1a4d1e8b361c 44
ee30059v 8:1a4d1e8b361c 45 if(X==0 && Y==0 && F==1 && T==1)//止まってる//
ee30059v 8:1a4d1e8b361c 46 {
ee30059v 8:1a4d1e8b361c 47 S[0] = ikarashi[0].setSpeed(0);
ee30059v 8:1a4d1e8b361c 48 S[1] = ikarashi[1].setSpeed(0);
ee30059v 8:1a4d1e8b361c 49 S[2] = ikarashi[2].setSpeed(0);
ee30059v 8:1a4d1e8b361c 50 S[3] = ikarashi[3].setSpeed(0);
ee30059v 8:1a4d1e8b361c 51 }
WAT34 4:c298acf71fa8 52
ee30059v 8:1a4d1e8b361c 53 if(X<=100 && Y==0 && F==1 && T==1)//ばね閉じる//
ee30059v 8:1a4d1e8b361c 54 {
ee30059v 8:1a4d1e8b361c 55 S[0] = ikarashi[0].setSpeed(X*0.005);
ee30059v 8:1a4d1e8b361c 56 S[1] = ikarashi[1].setSpeed(X*-0.005);
ee30059v 8:1a4d1e8b361c 57 S[2] = ikarashi[2].setSpeed(0);
ee30059v 8:1a4d1e8b361c 58 S[3] = ikarashi[3].setSpeed(0);
ee30059v 8:1a4d1e8b361c 59 }
ee30059v 8:1a4d1e8b361c 60
ee30059v 8:1a4d1e8b361c 61 if(X==0 && Y<=100 && F==1 && T==1)//ばね開く//
ee30059v 8:1a4d1e8b361c 62 {
ee30059v 8:1a4d1e8b361c 63 S[0] = ikarashi[0].setSpeed(Y*-0.005);
ee30059v 8:1a4d1e8b361c 64 S[1] = ikarashi[1].setSpeed(Y*0.005);
ee30059v 8:1a4d1e8b361c 65 S[2] = ikarashi[2].setSpeed(0);
ee30059v 8:1a4d1e8b361c 66 S[3] = ikarashi[3].setSpeed(0);
ee30059v 8:1a4d1e8b361c 67 }
ee30059v 8:1a4d1e8b361c 68
ee30059v 8:1a4d1e8b361c 69 if(X>=10 && X<=100 && Y>=10 && Y<=100 && F==1 && T==1)//回転(振り向き?)//
ee30059v 8:1a4d1e8b361c 70 {
ee30059v 8:1a4d1e8b361c 71 S[0] = ikarashi[0].setSpeed(0);
ee30059v 8:1a4d1e8b361c 72 S[1] = ikarashi[1].setSpeed(0);
ee30059v 8:1a4d1e8b361c 73 S[2] = ikarashi[2].setSpeed((X+Y)*0.0025);
ee30059v 8:1a4d1e8b361c 74 S[3] = ikarashi[3].setSpeed(0);
ee30059v 8:1a4d1e8b361c 75 }
ee30059v 8:1a4d1e8b361c 76
ee30059v 8:1a4d1e8b361c 77 if(X==0 && Y==0 && F==1 && T==0)//晴天//
ee30059v 8:1a4d1e8b361c 78 {
ee30059v 8:1a4d1e8b361c 79 S[0] = ikarashi[0].setSpeed(0);
ee30059v 8:1a4d1e8b361c 80 S[1] = ikarashi[1].setSpeed(0);
ee30059v 8:1a4d1e8b361c 81 S[2] = ikarashi[2].setSpeed(0);
ee30059v 8:1a4d1e8b361c 82 S[3] = ikarashi[3].setSpeed(0.5);
ee30059v 8:1a4d1e8b361c 83 }
ee30059v 8:1a4d1e8b361c 84
ee30059v 8:1a4d1e8b361c 85 if(X==0 && Y==0 && F==0 && T==1)//曇天//
ee30059v 8:1a4d1e8b361c 86 {
ee30059v 8:1a4d1e8b361c 87 S[0] = ikarashi[0].setSpeed(0);
ee30059v 8:1a4d1e8b361c 88 S[1] = ikarashi[1].setSpeed(0);
ee30059v 8:1a4d1e8b361c 89 S[2] = ikarashi[2].setSpeed(0);
ee30059v 8:1a4d1e8b361c 90 S[3] = ikarashi[3].setSpeed(-0.5);
ee30059v 8:1a4d1e8b361c 91 }
ee30059v 8:1a4d1e8b361c 92
ee30059v 8:1a4d1e8b361c 93 pc.printf("%3d .%3d.%3d.%3d.%3d.%3d\r\n",X,Y,S[0],S[1],S[2],S[3]);
WAT34 0:3b9eb11e9b4b 94 }
tanabe2000 7:7b9157f8a307 95 }