Talaan ng mga Nilalaman:

Controller ng Laro ng Accelerometer: 8 Mga Hakbang
Controller ng Laro ng Accelerometer: 8 Mga Hakbang

Video: Controller ng Laro ng Accelerometer: 8 Mga Hakbang

Video: Controller ng Laro ng Accelerometer: 8 Mga Hakbang
Video: motor na maliit 2024, Nobyembre
Anonim
Controller ng Laro ng Accelerometer
Controller ng Laro ng Accelerometer

Text ng Voorlopige…

Hakbang 1: MATERIAAL

MATERIAAL
MATERIAAL
  • Arduino Leonardo: een microcontroller-bord als brein van onze game controller.
  • Micro USB kabel: maaari mong kontrolin ang laro sa iyong computer.
  • Breadboard: zo hoeven we niet te solderen en blijft ons ontwerp makkelijk aanpasbaar.
  • Mga wires ng jumper ng Breadboard: lahat ng sangkap na natutugunan sa pagsasalita.
  • MPU6050 accelerometer: ang sensor ay maaaring mamatay sa maraming mga tampok, na magagamit sa mga smartphone, hoverboard at balancerende robots vindt.
  • Mga pindutan ng mini push push: om knoppen te programmeren die los staan van onze accelerometer.

Optioneel:

Breadboard tl Arduino houder: om compact te kunnen werken

Hakbang 2: ARDUINO SOFTWARE

Hindi natin sinisimulan ang simula ng programa ng programa na binibigyang diin namin ng aming software na tumatagal ng tagapagtaguyod ng kontrol sa laro, para kay Arduino Leonardo, kung hindi kami makakamit. Maaring ang installeren, ay maaari kang magdagdag:

  • Ga sa pamamagitan ng volgende link naar de downloadpagina van Arduino:
  • Kies voor de juiste software op batayan sa pagpapatakbo ng systeem.
  • I-click ang pag-download.
  • Kung hindi ka makakakuha ng (.exe) pinakamahusay na pinto upang mai-click ang pinto upang mai-install ang vervolledigen.

!!! Wij hebben onze controller ay natutugunan ang programa sa pag-download. Sa pamamagitan ng Windows App, maaari kang magkaroon ng evengoed, ma-access ang iyong bersyon sa isang libreng.

  • Buksan ang de Arduino software.
  • Ang koneksyon sa Arduino Leonardo ay nakilala ang micro USB cable sa isang computer, ang mga driver ng Leonardo ay nagsasalita ng automatisch geïnstalleerd (maaari kang magkaroon ng eerst keer na ito ay para sa Arduino aansluit).

Als je nog niet zo vertrouwd bent met Arduino software, of je controleert graag eens of je Arduino Leonardo foutloos verbinding maakt met je computer, at para sa iyo ay makkelijk testen met een voorbeeldprogramma:

  • Kies sa pamamagitan ng Bestand> Voorbeelden> 01. Mga Pangunahing Kaalaman> Blink om een voorbeeldprogramma te openen.
  • Vervolgens kies je bij Hulpmiddelen> Board> Arduino Leonardo om de software ang laten weten welk type board wij gaan gebruiken.
  • Piliin ang serye ng pintuan ng pintuan ng Hulpmiddelen> Poort> COMx (Arduino Leonardo te kiezen. Mag-sign in sa pamamagitan ng welke USB poort sa Arduino communiceert.
  • Mag-click sa link
  • Ang mga link na ito ay nabanggit sa pamamagitan ng isang programa ng isang programa na nai-upload ay, gevolgd door de boodschap 'uploaden voltooid' upang magtagumpay.

!!! Als het uploaden niet lukt en een rode foutmelding geeft dan ligt dit vaak aan een fout in de code. Sa pamamagitan ng geval gebruiken namin ang foutloze voorbeeldcode, waardoor de fout bij de connectie tussen de Leonardo para sa computer moet liggen.

Hakbang 3: LIBRARY FOLDER

Arduino's zijn in staat om heel veel data te verwerken. Narito ang anumang impormasyon tungkol sa iyong code ng nod nod ay ang tamang pagwawasto ng data sa compileren. Ang code na ito ay nasa loob lamang ng kumplikado ng schrijven, nabuo ang mga Arduino Library, bibliotheken van code die bepaalde sensors gaan firmen at on werk een stuk makkelijker maken. Ons project gebruik drie soortgelijke libraries: Wire, I2Cdev en MPU6050. Ang software ng De Arduino ay hindi kinakailangan ng batayan sa mga aklatan na nasaebouwd, din sa ibang eerste (Wire) bibliotheek, maar de twee andere dienen namin ang sarili natin para sa installeren:

  • Mag-link ng link sa pag-click sa 'I-clone o I-download' at i-download ang ZIP file
  • Pak de ZIP file na dapat mong gawin sa lahat ng pinakamahusay.
  • Sa de bekomen map vind je via i2cdevlib-master> Arduino de folder 'I2Cdev' en MPU6050.
  • Kopieer beide mappen naar de Arduino map sa pamamagitan ng C> Program Files> Arduino> Library.

!!! Hindi mo mai-install ang software ng sarili mo para sa iyong sarili at ang lokasyon ng opgegeven hebt at, kung hindi mo ito mailalagay. Si Het ay niet de bedoeling dat je zelf een map aanmaakt.

  • Sluit de Arduino software upang simulan ang opnieuw para sa lahat ng mga aklatan para sa iyo.
  • Sa pamamagitan ng Schets> Bibliotheek Gebruiken para sa controleren ng nu ook I2Cdev en MPU6050 te vinden zijn.

Hakbang 4: ACCELEROMETER - DE THEORIE

ACCELEROMETER - DE THEORIE
ACCELEROMETER - DE THEORIE

Een accelerometer werkt op batayan van het piezoelectrisch epekto. Nangangailangan ng iyong site sa loob ng isang taon (zoals in de bovenstaande ilustratie) ay naghahanap ng isang wand gemaakt ay 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 dryimensionale X, Y en Z assen. Sa pamamagitan ng van de piezoelectrische stroom geproduceerd langs deze wanden kunnen we zo de versnelling in drie dimensies bepalen.

Maaring magdagdag ng mga tampok: Sa telepono smartphone zit tegenwoordig ook standaard een accelerometer. Maaari kang mag-sign up sa iyong application upang ma-access ang iyong smartphone kantelt.

Hakbang 5: ACCELEROMETER - DE PRAKTIJK

ACCELEROMETER - DE PRAKTIJK
ACCELEROMETER - DE PRAKTIJK

Nababasa namin ang datos na ito ng accelerometer de versnelling sa de X, Y en Z bilang isang meten, madaling makilala ang Arduino software kung mamamatay tayo sa data ook echt zien en opvolgen. Kung hindi mo ito maibabalik sa iyo:

Sluit de accelerometer aan volgens bovenstaand schema en verbind de Arduino Leonardo nakilala ang computer

!!! De accelerometer wordt voorzien van de nodige pinnen om makkelijk op een breadboard te prikken, maar deze pinnen dienen wel nog gesoldeerd te worden. Maaring makita ang iyong mga pagpipilian sa breadboard te plaatsen (bespaart plaats) ng evenwijdig zoals in ons voorbeeld.

  • I-download ang 'MPU6050_intro' bestand para buksan ang deze sa de Arduino software.
  • Controleer ng je boardtype en poort nog steeds juist staan.
  • Mag-click sa link
  • Pumili sa pamamagitan ng Hulpmiddelen> Seriële Monitor
  • Ang Een nieuw venster opent ay nakilala ang 3 kolommen met getallen, dit zijn de versnellingen in de X, Y en Z assen.
  • Beweeg je accelerometer om de versnellingen in all richtingen te zien.

Kami ay naka-onze sa maraming mga nalalaman sa aming hebben kunnen namin meteen verkennend werk doen voor onze game controller. Leg de Arduino en accelerometer plat op de tafel en noteer gemiddelde X en Y waarde (mag-isip ng mga schatting zijn). Onderneem daarna volgende stappen:

  • Kantel de accelerometer 45 ° naar rechts en noteer de gemiddelde X waarde.
  • Ang Kantel de accelerometer 45 ° naar na mga link at tala ng gemiddelde X waarde.
  • Kantel de accelerometer 45 ° naar voor en noteer de gemiddelde Y waarde.
  • Ang kantel de accelerometer 45 ° ay nai-achter sa nota de gemiddelde Y waarde.

Hakbang 6: CONTROLLER NG GAME

GAME CONTROLLER
GAME CONTROLLER

Klaar voor het echte werk! Namin ang gebruiken onze accelerometer samen met twee drukknoppen om het brein van onze eigen game controller te worden. Koppel de Arduino en accelerometer los en bouw het geheel opnieuw op volgens bovenstaand schema.

!!! Ang mga mini pindutan ng itulak hebben vaak een buiging in hun beentjes. Druk die plat met een punttang om ze makkelijker in je breadboard te krijgen.

  • I-download ang 'MPU6050_gamecontroller' pinakamahusay at upang buksan ang deze sa de Arduino software.
  • Verbind je Arduino en click in de linkerbovenhoek op het pijltje om het programma up te loaden.
  • De Arduino Leonardo stuurt na pare-pareho ang impormasyon sa pinto ng computer. Wil je de datavoer even pauzeren, koppel dan de jump wire op pin 12 even los, en verbind die opnieuw als je verder lay gaan.
  • Proficiat! Sa gayon, ang batayan ng taga-kontrol ng kontrol, subukan ang pagsubok sa iyong aparato.

Magkaroon ng isang tagapamahala ay hindi nagtagumpay kung mayroon bang verwacht. Dat betekent gewoon dat we nog calibratie werk hebben om de controller aan te passen naar onze noden. Daarvoor duiken namin sa de Arduino code

Hakbang 7: CODE - GAMIT NG LIBRARIES

CODE - GAMIT NG LIBRARIES
CODE - GAMIT NG LIBRARIES

Ang code ng Arduino ay ang code ng datos ng snap aanpasbaar ay zonder dat je daarvoor een uitgebreide programmeerkennis moet hebben. Maaari kang tumulong sa overlopen na kort waar je wat vindt, en wat je kan aanpassen om je controller kalibreren.

Sa de 'MPU6050_gamecontroller' code vind je een heleboel lichtgrijze tekst. Ang Dat ay tekst die geen invloed heeft op de code, maaring hindi maipakita ang code sa kanilang tagapagturo. Ook tekst die na // komt, staat los van de code en dient als verduidelijking. Sa pamamagitan ng echte code vinden we terug onder de titel 'Mga Ginamit na Aklatan', maaari kang magtanong sa mga aklatan na mamatay kami sa stap drie geïnstalleerd hebben.

  • # isama geeft aan dat we de 'IC2dev' bibliotheek gaan gebruiken
  • Const int ENABLE = 12 geeft aan dat pin namin ang 12 gebruiken als veiligheid. Ay ang deze pin niet verbonden at stopt ons programma automatisch.
  • Const int A_BUTTON = 6 geeft aan dat onze Ang isang knop aangesloten ay op poort 5

!!! De code onder Setup zijn afspraken tussen je Arduino en je computer over hoe deze communiceren, in on geval laten we dit deel code gewoon zoals ze is.

Hakbang 8: CODE: LOOP

CODE: LOOP
CODE: LOOP

Sa pamamagitan ng titulo 'Loop' vind je lijnen code die non stop draaien als onze Arduino Leonardo verbonden ay natutugunan sa computer en pin 12 ay aangesloten. Si Het ay nasa isang lugar ng van van ng code na nag-uusap na hindi namin pinakamagaling kunnen aanpassen. De code onder 'button A' en 'button B' is gekoppeld aan onze mini push pindutan para makita ang pinto sa de code Keyboard.release ('a') enKeyboard.release ('a') twee maal de ('a') ang vervangen pinto eender welke ander keyboard toets.

!!! Sommige keyboardtoetsen moet para sa iyo na rechtstreeks intypen maar hebben een code. Zo zou je de 'Delete' knop moet ingeven als 'KEY_DELETE' of als decimale waarde '212'. Sa loob ng 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.

Sa kanan, pakaliwa, pataas at pababa, maaari mong makita ang code na ito sa mga pindutan, magkakaroon ng maraming bersyon sa loob ng het (accx <-20000) mula sa code ng deel. Na-update ng accelerometer: als de accelerometer naar rechts kantelt en een waarde kleiner dan -20000 leest at wordt de rechter pijltoets (KEY_RIGHT_ARROW) ingeduwd. Kantel je opnieuw naar link en wordt de waarde groter dan -20000 at 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 specifieke accelerometer te kalibreren. Je kan deze waarden bijstellen naargelang je eigen speelstijl.

Tenslotte vinden we helemaal onderaan de code pagkaantala (50). Ang mga code ng patnubay na ito ay nasa itaas ng keyboard upang mabuo ang computer doorkrijgt. Maaari kang pumili ng kontrol sa pintuan ng pintuan ng pinto at verhoog upang makita ang lahat ng ito. Reageert alles te traag dan verklein je het getal wat.

Ang error sa pagsubok ay en boodschap!

Inirerekumendang: