Tabla de contenido:

Controlador de juego acelerómetro: 8 pasos
Controlador de juego acelerómetro: 8 pasos

Video: Controlador de juego acelerómetro: 8 pasos

Video: Controlador de juego acelerómetro: 8 pasos
Video: ✅ Entendí el Control PID, si lo aprendes vas a poder... 2024, Mes de julio
Anonim
Controlador de juego acelerómetro
Controlador de juego acelerómetro

Texto de Voorlopige…

Paso 1: MATERIAAL

MATERIAL
MATERIAL
  • Arduino Leonardo: un microcontrolador-bord como un controlador de juego brein van onze.
  • Micro USB kabel: om onze game controller aan te sluiten aan een computer.
  • Protoboard: zo hoeven we niet te solderen en blijft ons ontwerp makkelijk aanpasbaar.
  • Cables de puente de la placa de pruebas: om alle componenten met elkaar te verbinden.
  • Acelerómetro MPU6050: un sensor die versnellingen in de verschillende richtingen kan lezen, zoals je vaak in smartphones, hoverboards y balancerende robots vindt.
  • Twee mini pulsadores: om knoppen te programmeren die los staan van onze acelerómetro.

Optioneel:

Breadboard en Arduino houder: om compact te kunnen werken

Paso 2: SOFTWARE ARDUINO

Voor we kunnen beginnen aan de bouw- en programmeerpret 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 via volgende link naar de downloadpagina van Arduino:
  • Kies voor de juiste software op base van je operating systemem.
  • Descarga de Klik 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 se reunió con el programa gedownloade. La aplicación de Windows versie kan dit evengoed, maar kan kleine verschillen hebben in aanpak.

  • Abra el software de Arduino.
  • Connecteer je Arduino Leonardo met je micro USB kabel aan je computer, de Leonardo drivers 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 Arduino software, de je controleert graag eens of je Arduino Leonardo foutloos verbinding maakt met je computer, dan kan je dat makkelijk testen met een voorbeeldprogramma:

  • Kies via Bestand> Voorbeelden> 01. Basics> Blink om een voorbeeldprogramma te open.
  • Vervolgens kies je bij Hulpmiddelen> Board> Arduino Leonardo om de software te laten weten welk type board wij gaan gebruiken.
  • 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.
  • Haga clic en el linkerbovenhoek op het pijltje symbool om het voorbeeldprogramma te uploaden.
  • Enlaces 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 montó foutmelding geeft dan ligt dit vaak aan een fout in de code. En dit geval gebruiken, een foutloze voorbeeldcode, waardoor de fout bij de connectie tussen de Leonardo en je computer moet liggen.

Paso 3: CARPETA DE LA BIBLIOTECA

Arduino's zijn in staat om heel veel data te verwerken. Dit zorgt er voor dat er ook veel code nodig es om deze data correcta te compileren. Om deze code niet eindeloos lang en complex te schrijven, maken wij gebruik van Arduino Libraries, bibliotheken van code die bepaalde sensores gaan sturen en ons werk een stuk makkelijker maken. Bibliotecas del proyecto gebruik drie soortgelijke: Wire, I2Cdev en MPU6050. El software de Arduino se basa en las bibliotecas de aan 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' y descarga el archivo ZIP
  • Paquete de archivo ZIP uit om toegang te krijgen tot de bestanden.
  • En el mapa de bekomen vind je via i2cdevlib-master> Arduino de carpetas 'I2Cdev' en MPU6050.
  • Kopieer beide mappen naar de Arduino map a través de C> Archivos de programa> Arduino> Bibliotecas.

!!! 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 map aanmaakt.

  • Sluit de Arduino software af en start ze opnieuw op om toegang tot de libraries te krijgen.
  • Via Schets> Bibliotheek Gebruiken kan je controleren of nu ook I2Cdev en MPU6050 te vinden zijn.

Paso 4: ACELERÓMETRO - DE THEORIE

ACELERÓMETRO - DE THEORIE
ACELERÓMETRO - DE THEORIE

Un acelerómetro basado en el efecto piezoeléctrico. 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 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: en elke smartphone zit tegenwoordig ook standaard een acelerometer. Deze zorgt er onder andere voor dat je scherm automatisch meedraait als je smartphone kantelt.

Paso 5: ACELERÓMETRO - DE PRAKTIJK

ACELERÓMETRO - DE PRAKTIJK
ACELERÓMETRO - DE PRAKTIJK

Weten nu dat een acelerometer de versnelling in de X, Y en Z as 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:

Sluit de acelerometer aan volgens bovenstaand schema en verbind de Arduino Leonardo met je computer

!!! El acelerómetro 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) de evenwijdig zoals en ons voorbeeld.

  • Descargue 'MPU6050_intro' mejor y abra deze en el software de Arduino.
  • Controlador de je boardtype en poort nog steeds juist staan.
  • Klik in de linkerbovenhoek op het pijltje om het programma up te loaden.
  • Selecteer a través de Hulpmiddelen> Seriële Monitor
  • Een nieuw venster opent se reunió con 3 kolommen met getallen, dit zijn de versnellingen in de X, Y en Z assen.
  • Beweeg je acelerómetro om de versnellingen in alle richtingen te zien.

Terwijl we onze versnellingsdata voor ons hebben kunnen we medimos verkennend werk doen voor onze controlador de juego. Leg de Arduino en acelerómetro plat op de tafel y noteer gemiddelde X en Y waarde (mag een ruwe schatting zijn). Onderneem daarna volgende stappen:

  • Kantel de acelerometer 45 ° naar rechts en noteer de gemiddelde X waarde.
  • Kantel de acelerómetro 45 ° enlaces en el anotador de gemiddelde X waarde.
  • Kantel de acelerometer 45 ° naar voor en noteer de gemiddelde Y waarde.
  • Kantel de acelerometer 45 ° naar achter y noteer de gemiddelde Y waarde.

Paso 6: CONTROLADOR DE JUEGO

CONTROL DE JUEGO
CONTROL DE JUEGO

Klaar voor het echte werk! We gebruiken onze acelerómetro samen se reunió con twee drukknoppen om het brein van onze eigen controlador de juego te worden. Koppel de Arduino en accelerometer los en bouw het geheel opnieuw op volgens bovenstaand schema.

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

  • Descargue 'MPU6050_gamecontroller' bestand en open deze en el software de Arduino.
  • Verbind je Arduino y klik in de linkerbovenhoek op het pijltje om het programma up te loaden.
  • De Arduino Leonardo stuurt nu puerta de información constante en la computadora. 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, prueba 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 calibratie werk hebben om de controller aan te pasajeros naar onze noden. Daarvoor duiken nosotros en código de Arduino

Paso 7: CÓDIGO - BIBLIOTECAS USADAS

CÓDIGO - BIBLIOTECAS USADAS
CÓDIGO - BIBLIOTECAS USADAS

El código Arduino leuke aan es dat deze snel aanpasbaar es 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.

En el código 'MPU6050_gamecontroller' vind je een heleboel lichtgrijze tekst. Dat es 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 libraries die we in stap drie geïnstalleerd hebben.

  • #incluir geeft aan dat we de 'IC2dev' bibliotheek gaan gebruiken
  • const int ENABLE = 12 geeft aan dat fijamos 12 gebruiken als veiligheid. ¿Es deze pin niet verbonden dan stopt ons programma automatisch.
  • const int A_BUTTON = 6 geeft aan dat onze Un knop aangesloten es op poort 5

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

Paso 8: CÓDIGO: BUCLE

CÓDIGO: LOOP
CÓDIGO: LOOP

Onder de titel 'Loop' vind je lijnen code die non stop draaien als onze Arduino Leonardo verbonden is to computer in pin 12 is aangesloten. Het is ook meteen het deel van de code waar we het meest kunnen aanpassen. El código onder 'button A' en 'button B' es gekoppeld aan onze mini pulsadores kan je aanpassen puerta en el código Keyboard.release ('a') enKeyboard.release ('a') twee maal de ('a') Te Vervangen Door Eender Welke Ander Teclado Toets.

!!! Sommige keyboardtoetsen moet kan je niet rechtstreeks intypen maar hebben een code. Zo zou je de 'Delete' knop moet ingeven als 'KEY_DELETE' de 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.

A la derecha, izquierda, arriba y abajo vind je vrij gelijkaardige code als bij de buttons, het grote verschil zit hem in het if (accx <-20000) deel van de code. Dit verwijst naar de acelerometer: als de acelerometer naar rechts kantelt en een waarde kleiner dan -20000 leest dan wordt de rechter pijltoets (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 specifieke acelerometer te kalibreren. Je kan deze waarden bijstellen naargelang je eigen speelstijl.

Tenslotte vinden helemaal onderaan de code delay (50). Dat stukje code vertraagt het aantal keyboard toetsen die je computer 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.

¡La prueba en error es de boodschap!

Recomendado: