NHK
Dependencies: mbed ikarashiMDC PS3
Revision 8:1a4d1e8b361c, committed 2019-09-24
- Comitter:
- ee30059v
- Date:
- Tue Sep 24 01:01:47 2019 +0000
- Parent:
- 7:7b9157f8a307
- Commit message:
- NHK
Changed in this revision
PS3.lib | Show annotated file Show diff for this revision Revisions of this file |
main.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/PS3.lib Tue Sep 24 01:01:47 2019 +0000 @@ -0,0 +1,1 @@ +https://os.mbed.com/teams/NHK-Robocon2016_Nagaoka_B_Team/code/PS3/#78827486d24f
--- a/main.cpp Wed Dec 12 08:44:10 2018 +0000 +++ b/main.cpp Tue Sep 24 01:01:47 2019 +0000 @@ -1,9 +1,14 @@ #include "mbed.h" #include "ikarashiMDC.h" -Serial serial(PA_0, PA_1); +#include "PS3.h" +Serial serial(PA_0, PA_1,115200); DigitalOut serialcontrol(D2); - -ikarashiMDC ikarashi[] { +Serial pc(USBTX,USBRX,115200); +DigitalIn joystickB(D2); +AnalogIn triggerX(A4); +AnalogIn triggerY(A5); +PS3 ps3(PC_10,PC_11); +ikarashiMDC ikarashi[]{ ikarashiMDC(&serialcontrol,2,0,SM,&serial), ikarashiMDC(&serialcontrol,2,1,SM,&serial), ikarashiMDC(&serialcontrol,2,2,SM,&serial), @@ -17,12 +22,74 @@ float i = -1; ikarashi[0].braking = true; float pwm = 0; + int b[12], stick[4], trigger[2]; + /*ボタンスイッチ*/ + for(int i = 0; i < 12; i++) { + b[i] = ps3.getButton(i); + pc.printf("%2d",b[i]); + } + /*㊧(R)=4、右(L)=5*/ + double S[4]; + + double X; + double Y; + int T; + int F; + ikarashi[0].braking = true; while(1) { + X = triggerX*100; + Y = triggerY*100; + T = b[6]; + F = b[8]; + + if(X==0 && Y==0 && F==1 && T==1)//止まってる// + { + S[0] = ikarashi[0].setSpeed(0); + S[1] = ikarashi[1].setSpeed(0); + S[2] = ikarashi[2].setSpeed(0); + S[3] = ikarashi[3].setSpeed(0); + } - pwm += 0.0005; - ikarashi[0].setSpeed(sin(pwm)); - ikarashi[1].setSpeed(sin(pwm)); - ikarashi[2].setSpeed(sin(pwm)); - ikarashi[3].setSpeed(sin(pwm)); + if(X<=100 && Y==0 && F==1 && T==1)//ばね閉じる// + { + S[0] = ikarashi[0].setSpeed(X*0.005); + S[1] = ikarashi[1].setSpeed(X*-0.005); + S[2] = ikarashi[2].setSpeed(0); + S[3] = ikarashi[3].setSpeed(0); + } + + if(X==0 && Y<=100 && F==1 && T==1)//ばね開く// + { + S[0] = ikarashi[0].setSpeed(Y*-0.005); + S[1] = ikarashi[1].setSpeed(Y*0.005); + S[2] = ikarashi[2].setSpeed(0); + S[3] = ikarashi[3].setSpeed(0); + } + + if(X>=10 && X<=100 && Y>=10 && Y<=100 && F==1 && T==1)//回転(振り向き?)// + { + S[0] = ikarashi[0].setSpeed(0); + S[1] = ikarashi[1].setSpeed(0); + S[2] = ikarashi[2].setSpeed((X+Y)*0.0025); + S[3] = ikarashi[3].setSpeed(0); + } + + if(X==0 && Y==0 && F==1 && T==0)//晴天// + { + S[0] = ikarashi[0].setSpeed(0); + S[1] = ikarashi[1].setSpeed(0); + S[2] = ikarashi[2].setSpeed(0); + S[3] = ikarashi[3].setSpeed(0.5); + } + + if(X==0 && Y==0 && F==0 && T==1)//曇天// + { + S[0] = ikarashi[0].setSpeed(0); + S[1] = ikarashi[1].setSpeed(0); + S[2] = ikarashi[2].setSpeed(0); + S[3] = ikarashi[3].setSpeed(-0.5); + } + + pc.printf("%3d .%3d.%3d.%3d.%3d.%3d\r\n",X,Y,S[0],S[1],S[2],S[3]); } } \ No newline at end of file