Update 18 Februari 2017, PID laucnher dan Base sudah diperbarui

Dependencies:   Motor PID Joystick_OrdoV5 mbed millis

Fork of MainProgram_BaseBaru_otomatis-reloader by KRAI 2017

Revision:
2:ac21a024ac80
Parent:
0:9072e932503c
Child:
12:e07c59c28c29
diff -r 56bd3e8f38c5 -r ac21a024ac80 PS3Arduino.txt
--- a/PS3Arduino.txt	Sat Jun 06 06:19:06 2015 +0000
+++ b/PS3Arduino.txt	Sat Jun 27 07:37:28 2015 +0000
@@ -7,23 +7,33 @@
 /** Fanny Achmad Hindrarta                                                                  **/
 /** EL'12 - 13212076                                                                        **/
 /**                                                                                         **/
-/** Last Update : 15 Januari 2015, 20.30                                                    **/
+/** Last Update : 01 Februar1 2015, 20.30                                                   **/
 /*********************************************************************************************/
 
 #include <PS3BT.h>
 #include <usbhub.h>
+//#include <PS3USB.h>
 #include "Arduino.h"
 // Satisfy IDE, which only needs to see the include statment in the ino.
 #ifdef dobogusinclude
 #include <spi4teensy3.h>
 #endif
 
+
 USB Usb;
-/* You can create the instance of the class in two ways */
+
+// Bluetooth
+// You can create the instance of the class in two ways 
 BTD Btd(&Usb); // You have to create the Bluetooth Dongle instance like so
-/* You can create the instance of the class in two ways */
+//You can create the instance of the class in two ways 
 PS3BT PS3(&Btd); // This will just create the instance
 //PS3BT PS3(&Btd, 0x00, 0x15, 0x83, 0x3D, 0x0A, 0x57); // This will also store the bluetooth address - this can be obtained from the dongle when running the sketch
+/*
+// USB
+// You can create the instance of the class in two ways
+PS3USB PS3(&Usb); // This will just create the instance
+//PS3USB PS3(&Btd, 0x00, 0x15, 0x83, 0x3D, 0x0A, 0x57); // This will also store the bluetooth address - this can be obtained from the dongle when running the sketch
+*/
 
 boolean printAngle;
 uint8_t state = 0;
@@ -45,12 +55,20 @@
 
 void setup_joystik()
 {
-    while (!Serial); // Wait for serial port to connect - used on Leonardo, Teensy and other boards with built-in USB CDC serial connection
+    while (!Serial) // Wait for serial port to connect - used on Leonardo, Teensy and other boards with built-in USB CDC serial connection
+        {
+                Serial.write(0x88);
+        Serial.write(0x09);
+        }
     if (Usb.Init() == -1) {
-        Serial.print(F("\r\nOSC did not start"));
-        while (1); //halt
+        //Serial.print(F("\r\nOSC did not start"));
+        while (1) //halt
+                {
+                         Serial.write(0x88);
+                 Serial.write(0x09);
+                }
     }
-    Serial.print(F("\r\nPS3 USB Library Started"));
+    //Serial.print(F("\r\nPS3 USB Library Started"));
 }
 
 /*********************************************************************************************/
@@ -78,6 +96,7 @@
     Serial.write(RY);
     Serial.write(LX);
     Serial.write(LY);
+
 // Debug    
 
 /*
@@ -153,7 +172,8 @@
 void loop() {
     button = 0;
     RL = 0;
-
+        button_click=0;
+        RL_click=0;
     Usb.Task();
 
     // Pembacaan data joystik dilakukan jika PS3 tersambung ke Arduino
@@ -212,58 +232,52 @@
         // Pembacaan dan penggabungan data segitiga, lingkaran, silang, kotak, atas, kanan, bawah, kiri
         // Data bernilai '1' hanya saat tombol pertama kali ditekan
         if(PS3.getButtonClick(TRIANGLE)){
-            segitiga_click = !segitiga_click;
+            button_click = button_click + (0x1 << 0);
         }
         if(PS3.getButtonClick(CIRCLE)){
-            lingkaran_click = !lingkaran_click;
+            button_click = button_click + (0x1 << 1);
         }
         if(PS3.getButtonClick(CROSS)){
-            silang_click = !silang_click;
+            button_click = button_click + (0x1 << 2);
         }
         if(PS3.getButtonClick(SQUARE)){
-            kotak_click = !kotak_click;
+            button_click = button_click + (0x1 << 3);
         }
         if(PS3.getButtonClick(UP)){
-            atas_click = !atas_click;
+            button_click = button_click + (0x1 << 4);
         }
         if(PS3.getButtonClick(RIGHT)){
-            kanan_click = !kanan_click;
+            button_click = button_click + (0x1 << 5);
         }
         if(PS3.getButtonClick(DOWN)){
-            bawah_click = !bawah_click;
+            button_click = button_click + (0x1 << 6);
         }
         if(PS3.getButtonClick(LEFT)){
-            kiri_click = !kiri_click;
+            button_click = button_click + (0x1 << 7);
         }
 
-        button_click = 0;
-        button_click = (segitiga_click << 0) + (lingkaran_click << 1) + (silang_click << 2) + (kotak_click << 3) + (atas_click << 4) + (kanan_click << 5) + (bawah_click << 6) + (kiri_click << 7);
-
         if(PS3.getButtonClick(R1)){
-            R1_click = !R1_click;
+            RL_click = RL_click + (0x1 << 0);
         }
         if(PS3.getButtonClick(R3)){
-            R3_click = !R3_click;
+            RL_click = RL_click + (0x1 << 1);
         }
         if(PS3.getButtonClick(L1)){
-            L1_click = !L1_click;
+            RL_click = RL_click + (0x1 << 2);
         }
         if(PS3.getButtonClick(L3)){
-            L3_click = !L3_click;
+            RL_click = RL_click + (0x1 << 3);
         }
         if(PS3.getButtonClick(START)){
-            START_click = !START_click;
+            RL_click = RL_click + (0x1 << 4);
         }
         if(PS3.getButtonClick(SELECT)){
-            SELECT_click = !SELECT_click;
+            RL_click = RL_click + (0x1 << 5);
         }
         if(PS3.getButtonClick(PS)){
-            PS_click = !PS_click;
+            RL_click = RL_click + (0x1 << 6);
         }
 
-        RL_click = 0;
-        RL_click = (R1_click << 0) + (R3_click << 1) + (L1_click << 2) + (L3_click << 3) + (START_click << 4) + (SELECT_click << 5) + (PS_click << 6);
-
         // Tombol Analog
         LX = PS3.getAnalogHat(LeftHatX);
         LY = PS3.getAnalogHat(LeftHatY);
@@ -272,12 +286,12 @@
         
         aL2 = PS3.getAnalogButton(L2);
         aR2 = PS3.getAnalogButton(R2);
+            
+                kirimdatajoystik();
     } else {
         // PS3 Disconnected
         Serial.write(0x88);
         Serial.write(0x09);
     }
-
-    kirimdatajoystik();
-    delay(5);
-}
\ No newline at end of file
+    delay(3);
+}