- Komponenter kreves
- Arduino Leonardo
- Dual Axis XY Joystick Module
- Kretsdiagram
- Kode og arbeidsforklaring
Vi koblet tidligere Joystick til Arduino UNO for å forstå hvordan det fungerer og kontrollerte fire lysdioder på venstre, høyre, opp og ned bevegelse. I dette prosjektet vil vi bruke den samme styrespaken som Gamepad eller spillkontrolleren til å spille alle dataspill som krever venstre, høyre, opp og ned bevegelse. For å spille spill som krever flere kontrollalternativer, kan to eller flere joysticks brukes. Her vil vi bruke Arduino Leonardo til å grensesnitt Joystick som spillkontroller. Arduino Leonardo har fordel over Uno at vi kan installere USB-drivere på den, og den kan oppdages som mus, tastatur eller joystick av datamaskinen når den er tilkoblet.
Komponenter kreves
- Arduino Leonardo
- Dual Axis XY Joystick Module
- Arduino IDE
- Koble ledninger
Arduino Leonardo
For dette prosjektet bruker vi Arduino Leonardo, det er et mikrokontrollerkort basert på ATmega32u4. Den har 20 digitale inngangs- / utgangspinner (hvorav 7 kan brukes som PWM-utganger og 12 som analoge innganger), en 16 MHz krystalloscillator, en mikro-USB-tilkobling, en strømkontakt, en ICSP-topptekst og en tilbakestillingsknapp. Den inneholder alt som trengs for å støtte mikrokontrolleren; bare koble den til en datamaskin med en USB-kabel eller slå den med en AC-til-DC-adapter eller batteri for å komme i gang.
Leonardo er forskjellig fra alle foregående kort ved at ATmega32u4 har innebygd USB-kommunikasjon, noe som eliminerer behovet for en sekundær prosessor. Dette gjør at Leonardo kan vises på en tilkoblet datamaskin som en mus og et tastatur, i tillegg til en virtuell (CDC) seriell / COM-port.
Tekniske spesifikasjoner
Mikrokontroller | ATmega32u4 |
Driftsspenning | 5V |
Inngangsspenning (anbefalt) | 7-12V |
Inngangsspenning (grenser) | 6-20V |
Digitale I / O-pinner | 20 |
PWM-kanaler | 7 |
Analoge inngangskanaler | 12 |
Likestrøm per I / U-pinne | 40 mA |
DC-strøm for 3,3V pin | 50 mA |
Flashminne | 32 KB (ATmega32u4) hvorav 4 KB brukt av bootloader |
SRAM | 2,5 KB (ATmega32u4) |
EEPROM | 1 KB (ATmega32u4) |
Klokkefart | 16 MHz |
Lengde | 68,6 mm |
Bredde | 53,3 mm |
Vekt | 20 g |
PIN ut referanse
Dual Axis XY Joystick Module
Joysticks er tilgjengelige i forskjellige former og størrelser. En typisk joystick-modul er vist i figuren nedenfor. Denne joystick-modulen gir vanligvis analoge utganger, og utgangsspenningene som tilbys av denne modulen endres i henhold til retningen vi beveger den i. Og vi kan få bevegelsesretningen ved å tolke disse spenningsendringene ved hjelp av en mikrokontroller. Tidligere grensesnitt vi joystick med forskjellige mikrokontrollere:
- Grensesnitt Joystick med Arduino
- Grensesnitt-joystick med Raspberry Pi
- Grensesnitt styrespak med PIC Microcontroller
- Styrespak grensesnitt med AVR Microcontroller
Denne joystick-modulen har to akser som du kan se. De er X-akse og Y-akse. Hver akse av JOY STICK er montert på et potensiometer eller potte. Midtpunktene til disse pottene blir kjørt ut som Rx og Ry. Så Rx og Ry er variable punkter i disse pottene. Når styrespaken er i beredskap, fungerer Rx og Ry som spenningsdeler.
Når styrespaken beveges langs den horisontale aksen, endres spenningen ved Rx-pinnen. På samme måte endres spenningen ved Ry-pin når den beveges langs den vertikale aksen. Så vi har fire retninger av joystick på to ADC-utganger. Når pinnen flyttes, blir spenningen på hver pinne høy eller lav, avhengig av retning.
Kretsdiagram
Denne Arduino Joystick Game Controller krever tilkoblinger mellom Arduino og Joystick som følger:
Kode og arbeidsforklaring
Komplett kode med en demo- video er gitt på slutten; her forklarer vi noen viktige deler av det.
For det første må vi initialisere tastaturbiblioteket
#inkludere
Neste i koden nedenfor har vi initialisert X- og Y-aksen til styrespakmodulen for henholdsvis Analog pin A0 og A1.
const int X_pin henholdsvis const int Y_pin
Den analoge verdien av VRX-pinnen leses, og hvis verdien er 1023, blir kommandoen for "opp" gitt, og hvis verdien er 0, blir kommandoen for "ned" gitt.
Tilsvarende leses den analoge verdien av VRY-pinnen, og hvis verdien er 1023, blir kommandoen for "høyre" gitt, og hvis verdien er 0, blir kommandoen for "venstre" gitt.
Joystick har også en trykknapp på toppen slik at denne knappen (SW) også blir lest, og hvis du trykker på knappen vil verdien være 0 så blir kommandoen for "enter" gitt.
Til slutt brenner du koden i Arduino og kobler Arduino til datamaskinen.
Sjekk deretter ' Enheter og skrivere' i kontrollpanelet, du vil kunne se " Arduino Leonardo" under enhetsdelen som vist i bildet nedenfor. Nå er du klar til å spille med styrespaken.
Vi kan kontrollere alle spillkontrollene ved hjelp av denne joysticken. Styrespaken har to potensiometre inne, den ene er for X-akse bevegelse og den andre er for Y-aksen bevegelse. Hvert potensiometer får 5v fra Arduino. Så når vi beveger styrespaken, vil spenningsverdien endres, og den analoge verdien på analoge pinner A0 og A1 vil også endres. Så styrespaken vil fungere som en gamepad.
Så dette er hvordan en vanlig joystick kan konverteres til en spillkontroller ved hjelp av Arduino Leonardo, og kan brukes til å spille spill som har alle kontrollene for å bevege seg til venstre, høyre, opp og ned. Som sagt earliar kan mer enn en joystick kobles sammen for å få flere kontroller enn disse grunnleggende fire funksjonene.