Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: DigitDisplay Motor PID mbed millis
Fork of DagonFly__RoadToJapan_15Mei_Ultimate by
Diff: PS3Arduino.txt
- Revision:
- 44:452c214d9cf5
- Parent:
- 43:3807a95aa284
- Child:
- 45:964ae71a30e3
--- a/PS3Arduino.txt Sun Mar 12 06:56:53 2017 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,299 +0,0 @@
-/*********************************************************************************************/
-/** **/
-/** PROGRAM KOMUNIKASI DATA JOYSTIK PS3 **/
-/** **/
-/** Joystik PS3 -> Arduino -> STM32Nucleo **/
-/** **/
-/** Fanny Achmad Hindrarta **/
-/** EL'12 - 13212076 **/
-/** **/
-/** 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;
-
-// 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
-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;
-
-// Deklarasi tombol
-boolean kiri_click=0, kanan_click=0, atas_click=0, bawah_click=0;
-boolean segitiga_click=0, lingkaran_click=0, kotak_click=0, silang_click=0;
-boolean L1_click=0, R1_click=0, L3_click=0, R3_click=0;
-boolean START_click=0, SELECT_click=0, PS_click=0;
-
-// Deklarasi variabel tombol analog
-unsigned char LX, LY, RX, RY, aL2, aR2;
-
-// Deklarasi varibel data yang dikirim
-unsigned char button;
-unsigned char RL;
-unsigned int button_click;
-unsigned int RL_click;
-
-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
- {
- Serial.write(0x88);
- Serial.write(0x09);
- }
- if (Usb.Init() == -1) {
- //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"));
-}
-
-/*********************************************************************************************/
-/** **/
-/** FUNGSI PENGIRIMAN DATA **/
-/** - Data yang akan dikirim adalah paket data 8-bit dengan urutan sebagai berikut **/
-/** |------|------|--------|----|--------------|----------|----|----|----|----|----|----| **/
-/** | 0x88 | 0x08 | button | RL | button_click | RL_click | R2 | L2 | RX | RY | LX | LY | **/
-/** |------|------|--------|----|--------------|----------|----|----|----|----|----|----| **/
-/** **/
-/*********************************************************************************************/
-
-void kirimdatajoystik()
-{
-
- Serial.write(0x88);
- Serial.write(0x08);
- Serial.write(button);
- Serial.write(RL);
- Serial.write(button_click);
- Serial.write(RL_click);
- Serial.write(aR2);
- Serial.write(aL2);
- Serial.write(RX);
- Serial.write(RY);
- Serial.write(LX);
- Serial.write(LY);
-
-// Debug
-
-/*
- Serial.print(millis());
- Serial.print("\t");
- Serial.print(button);
- Serial.print("\t");
- Serial.print(RL);
- Serial.print("\t");
- Serial.print(button_click);
- Serial.print("\t");
- Serial.print(RL_click);
- Serial.print("\t");
- Serial.print(aR2);
- Serial.print("\t");
- Serial.print(aL2);
- Serial.print("\t");
- Serial.print(RX);
- Serial.print("\t");
- Serial.print(RY);
- Serial.print("\t");
- Serial.print(LX);
- Serial.print("\t");
- Serial.println(LY);
-*/
-}
-
-/*****************************************************************************************/
-/** SETUP REGISTER dan INISIALISASI **/
-/** - Setup Joystik **/
-/** - Baud Rate Serial 115200, 8-bit, 1 stop, 0 parity **/
-/*****************************************************************************************/
-
-void setup() {
- Serial.begin(115200);
-
- setup_joystik();
-}
-
-
-/*****************************************************************************************/
-/** **/
-/** FUNGSI PEMBACAAN DATA JOYSTIK **/
-/** - Data dari Joystik dikirim melalui Bluetooth. **/
-/** Lihat Library "PS3BT.h" **/
-/** - Data tombol dari joystik adalah data 1-bit. Pengiriman data melalui USART **/
-/** adalah 8-bit. Agar pengiriman data efisien, maka data 1-bit digabungkan **/
-/** agar terbentuk data 8-bit **/
-/** - Penggabungan data segitiga, longkaran, silang, kotak, arah atas, arah kanan, **/
-/** arah bawah, arah kiri disimpan dalam variabel "button" **/
-/** - Urutan data pada variabel "button" dan "button_click" **/
-/** adalah sebagai berikut **/
-/** **/
-/** |------|-------|-------|------|-------|--------|-----------|----------| **/
-/** Bit Ke | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | **/
-/** |------|-------|-------|------|-------|--------|-----------|----------| **/
-/** Data | kiri | bawah | kanan | atas | kotak | silang | lingkaran | segitiga | **/
-/** |------|-------|-------|------|-------|--------|-----------|----------| **/
-/** **/
-/** - Penggabungan data R1, R2, L1, L2, R3, L3, START, dan SELECT disimpan dalam **/
-/** variabel "RL" **/
-/** - Urutan data pada variabel "RL" dan "RL_click" adalah **/
-/** sebagai berikut **/
-/** **/
-/** |----|--------|-------|----|----|----|----| **/
-/** Bit Ke | 6 | 5 | 4 | 3 | 2 | 1 | 0 | **/
-/** |----|--------|-------|----|----|----|----| **/
-/** Data | PS | SELECT | START | L3 | L1 | R3 | R1 | **/
-/** |----|--------|-------|----|----|----|----| **/
-/** **/
-/*****************************************************************************************/
-
-void loop() {
- button = 0;
- RL = 0;
- button_click=0;
- RL_click=0;
- Usb.Task();
-
- // Pembacaan data joystik dilakukan jika PS3 tersambung ke Arduino
- if (PS3.PS3Connected || PS3.PS3NavigationConnected) {
- // Pembacaan dan penggabungan data segitiga, lingkaran, silang, kotak, atas, kanan, bawah, kiri
- // Data bernilai '1' jika tombol ditekan
- if(PS3.getButtonPress(TRIANGLE)){
- button = button + (0x1 << 0);
- }
- if(PS3.getButtonPress(CIRCLE)){
- button = button + (0x1 << 1);
- }
- if(PS3.getButtonPress(CROSS)){
- button = button + (0x1 << 2);
- }
- if(PS3.getButtonPress(SQUARE)){
- button = button + (0x1 << 3);
- }
- if(PS3.getButtonPress(UP)){
- button = button + (0x1 << 4);
- }
- if(PS3.getButtonPress(RIGHT)){
- button = button + (0x1 << 5);
- }
- if(PS3.getButtonPress(DOWN)){
- button = button + (0x1 << 6);
- }
- if(PS3.getButtonPress(LEFT)){
- button = button + (0x1 << 7);
- }
-
- // Pembacaan dan penggabungan data R1, R3, L1, L3, START, SELECT, dan PS
- // Data bernilai '1' jika tombol ditekan
- if(PS3.getButtonPress(R1)){
- RL = RL + (0x1 << 0);
- }
- if(PS3.getButtonPress(R3)){
- RL = RL + (0x1 << 1);
- }
- if(PS3.getButtonPress(L1)){
- RL = RL + (0x1 << 2);
- }
- if(PS3.getButtonPress(L3)){
- RL = RL + (0x1 << 3);
- }
- if(PS3.getButtonPress(START)){
- RL = RL + (0x1 << 4);
- }
- if(PS3.getButtonPress(SELECT)){
- RL = RL + (0x1 << 5);
- }
- if(PS3.getButtonPress(PS)){
- RL = RL + (0x1 << 6);
- }
-
- // 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)){
- button_click = button_click + (0x1 << 0);
- }
- if(PS3.getButtonClick(CIRCLE)){
- button_click = button_click + (0x1 << 1);
- }
- if(PS3.getButtonClick(CROSS)){
- button_click = button_click + (0x1 << 2);
- }
- if(PS3.getButtonClick(SQUARE)){
- button_click = button_click + (0x1 << 3);
- }
- if(PS3.getButtonClick(UP)){
- button_click = button_click + (0x1 << 4);
- }
- if(PS3.getButtonClick(RIGHT)){
- button_click = button_click + (0x1 << 5);
- }
- if(PS3.getButtonClick(DOWN)){
- button_click = button_click + (0x1 << 6);
- }
- if(PS3.getButtonClick(LEFT)){
- button_click = button_click + (0x1 << 7);
- }
-
- if(PS3.getButtonClick(R1)){
- RL_click = RL_click + (0x1 << 0);
- }
- if(PS3.getButtonClick(R3)){
- RL_click = RL_click + (0x1 << 1);
- }
- if(PS3.getButtonClick(L1)){
- RL_click = RL_click + (0x1 << 2);
- }
- if(PS3.getButtonClick(L3)){
- RL_click = RL_click + (0x1 << 3);
- }
- if(PS3.getButtonClick(START)){
- RL_click = RL_click + (0x1 << 4);
- }
- if(PS3.getButtonClick(SELECT)){
- RL_click = RL_click + (0x1 << 5);
- }
- if(PS3.getButtonClick(PS)){
- RL_click = RL_click + (0x1 << 6);
- }
-
- // Tombol Analog
- LX = PS3.getAnalogHat(LeftHatX);
- LY = PS3.getAnalogHat(LeftHatY);
- RX = PS3.getAnalogHat(RightHatX);
- RY = PS3.getAnalogHat(RightHatY);
-
- aL2 = PS3.getAnalogButton(L2);
- aR2 = PS3.getAnalogButton(R2);
-
- kirimdatajoystik();
- } else {
- // PS3 Disconnected
- Serial.write(0x88);
- Serial.write(0x09);
- }
- delay(3);
-}
-
-
\ No newline at end of file
