Inhaltsverzeichnis:
- Schritt 1: MATERIAAL
- Schritt 2: ARDUINO-SOFTWARE
- Schritt 3: BIBLIOTHEK ORDNER
- Schritt 4: BESCHLEUNIGUNGSMETER - DE THEORIE
- Schritt 5: BESCHLEUNIGUNGSMETER - DE PRAKTIJK
- Schritt 6: SPIELCONTROLLER
- Schritt 7: CODE - VERWENDETE BIBLIOTHEKEN
- Schritt 8: CODE: LOOP
Video: Beschleunigungsmesser-Gamecontroller - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:19
Voorlopiger Text…
Schritt 1: MATERIAAL
- Arduino Leonardo: Ein Mikrocontroller-Bord als brein van onze Gamecontroller.
- Micro-USB-Kabel: om Onze-Game-Controller für einen Computer.
- Steckbrett: zo hoeven we niet te solen en blijft ons ontwerp makkelijk aanpasbaar.
- Steckbrett-Jumperdrähte: om alle Komponenten mit elkaar te verbinden.
- MPU6050 Beschleunigungsmesser: Ein Sensor, der in de verschillenden Richtingen lezen kann, zoals je vaak in Smartphones, Hoverboards und Balancerende Roboter vindt.
- Zwei Mini-Druckknöpfe: om knoppen te Programmierer die los staan van onze Beschleunigungsmesser.
Optionen:
Breadboard und Arduino houder: om compact te kunnen werken
Schritt 2: ARDUINO-SOFTWARE
Voor we kunnen beginnen aan de bouw- en programerpret hebben we de juiste software nodig of het brein van onze game controller, een Arduino Leonardo, te kunnen besturen. Om dit te installeren, ga je als volgt te werk:
- Ga über den Volgende-Link zum Download von Arduino:
- Kies voor de juiste software auf der Basis jedes Betriebssystems.
- Klick op herunterladen.
- Je hebt nu een (.exe) bestand dat je uitvoert door er op te dubbel klikken om de installatie te vervolledigen.
!!! Wij hebben onze controller erstellt mit dem heruntergeladenen Programm. De Windows App versie kan dit Evengoed, maar kan kleine verschillen hebben in aanpak.
- Öffnen Sie die Arduino-Software.
- Connecteer je Arduino Leonardo met je micro USB kabel aan je computer, de Leonardo Drivers wurden automatisch geïnstalleerd (dit gebeurt enkel as het de eerst keer is dat je de Arduino aansluit).
Wenn Sie nicht mit Arduino-Software umgehen, können Sie die Arduino-Software steuern, die Sie mit Ihrem Arduino steuern können.
- 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 bruiken.
- Selecteer de juiste seriële poort door bij Hulpmiddelen > Poort > COMx (Arduino Leonardo te kiezen. Dit doe je om aan te geven via welke USB poort je Arduino communiceert.
- Klicken Sie in de linkerbovenhoek auf das pijltje symbol om het voorbeeldprogramma te uploaden.
- Links beneden zie je een indicatie sterben aantoont dat het programma aan het uploaden ist, gevolgd Door de boodschap 'uploaden voltooid' bij succes.
!!! Als het uploaden niet lukt und een rode foutmelding geeft und ligt dit vaak aan een fout in de code. In dit geval gebruiken wir een foutloze voorbeeldcode, waardoor de fout bij de connectie tussen de Leonardo und je computer moet liggen.
Schritt 3: BIBLIOTHEK ORDNER
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 Compiler. Om deze code niet eindeloos lang en Complex te schrijven, maken wij gebruik van Arduino Libraries, bibliotheken van code die bepaalde sensoren gaan sturen and ons werk een stuk makkelijker maken. Ons Projekt gebruik drie soortgelijke Bibliotheken: Wire, I2Cdev und MPU6050. Die Arduino-Software heeft een goede basis aan Bibliotheken 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' und download de ZIP file
- Pak de ZIP file uit om toegang te krijgen tot de bestanden.
- In de bekomen map vind je via i2cdevlib-master > Arduino de Ordner 'I2Cdev' und MPU6050.
- Kopieer beide mappen naar de Arduino map via C > Program Files > Arduino > Libraries.
!!! Indien je de bij de installatie van de software zelf een other locatie opgegeven hebt dan, vind je de nodige mappen daar. Het is niet de bedoeling dat je zelf een map aanmaakt.
- Sluit de Arduino Software af e start ze opnieuw op om toegang tot de Bibliotheken und Krijgen.
- Via Schets > Bibliotheek Gebruiken kan je controleren of nu ook I2Cdev en MPU6050 te vinden zijn.
Schritt 4: BESCHLEUNIGUNGSMETER - DE THEORIE
Ein Beschleunigungsmesser werkt op basis van het piezoelektrischer Wirkung. 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 wurde gekoppeld aan de driedimensionale X, Y und Z assen. Afhankelijk van de piezoelectrische stroom geproduceerd langs deze wanden kunnen we zo de versnelling in dry dimensies bepalen.
Om een praktijkvoorbeeld te geven: In Elke Smartphone zitt tegenwoordig ook standaard een Accelerometer. Deze zorgt er onder other voor dat je scherm automatic meedraait as je smartphone kantelt.
Schritt 5: BESCHLEUNIGUNGSMETER - DE PRAKTIJK
Wir weten nu dat een Accelerometer de Versnelling in de X, Y und Z als kan meten, maar met onze Arduino software kunnen wir die data ook echt zien en opvolgen. Om dit te doen ga je als volgt te werk:
Beschleunigungssensor mit einem volgens bovenstaand Schema und verbinde Arduino Leonardo mit deinem 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. Je krijgt de optie om die haaks op je Breadboard te plaatsen (bespaart plaats) von Evenwijdig Zoals in ons voorbeeld.
- Laden Sie den 'MPU6050_intro'-Bestand herunter und öffnen Sie ihn in der Arduino-Software.
- Controleer von je boardtype en poort nog rosses juist staan.
- Klicken Sie auf den Linkerbovenhoek-Befehl, um das Programm hochzuladen.
- Auswahl über Hulpmiddelen > Seriële Monitor
- Een nieuw venster opent mit 3 Kolommen mit getallen, dit zijn de versnellingen in de X, Y und Z assen.
- Beweeg je accelerometer om de versnellingen in allen richtingen te zien.
Terwijl wir haben versnellingsdata für unsere hebben kunnen wir kennengelernt werk voor onze Gamecontroller. Bein von Arduino und Beschleunigungsmesser-Platte-Op-Tafel-und-Notizer-gemiddelde X- und Y-Waarde (mag een ruwe chatting zijn). Onderneem daarna volgende stappen:
- Kantel des Beschleunigungsmessers 45° naar rechts en noteer de gemiddelde X waarde.
- Kantel des Beschleunigungsmessers 45° in der Nähe der Links und des Gemiddelde X waarde.
- Kantel des Beschleunigungsmessers 45° nahe dem Gemiddelde Y waarde.
- Kantel des Beschleunigungsmessers 45° nah am Achter und Noteer de gemiddelde Y waarde.
Schritt 6: SPIELCONTROLLER
Klaar für das echte Werk! Wir haben einen Beschleunigungsmesser mit zwei Drukknoppen om het brein van onze eigen Gamecontroller te gebruiken. Koppeln Sie Arduino und Beschleunigungsmesser los, um das Geliebte auf dem volgens Bovenstaand-Schema zu öffnen.
!!! De mini Druckknöpfe hebben vaak een buiging in hun betjes. Druk die plat met een punttang om ze makkelijker in je breadboard te krijgen.
- Laden Sie den 'MPU6050_gamecontroller'-Bestand herunter und öffnen Sie ihn in der Arduino-Software.
- Verbind je Arduino en klik in de linkerbovenhoek op het pijltje om het programma up te loaden.
- Der Arduino Leonardo verfügt über eine ständige Informationstür auf Ihrem Computer. Wil je de datavoer sogar pauzeren, koppel dan de jump wire op pin 12 sogar los, en verbind die opnieuw as je verder wilt gaan.
- Profitieren Sie! Je hebt nu een Basiscontroller gemaakt, test het gerust eens uit op pacman.
Geen paniek as je controller niet metéén doet wat je hatte verwacht. Dat betekent gewoon dat we nog calibratie werk hebben om de controller aan te pass naar onze noden. Daarvoor duiken wir im Arduino-Code
Schritt 7: CODE - VERWENDETE BIBLIOTHEKEN
Het leuke aan Arduino code is dat deze snel aanpasbaar is zonder dat je daarvoor een uitgebreide programerkennis moet hebben. Om je op weg te helpen overlopen we kort waar je wat vindt, en wat je kann om je Controller kalibreren aanpassen.
In de 'MPU6050_gamecontroller' Code vind je een heleboel lichtgrijze tekst. Dat ist tekst die geen invloed 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 library die we in stap drie geïnstalleerd hebben.
- #enthalten
geeft aan dat we de 'IC2dev' bibliotheek gaan gebruiken - const int ENABLE = 12 geeft aan dat wir pin 12 gebruiken als veiligheid. Is deze pin niet verbonden dan stopt ons programma 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 computer over hoe deze communiceren, in ons geval laten wir dit deel code gewoon zoals ze.
Schritt 8: CODE: LOOP
Onder de titel 'Loop' vind je lijnen code sterben non stop draaien as onze Arduino Leonardo verbonden is met de computer en pin 12 is aangesloten. 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 buttons can je aanpassen door in de code Keyboard.release ('a') enKeyboard.release ('a') twee maal de ('a') te vervangen tür eender welke ander keyboard toets.
!!! Sommige keyboardtoetsen moet kan je niet rechtstreeks intypen maar hebben een code. Zo zou je de 'Delete' kann auch als 'KEY_DELETE' oder als decimale waarde '212' verwendet werden. Een lijst van dit soort uitzonderingen binnen arduino vind je via deze link. Wil je nog meer info dan kijk je best aens naar de ASCII-Tabelle.
Onder de right, left, up en down vind je vrij gelijkaardige code as bij de buttons, het grote verschil zit het in het if (accx < -20000) deel van de code. Dit verwijst naar de accelerometer: as de accelerometer naar rechts kantelt en een waarde kleiner dan -20000 leest dan wordt de rechter pijltoets (KEY_RIGHT_ARROW) ingeduwd. Kantel ist frei von Links und Wörtern von Waarde Groter von -20000 und von allen anderen Rechten.
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 wir heemaal onderaan de code delay (50). Dat stukje code vertraagt het aantal keyboard toetsen the je computer doorkrijgt. Merkje dat je controller te veel commando's doorgeeft und verhoog je dit getal met enkele tientallen. Reageert alles te traag dan verklein je het getal wat.
Trial en error ist de boodschap!