Sesuai dengan judul kita kali ini, meka akan memberikan beberapa artikel tentang interfaceing wireless joystick PS2 dengan mikrokonroler. Perkembangan dunia robotic di tanah air dalam decade ini meningkat pesat, terlebih banyak diselengarakanya iven-iven perlombaan robotic baik yang robot berkaki maupun beroda dengan sistem otomatis dan manual. Untuk sistem yang manual diperlukan sebuah consule remote untuk mengendalikan pergerakan robot yang dibuat, so ini yang sering menjadi masalah bagi para pengila robot baik itu dari akademis ( mahasiswa) maupun bagi penghoby robotic. Pengunaan Wireless Joystik PS2 diharapkan dapat memberikan solusi bagi teman-teman kita semua, menginggat harga wireless joystick PS2 murah meriah Cuma RP.165.000,- saja. kalo masih kemahalan pake yang biasa saja harga Cuma Rp.80.000,- .
Sob mau beli Konsul joystip PS2 wireless dan biasa disini sob..
Oke kita langsung ke TKP. Ane angap soba udah punya joystick PS2 baik yang wireless maupun yang kabel. Biar ni artikel kagak membosenin ane kasi gambar aja deh.
Gimana sob udah ada gambaran kan artikel yang sob baca ini.
NEXT. Selajutnya kita masuk ke tahap berikutnya
Wireless joystick PS2 yang digunakan oleh ane buatan dari EXXEN dengan frekeunsi wireless 2.4 GHz teknologi. Untuk data pancar lumayan jauh sob…. Sekitar 18 meter masih oke… lihat gambar dibawah sob….
Sebelum masuk ke tahap interfacing, ane kanan jelaskan beberapa teori tentang PS2 Kontroler Protokol
1. PIN KONFIGURASI dan comunication
Konfigurasi pin yang ane massud adalah wiring Conetor Joystik PS2, ini gambarnya sob
Wireless joystick PS2 mengunakan komunikasi SPI (Serial Pheripehal Interface) atau bias orang sebut sebagai 3 wire interface. 1. PIN KONFIGURASI dan comunication
Konfigurasi pin yang ane massud adalah wiring Conetor Joystik PS2, ini gambarnya sob
2. DATA PROTOKOL
Untuk berkomunikasi dengan kontroler pada joystick PS2 diperlukan beberapa proses pengiriman ID .
- Mikrokontroler mengirim data &H01 (start up)
- Setelah itu mikrokontroler mengirim data &H42 (read data)
- Kemudian disaat yang sama mikrokontroler akan menerima data tipe joystick yang digunakan.
&H73 = Konsul Analog
- Setelah itu mikrokontroler akan menerima data &H5
- Data byte pertama akan diterima kemudian byte kedua, setelah itu data analog 1 dan analog 2
3. FRAME DATA
Pertarhatikan table dibawah …bro
Pertarhatikan table dibawah …bro
Sepintas sob sudah baca tentang perangkat joystick PS2, langkah selanjutnya kita buat rangkaiannya sob. Untuk rangkaian interface antara mikrokontroler dan joystick PS2 baik itu yang wireless maupun yang kabel sama saja. Ada beberapa referensi yang mengunakan resistor sebagai pengaman, akan tetapi ane rasa itu tidak perlu karena tegangan kerja dari kedua perangkat ini berlevelkan sama yaitu 5volt. So ketika sobat mendapatkan referensi yang mengunakan resistor jangan binggung ya..
Kemudian dibawah ini listing programnya sob….
'###############################################################################
'# File Name : Joystik PS2.bas
'# Written By : Supriono
'# Blog : mekatronika-corner.blogspot.com'# File Name : Joystik PS2.bas
'# Written By : Supriono
'# Support: -> Sony PSX handcontroller
'# -> Hardware Spi functions in Bascom
'# -> Internal Crystal 8Mhz
'# Pull-up : 4.7Kohm Mosi
'#
'# PSX Pinout looking at the plug.
'# _______________________
'# Pin 1->| o o o | o o o | o o o |
'# \_____________________/
'#
'# Pin1 = Data (PSX PAD Data Line Output)
'# Pin2 = Command (PSX PAD Data Line Input)
'# Pin3 = N/C No Connection
'# Pin4 = GND Obvious
'# Pin5 = Vcc +5Vdc Obvious
'# Pin6 = ATT (Select)
'# Pin7 = Clock Line
'# Pin8 = N/C No Connection
'# Pin9 = ACK No Connection
'#
'###############################################################################
$regfile = "m8def.dat"
$crystal = 8000000
Deflcdchar 0 , 32 , 4 , 14 , 27 , 17 , 31 , 32 , 32 ' segitiga
Deflcdchar 1 , 32 , 31 , 17 , 17 , 17 , 17 , 31 , 32 ' kotak
Deflcdchar 2 , 32 , 4 , 14 , 21 , 4 , 4 , 4 , 32 ' up
Deflcdchar 3 , 32 , 4 , 4 , 4 , 21 , 14 , 4 , 32 ' down
Deflcdchar 4 , 32 , 4 , 2 , 31 , 2 , 4 , 32 , 32 ' kanan
Deflcdchar 5 , 32 , 4 , 8 , 31 , 8 , 4 , 32 , 32 ' kiri
Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.1 , Db7 = Portc.0 , E = Portc.4 , Rs = Portc.5:Config Lcd = 16 * 2 : Cursor Noblink Off : Cls
Config Spi = Hard , Interrupt = Off , Data Order = Lsb , Master = Yes , Polarity = High , Phase = 1 , Clockrate = 128 : Spiinit:Config Pinb.1 = Output : Pad_att_line Alias Portb.1
Dim Cmdstart As Byte : Cmdstart = &H01
Dim Cmdstatus As Byte : Cmdstatus = &H42
Dim Joy_present As Byte , Joy_mode As Byte
Dim Joy_byte1 As Byte , Joy_byte2 As Byte
Dim Joy_kanan_x As Byte , Joy_kanan_y As Byte
Dim Joy_kiri_x As Byte , Joy_kiri_y As Byte
Key_select Alias Joy_byte1.0
Key_joyr Alias Joy_byte1.1
Key_joyl Alias Joy_byte1.2
Key_start Alias Joy_byte1.3
Key_up Alias Joy_byte1.4
Key_right Alias Joy_byte1.5
Key_down Alias Joy_byte1.6
Key_left Alias Joy_byte1.7
$crystal = 8000000
Deflcdchar 0 , 32 , 4 , 14 , 27 , 17 , 31 , 32 , 32 ' segitiga
Deflcdchar 1 , 32 , 31 , 17 , 17 , 17 , 17 , 31 , 32 ' kotak
Deflcdchar 2 , 32 , 4 , 14 , 21 , 4 , 4 , 4 , 32 ' up
Deflcdchar 3 , 32 , 4 , 4 , 4 , 21 , 14 , 4 , 32 ' down
Deflcdchar 4 , 32 , 4 , 2 , 31 , 2 , 4 , 32 , 32 ' kanan
Deflcdchar 5 , 32 , 4 , 8 , 31 , 8 , 4 , 32 , 32 ' kiri
Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.1 , Db7 = Portc.0 , E = Portc.4 , Rs = Portc.5:Config Lcd = 16 * 2 : Cursor Noblink Off : Cls
Config Spi = Hard , Interrupt = Off , Data Order = Lsb , Master = Yes , Polarity = High , Phase = 1 , Clockrate = 128 : Spiinit:Config Pinb.1 = Output : Pad_att_line Alias Portb.1
Dim Cmdstart As Byte : Cmdstart = &H01
Dim Cmdstatus As Byte : Cmdstatus = &H42
Dim Joy_present As Byte , Joy_mode As Byte
Dim Joy_byte1 As Byte , Joy_byte2 As Byte
Dim Joy_kanan_x As Byte , Joy_kanan_y As Byte
Dim Joy_kiri_x As Byte , Joy_kiri_y As Byte
Key_select Alias Joy_byte1.0
Key_joyr Alias Joy_byte1.1
Key_joyl Alias Joy_byte1.2
Key_start Alias Joy_byte1.3
Key_up Alias Joy_byte1.4
Key_right Alias Joy_byte1.5
Key_down Alias Joy_byte1.6
Key_left Alias Joy_byte1.7
Key_l2 Alias Joy_byte2.0
Key_r2 Alias Joy_byte2.1
Key_l1 Alias Joy_byte2.2
Key_r1 Alias Joy_byte2.3
Key_triangle Alias Joy_byte2.4
Key_circle Alias Joy_byte2.5
Key_x Alias Joy_byte2.6
Key_square Alias Joy_byte2.7
Key_r2 Alias Joy_byte2.1
Key_l1 Alias Joy_byte2.2
Key_r1 Alias Joy_byte2.3
Key_triangle Alias Joy_byte2.4
Key_circle Alias Joy_byte2.5
Key_x Alias Joy_byte2.6
Key_square Alias Joy_byte2.7
Do
Waitms 100
Reset Pad_att_line : Waitus 10
Spiout Cmdstart , 1
Joy_mode = Spimove(cmdstatus) '
Spiin Joy_present , 1
Spiin Joy_byte1 , 1
Spiin Joy_byte2 , 1
Spiin Joy_kanan_x , 1
Spiin Joy_kanan_y , 1
Spiin Joy_kiri_x , 1
Spiin Joy_kiri_y , 1
Set Pad_att_line : Waitus 10
Upperline : Lcd "X" ; Key_x ; " O" ; Key_circle ; " " ; Chr(0) ; Key_triangle ; " " ; Chr(1) ; Key_square
Lowerline : Lcd Chr(2) ; Key_up ; " " ; Chr(3) ; Key_down ; " " ; Chr(4) ; Key_right ; " " ; Chr(5) ; Key_left
Loop
Pengunaan joystick PS2 biasa (kabel) dapat langsung dihubungkan dengan mikrokontroler dan dapat digunakan joystiknya. Sedangkan untuk yang versi wireless terlebih dahulu kita harus mengkoneksikan perangkat penerima dengan pengirim dengan menekan tombol scan pada receiver modul tau menekan tombol FC pada joystik. Lebih mudah pake gambar aja ya sob…look at the picture below................(sok inggris)…hahahahha
Untuk lebih lengkap prosedur koneksi seperti ini:
1. Tekan tombol Scan pada receiver modul
2. Untuk mengkoneksikan joystick dengan receiver modul dapat langsung menekan tombol FC
3. Sedangkan untuk memutuskan koneksi tekan tombol FC sekali lagi.
4. Lampu indicator pada receiver modul akan berkedip jika tidak terkoneksi dengan joystick
5. Penekan tombol scan juga berfunsi untuk mereset komunikasi, jika terjadi error penerimaan data.
Sedangkan untuk penampakan hasil dari ekperimen kita kali ini sudah ane lihat kan pada gambar yang paling atas…tapi ngak apa deh tak kasi gambar lagi biar puas…puas..puas…. tukul punya cerita.