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.
Arduino_PRO.txt@3:378f57911f5d, 2019-11-08 (annotated)
- Committer:
- masaaki_nr
- Date:
- Fri Nov 08 10:11:32 2019 +0000
- Revision:
- 3:378f57911f5d
- Parent:
- 2:422d5d7602cc
add to disconect
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| kitta5687 | 1:b7d47b40707d | 1 | #include <PS3BT.h> |
| kitta5687 | 1:b7d47b40707d | 2 | #include <usbhub.h> |
| masaaki_nr | 2:422d5d7602cc | 3 | |
| kitta5687 | 1:b7d47b40707d | 4 | #ifdef dobogusinclude |
| kitta5687 | 1:b7d47b40707d | 5 | #include <spi4teensy3.h> |
| kitta5687 | 1:b7d47b40707d | 6 | #endif |
| kitta5687 | 1:b7d47b40707d | 7 | #include <SPI.h> |
| masaaki_nr | 2:422d5d7602cc | 8 | |
| kitta5687 | 1:b7d47b40707d | 9 | USB Usb; |
| kitta5687 | 1:b7d47b40707d | 10 | BTD Btd(&Usb); // You have to create the Bluetooth Dongle instance like so |
| kitta5687 | 1:b7d47b40707d | 11 | PS3BT PS3(&Btd); // This will just create the instance |
| kitta5687 | 1:b7d47b40707d | 12 | //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 |
| masaaki_nr | 2:422d5d7602cc | 13 | |
| kitta5687 | 1:b7d47b40707d | 14 | unsigned long botton_val = 0; |
| masaaki_nr | 2:422d5d7602cc | 15 | |
| kitta5687 | 1:b7d47b40707d | 16 | int sthick[6] = { 0, 0, 0, 0, 0, 0 };//アナログ値格納用:左スティック,右スティック,L2,R2 |
| kitta5687 | 1:b7d47b40707d | 17 | int check = 0; |
| kitta5687 | 1:b7d47b40707d | 18 | uint8_t str[9] = { 0, 0, 0, 0, 0, 0, 0, 0, 0 };//送信データ格納用 |
| masaaki_nr | 2:422d5d7602cc | 19 | |
| kitta5687 | 1:b7d47b40707d | 20 | void setup() { |
| kitta5687 | 1:b7d47b40707d | 21 | Serial.begin(57600); |
| kitta5687 | 1:b7d47b40707d | 22 | //Serial.begin(115200); |
| kitta5687 | 1:b7d47b40707d | 23 | #if !defined(__MIPSEL__) |
| kitta5687 | 1:b7d47b40707d | 24 | while (!Serial); // Wait for serial port to connect - used on Leonardo, Teensy and other boards with built-in USB CDC serial connection |
| kitta5687 | 1:b7d47b40707d | 25 | #endif |
| kitta5687 | 1:b7d47b40707d | 26 | if (Usb.Init() == -1) { |
| kitta5687 | 1:b7d47b40707d | 27 | while (1); //halt |
| kitta5687 | 1:b7d47b40707d | 28 | } |
| kitta5687 | 1:b7d47b40707d | 29 | } |
| kitta5687 | 1:b7d47b40707d | 30 | void loop() { |
| masaaki_nr | 2:422d5d7602cc | 31 | Usb.Task(); |
| masaaki_nr | 2:422d5d7602cc | 32 | if (PS3.PS3Connected || PS3.PS3NavigationConnected) { |
| masaaki_nr | 2:422d5d7602cc | 33 | sthick[0] = PS3.getAnalogHat(LeftHatX); |
| masaaki_nr | 2:422d5d7602cc | 34 | sthick[1] = PS3.getAnalogHat(LeftHatY); |
| masaaki_nr | 2:422d5d7602cc | 35 | sthick[2] = PS3.getAnalogHat(RightHatX); |
| masaaki_nr | 2:422d5d7602cc | 36 | sthick[3] = PS3.getAnalogHat(RightHatY); |
| masaaki_nr | 2:422d5d7602cc | 37 | sthick[4] = PS3.getAnalogButton(L2); |
| masaaki_nr | 2:422d5d7602cc | 38 | sthick[5] = PS3.getAnalogButton(R2); |
| masaaki_nr | 2:422d5d7602cc | 39 | |
| masaaki_nr | 2:422d5d7602cc | 40 | check = Serial.read(); |
| kitta5687 | 1:b7d47b40707d | 41 | |
| masaaki_nr | 2:422d5d7602cc | 42 | switch(check){ |
| masaaki_nr | 2:422d5d7602cc | 43 | case 1: |
| masaaki_nr | 2:422d5d7602cc | 44 | if (PS3.getButtonPress(PS)) bitSet(botton_val, 0); //PS3.disconnect(); |
| masaaki_nr | 2:422d5d7602cc | 45 | if (PS3.getButtonPress(TRIANGLE)) bitSet(botton_val, 1); |
| masaaki_nr | 2:422d5d7602cc | 46 | if (PS3.getButtonPress(CIRCLE)) bitSet(botton_val, 2); |
| masaaki_nr | 2:422d5d7602cc | 47 | if (PS3.getButtonPress(CROSS)) bitSet(botton_val, 3); |
| masaaki_nr | 2:422d5d7602cc | 48 | if (PS3.getButtonPress(SQUARE)) bitSet(botton_val, 4); |
| masaaki_nr | 2:422d5d7602cc | 49 | |
| masaaki_nr | 2:422d5d7602cc | 50 | if (PS3.getButtonPress(UP)) bitSet(botton_val, 5); |
| masaaki_nr | 2:422d5d7602cc | 51 | if (PS3.getButtonPress(RIGHT)) bitSet(botton_val, 6); |
| masaaki_nr | 2:422d5d7602cc | 52 | if (PS3.getButtonPress(DOWN)) bitSet(botton_val, 7); |
| masaaki_nr | 2:422d5d7602cc | 53 | if (PS3.getButtonPress(LEFT)) bitSet(botton_val, 8); |
| masaaki_nr | 2:422d5d7602cc | 54 | |
| masaaki_nr | 2:422d5d7602cc | 55 | if (PS3.getButtonPress(L1)) bitSet(botton_val, 9); |
| masaaki_nr | 2:422d5d7602cc | 56 | if (PS3.getButtonPress(L3)) bitSet(botton_val, 10); |
| masaaki_nr | 2:422d5d7602cc | 57 | if (PS3.getButtonPress(R1)) bitSet(botton_val, 11); |
| masaaki_nr | 2:422d5d7602cc | 58 | if (PS3.getButtonPress(R3)) bitSet(botton_val, 12); |
| masaaki_nr | 2:422d5d7602cc | 59 | |
| masaaki_nr | 2:422d5d7602cc | 60 | if (PS3.getButtonPress(SELECT)) bitSet(botton_val, 13); |
| masaaki_nr | 2:422d5d7602cc | 61 | if (PS3.getButtonPress(START)) bitSet(botton_val, 14); |
| masaaki_nr | 2:422d5d7602cc | 62 | break; |
| kitta5687 | 1:b7d47b40707d | 63 | |
| masaaki_nr | 2:422d5d7602cc | 64 | case 2: |
| masaaki_nr | 2:422d5d7602cc | 65 | if (PS3.getButtonClick(PS)) bitSet(botton_val, 0); //PS3.disconnect(); |
| masaaki_nr | 2:422d5d7602cc | 66 | if (PS3.getButtonClick(TRIANGLE)) bitSet(botton_val, 1); |
| masaaki_nr | 2:422d5d7602cc | 67 | if (PS3.getButtonClick(CIRCLE)) bitSet(botton_val, 2); |
| masaaki_nr | 2:422d5d7602cc | 68 | if (PS3.getButtonClick(CROSS)) bitSet(botton_val, 3); |
| masaaki_nr | 2:422d5d7602cc | 69 | if (PS3.getButtonClick(SQUARE)) bitSet(botton_val, 4); |
| masaaki_nr | 2:422d5d7602cc | 70 | |
| masaaki_nr | 2:422d5d7602cc | 71 | if (PS3.getButtonClick(UP)) bitSet(botton_val, 5); |
| masaaki_nr | 2:422d5d7602cc | 72 | if (PS3.getButtonClick(RIGHT)) bitSet(botton_val, 6); |
| masaaki_nr | 2:422d5d7602cc | 73 | if (PS3.getButtonClick(DOWN)) bitSet(botton_val, 7); |
| masaaki_nr | 2:422d5d7602cc | 74 | if (PS3.getButtonClick(LEFT)) bitSet(botton_val, 8); |
| masaaki_nr | 2:422d5d7602cc | 75 | |
| masaaki_nr | 2:422d5d7602cc | 76 | if (PS3.getButtonClick(L1)) bitSet(botton_val, 9); |
| masaaki_nr | 2:422d5d7602cc | 77 | if (PS3.getButtonClick(L3)) bitSet(botton_val, 10); |
| masaaki_nr | 2:422d5d7602cc | 78 | if (PS3.getButtonClick(R1)) bitSet(botton_val, 11); |
| masaaki_nr | 2:422d5d7602cc | 79 | if (PS3.getButtonClick(R3)) bitSet(botton_val, 12); |
| masaaki_nr | 2:422d5d7602cc | 80 | |
| masaaki_nr | 2:422d5d7602cc | 81 | if (PS3.getButtonClick(SELECT)) bitSet(botton_val, 13); |
| masaaki_nr | 2:422d5d7602cc | 82 | if (PS3.getButtonClick(START)) bitSet(botton_val, 14); |
| masaaki_nr | 2:422d5d7602cc | 83 | break; |
| masaaki_nr | 3:378f57911f5d | 84 | |
| masaaki_nr | 3:378f57911f5d | 85 | case 3: |
| masaaki_nr | 3:378f57911f5d | 86 | PS3.disconnect(); |
| masaaki_nr | 3:378f57911f5d | 87 | break; |
| kitta5687 | 1:b7d47b40707d | 88 | } |
| masaaki_nr | 2:422d5d7602cc | 89 | /***********************************************/ |
| masaaki_nr | 2:422d5d7602cc | 90 | str[0] = botton_val & 0x00ff; |
| masaaki_nr | 2:422d5d7602cc | 91 | str[1] = botton_val >> 8; |
| masaaki_nr | 2:422d5d7602cc | 92 | botton_val = 0; |
| masaaki_nr | 2:422d5d7602cc | 93 | |
| masaaki_nr | 2:422d5d7602cc | 94 | for (int i = 2; i < 8; i++) { |
| masaaki_nr | 2:422d5d7602cc | 95 | str[i] = sthick[i - 2]; |
| masaaki_nr | 2:422d5d7602cc | 96 | } |
| masaaki_nr | 2:422d5d7602cc | 97 | |
| masaaki_nr | 2:422d5d7602cc | 98 | //str[8] = 0; |
| masaaki_nr | 2:422d5d7602cc | 99 | str[8] = PS3.PS3Connected;//コントローラが接続されているか確認 |
| masaaki_nr | 2:422d5d7602cc | 100 | /***********************************************/ |
| masaaki_nr | 2:422d5d7602cc | 101 | // check = Serial.read();//nucleoからの受信データ確認 |
| masaaki_nr | 2:422d5d7602cc | 102 | |
| masaaki_nr | 2:422d5d7602cc | 103 | if (check > 0) Serial.write(str, 9); |
| masaaki_nr | 2:422d5d7602cc | 104 | else{} |
| masaaki_nr | 2:422d5d7602cc | 105 | |
| masaaki_nr | 2:422d5d7602cc | 106 | Serial.flush(); |
| masaaki_nr | 2:422d5d7602cc | 107 | check = 0; |
| masaaki_nr | 2:422d5d7602cc | 108 | } |
| masaaki_nr | 2:422d5d7602cc | 109 | else{ |
| masaaki_nr | 2:422d5d7602cc | 110 | check = Serial.read();//nucleoからの受信データ確認 |
| masaaki_nr | 2:422d5d7602cc | 111 | memset(str,0,9); |
| masaaki_nr | 2:422d5d7602cc | 112 | if (check > 0) Serial.write(str, 9); |
| masaaki_nr | 2:422d5d7602cc | 113 | Serial.flush(); |
| masaaki_nr | 2:422d5d7602cc | 114 | check = 0; |
| masaaki_nr | 2:422d5d7602cc | 115 | } |
| kitta5687 | 1:b7d47b40707d | 116 | } |