NHK

Dependencies:   mbed ikarashiMDC PS3

Files at this revision

API Documentation at this revision

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