Dalam sesi ini kita akan Menghubungkan Joystick dengan Raspberry Pi. Joystick terutama digunakan untuk memainkan berbagai permainan. Meskipun joystick tipe USB mudah untuk dihubungkan, tetapi hari ini kita akan menghubungkan Joystick melalui pin Raspberry Pi GPIO, ini akan berguna dalam banyak kasus.
Raspberry Pi dan Modul Joystick:
Joystick tersedia dalam berbagai bentuk dan ukuran. Modul Joystick tipikal ditunjukkan pada gambar di bawah ini. Modul Joystick ini biasanya menyediakan Output Analog dan tegangan output yang diberikan oleh modul ini terus berubah sesuai dengan arah yang kita pindahkan. Dan kita bisa mendapatkan arah pergerakan dengan menginterpretasikan perubahan tegangan tersebut menggunakan beberapa mikrokontroler. Sebelumnya kami telah menggunakan Mikrokontroler AVR dengan Joystick.
Modul joystick ini memiliki dua sumbu seperti yang Anda lihat. Mereka adalah sumbu X dan sumbu Y. Setiap sumbu JOY STICK dipasang ke potensiometer atau pot. Titik tengah pot ini diusir sebagai Rx dan Ry. Jadi Rx dan Ry adalah poin variabel ke pot ini. Saat Joystick dalam keadaan standby, Rx dan Ry bertindak sebagai pembagi tegangan.
Saat joystick digerakkan sepanjang sumbu horizontal, tegangan pada pin Rx berubah. Demikian pula, ketika digerakkan sepanjang sumbu vertikal, tegangan pada pin Ry berubah. Jadi kami memiliki empat arah Joystick pada dua output ADC. Saat tongkat digerakkan, tegangan pada setiap pin naik atau turun tergantung arah.
Seperti yang kita ketahui Raspberry Pi tidak memiliki mekanisme ADC (Analog to Digital Converter) internal. Jadi modul ini tidak bisa dihubungkan langsung ke Pi. Kami akan menggunakan komparator berbasis Op-amp untuk memeriksa keluaran tegangan. OP-Amps ini memberikan sinyal ke Raspberry Pi dan Pi mengubah LED menjadi tergantung pada sinyal. Di sini kami telah menggunakan empat LED untuk menunjukkan pergerakan Joystick dalam empat arah. Periksa Video demonstrasi di akhir.
Masing-masing dari 17 pin GPIO tidak dapat menerima tegangan lebih tinggi dari + 3,3V, sehingga keluaran Op-amp tidak boleh lebih tinggi dari 3,3V. Oleh karena itu kami memilih op-amp LM324, IC ini memiliki penguat operasional quad yang dapat bekerja pada 3V. Dengan IC ini, kami memiliki keluaran yang sesuai untuk keluaran untuk Pin Raspberry pi GPIO kami. Pelajari lebih lanjut tentang GPIO Pin Raspberry Pi di sini. Juga periksa Seri Tutorial Raspberry Pi kami bersama dengan beberapa Proyek IoT yang bagus.
Komponen yang Dibutuhkan:
Di sini kami menggunakan Raspberry Pi 2 Model B dengan Raspbian Jessie OS. Semua persyaratan Perangkat Keras dan Perangkat Lunak dasar telah dibahas sebelumnya, Anda dapat mencarinya di Pengenalan Raspberry Pi dan LED Berkedip Raspberry PI untuk memulai, selain yang kami butuhkan:
- Kapasitor 1000µF
- Modul Joystick
- IC Op-amp LM324
- 1KΩ resistor (12 buah)
- LED (4 buah)
- 2.2KΩ resistor (4 buah)
Diagram Sirkuit:
Ada empat komparator OP-AMP di dalam IC LM324 untuk mendeteksi empat arah Joystick. Berikut diagram IC LM324 dari datasheetnya.
Koneksi yang dilakukan untuk modul Interfacing Joystick dengan Raspberry Pi ditunjukkan pada diagram rangkaian di bawah ini. U1: A, U1: B, U1: C, U1: D menunjukkan empat komparator di dalam LM324. Kami telah menunjukkan setiap komparator dalam diagram rangkaian dengan Pin yang sesuai no. dari IC LM324.
Penjelasan Kerja:
Untuk mendeteksi pergerakan Joystick di sepanjang sumbu Y, kami memiliki OP-AMP1 atau U1: A dan OP-AMP2 atau U1: B, dan untuk mendeteksi pergerakan Joystick di sepanjang sumbu X, kami memiliki OP-AMP3 atau U1: C dan OP-AMP4 atau U1: D.
OP-AMP1 mendeteksi pergerakan sisi bawah joystick di sepanjang sumbu Y:
Terminal negatif dari komparator U1: A dilengkapi dengan 2.3V (menggunakan rangkaian pembagi tegangan dengan 1K dan 2.2K) dan terminal positif terhubung ke Ry. Saat memindahkan joystick ke bawah sepanjang sumbu Y-nya, tegangan Ry meningkat. Setelah tegangan ini lebih tinggi dari 2.3V, OP-AMP memberikan output + 3.3V pada Pin keluarannya. Output logika TINGGI dari OP-AMP ini akan dideteksi oleh Raspberry Pi dan Pi merespons dengan mengaktifkan LED.
OP-AMP2 mendeteksi pergerakan naik joystick di sepanjang sumbu Y:
Terminal negatif dari komparator U1: B dilengkapi dengan 1.0V (menggunakan rangkaian pembagi tegangan oleh 2.2K dan 1K) dan terminal positif dihubungkan ke Ry. Saat menggerakkan joystick ke atas di sepanjang sumbu Y-nya, tegangan Ry berkurang. Setelah tegangan ini lebih rendah dari 1.0V, output OP-AMP menjadi Rendah. Output logika LOW dari OP-AMP ini akan dideteksi oleh Raspberry Pi dan Pi merespons dengan mengaktifkan LED.
OP-AMP3 mendeteksi gerakan sisi kiri joystick di sepanjang sumbu X:
Terminal negatif dari komparator U1: C dilengkapi dengan 2.3V (menggunakan rangkaian pembagi tegangan dengan 1K dan 2.2K) dan terminal positif dihubungkan ke Rx. Saat menggerakkan joystick ke kiri sepanjang sumbu x, tegangan Rx meningkat. Setelah tegangan ini lebih tinggi dari 2.3V, OP-AMP memberikan output + 3.3V pada Pin keluarannya. Output logika TINGGI dari OP-AMP ini akan dideteksi oleh Raspberry Pi dan Pi merespons dengan mengaktifkan LED.
OP-AMP4 mendeteksi gerakan sisi kanan joystick di sepanjang sumbu X:
Terminal negatif dari komparator U1: 4 dilengkapi dengan 1.0V (menggunakan rangkaian pembagi tegangan oleh 2.2K dan 1K) dan terminal positif dihubungkan ke Rx. Saat menggerakkan joystick ke kanan sepanjang sumbu x, tegangan Rx berkurang. Setelah tegangan ini lebih rendah dari 1.0V, output OP-AMP menjadi Rendah. Output logika LOW dari OP-AMP ini akan dideteksi oleh Raspberry Pi dan Pi merespons dengan mengaktifkan LED.
Dengan cara ini keempat logika, yang menentukan empat arah Joystick, terhubung ke Raspberry Pi. Raspberry Pi mengambil output dari komparator ini sebagai input dan meresponsnya dengan mengaktifkan LED. Di bawah ini adalah hasil yang ditampilkan di terminal Raspberry Pi, karena kami juga telah mencetak arah Joystick di terminal menggunakan Kode Python kami.
Kode dan video Python diberikan di bawah ini. Kode itu mudah dan dapat dipahami dengan komentar yang diberikan dalam kode.