NHK
Dependencies: mbed ikarashiMDC PS3
main.cpp@8:1a4d1e8b361c, 2019-09-24 (annotated)
- Committer:
- ee30059v
- Date:
- Tue Sep 24 01:01:47 2019 +0000
- Revision:
- 8:1a4d1e8b361c
- Parent:
- 7:7b9157f8a307
NHK
Who changed what in which revision?
User | Revision | Line number | New 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 | } |