Satura rādītājs:

Akselerometra spēļu kontrolieris: 8 soļi
Akselerometra spēļu kontrolieris: 8 soļi

Video: Akselerometra spēļu kontrolieris: 8 soļi

Video: Akselerometra spēļu kontrolieris: 8 soļi
Video: Проблемы у геймпада Xbox 2024, Jūlijs
Anonim
Akselerometra spēļu kontrolieris
Akselerometra spēļu kontrolieris

Voorlopige teksts…

1. solis: MATERIĀLS

MATERIĀLS
MATERIĀLS
  • Arduino Leonardo: mikrokontrolleris-bord, kā arī Brein van onze spēļu kontrolieris.
  • Mikro USB kabelis: spēļu kontrolieris un dators.
  • Maizes dēlis: zo hoeven we niet te solderen en blijft ons ontwerp makkelijk aanpasbaar.
  • Maizes dēļa džemperu vadi: visi komponenti un elkaar te verbinden.
  • Akselerometrs MPU6050: een sensor die versnellingen in de verschillende richtingen kan lezen, zoals je vaak in smartphones, hoverboards en balancerende robots vindt.
  • Twee mini spiedpogas: om knoppen te programeren die los staan van onze akselerometrs.

Opcija:

Maizes dēlis un Arduino houder: om compact te kunnen werken

2. darbība: ARDUINO PROGRAMMATŪRA

Voor we kunnen beginen aan de bouwen en programmeerpretpret hebben we de juiste software nodig om het brein van onze game controller, een Arduino Leonardo, te kunnen besturen. Instalējiet, bet arī pēc tam:

  • Ga, izmantojot volgende saiti, lejupielādējot Arduino:
  • Kies voor de juiste programmatūra, kuras pamatā ir operētājsistēma.
  • Noklikšķiniet uz lejupielādes.
  • Je hebt nu een (.exe) bestand dat je uitvoert door er op te dubbel klikken om de installatie te vervolledigen.

!!! Wij hebben onze controller gecreëerd met het gedownloade program. De Windows App versiju kan dit evengoed, maar kan kleine verschillen hebben in aanpak.

  • Atveriet programmatūru de Arduino.
  • Savienotājs ar Arduino Leonardo ir aprīkots ar datora mikro USB kabeli, bet Leonardo draiveri ir automatizēti, un tie ir instalēti (tas nozīmē, ka tas ir arī Arduino aansluit).

Als je nog niet zo vertrouwd bent met Arduino software, it controleert graag eens of je Arduino Leonardo foutloos verbinding maakt met je computer, dan can je data makkelijk testen met een voorbeeldprogramma:

  • Kies via Bestand> Voorbeelden> 01. Basics> Blink om een voorbeeldprogramma te openen.
  • Vervolgens kies je bij Hulpmiddelen> Board> Arduino Leonardo om de software te laten weten welk type board wij gaan gebruiken.
  • Izvēlēties sērijas sērijas durvis no Hulpmiddelen> Poort> COMx (Arduino Leonardo te kiezen. Dit doe je om aan te geven via welke USB poort je Arduino communiceert.
  • Noklikšķiniet uz saites, lai atvērtu simbolu, lai to augšupielādētu.
  • Saites beneden zie je een indicatie die aantoont dat het program aan het uploaden is, gevolgd door de boodschap 'uploaden voltooid' bij succes.

!!! Als het uploaden niet lukt en een rode foutmelding geeft dan ligt dit vaak aan een fout in de code. In dit geval gebruiken we een foutloze voorbeeldcode, waardoor de fout bij de connectie tussen de Leonardo en je computer moet liggen.

3. darbība: BIBLIOTEKAS MAPE

Arduino zijn in staat om heel veel data te verwerken. Dit zorgt er voor dat er ook veel code nodig is om deze data correct te compileren. Šeit ir pieejams kods, kas ir pieejams skolā, ir pieejams Arduino bibliotēkās, ir pieejams kods, un tā kodi ir pieejami. Ons project gebruik drie soortgelijke libraries: Wire, I2Cdev un MPU6050. De Arduino programmatūra heeft een goede base aan libraries ingebouwd, alsook onze eerste (Wire) bibliotheek, maar de twee andere dienen we zelf nog te installeren:

  • Noklikšķiniet uz saites un noklikšķiniet uz “Klonēt vai lejupielādēt” un lejupielādējiet ZIP failu
  • Pakotne ZIP failā var būt labāka par visu.
  • In de bekomen map vind je via i2cdevlib-master> Arduino de folders 'I2Cdev' un MPU6050.
  • Kopieer beide mappen naar de Arduino karte, izmantojot C> Program Files> Arduino> Libraries.

!!! Indian je de bij de installatie van de software zelf een andere locatie opgegeven hebt dan, vind je de nodige mappen daar. Het is niet de bedoeling dat je zelf een map aanmaakt.

  • Sluit de Arduino programmatūra, lai sāktu darbu, lai atvērtu visas bibliotēkas.
  • Via Schets> Bibliotheek Gebruiken can je controleren of nu ook I2Cdev en MPU6050 te vinden zijn.

4. solis: AKSELEROMETRS - DE TEORIJA

AKSELEROMETRS - DE TEORIJA
AKSELEROMETRS - DE TEORIJA

Šim akselerometram ir pieejams pjezoelektriskais efekts. Stel je een kubusvormig doosje voor waar een klein balletje in zit (zoals in de bovenstaande illustratie) waar elke wand gemaakt is uit piezoelektrische kristallen. Wanneer je de kubus kantelt verplaatst het balletje zich naargelang de zwaartekracht. Waar het balletje de kubus wanden raakt ontstaat er piezoelectrische stroom. De drie paar evenwijdige wanden van de kubus worden gekoppeld aan de kuivatimensionale X, Y en Z assen. Afhankelijk van de piezoelectrische stroom geproduceerd langs deze wanden kunnen we zo de versnelling in drie dimensies bepalen.

Om een praktijkvoorbeeld te geven: In elke smartphone zit tegenwoordig ook standaard een akselerometrs. Deze zorgt er onder andere voor dat je scherm automatisch meedraait als je smartphone kantelt.

5. solis: AKSELEROMETRS - DE PRAKTIJK

Ātruma mērītājs - DE PRAKTIJK
Ātruma mērītājs - DE PRAKTIJK

Mēs samitrinām jaunāko paātrinājuma mērītāju versijās X, Y en Z kā kan meten, maar met onze Arduino software kunnen we die data ook echt zien en opvolgen. Om dit te doen ga je als volgt te werk:

Akselerometra slēdzis, bovenstaand shēma un verbind de Arduino Leonardo ar datoru

!!! Paātrinājuma mērītājs var norādīt uz maizes dēļa, un tas ir atkarīgs no maizes dēļa, bet pēc tam - ar maizes dēli, bet pēc tam - uz leju. Je krijgt de optie om die haaks op je breadboard te plaatsen (bespaart plaats) of evenwijdig zoals in ons voorbeeld.

  • Lejupielādējiet ons 'MPU6050_intro' vislabāk un atveriet de de Arduino programmatūrā.
  • Kontrolers, kas sastāv no boardboard un poort nog steeds.
  • Noklikšķiniet uz saites, lai atvērtu programmu.
  • Izvēlieties, izmantojot Hulpmiddelen> Seriële Monitor
  • Een nieuw venster opent met 3 kolommen met getallen, dit zijn de versnellingen in de X, Y en Z assen.
  • Beweeg je akselerometrs om de versnellingen in alle richtingen te zien.

Terwijl we onze versnellingsdata voor ons hebben kunnen we meteen verkennend werk doen voor onze game controller. Leg de Arduino un akselerometra plat opcija tafel en noteer gemiddelde X en Y waarde (mag een ruwe schatting zijn). Onderneem daarna volgende stappen:

  • Akselerometra kanāls ar 45 ° leņķa rechts un gemiddelde X waarde.
  • Kancelejas akselerometrs 45 ° naar links and noteer de gemiddelde X waarde.
  • Akselerometra kanāls 45 °, vai nu, vai piezīmjdators Y waarde.
  • Akselerometra kanāls ar 45 ° leņķi un gemiddelde Y waarde.

6. darbība: SPĒLES KONTROLIERIS

SPĒLES KONTROLIERIS
SPĒLES KONTROLIERIS

Klaar voor het echte werk! Mēs pārbaudām akselerometru, lai uzzinātu, kā to izdarīt. Koppel de Arduino un akselerometrs los en bouw het geheel opnieuw op volgens bovenstaand schema.

!!! De mini spiedpogas hebben vaak een buiging in hun beentjes. Druk die plat met een punttang om ze makkelijker in je breadboard te krijgen.

  • Lejupielādējiet ons 'MPU6050_gamecontroller' labāko un atvērtā režīmā de Arduino programmatūrā.
  • Verbind je Arduino en click in the linkerbovenhoek op het pijltje om het program up te loaden.
  • De Arduino Leonardo ir gatavs nepārtrauktai informācijai par datoru. Wil je de datavoer pat pauzeren, koppel dan de jump wire op pin 12 even los, en verbind die opnieuw als je verder wilt gaan.
  • Profesionālis! Je hebt nu een base controller gemaakt, test het gerust eens uit op pacman.

Geen paniek als je controller niet metéén doet wat je had verwacht. Dat betekent gewoon dat we nog kalibratie werk hebben om de controller aan te Passenger naar onze noden. Daarvoor duiken we in Arduino code

7. darbība: KODĒT - IZMANTOTĀS BIBLIOTĒKAS

KODS - LIETOTĀS BIBLIOTĒKAS
KODS - LIETOTĀS BIBLIOTĒKAS

Het leuke aan Arduino kods ir dat deze snel aanpasbaar is zonder dat je daarvoor een uitgebreide programmeerkennis moet hebben. Om je op weg te helpen overlopen we kort waar je wat vindt, en wat je kan aanpassen om je controller kalibreren.

In 'MPU6050_gamecontroller' kods vind je een heleboel lichtgrijze tekst. Tas ir teksta teksts, kurā ir iekļauti heeft op de code, bet jūs varat mainīt savu kodu struktūru. Ook tekst die na // komt, staat los van de code en dient als verduidelijking. De eerste echte code vinden we terug onder in the title 'Used Libraries', daar herken je meteen de libraries die we in stap drie geïnstalleerd hebben.

  • #iekļaut geeft aan dat we '' IC2dev 'bibliotheek gaan gebruiken
  • const int ENABLE = 12 geeft aan dat we pin 12 gebruiken als veiligheid. Vai deze pin niet verbonden dan stopt ons programma automatisch.
  • const int A_BUTTON = 6 geeft aan dat onze Knop aangesloten ir op poort 5

!!! De code onder Setup Zijn afspraken tussen je Arduino en je computer to hoe deze communicationeren, ons geval latten we dit deel code gewoon zoals ze is.

8. darbība: KODS: LOOP

KODS: LOOP
KODS: LOOP

Pēc nosaukuma "Loop" ir pieejams kods bez pārtraukuma draaien als onze Arduino Leonardo verbonden tiek izpildīts datorā un 12. pin ir pieejams. Het is ook meteen het deel van de code waar we het meest kunnen aanpassen. De code onder 'button A' en 'button B' is gekoppeld aan onze mini push pogas can je aanpassen door in de code Keyboard.release ('a') enKeyboard.release ('a') twee maal de ('a') te vervangen durvju eender welke ander tastatūras rokturi.

!!! Sommige keyboardtoetsen moet kan je niet rechtstreeks intypen maar hebben een code. Zo zou je de 'Dzēst' knop moet ingeven als 'KEY_DELETE' no als decimale waarde '212'. Een lijst van dit soort uitzonderingen binnen arduino vind je via deze link. Wil je nog meer info dan kijk je best eens naar de ASCII tabel.

Pa labi, pa kreisi, uz augšu un uz leju vind je vrij gelijkaardige code als bij pogas, het grote verschil zit hem in het if (accx <-20000) deel van de code. Lai pārbaudītu akselerometru: izmantojiet arī akselerometru, kā arī akselerometru -20000, lai nerastos nekādas izmaiņas (KEY_RIGHT_ARROW) ingeduwd. Kantel je opnieuw naar links en wordt de waarde groter dan -20000 dan laat hij de rechter pijltoets opnieuw los.

Hier komen de genoteerde waarden uit stap vijf van pas. Pas de waarden aan naargelang je noties om zo jou specificieke akselerometrs te kalibreren. Je kan deze waarden bijstellen naargelang je eigen speelstijl.

Tenslotte vinden we helemaal onderaan de code delay (50). Datora koda vertraagt het aantal keyboard toetsen die je computer doorkrijgt. Iezīmējiet dat kontrolieri un vēl komandiera durvju aģentu un verhoog je dit getal met enkele tientallen. Reageert alles te traag dan verklein je het getal wat.

Izmēģinājums un kļūda ir boodschap!

Ieteicams: