Selasa, 28 Juli 2020

Cara Gampang Mengganti Stik Ps2 Jadi Remote Kendali Dengan Arduino (Library Ps2x)

Stik Playstation PS2 Saat ini memang sulit untuk ditemui, karena sekarang zamannya memakai stik ps4 keatas, akan tetapi untuk hobies elektro, stik ps2 mampu dijadikan selaku remote kontrol. Terlebih stick PS menggunakan komunikasi SPI sebagai interfacenya. Resminya dari Website miliki Bill Porter dapat di buka disini . Gambar dibawah ialah wiring dari pinout konektor PS2. Diambil dari situs web Bill porter. Dimana mampu sobat sambung dengan menggunakan kabel untuk menghubungkan arduino ke connector PS tersebut. Perhatikan wiring konektornya seperti berikut: Sedangkan pada arduino wiringnya selaku berikut: Sebagai example sobat copy acara berikut : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 #include //for v1.6 PS2X ps2x; // create PS2 Controller Class //right now, the library does NOT support hot pluggable controllers, meaning //you must always either restart your Arduino after you conect the controller, //or call config_gamepad(pins) again after connecting the controller. int error = 0 ; byte type = 0 ; byte vibrate = 0 ; int LY, LX, RY, RX, LYold, LXold, RYold, RXold; void setup () Serial.begin( 115200 ); //CHANGES for v1.6 HERE!!! **************PAY ATTENTION************* delay( 500 ); error = ps2x.config_gamepad( 13 , 11 , 10 , 12 , false , false ); //setup pins and settings: GamePad(clock, command, attention, data, Pressures?, Rumble?) check for error if (error == 0 ) Serial.println( "Found Controller, configured successful" ); else if (error == 1 ) Serial.println( "No controller found, check wiring, see readme.txt to enable debug. visit www.billporter.isu for troubleshooting tips" ); else if (error == 2 ) Serial.println( "Controller found but not accepting commands. see readme.txt to enable debug. Visit www.billporter.informasi for troubleshooting tips" ); else if (error == 3 ) Serial.println( "Controller refusing to enter Pressures mode, may not support it. " ); //Serial.print(ps2x.Analog(1), HEX); type = ps2x.readType(); switch (type) case 0 : Serial.println( "Unknown Controller type" ); break ; case 1 : Serial.println( "DualShock Controller Found" ); break ; case 2 : Serial.println( "GuitarHero Controller Found" ); break ; void loop () RY != RYold) Serial.print( "R Stick Values:" ); Serial.print(RY, DEC); Serial.print( "," ); Serial.println(RX, DEC); LYold = LY; LXold = LX; RYold = RY; RXold = RX; delay( 20 ); Penjelasan : Program diatas hanya men-scan tombol dan mendeteksi pergantian tombolnya tergolong pergeseran analog joysticknya. Saya juga mematikan beberapa fitur seperti getar dan analog pada tombol PAD(tombol arah). Akan tetapi program diatas agak sering berulang kali tidak mendeteksi stick PSnya, Jika sahabat  mendapatkan masalah pembacaan stick PS nya  memakai SPI clock lambat. Sobat bisa mengedit library Bill Porter ini, karena terlalu cepat buat stick PS biasa (produksi china). Buka library dari perlambat SCKnya. perhatikan PS2X_lib.h  yang default selaku berikut : 92 93 94 95 96 97 #ifdef __AVR__ // AVR # include # define CTRL_CLK 4 # define CTRL_BYTE_DELAY 3 #else Kemudian edit menjadi: 92 93 94 95 96 97 #ifdef __AVR__ // AVR # include # define CTRL_CLK 10 # define CTRL_BYTE_DELAY 10 #else Kemudian save, coba kembali insa Allah stick PS pribadi terdeteksi tanpa perlu mereset arduinonya.
Sumber http://jufrikablog.blogspot.com


EmoticonEmoticon