- Kinakailangan ang Mga Bahagi
- Arduino Leonardo
- Dual Axis XY Joystick Module
- Diagram ng Circuit
- Code at Paliwanag sa Paggawa
Nauna naming nakipag-ugnay sa Joystick sa Arduino UNO upang maunawaan kung paano ito gumagana at kinokontrol ang apat na LED sa kaliwa, kanan, pataas at pababang kilusan. Sa proyektong ito gagamitin namin ang parehong Joystick tulad ng Gamepad o game controller upang maglaro ng anumang mga laro sa computer na nangangailangan ng mga paggalaw sa kaliwa, kanan, pataas at pababa. Upang maglaro ng mga laro na nangangailangan ng higit pang mga pagpipilian sa pagkontrol, maaaring magamit ang dalawa o higit pang mga joystick. Dito ay gagamitin namin si Arduino Leonardo upang i-interface ang Joystick bilang Game controller. Ang Arduino Leonardo ay may kalamangan kaysa sa Uno na maaari nating mai-install dito ang mga USB driver at maaari itong makita bilang mouse, keyboard o joystick ng computer kapag nakakonekta.
Kinakailangan ang Mga Bahagi
- Arduino Leonardo
- Dual Axis XY Joystick Module
- Arduino IDE
- Mga kumokonekta na mga wire
Arduino Leonardo
Para sa proyektong ito ginagamit namin ang Arduino Leonardo, ito ay isang board ng microcontroller batay sa ATmega32u4. Mayroon itong 20 digital input / output pin (kung saan ang 7 ay maaaring magamit bilang mga output ng PWM at 12 bilang mga input ng Analog), isang 16 MHz crystal oscillator, isang koneksyon ng micro USB, isang power jack, isang header ng ICSP at isang pindutang i-reset. Naglalaman ito ng lahat ng kinakailangan upang suportahan ang microcontroller; ikonekta lamang ito sa isang computer gamit ang isang USB cable o i-power ito gamit ang isang AC-to-DC adapter o baterya upang makapagsimula.
Ang Leonardo ay naiiba sa lahat ng naunang mga board na ang ATmega32u4 ay may built-in na USB na komunikasyon, tinatanggal ang pangangailangan para sa isang pangalawang processor. Pinapayagan nitong lumitaw ang Leonardo sa isang konektadong computer bilang isang mouse at keyboard, bilang karagdagan sa isang virtual (CDC) serial / COM port.
Teknikal na mga detalye
Microcontroller | ATmega32u4 |
Operating Boltahe | 5V |
Input Boltahe (Inirerekumenda) | 7-12V |
Input Boltahe (mga limitasyon) | 6-20V |
Mga Digital I / O Pin | 20 |
Mga Channel ng PWM | 7 |
Mga Channel ng Pag-input ng Analog | 12 |
Kasalukuyang DC bawat I / O Pin | 40 mA |
Kasalukuyang DC para sa 3.3V Pin | 50 mA |
Memory ng Flash | 32 KB (ATmega32u4) kung saan 4 KB ang ginamit ng bootloader |
SRAM | 2.5 KB (ATmega32u4) |
EEPROM | 1 KB (ATmega32u4) |
Bilis ng Orasan | 16 MHz |
Haba | 68.6 mm |
Lapad | 53.3 mm |
Bigat | 20 g |
PIN Out Reference
Dual Axis XY Joystick Module
Magagamit ang mga Joystick sa iba't ibang mga hugis at sukat. Ang isang tipikal na module ng Joystick ay ipinapakita sa larawan sa ibaba. Karaniwang nagbibigay ang module ng Joystick na ito ng Mga Analog Output at ang output voltages na ibinigay ng modyul na ito na patuloy na nagbabago alinsunod sa direksyon kung saan natin ito ilipat. At makukuha natin ang direksyon ng paggalaw sa pamamagitan ng pagbibigay kahulugan sa mga pagbabagong boltahe na ito gamit ang ilang microcontroller. Dati ay nag-interfaced kami ng joy stick sa iba't ibang mga microcontroller:
- Ang interfacing Joystick kay Arduino
- Ang interfacing Joystick kay Raspberry Pi
- Ang interfacing Joystick sa PIC Microcontroller
- Ang Joystick Interfacing kasama ang AVR Microcontroller
Ang module ng Joystick na ito ay may dalawang palakol tulad ng nakikita mo. Ang mga ito ay X-axis at Y-axis. Ang bawat axis ng JOY STICK ay naka-mount sa isang potentiometer o palayok. Ang mga gitnang puntos ng mga kaldero na ito ay itinutulak bilang Rx at Ry. Kaya sina Rx at Ry ay mga variable point sa mga kaldero na ito. Kapag ang Joystick ay naka-standby, si Rx at Ry ay kumikilos bilang voltage divider.
Kapag ang joystick ay inilipat kasama ang pahalang na axis, ang boltahe sa Rx pin ay nagbabago. Katulad nito, kapag inilipat ito kasama ng patayong axis, ang boltahe sa Ry pin ay nagbabago. Kaya mayroon kaming apat na direksyon ng Joystick sa dalawang output ng ADC. Kapag inilipat ang stick, ang boltahe sa bawat pin ay mataas o mababa depende sa direksyon.
Diagram ng Circuit
Ang Arduino Joystick Game Controller na ito ay nangangailangan ng mga koneksyon sa pagitan ng Arduino at ng Joystick tulad ng sumusunod:
Code at Paliwanag sa Paggawa
Ang kumpletong code na may isang demo na video ay ibinibigay sa huli; narito kami ay nagpapaliwanag ng ilang mahalagang bahagi nito.
Una, kailangan nating simulan ang keyboard ng keyboard
# isama
Susunod sa code sa ibaba, nasimulan namin ang X at Y axis ng Joystick module para sa Analog pin A0 at A1 ayon sa pagkakabanggit.
const int X_pin at const int Y_pin ayon sa pagkakabanggit
Nabasa ang analog na halaga ng VRX pin at kung ang halaga ay 1023 pagkatapos ay ibibigay ang utos para sa "pataas" at kung ang halaga ay 0 pagkatapos ang utos para sa "pababa" ay ibibigay.
Katulad nito, ang analog na halaga ng VRY pin ay nabasa at kung ang halaga ay 1023 pagkatapos ang utos para sa "kanan" ay ibinigay at kung ang halaga ay 0 pagkatapos ang utos para sa "kaliwa" ay ibinigay.
Ang Joystick ay mayroon ding isang pindutan ng push sa itaas kaya't ang pindutang ito (SW) ay nababasa din at kung ang pindutan ay pinindot ang halaga ay 0 pagkatapos ang utos para sa "ipasok" ay ibinigay.
Sa wakas ay sunugin ang code sa Arduino at ikonekta ang Arduino sa computer.
Susunod na suriin ang 'Mga Device at Printer' sa iyong control panel, makikita mo ang “ Arduino Leonardo” sa ilalim ng seksyon ng mga aparato tulad ng ipinakita sa larawan sa ibaba. Handa ka na ngayong maglaro ng joystick.
Maaari naming makontrol ang anumang mga kontrol ng laro gamit ang Joystick na ito. Ang Joystick ay may dalawang potentiometers sa loob nito, ang isa ay para sa kilusang X-axis at ang isa pa ay para sa kilusang Y-axis. Ang bawat potensyomiter ay nakakakuha ng 5v mula sa Arduino. Kaya't sa paglipat natin ng joystick, magbabago ang halaga ng boltahe at magbabago din ang halagang analog sa Analog pin A0 at A1. Kaya't ang joystick ay kikilos bilang isang gamepad.
Kaya't ito ay kung paano ang isang normal na Joystick ay maaaring i-convert sa isang Game Controller gamit ang Arduino Leonardo at maaaring magamit upang maglaro ng mga laro na mayroong lahat ng mga kontrol upang ilipat ang kaliwa, kanan, pataas at pababa. Tulad ng sinabi sa earliar higit sa isang Joystick ay maaaring ma-interfaced upang makakuha ng maraming mga kontrol bukod sa mga pangunahing apat na mga pag-andar.