Aikaisemmin liitimme Joystickin Arduino UNO: n kanssa ymmärtämään sen toimintaa ja hallitsimme neljää LEDiä vasemmalla, oikealla, ylös ja alas. Tässä projektissa käytämme samaa ohjaussauvaa kuin Gamepad tai peliohjain pelataksemme mitä tahansa tietokonepelejä, jotka edellyttävät vasemmalle, oikealle, ylös ja alas. Jos haluat pelata pelejä, jotka edellyttävät enemmän ohjausvaihtoehtoja, voidaan käyttää kahta tai useampaa ohjainta. Täällä käytämme Arduino Leonardoa käyttöliittymän ohjaamiseen peliohjaimena. Arduino Leonardolla on etu Unoon verrattuna, että voimme asentaa siihen USB-ohjaimet ja tietokone voidaan tunnistaa se hiirenä, näppäimistönä tai ohjaussauvana kytkettynä.
Tarvittavat komponentit
- Arduino Leonardo
- Dual Axis XY -ohjaussauva
- Arduino IDE
- Johtojen liittäminen
Arduino Leonardo
Tässä projektissa käytämme Arduino Leonardoa, se on ATmega32u4-pohjainen mikrokontrollerikortti. Siinä on 20 digitaalista tulo- / lähtöpistoketta (joista 7 voidaan käyttää PWM-lähtöinä ja 12 analogisena tulona), 16 MHz: n kideoskillaattori, mikro-USB-liitäntä, virtaliitin, ICSP-otsikko ja nollauspainike. Se sisältää kaiken tarvittavan mikrokontrollerin tukemiseen; liitä se yksinkertaisesti tietokoneeseen USB-kaapelilla tai käynnistä se virtalähteellä AC-DC-sovittimella tai akulla.
Leonardo eroaa kaikista edellisistä levyistä siinä, että ATmega32u4: ssä on sisäänrakennettu USB-tiedonsiirto, mikä ei poista toissijaisen prosessorin tarvetta. Tämä antaa Leonardolle mahdollisuuden näyttää liitetylle tietokoneelle hiirenä ja näppäimistönä virtuaalisen (CDC) sarja- / COM-portin lisäksi.
Tekniset tiedot
Mikrokontrolleri | ATmega32u4 |
Käyttöjännite | 5 V |
Tulojännite (suositus) | 7-12 V |
Tulojännite (rajat) | 6-20 V |
Digitaaliset I / O-nastat | 20 |
PWM-kanavat | 7 |
Analogiset tulokanavat | 12 |
Tasavirta I / O-nastaa kohti | 40 mA |
DC-virta 3,3 V: n nastalle | 50 mA |
Flash-muisti | 32 kt (ATmega32u4), josta 4 kt käyttää bootloader |
SRAM | 2,5 kt (ATmega32u4) |
EEPROM | 1 kt (ATmega32u4) |
Kellonopeus | 16 MHz |
Pituus | 68,6 mm |
Leveys | 53,3 mm |
Paino | 20 g |
PIN Out -viite
Dual Axis XY -ohjaussauva
Ohjaussauvoja on saatavana eri muotoisina ja kokoisina. Tyypillinen ohjaussauva-moduuli on esitetty alla olevassa kuvassa. Tämä ohjaussauva-moduuli tarjoaa tyypillisesti analogisia lähtöjä, ja tämän moduulin antamat lähtöjännitteet muuttuvat jatkuvasti sen suunnan mukaan, johon liikutamme sitä. Ja voimme saada liikkeen suunnan tulkitsemalla nämä jännitteen muutokset käyttämällä jotakin mikro-ohjainta. Aiemmin liitimme ilotikun eri mikrokontrollereihin:
- Ohjaussauvan ja Arduinon yhdistäminen
- Ohjaussauvan ja Raspberry Pi: n yhdistäminen
- Ohjaussauvan ja PIC-mikrokontrollerin liitäntä
- Ohjaussauva ja AVR-mikrokontrolleri
Tässä joystick-moduulissa on kaksi akselia, kuten näet. Ne ovat X-akseli ja Y-akseli. Jokainen JOY STICK -akseli on asennettu potentiometriin tai pottiin. Näiden ruukkujen keskipisteet ajetaan ulos Rx: ksi ja Ry: ksi. Joten Rx ja Ry ovat vaihtelevia pisteitä näille potille. Kun ohjaussauva on valmiustilassa, Rx ja Ry toimivat jännitteenjakajina.
Kun ohjaussauvaa liikutetaan vaaka-akselia pitkin, jännite Rx-nastassa muuttuu. Samoin, kun sitä liikutetaan pystysuoraa akselia pitkin, Ry-nastan jännite muuttuu. Joten meillä on neljä ohjaussauvan suuntaa kahdessa ADC-lähdössä. Kun keppiä liikutetaan, jokaisen tapin jännite nousee korkealle tai matalalle suunnasta riippuen.
Piirikaavio
Tämä Arduino-ohjaussauvan peliohjain vaatii yhteydet Arduinon ja ohjaussauvan välillä seuraavasti:
Koodi ja selitys
Täydellinen koodi esittelyvideolla annetaan lopussa; tässä selitämme muutaman tärkeän osan siitä.
Ensinnäkin meidän on alustettava näppäimistökirjasto
#sisältää
Seuraavaksi koodin alapuolella olemme alustaneet joystick-moduulin X- ja Y-akselin vastaavasti analogiselle tapille A0 ja A1.
const int X_pin ja const int Y_pin
VRX-nastan analogiarvo luetaan ja jos arvo on 1023, annetaan komento "ylös" ja jos arvo on 0, annetaan komento "alas".
Samoin luetaan VRY-nastan analoginen arvo ja jos arvo on 1023, annetaan komento "oikealle" ja jos arvo on 0, annetaan komento "vasemmalle".
Ohjaussauvassa on myös painike yläosassa, joten tämä painike (SW) luetaan myös ja jos painiketta painetaan, arvo on 0, sitten annetaan komento "Enter".
Lopuksi polta koodi Arduinoon ja yhdistä Arduino tietokoneeseen.
Seuraavaksi tarkista ohjauspaneelin Laitteet ja tulostimet -kohdasta, näet " Arduino Leonardo" -laitealueen alla olevan kuvan mukaisesti. Nyt olet valmis pelaamaan ohjaussauvalla.
Voimme hallita mitä tahansa pelin ohjausta tällä ohjaussauvalla. Ohjaussauvassa on kaksi potentiometriä, yksi X-akselin ja toinen Y-akselin liikettä varten. Jokainen potentiometri saa 5v Arduinosta. Joten kun liikutamme sauvaohjainta, jännitteen arvo muuttuu ja myös analoginen nasta A0 ja A1 muuttuu. Joten ohjaussauva toimii peliohjaimena.
Joten tavallinen ohjaussauva voidaan muuntaa Peliohjaimeksi Arduino Leonardoa käyttämällä ja sitä voidaan käyttää pelaamaan pelejä, joissa kaikki ohjaimet liikkuvat vasemmalle, oikealle, ylös ja alas. Kuten Earliarille kerrottiin, useampi kuin yksi ohjaussauva voidaan liittää, jotta saadaan enemmän ohjaimia kuin nämä neljä perustoimintoa.