Isi kandungan:

Pengawal Permainan Accelerometer: 8 Langkah
Pengawal Permainan Accelerometer: 8 Langkah

Video: Pengawal Permainan Accelerometer: 8 Langkah

Video: Pengawal Permainan Accelerometer: 8 Langkah
Video: How to use MPU-6050 Accelerometer and Gyroscope with Arduino code 2024, Julai
Anonim
Pengawal Permainan Accelerometer
Pengawal Permainan Accelerometer

Teks Voorlopige…

Langkah 1: BAHAN

BAHAN
BAHAN
  • Arduino Leonardo: een microcontroller-bord als brein van onze game controller.
  • Kabel USB mikro: pengawal permainan om onze aan te sluiten aan een computer.
  • Papan roti: zo hoeven we niet te solderen en blijft onswtp makkelijk aanpasbaar.
  • Kabel pelompat papan roti: om alle komponenen bertemu elkaar te verbinden.
  • Akselerometer MPU6050: sensor een die versnellingen in de verschillende richtingen kan lezen, zoals je vaak di telefon pintar, hoverboards en balancerende robot vindt.
  • Butang tekan mini twee: om knoppen te programmeren die los staan van onze accelerometer.

Pilihan:

Breadboard en Arduino houder: om kompak te kunnen werken

Langkah 2: PERISIAN ARDUINO

Sayang kita kunnen aan de bouw- en programmeerpretasikan hebben we de juiste software nodig om het brein van onze game controller, een Arduino Leonardo, te kunnen besturen. Om dit te installeren, ga je als volgt te werk:

  • Ga melalui pautan volgende naar de downloadpagina van Arduino:
  • Kies voor de juiste perisian op dasar van je sistem operasi.
  • Klik op muat turun.
  • 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 bertemu dengan program hed gedownloade. De Windows App versie kan dit evengoed, maar kan kleine verschillen hebben di aanpak.

  • Buka perisian de Arduino.
  • Connecteer je Arduino Leonardo bertemu dengan kabel USB mikro aan je komputer, pemacu de Leonardo worden automatisch geïnstalleerd (dit gebeurt enkel als het de eerst keer adalah dat je de Arduino aansluit).

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

  • Kies via Bestand> Voorbeelden> 01. Basics> Blink om een voorbeeldprogramma terbuka.
  • Vervolgens kies je bij Hulpmiddelen> Papan> Arduino Leonardo om de software te laten weten welk type board wij gaan gebruiken.
  • Selecteer de juiste seriële poort door Hulpmiddelen> Poort> COMx (Arduino Leonardo te kiezen. Dit doe je om aan te geven melalui welke USB poort je Arduino communiceert.
  • Klik di de linkerbovenhoek op het pijltje symbool om het voorbeeldprogramma te uploaden.
  • Pautan beneden zie je een indicatie die aantoont dat het programma 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 dalam kod. Di dalam gebral gebruiken, kita melihat kod voorbeeld, waardoor de fout bij de connectie tussen de Leonardo dan komputer moet liggen.

Langkah 3: FOLDER PERPUSTAKAAN

Arduino's 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. Om deze code niet eindeloos lang en complex te schrijven, maken wij gebruik van Arduino Library, bibliotheken van code die bepaalde sensors gaan Strengthen en ons werk een stuk makkelijker maken. Ons projek gebruik drie soortgelijke perpustakaan: Wire, I2Cdev en MPU6050. Perisian perisian De Arduino dan perpustakaan di dalam buku web, juga buku onze eerste (Wire) bibliotheek, maar de twee andere dienen we zelf nog te installeren:

  • Volg deze link en klik op 'Clone or Download' en download de ZIP file
  • Pak de ZIP file uit om toegang te krijgen tot de bestanden.
  • Di peta bek beken vind je melalui i2cdevlib-master> Arduino de folder 'I2Cdev' en MPU6050.
  • Peta Kopieer beide mappen naar de Arduino melalui C> Fail Program> Arduino> Perpustakaan.

!!! Indien 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 peta aanmaakt.

  • Perisian Sluit de Arduino semasa memulakan operasi dan pustaka te krijgen.
  • Melalui Schets> Bibliotheek Gebruiken kan je controleren of nu ook I2Cdev en MPU6050 te vinden zijn.

Langkah 4: ACCELEROMETER - DE THEORIE

ACCELEROMETER - DE TEORIE
ACCELEROMETER - DE TEORIE

Een accelerometer werkt op base van het kesan piezoelectrisch. Stel je een kubusvormig doosje voor waar een klein balletje in zit (zoals in de bovenstaande illustratie) waar elke tongkat gemaakt adalah 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 bilik. De drie paar evenwijdige wanden van de kubus worden gekoppeld aan de dryimensionale 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: Dalam telefon pintar elke zit tegenwoordig ook standaard een accelerometer. Deze zorgt er onder andere voor dat je scherm automatisch meedraait als je telefon pintar kantelt.

Langkah 5: ACCELEROMETER - DE PRAKTIJK

ACCELEROMETER - DE PRAKTIJK
ACCELEROMETER - DE PRAKTIJK

Kami membasahi nombor dan kecepatan akselerasi dalam de X, Y en Z as kan meten, maar met onze Arduino perisian kunnen kami mati data ook echt zien en opvolgen. Om dit te doen ga je als volgt te werk:

Sluit de accelerometer aan volgens bovenstaand schema en verbind de Arduino Leonardo bertemu komputer

!!! De accelerometer wordt voorzien van de nodige pinnen om makkelijk op een breadboard te prikken, maar deze pinnen dienen wel nog gesoldeerd te worden. Je krijgt de optie om die haaks op je papan roti te plaatsen (bespaart plaats) dari zoo zalim walaupun dalam voorbeeld.

  • Muat turun perisian 'MPU6050_intro' terbaik dan buka perisian de Arduino.
  • Controleer je boardtype en poort nog steeds juist staan.
  • Klik di dalam linkerbovenhoek op het pijltje om het programma up te loaden.
  • Pemilih melalui Hulpmiddelen> Seriële Monitor
  • Een nieuw venster dibuka 3 kolommen bertemu getallen, dit zijn de versnellingen di de X, Y en Z assen.
  • Beweeg je accelerometer om de versnellingen di alle richtingen te zien.

Terwijl we onze versnellingsdata voor ons hebben kunnen we meteen verkennend werk doen voor onze pengawal permainan. Leg de Arduino en accelerometer plat op de tafel en noteer gemiddelde X en Y waarde (mag een ruwe schatting zijn). Onderneem daarna volgende muncul:

  • Kantel de akselerometer 45 ° ke arah en noter de gemiddelde X waarde.
  • Kantel de accelerometer 45 ° pautan naar dan nota de gemiddelde X waarde.
  • Kantel de accelerometer 45 ° naar v note en noteer de gemiddelde Y waarde.
  • Kantel de accelerometer 45 ° achter en noteer de gemiddelde Y waarde.

Langkah 6: PENGAWAL PERMAINAN

PENGAWAL PERMAINAN
PENGAWAL PERMAINAN

Klaar voor het echte werk! Kami gebruiken onze accelerometer samen bertemu 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 skema.

!!! Butang tekan mini mini hebben vaak een di hun beentjes. Druk die plat bertemu een punttang om ze makkelijker di papan roti je te krijgen.

  • Muat turun 'MPU6050_gamecontroller' terbaik dan buka perisian dalam perisian de Arduino.
  • Verbind je Arduino en klik di de linkerbovenhoek op het pijltje om het programma up te loaden.
  • De Arduino Leonardo stuurt nu pintu maklumat berterusan komputer naar je. Wil je de datavoer even pauzeren, koppel dan de jump wire op pin 12 even los, en verbind die opnieuw als je verder wilt gaan.
  • Proficiat! 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 has verwacht. Dat betekent gewoon dat we nog calibratie werk hebben om de controller aan te passen naar onze mengangguk. Daarvoor duiken kami dalam kod de Arduino

Langkah 7: KOD - PERPUSTAKAAN YANG DIGUNAKAN

KOD - PERPUSTAKAAN YANG DIGUNAKAN
KOD - PERPUSTAKAAN YANG DIGUNAKAN

Het leuke aan Arduino code adalah 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.

Dalam kod de 'MPU6050_gamecontroller' vind je een heleboel lichtgrijze tekst. Dat adalah tekst die geen invefed heeft op de code, maar die dient om de code wat te structureren. Ook tekst die na // komt, staat los van de code en dient als verduidelijking. De eerste echte code vinden we terug onder de titel 'Used Libraries', daar herken je meteen de perpustakaan die we in stap drie geïnstalleerd hebben.

  • #sertakan geeft aan dat we de 'IC2dev' bibliotheek gaan gebruiken
  • const int ENABLE = 12 geeft aan dat we pin 12 gebruiken als veiligheid. Adakah deze pin niet verbonden dan berhenti program secara automatik.
  • const int A_BUTTON = 6 geeft aan dat onze A knop aangesloten adalah op poort 5

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

Langkah 8: KOD: LOOP

KOD: LOOP
KOD: LOOP

Onder de titel 'Loop' vind je lijnen code die non stop draaien als onze Arduino Leonardo verbonden ditemui de computer en pin 12 is aangesloten. Het is ook meteen het deel van de code waar kita het meest kunnen aanpassen. De code onder 'butang A' en 'butang B' adalah gekoppeld aan onze mini tekan butang kan je aanpassen door in de code Keyboard.release ('a') enKeyboard.release ('a') twee maal de ('a') te vervangen pintu eender welke dan tandas papan kekunci.

!!! Sommige keyboardtoetsen moet kan je niet rechtstreeks intypen maar hebben een code. Zo zou je de 'Delete' knet moet juga 'KEY_DELETE' dari als decimale waarde '212'. Een lijst van dit soort uitzonderingen binnen arduino vind je melalui pautan deze. Wil je nog meer info dan kijk je best eens naar de ASCII jadual.

Onder de kanan, kiri, atas en down vind je vrij gelijkaardige code als bij de butang, het grote verschil zit hem in het if (accx <-20000) deel van de code. Dit verwijst naar de accelerometer: als de accelerometer naar rechts kantelt en een waarde kleiner dan -20000 leest dan wordt de rechter pijltoets (KEY_RIGHT_ARROW) ingeduwd. Kantel je opnieuw naar link 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 nota om zo jou specifieke accelerometer te kalibreren. Je kan deze waarden bijstellen naargelang je eigen speelstijl.

Tenslotte vinden we helemaal onderaan de code delay (50). Dat stukje code vertraagt het aantal keyboard toetsen die je computer doorkrijgt. Merkje dat je pengawal pintu depan komando dan verhoog je dit getal bertemu enkele tientallen. Reageert alles te traag dan verklein je het getal wat.

Kesalahan percubaan adalah de boodschap!

Disyorkan: