Índice:

Controlador de jogo do acelerômetro: 8 etapas
Controlador de jogo do acelerômetro: 8 etapas

Vídeo: Controlador de jogo do acelerômetro: 8 etapas

Vídeo: Controlador de jogo do acelerômetro: 8 etapas
Vídeo: Pensando em comprar um controle para incrementar o setup? Se liga nesse PICHAU GCX100 2024, Julho
Anonim
Controlador de jogo do acelerômetro
Controlador de jogo do acelerômetro

Voorlopige Text …

Etapa 1: MATERIAAL

MATERIAAL
MATERIAAL
  • Arduino Leonardo: um microcontrolador-bord als brein van onze controlador de jogo.
  • Micro USB kabel: om onze game controller aan te sluiten aan een computer.
  • Placa de ensaio: zo hoeven we niet te solderen en blijft ons ontwerp makkelijk aanpasbaar.
  • Fios de jumper da placa de ensaio: om alle componenten met elkaar te verbinden.
  • Acelerômetro MPU6050: een sensor die versnellingen in de verschillende richtingen kan lezen, zoals je vaak em smartphones, hoverboards e balancerende robots vindt.
  • Twee mini botões de pressão: om knoppen te programmeren die los staan van onze acelerômetro.

Optioneel:

Breadboard e Arduino houder: om compact te kunnen werken

Etapa 2: SOFTWARE ARDUINO

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

  • Ga via link volgende naar de downloadpagina van Arduino:
  • Kies voor de juiste software com base em seu sistema operacional.
  • Clique aqui para baixar.
  • Je hebt nu een (.exe) bestand dat je uitvoert door er op te dubbel clikken om de installatie te vervolledigen.

!!! Wij hebben onze controller gecreëerd conheceu het gedownloade programma. De Windows App versie kan dit evengoed, maar kan kleine verschillen hebben in aanpak.

  • Abra o software Arduino.
  • Connecteer je Arduino Leonardo conheceu je micro USB kabel aan je computer, de Leonardo drivers worden automatisch geïnstalleerd (dit gebeurt enkel als het de eerst keer é dat je de Arduino aansluit).

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

  • Kies via Bestand> Voorbeelden> 01. Basics> Blink om een voorbeeldprogramma te openen.
  • Vervolgens kies je bij Hulpmiddelen> Placa> Arduino Leonardo om de software te laten weten welk tipo placa 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.
  • Clique em 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 andou foutmelding geeft dan ligt dit vaak aan een fout no código. Em dit geval gebruiken we een foutloze voorbeeldcode, waardoor de fout bij de connectie tussen de Leonardo en je computer moet liggen.

Etapa 3: PASTA DA BIBLIOTECA

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 to compilador. 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. Ons project gebruik drie soortgelijke library: Wire, I2Cdev en MPU6050. O software de Arduino deixou een goede base para bibliotecas ingebouwd, tambémok onze eerste (Wire) bibliotheek, maar de twee andere dienen we zelf nog te installeren:

  • Volg deze link en clik em 'Clone or Download' en baixar o arquivo ZIP
  • O pacote de arquivo ZIP é usado para adicionar o arquivo ZIP ao melhor.
  • No mapa de bekomen vind je via i2cdevlib-master> Arduino de pastas 'I2Cdev' e MPU6050.
  • Copie o mapeamento para o mapa do Arduino em C> Arquivos de programas> 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.

  • Software Sluit de Arduino para iniciar a opção de abrir o conjunto de bibliotecas para krijgen.
  • Via Schets> Bibliotheek Gebruiken kan je controleren of nu ook I2Cdev en MPU6050 te vinden zijn.

Etapa 4: ACELERÔMETRO - DE THEORIE

ACELERÔMETRO - DE THEORIE
ACELERÔMETRO - DE THEORIE

Een acelerômetro werkt op base van het efeito piezoelétrico. 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 dry dimensies bepalen.

Om een praktijkvoorbeeld te geven: In elke smartphone zit tegenwoordig ook standaard een acelerometer. Deze zorgt er onder andere voor dat je scherm automatisch meedraait als je smartphone kantelt.

Etapa 5: ACCELEROMETER - DE PRAKTIJK

ACELERÔMETRO - DE PRAKTIJK
ACELERÔMETRO - DE PRAKTIJK

Nós molhamos os dados do acelerômetro de versnelling em de X, Y e Z como kan meten, maar met onze software Arduino kunnen we die data ook echt zien en opvolgen. Om dit te doen ga je als volgt te werk:

Sluit de acelerômetro aan volgens bovenstaand schema en verbind de Arduino Leonardo conheceu seu computador

!!! De 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 in ons voorbeeld.

  • Faça o download do 'MPU6050_intro' melhor e um deze aberto no software Arduino.
  • Controlador de je boardtype en poort nog steeds juist staan.
  • Clique em linkerbovenhoek op het pijltje om het programma up to loaden.
  • Selecionador via Hulpmiddelen> Seriële Monitor
  • Een nieuw venster opent met 3 kolommen met getallen, dit zijn de versnellingen em de X, Y e Z assen.
  • Beweeg je acelerômetro om de versnellingen in alle richtingen te zien.

Terwijl we onze versnellingsdata voor ons hebben kunnen we meteen verkennend werk doen voor onze controlador de jogo. Leg de Arduino e plataforma de acelerômetro de tafel e notador gemiddelde X e Y waarde (mag een ruwe schatting zijn). Onderneem daarna volgende stappen:

  • Kantel de acelerômetro 45 ° naar rechts en noteer de gemiddelde X waarde.
  • Kantel de acelerômetro 45 ° naar links en noteer de gemiddelde X waarde.
  • Kantel de acelerômetro 45 ° naar voor en noteer de gemiddelde Y waarde.
  • Kantel de acelerômetro 45 ° naar achter en noteer de gemiddelde Y waarde.

Etapa 6: CONTROLADOR DE JOGO

CONTROLE DE VÍDEO GAME
CONTROLE DE VÍDEO GAME

Klaar voor het echte werk! Nós gebruiken onze acelerômetro samen com twee drukknoppen om het brein van onze eigen game controller te worden. Koppel de Arduino e acelerômetro do bouw het geheel opnieuw op Volgens bovenstaand schema.

!!! De mini botões de pressão hebben vaak een buiging in hun beentjes. Druk die plat met een punttang om ze makkelijker em je breadboard te krijgen.

  • Faça o download do 'MPU6050_gamecontroller' melhor e um deze aberto no software Arduino.
  • Verbind je Arduino en clik in de linkerbovenhoek op het pijltje om het programma up to loaden.
  • De Arduino Leonardo criou uma porta de informações constante naar je computer. 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 basis controller gemaakt, test het gerust eens uit op pacman.

Geen paniek als je controller niet metéén doet wat je had verwacht. Dat betekent gewoon dat nós nog calibratie werk hebben om de controller aan te passen naar onze noden. Daarvoor duiken nós no código do Arduino

Etapa 7: CÓDIGO - BIBLIOTECAS USADAS

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

Het leuke aan Arduino código é 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 controlador kalibreren.

No código 'MPU6050_gamecontroller' vind je een heleboel lichtgrijze tekst. Dat é mostrado na parte inferior envolvida do código, 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 we pin 12 gebruiken als veiligheid. Is deze pin niet verbonden dan stopt ons programma automatisch.
  • const int A_BUTTON = 6 geeft aan dat onze Um knop aangesloten é op poort 5

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

Etapa 8: CÓDIGO: LOOP

CÓDIGO: LOOP
CÓDIGO: LOOP

Onder de titel 'Loop' vind je lijnen code die non stop draaien als onze Arduino Leonardo verbonden é encontrado 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' é gekoppeld aan onze mini push buttons kan je aanpassen door in de code Keyboard.release ('a') enKeyboard.release ('a') twee maal de ('a') te vervangen door eender welke ander toets de teclado.

!!! Sommige keyboardtoetsen moet kan je niet rechtstreeks intypen maar hebben een code. Zo zou je de 'Excluir' knop moet ingeven als 'KEY_DELETE' de também decimale waarde '212'. Een lijst van dit soort uitzonderingen binnen arduino vind je via link deze. Wil je nog meer info dan kijk je best eens naar de ASCII tabel.

Onder de direita, esquerda, para cima e para baixo vind je vrij gelijkaardige code als bij de buttons, het grote verschil zit hem in het if (accx <-20000) deel van de code. Verwijst naar de acelerômetro: também de acelerômetro naar rechts kantelt en een waarde kleiner dan -20000 lest 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 acelerômetro te kalibreren. Je kan deze waarden bijstellen naargelang je eigen speelstijl.

Tenslotte vinden nós helemaal onderaan de code delay (50). Dat stukje code vertraagt het aantal keyboard toetsen die je computer doorkrijgt. Merkje dat je controlador te veel commando's doorgeeft dan verhoog je dit getal met enkele tientallen. Reageert alles te traag dan verklein je het getal wat.

A tentativa e erro é de boodschap!

Recomendado: