PlayStation Controller library

Dependents:   PSController_Sample coba_stick_PS2 basehybrid_PSPAD Base_Hybrid_V3 ... more

PlayStation Controller

SONY プレイステーション2用コントローラーを mbed に接続して使えるライブラリです。

SPI 機能を使います。

サードパーティ製や、VSTONE製のコントローラー(VS-C1、VS-C3)も使用できます。

ピンアサイン

PS PAD

=========================
| 9 8 7 | 6 5 4 | 3 2 1 |
 -----------------------
PS PADVS-C3Signalmbed
13DATMISO
24CMDMOSI
3+5-7V
410GNDGND
59+3V+3.3V
65SELCS
76CLKSCK
8
9ACK
Revision:
0:6eeefcf5a37a
Child:
1:840370e1dcce
diff -r 000000000000 -r 6eeefcf5a37a PS_PAD.h
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/PS_PAD.h	Wed Dec 11 04:42:44 2013 +0000
@@ -0,0 +1,48 @@
+/*
+ * PlayStation Controller library
+ * Copyright (c) 2013 Hiroshi Suga
+ */
+
+#include "mbed.h"
+
+class PS_PAD {
+public:
+    enum TYPE {
+        PAD_LEFT,
+        PAD_BOTTOM,
+        PAD_RIGHT,
+        PAD_TOP,
+        PAD_START,
+        ANALOG_LEFT,
+        ANALOG_RIGHT,
+        PAD_SELECT,
+        PAD_SQUARE,
+        PAD_X,
+        PAD_CIRCLE,
+        PAD_TRIANGLE,
+        PAD_R1,
+        PAD_L1,
+        PAD_R2,
+        PAD_L2,
+        ANALOG_RX,
+        ANALOG_RY,
+        ANALOG_LX,
+        ANALOG_LY,
+    };
+
+    PS_PAD (PinName mosi, PinName miso, PinName sck, PinName cs);
+    PS_PAD (SPI &spi, PinName cs);
+
+    int init ();
+    int poll ();
+    int read (TYPE t);
+    int vibration (int v1, int v2);
+
+private:
+    SPI _spi;
+    DigitalOut _cs;
+    char _pad[6];
+    int _vib1, _vib2;
+
+    int send (const char *cmd, int len, char *dat);
+};