Dalam sesi ini kita akan Antarmuka Joystick dengan Raspberry Pi. Joystick terutamanya digunakan untuk bermain pelbagai permainan. Walaupun joystick jenis USB senang disambungkan, tetapi hari ini kita akan menghubungkan Joystick melalui pin Raspberry Pi GPIO, ini akan berguna dalam banyak kes.
Modul Raspberry Pi dan Joystick:
Joystick boleh didapati dalam pelbagai bentuk dan saiz. Modul Joystick khas ditunjukkan pada gambar di bawah. Modul Joystick ini biasanya memberikan Output Analog dan voltan output yang disediakan oleh modul ini terus berubah mengikut arah di mana kita menggerakkannya. Dan kita boleh mendapatkan arah pergerakan dengan menafsirkan perubahan voltan ini menggunakan beberapa mikrokontroler. Sebelum ini kami telah menggunakan AVR Microcontroller with Joystick.
Modul kayu bedik ini mempunyai dua paksi seperti yang anda lihat. Mereka adalah paksi-X dan paksi-Y. Setiap paksi JOY STICK dipasang ke potensiometer atau periuk. Titik tengah pot ini dihalau sebagai Rx dan Ry. Oleh itu, Rx dan Ry adalah titik berubah untuk pot ini. Semasa Joystick dalam keadaan bersedia, Rx dan Ry bertindak sebagai pembahagi voltan.
Apabila kayu bedik digerakkan di sepanjang paksi mendatar, voltan pada pin Rx berubah. Begitu juga, apabila ia bergerak di sepanjang paksi menegak, voltan pada pin Ry berubah. Oleh itu, kami mempunyai empat arah Joystick pada dua output ADC. Apabila tongkat digerakkan, voltan pada setiap pin naik tinggi atau rendah bergantung pada arah.
Seperti yang kita ketahui Raspberry Pi tidak mempunyai mekanisme ADC dalaman (Analog to Digital Converter). Jadi modul ini tidak dapat dihubungkan terus ke Pi. Kami akan menggunakan pembanding berdasarkan Op-amp untuk memeriksa output voltan. OP-Amps ini memberikan isyarat kepada Raspberry Pi dan Pi menukar LED bergantung kepada isyaratnya. Di sini kami telah menggunakan empat LED untuk menunjukkan pergerakan Joystick dalam empat arah. Tonton Video demonstrasi di akhir.
Setiap 17 pin GPIO tidak dapat mengambil voltan lebih tinggi daripada + 3.3V, jadi output Op-amp tidak boleh lebih tinggi daripada 3.3V. Oleh itu kami telah memilih op-amp LM324, IC ini mempunyai penguat operasi quad yang boleh berfungsi pada 3V. Dengan IC ini, kami mempunyai output yang sesuai untuk output untuk Pin GPP Raspberry kami. Ketahui lebih lanjut mengenai GPIO Pin Raspberry Pi di sini. Lihat juga Seri Tutorial Raspberry Pi kami bersama dengan beberapa Projek IoT yang bagus.
Komponen yang Diperlukan:
Di sini kita menggunakan Raspberry Pi 2 Model B dengan OS Raspbian Jessie. Semua keperluan asas Perkakasan dan Perisian dibincangkan sebelumnya, anda boleh mencarinya dalam Pengenalan Raspberry Pi dan LED Berkedip Raspberry PI untuk memulakan, selain daripada yang kita perlukan:
- Kapasitor 1000µF
- Modul Joystick
- IC Op-amp LM324
- Perintang 1KΩ (12 keping)
- LED (4 keping)
- Perintang 2.2KΩ (4 keping)
Rajah Litar:
Terdapat empat pembanding OP-AMP di dalam LM324 IC untuk mengesan empat arah Joystick. Berikut adalah rajah LM324 IC dari lembaran datanya.
Sambungan yang dilakukan untuk modul Interfacing Joystick dengan Raspberry Pi ditunjukkan dalam rajah litar di bawah. U1: A, U1: B, U1: C, U1: D menunjukkan empat pembanding di dalam LM324. Kami telah menunjukkan setiap pembanding dalam gambarajah litar dengan Pin no yang sesuai. LM324 IC.
Penjelasan Kerja:
Untuk mengesan pergerakan Joystick di sepanjang paksi Y, kami mempunyai OP-AMP1 atau U1: A dan OP-AMP2 atau U1: B, dan untuk mengesan pergerakan Joystick di sepanjang paksi-X, kami memiliki OP-AMP3 atau U1: C dan OP-AMP4 atau U1: D.
OP-AMP1 mengesan pergerakan kayu bedik di sepanjang paksi-Y:
Terminal negatif pembanding U1: A disediakan dengan 2.3V (menggunakan litar pembahagi voltan oleh 1K dan 2.2K) dan terminal Positif disambungkan ke Ry. Semasa menggerakkan batang kayu ke sepanjang paksi Y, voltan Ry meningkat. Setelah voltan ini naik lebih tinggi daripada 2.3V, OP-AMP memberikan output 3.3V pada Pin outputnya. Output logik TINGGI OP-AMP ini akan dikesan oleh Raspberry Pi dan Pi bertindak balas dengan menukar LED.
OP-AMP2 mengesan pergerakan kayu bedik terbalik di sepanjang paksi-Y:
Terminal negatif pembanding U1: B dilengkapi dengan 1.0V (menggunakan litar pembahagi voltan oleh 2.2K dan 1K) dan terminal Positif disambungkan ke Ry. Semasa menggerakkan kayu bedik di sepanjang paksi Y, voltan Ry menurun. Setelah voltan ini turun lebih rendah daripada 1.0V, output OP-AMP menjadi Rendah. Output logik RENDAH OP-AMP ini akan dikesan oleh Raspberry Pi dan Pi bertindak balas dengan menukar LED.
OP-AMP3 mengesan pergerakan kayu bedik sebelah kiri di sepanjang paksi-X:
Terminal negatif pembanding U1: C dibekalkan dengan 2.3V (menggunakan litar pembahagi voltan oleh 1K dan 2.2K) dan terminal Positif disambungkan ke Rx. Semasa menggerakkan kayu bedik ke kiri sepanjang paksi-x, voltan Rx meningkat. Setelah voltan ini naik lebih tinggi daripada 2.3V, OP-AMP memberikan output 3.3V pada Pin outputnya. Output logik TINGGI OP-AMP ini akan dikesan oleh Raspberry Pi dan Pi bertindak balas dengan menukar LED.
OP-AMP4 mengesan pergerakan kayu bedik sebelah kanan di sepanjang paksi-X:
Terminal negatif pembanding U1: 4 dilengkapi dengan 1.0V (menggunakan litar pembahagi voltan oleh 2.2K dan 1K) dan terminal Positif disambungkan ke Rx. Semasa menggerakkan kayu bedik tepat di sepanjang paksi-x, voltan Rx berkurang. Setelah voltan ini turun lebih rendah daripada 1.0V, output OP-AMP menjadi Rendah. Output logik RENDAH OP-AMP ini akan dikesan oleh Raspberry Pi dan Pi bertindak balas dengan menukar LED.
Dengan cara ini keempat-empat logik, yang menentukan keempat arah Joystick, berhubung dengan Raspberry Pi. Raspberry Pi mengambil output dari pembanding ini sebagai input dan bertindak balas dengan menukar LED. Berikut adalah hasil yang ditunjukkan di terminal Raspberry Pi, kerana kami juga telah mencetak arah Joystick di terminal menggunakan Python Code kami.
Kod dan video Python diberikan di bawah. Kodnya senang dan dapat difahami dengan komen yang diberikan dalam kod tersebut.