- Nepieciešamās sastāvdaļas
- Arduino Leonardo
- Divasu XY kursorsviras modulis
- Ķēdes shēma
- Kods un darba skaidrojums
Iepriekš mēs sasaistījāmies kursorsviru ar Arduino UNO, lai saprastu, kā tā darbojas, un kontrolējām četrus gaismas diodes pa kreisi, pa labi, uz augšu un uz leju. Šajā projektā mēs izmantosim to pašu kursorsviru, kas ir Gamepad vai spēļu kontrolieris, lai spēlētu visas datorspēles, kurām nepieciešamas kustības pa kreisi, pa labi, uz augšu un uz leju. Lai spēlētu spēles, kurām nepieciešama vairāk vadības iespēju, var izmantot divus vai vairākus kursorsviras. Šeit mēs izmantosim Arduino Leonardo, lai interfeisā ievadītu Joystick kā spēles kontrolieri. Arduino Leonardo ir priekšrocība salīdzinājumā ar Uno, ka mēs tajā varam instalēt USB draiverus, un pēc savienojuma ar datoru to var noteikt kā peli, tastatūru vai kursorsviru.
Nepieciešamās sastāvdaļas
- Arduino Leonardo
- Divasu XY kursorsviras modulis
- Arduino IDE
- Savienojošie vadi
Arduino Leonardo
Šim projektam mēs izmantojam Arduino Leonardo, tā ir mikrokontrolleru plate, kuras pamatā ir ATmega32u4. Tam ir 20 digitālās ieejas / izejas tapas (no kurām 7 var izmantot kā PWM izejas un 12 kā analogās ieejas), 16 MHz kristāla oscilators, mikro USB savienojums, barošanas ligzda, ICSP galvene un atiestatīšanas poga. Tas satur visu nepieciešamo, lai atbalstītu mikrokontrolleru; lai sāktu, vienkārši pievienojiet to datoram, izmantojot USB kabeli, vai darbiniet to ar maiņstrāvas līdz līdzstrāvas adapteri vai akumulatoru.
Leonardo atšķiras no visiem iepriekšējiem dēļiem ar to, ka ATmega32u4 ir iebūvēts USB sakars, novēršot nepieciešamību pēc sekundārā procesora. Tas ļauj Leonardo pievienotajam datoram parādīties kā pelei un tastatūrai papildus virtuālajam (CDC) sērijas / COM portam.
Tehniskās specifikācijas
Mikrokontrolleris | ATmega32u4 |
Darba spriegums | 5V |
Ieejas spriegums (ieteicams) | 7-12V |
Ieejas spriegums (robežas) | 6-20V |
Digitālās I / O tapas | 20 |
PWM kanāli | 7 |
Analogie ievades kanāli | 12 |
DC strāva uz I / O kontaktu | 40 mA |
Līdzstrāva 3,3 V tapai | 50 mA |
Zibatmiņa | 32 KB (ATmega32u4), no kuriem 4 KB izmanto bootloader |
SRAM | 2,5 KB (ATmega32u4) |
EEPROM | 1 KB (ATmega32u4) |
Pulksteņa ātrums | 16 MHz |
Garums | 68,6 mm |
Platums | 53,3 mm |
Svars | 20 g |
PIN izejas atsauce
Divasu XY kursorsviras modulis
Kursorsviras ir pieejamas dažādās formās un izmēros. Tipisks kursorsviras modulis parādīts zemāk redzamajā attēlā. Šis kursorsviras modulis parasti nodrošina analogās izejas, un šī moduļa nodrošinātie izejas spriegumi pastāvīgi mainās atkarībā no virziena, kurā mēs to pārvietojam. Un mēs varam iegūt kustības virzienu, interpretējot šīs sprieguma izmaiņas, izmantojot kādu mikrokontrolleru. Iepriekš mēs savienojām prieka nūju ar dažādiem mikrokontrolleriem:
- Saskaroties ar kursorsviru ar Arduino
- Saskarne ar kursorsviru ar Raspberry Pi
- Saskarnes kursorsviru ar PIC mikrokontrolleru
- Kursorsviru mijiedarbība ar AVR mikrokontrolleru
Šim kursorsviras modulim ir divas asis, kā redzat. Tās ir X ass un Y ass. Katra JOY STICK ass ir piestiprināta pie potenciometra vai katla. Šo podu viduspunkti tiek izdzīti kā Rx un Ry. Tātad Rx un Ry ir mainīgi punkti šiem podiem. Kad kursorsvira ir gaidīšanas režīmā, Rx un Ry darbojas kā sprieguma dalītāji.
Kad kursorsviru pārvieto pa horizontālo asi, spriegums pie Rx tapas mainās. Līdzīgi, kad to pārvieto pa vertikālo asi, mainās spriegums Ry tapā. Tātad mums ir četri kursorsviras virzieni uz diviem ADC izvadiem. Kad nūja tiek pārvietota, katras tapas spriegums ir augsts vai zems atkarībā no virziena.
Ķēdes shēma
Šim Arduino kursorsviras spēles kontrolierim ir nepieciešami savienojumi starp Arduino un kursorsviru šādi:
Kods un darba skaidrojums
Beigās ir norādīts pilns kods ar demonstrācijas video; šeit mēs izskaidrojam dažas svarīgas tā daļas.
Pirmkārt, mums ir jāinstalē tastatūras bibliotēka
# iekļaut
Tālāk zemāk esošajā kodā mēs esam inicializējuši Joystick moduļa X un Y asi attiecīgi analogajām tapām A0 un A1.
attiecīgi const int X_pin un const int Y_pin
Tiek nolasīta VRX tapa analogā vērtība un, ja vērtība ir 1023, tiek dota komanda “uz augšu” un, ja vērtība ir 0, tiek dota komanda “uz leju”.
Līdzīgi tiek nolasīta arī VRY tapa analogā vērtība un, ja vērtība ir 1023, tiek dota komanda “pa labi” un, ja vērtība ir 0, tad tiek dota komanda “pa kreisi”.
Vadības kursora augšpusē ir arī spiedpoga, tāpēc tiek nolasīta arī šī poga (SW), un, nospiežot pogu, vērtība būs 0, tad tiek dota komanda “ievadīt”.
Visbeidzot ierakstiet kodu Arduino un savienojiet Arduino ar datoru.
Pēc tam vadības panelī pārbaudiet ' Ierīces un printeri', sadaļā Ierīces varēsiet redzēt “ Arduino Leonardo”, kā parādīts zemāk esošajā attēlā. Tagad jūs esat gatavs spēlēt ar kursorsviru.
Mēs varam kontrolēt jebkuru spēles vadību, izmantojot šo kursorsviru. Sviras iekšpusē ir divi potenciometri, viens ir paredzēts X ass kustībai, bet otrs - Y ass kustībai. Katrs potenciometrs saņem 5v no Arduino. Tātad, pārvietojot kursorsviru, mainīsies sprieguma vērtība un mainīsies arī analogā vērtība pie analogajām tapām A0 un A1. Tātad kursorsvira darbosies kā spēļu vadība.
Tādējādi parasto kursorsviru var pārveidot par spēļu kontrolieri, izmantojot Arduino Leonardo, un to var izmantot, lai spēlētu spēles, kurām ir visas vadības ierīces, lai pārvietotos pa kreisi, pa labi, uz augšu un uz leju. Kā stāstīja vecākais, var sasaistīt vairāk nekā vienu kursorsviru, lai iegūtu vairāk vadības ierīču, izņemot šīs četras pamatfunkcijas.