Daftar Isi:

Pengontrol Game Akselerometer: 8 Langkah
Pengontrol Game Akselerometer: 8 Langkah

Video: Pengontrol Game Akselerometer: 8 Langkah

Video: Pengontrol Game Akselerometer: 8 Langkah
Video: How To Get Scroll Wheel Reset On Controller... 2024, November
Anonim
Pengontrol Game Akselerometer
Pengontrol Game Akselerometer

Teks Voorlopige…

Langkah 1: BAHAN

BAHAN
BAHAN
  • Arduino Leonardo: een mikrokontroler-bord als brein van onze pengontrol permainan.
  • Kabel micro USB: om onze game controller aan te sluiten aan een computer.
  • Papan tempat memotong roti: zo hoeven we niet te solderen en blijft ons ontwerp makkelijk aanpasbaar.
  • Kabel jumper papan tempat memotong roti: om alle componenten bertemu elkaar te verbinden.
  • Akselerometer MPU6050: een sensor die versnellingen di de verschillende richtingen kan lezen, zoals je vaak di smartphone, hoverboards dan balancerende robots vindt.
  • Tombol tekan mini twee: om knoppen te programmeren die los staan van onze accelerometer.

Pilihan:

Breadboard dan Arduino houder: om compact te kunnen werken

Langkah 2: PERANGKAT LUNAK ARDUINO

Voor we kunnen beginnen aan de bouw- en programmerpret hebben we de juiste software nodig om het brein van onze pengontrol permainan, een Arduino Leonardo, te kunnen besturen. Om dit te installeren, ga je als volgt te werk:

  • Ga via volgende link naar de download pagina van Arduino:
  • Kies voor de juiste software op basis van je sistem operasi.
  • Klik unduhan op.
  • 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 het gedownloade. Versi Windows App kan dit evengoed, maar kan kleine verschillen hebben in aanpak.

  • Buka perangkat lunak Arduino.
  • Connecteer je Arduino Leonardo bertemu je micro USB kabel aan je komputer, de Leonardo driver worden automatisch geïnstalleerd (dit gebeurt enkel als het de eerst keer is dat je de Arduino aansluit).

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

  • Kies melalui Bestdan > 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.
  • Pilih seri poorle poort door bij Hulpmiddelen > Poort > COMx (Arduino Leonardo te kiezen. Dit doe je om aan te geven via welke USB poort je Arduino komuniceert.
  • Klik di de linkerbovenhoek op het pijltje symbool om het voorbeeldprogramma te uploaden.
  • Links 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 in de code. Di dit geval gebruiken we een foutloze voorbeeldcode, waardoor de fout bij de connectie tussen de Leonardo en je komputer moet liggen.

Langkah 3: FOLDER PERPUSTAKAAN

Zijn Arduino dalam data staat om heel veel te verwerken. Dit zorgt er voor dat er ook veel code nodig is om deze data benar kompiler. Om deze code niet eindeloos lang en complex te schrijven, maken wij gebruik van Perpustakaan Arduino, bibliotheken van code die bepaalde sensor gaan sturen en ons werk een stuk makkelijker maken. Pada proyek gebruik drie soortgelijke perpustakaan: Kawat, I2Cdev en MPU6050. Perangkat lunak De Arduino heeft een goede basis aan library ingebouwd, alsook onze eerste (Wire) bibliotheek, maar de twee andere dienen we zelf nog te installeren:

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

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

  • Perangkat lunak sluit de Arduino untuk memulai operasi opnieuw op om toegang tot de library dan krijgen.
  • Melalui Skema > Bibliotheek Gebruiken kan je controleren of nu ook I2Cdev en MPU6050 te vinden zijn.

Langkah 4: ACCELEROMETER - DE TEORI

ACCELEROMETER - DE THEORIE
ACCELEROMETER - DE THEORIE

Een accelerometer bekerja berdasarkan efek van het piezoelectrisch. 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 driedimensionale X, Y en Z assen. Afhankelijk van de piezoelectrische stroom geproduceerd langs deze wanden kunnen we zo de versnelling in drie dimensi bepalen.

Om een praktijkvoorbeeld te geven: Di elke smartphone zit tegenwoordig ook standar een accelerometer. Deze zorgt er onder andere voor dat je scherm automatisch meedraait al je smartphone kantelt.

Langkah 5: ACCELEROMETER - DE PRAKTIJK

ACCELEROMETER - DE PRAKTIJK
ACCELEROMETER - DE PRAKTIJK

Weten nu dat een accelerometer de versnelling in de X, Y en Z as kan meten, maar meet onze software Arduino kunnen we die data ook echt zien en opvolgen. Om dit te doen ga je al volgt te werk:

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

!!! De accelerometer wordt voorzien van de nodige pinnen om makkelijk op een papan tempat memotong roti te prikken, maar deze pinnen dienen wel nog gesoldeerd te worden. Je krijgt de optie om die haaks op je papan tempat memotong roti te plaatsen (bespaart plaats) dari evenwijdig zoals di ons voorbeeld.

  • Unduh ons 'MPU6050_intro' terbaik dan buka deze di perangkat lunak Arduino.
  • Pengendali je boardtype en poort nog steeds juist staan.
  • Klik di de linkerbovenhoek op het pijltje om het programa up te loaden.
  • Pemilih melalui Hulpmiddelen > Seriële Monitor
  • En nieuw venster opent met 3 kolommen met getallen, dit zijn de versnellingen in de X, Y en Z assen.
  • Lihat akselerometer om de versnellingen di alle richtingen te zien.

Terwijl we onze versnellingsdata voor ons hebben kunnen we 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 een ruwe schatting zijn). Onderneem daarna volgende stappen:

  • Kantel de accelerometer 45° naar rechts en noteer de gemiddelde X waarde.
  • Kantel de accelerometer 45° naar link en noteer de gemiddelde X waarde.
  • Kantel de accelerometer 45° naar voor en noteer de gemiddelde Y waarde.
  • Kantel de accelerometer 45° naar achter en noteer de gemiddelde Y waarde.

Langkah 6: KONTROL PERMAINAN

PENGONTROL PERMAINAN
PENGONTROL PERMAINAN

Klaar voor het echte werk! Kami menemukan akselerometer onze 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 skema.

!!! Tombol tekan mini hebben vaak een buiging in hun betjes. Druk die plat bertemu een punttang om ze makkelijker di je papan tempat memotong roti te krijgen.

  • Unduh ons 'MPU6050_gamecontroller' terbaik dan buka deze di perangkat lunak Arduino.
  • Verbind je Arduino en klik di de linkerbovenhoek op het pijltje om het programma up te loaden.
  • De Arduino Leonardo stuurt nu konstan informatie pintu naar je komputer. 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! Anda dapat mengontrol basis kontroler gemaakt, menguji apakah Anda dapat bekerja dengan baik.

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 noden. Daarvoor duiken we in de Arduino code

Langkah 7: KODE - PERPUSTAKAAN YANG DIGUNAKAN

KODE - PERPUSTAKAAN BEKAS
KODE - PERPUSTAKAAN BEKAS

Het leuke aan Arduino code is dat deze snel aanpasbaar is zonder dat je daarvoor een uitgebreide programmerkennis 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 de 'MPU6050_gamecontroller' kode vind je een heleboel lichtgrijze teks. Dat is tekst die geen invloed heeft op de code, maar die dient om de code wat te structure. Ook tekst die na // komt, staat los van de code en dient als verduidelijking. Dengan kode vinden kita terug pada judul 'Perpustakaan Bekas', daar herken je meteen de library die we in stap drie geïnstalleerd hebben.

  • #termasuk geeft aan dat we de 'IC2dev' bibliotheek gaan gebruiken
  • const int ENABLE = 12 geeft aan dat kita pin 12 gebruiken als veiligheid. Adalah deze pin niet verbonden dan stopt ons programa automatisch.
  • const int A_BUTTON = 6 geeft aan dat onze A knop aangesloten is op poort 5

!!! De code onder Setup zijn afspraken tussen je Arduino en je komputer melalui hoe deze communiceren, di ons geval laten kita dit deel kode gewoon zoals ze adalah.

Langkah 8: KODE: LOOP

KODE: LOOP
KODE: LOOP

Onder de titel 'Loop' vind je lijnen code die non stop draaien als onze Arduino Leonardo verbonden terpenuhi dengan komputer en pin 12 adalah aangesloten. Het is ook meteen het deel van de code waar we het meet kunnen aanpassen. De code onder 'button A' en 'button B' adalah gekoppeld aan onze mini push button kan je aanpassen door in de code Keyboard.release ('a') enKeyboard.release ('a') twee maal de ('a') te vervangen door eender welke ander keyboard jari kaki.

!!! Sommige keyboardtoetsen moet kan je niet rechtstreeks intypen maar hebben een code. Zo zou je de 'Hapus' knop moet bahkan 'KEY_DELETE' dari als desimal waarde '212'. Een lijst van dit soort uitzonderingen binnen arduino vind je melalui deze link. Wil je nog meer info dan kijk je best eens naar de ASCII tabel.

Ke kanan, kiri, atas dan bawah vind je vrij gelijkaardige code als bij de kancing, 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 noties 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 kode vertraagt het aantal keyboard toetsen die je komputer doorkrijgt. Merkje dat je controller te veel commando's doorgeeft dan verhoog je dit getal met enkele tientallen. Reageert alles te traag dan verklein je het getal wat.

Trial en error adalah de boodschap!

Direkomendasikan: