Sisukord:

Kiirendusmõõturi mängukontroller: 8 sammu
Kiirendusmõõturi mängukontroller: 8 sammu

Video: Kiirendusmõõturi mängukontroller: 8 sammu

Video: Kiirendusmõõturi mängukontroller: 8 sammu
Video: МИНИ ПК BEELINK GEMINI T45. 8/512 НА PENTIUM J4205. Интересный вариант за интересную цену. 2024, Juuni
Anonim
Kiirendusmõõturi mängukontroller
Kiirendusmõõturi mängukontroller

Voorlopige tekst…

1. samm: MATERJAL

MATERJAL
MATERJAL
  • Arduino Leonardo: mikrokontroller-bord ja ka mängujuht.
  • Mikro -USB -kaabel: mängukontroller ja arvuti.
  • Leivalaud: zo hoeven we niet te solderen en blijft ons ontwerp makkelijk aanpasbaar.
  • Leivaplaadi hüppaja juhtmed: kõik komponendid ja elkaar te verbinden.
  • MPU6050 kiirendusmõõtur: een sensor die versnellingen in de verschillende richtingen can lezen, zoals je vaak in smartphones, hõljuklauad ja tasakaalukad robotid.
  • Kahekordsed mini -nupud: kiirendusmõõturi programmeerimine.

Valikuvõimalus:

Breadboard et Arduino houder: om compact te kunnen werken

2. samm: ARDUINO TARKVARA

Voor we kunnen beginnen aan de bouwen en programmeerpretpret hebben we de juiste software nodig om het brein van onze game controller, een Arduino Leonardo, te kunnen besturen. Om dit te paigaldajad, ga je als volgt te werk:

  • Vaadake volgende linki Arduino allalaadimislehelt:
  • Kies voor de juiste tarkvara opsüsteemi alusel.
  • Klõpsake allalaadimiseks.
  • 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 met het gedownloade programme. Kui Windowsi rakendus on saadaval, saate selle isegi üle vaadata, see on aanpakis.

  • Avage de Arduino tarkvara.
  • Ühendage Arduino Leonardo arvutiga mikro -USB -kaabliga, Leonardo draiverid kirjutavad automaatse geograafilise seadme (see tähendab, et see on juba Arduino aansluit).

Als je nog niet zo vertrouwd painutatud Arduino tarkvaraga, kontrollijatega Arduino Leonardo foutloos verbinding maakt met je computer, dan can je data makkelijk testen een voorbeeldprogramma:

  • Kies kaudu Bestand> Voorbeelden> 01. Põhitõed> Blink om een voorbeeldprogramma te openen.
  • Vervolgens kies je bij Hulpmiddelen> Board> Arduino Leonardo om de software te latten weten welk type board wij gaan gebruiken.
  • Valige selle kategooria uksed aadressil Hulpmiddelen> Poort> COMx (Arduino Leonardo te kiezen. Dit doe je om aan te geven via welke USB poort je Arduino communiceert.
  • Klõpsake linkide loomisel, kui soovite sümbolit oma hetke voorbeeldprogramma te uploaden.
  • Lingid beneden zie je een indicatie die aantoont dat het program 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. In dit geval gebruiken we een foutloze voorbeeldcode, waardoor de fout bij de connectie tussen de Leonardo en je computer moet liggen.

3. samm: RAAMATUKOGU

Arduino's zijn in staat om heel veel data te verwerken. Dit zorgt er voor dat er ook veel kood nodig is om deze data correct te compileren. Kui teil on sellekohane kood, siis lugege seda kompleksi, vaadake Arduino raamatukogusid, vaadake koodi ja kontrollige, kas andurid on gaan sturen en ons werk een stuk makkelijker maken. Ons project gebruik drie soortgelijke libraries: Wire, I2Cdev ja MPU6050. De Arduino tarkvara heeft een goede base aan libraries ingebouwd, alsook onze eerste (Wire) bibliotheek, maar de twee andere dienen we zelf nog te installeren:

  • Volg deze link klõpsake nuppu "Kloonige või laadige alla" ja laadige alla ZIP -fail
  • Pakkige ZIP -fail uit om toegang te krijgen tot de bestanden.
  • In de bekomen map vind je via i2cdevlib-master> Arduino de folders 'I2Cdev' et MPU6050.
  • Kopieer beide mappen naar de Arduino map kaudu C> Program Files> Arduino> Libraries.

!!! Indian je de bij de installatie van de software zelf een andere locateie opgegeven hebt dan, vind je de nodige mappen daar. Het is niet de bedoeling dat je zelf een map aanmaakt.

  • Sluit de Arduino tarkvara käivitati, alustades raamatute te krijgeniga.
  • Via Schets> Bibliotheek Gebruiken can je controleren of nu ook I2Cdev en MPU6050 te vinden zijn.

4. samm: KIIREMÕÕTME - TEOORIA

Kiirendusmõõtur - teooria
Kiirendusmõõtur - teooria

Kiirendusmõõtur on saadaval piesoelektrilise efekti alusel. 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: In elke smartphone zit tegenwoordig ook standaard een kiirendusmõõtur. Deze zorgt er onder andere voor dat je scherm automatisch meedraait als je smartphone kantelt.

5. samm: KIIRUSMÕÕTJA - DE PRAKTIJK

Kiirendusmõõtur - DE PRAKTIJK
Kiirendusmõõtur - DE PRAKTIJK

Me niisutame nu dat een kiirendusmõõtur versioone 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:

Kiirendusmõõtur, bovenstaand ja skeem en verbind de Arduino Leonardo ja arvuti

!!! Kiirendusmõõturi sõnad 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) of evenwijdig zoals in ons voorbeeld.

  • Laadige alla 'MPU6050_intro' parimad ja avatud deze de Arduino tarkvaras.
  • Kontrollija pardal tüüp ja poort nog steeds juist staan.
  • Klõpsake linkide loendis, et vaadata hetkeprogrammi üles ja laadida.
  • Valige Hulpmiddelen> Seriële Monitor kaudu
  • Een nieuw venster opent met 3 kolommen met getallen, dit zijn de versnellingen in de X, Y en Z assen.
  • Beweeg on kiirendusmõõtur, mis on kättesaadav kõikides richtingen te zien.

Terwijl we onze versnellingsdata voor ons hebben kunnen we meteen verkennend werk doen voor onze game controller. Leg de Arduino ja kiirendusmõõturi platvorm ja märkmik gemiddelde X en Y waarde (mag een ruwe schatting zijn). Onderneem daarna volgende stappen:

  • Kiirendusmõõturi 45 ° nurk ja gemiddelde X waarde märkus.
  • Kiirendusmõõturi 45 ° nurk ja lingid X geardid.
  • Kiirendusmõõturi 45 ° nurk või märkmed Y waarde.
  • Kiirendusmõõturi 45 ° nurk ja gemiddelde Y waarde märkus.

6. samm: MÄNGUKONTROLLER

MÄNGUJUHT
MÄNGUJUHT

Klaar voor het echte werk! Me gebruiken onze kiirendusmõõtur samme met twee drukknoppen om het brein van onze eigen game controller te worden. Koppel de Arduino ja kiirendusmõõtur los en bouw het geheel opnieuw op volgens bovenstaand schema.

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

  • Laadige Arduino tarkvaras alla „MPU6050_gamecontroller” parimad ja avatud funktsioonid.
  • Verbind je Arduino ja klõpsake linkide loendis op het pijltje om het program up up load.
  • De Arduino Leonardo pakub teile arvutiga pidevat teavet. 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.
  • Asjatundlik! Je hebt nu een base controller gemaakt, test het gerust eens uit op pacman.

Geen paniek als je kontroller ei ole metéén doet wat je had verwacht. Kui see on hea, siis me teeme kalibreerimisfunktsiooni, mis on saadaval, kuid kontroller ei saa reisijaid vaadata. Daarvoor duiken we in de Arduino code

Samm 7: KOODI KASUTATUD RAAMATUKOGUD

KOOD - KASUTATUD RAAMATUKOGUD
KOOD - KASUTATUD RAAMATUKOGUD

Het leuke aan Arduino kood on 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.

In 'MPU6050_gamecontroller' kood vind je een heleboel lichtgrijze tekst. See on tekst, mis on kirjutatud geenide 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. Kui kasutate raamatukogusid, vaadake selle koodi koodi ja kasutage raamatukogusid.

  • #kaasake geeft aan dat we '' IC2dev 'bibliotheek gaan gebruiken
  • const int LUBATAV = 12 geeft aan dat me pin 12 gebruiken als veiligheid. Kas deze pin niet verbonden dan stopt ons programmatisch.
  • const int A_BUTTON = 6 geeft aan dat onze Nupp aangesloten on op poort 5

!!! De code onder Setup zijn afspraken tussen je Arduino en je computer over the hoe deze communicationeren, on geval latten we dit deel code gewoon zoals ze is.

8. samm: KOOD: LOOP

KOOD: LOOP
KOOD: LOOP

Arduino Leonardo verbonden on arvutis ja pin 12 is aangesloten all on pealkiri 'Loop'. 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') Teil on ukseklaas, tervitus ja klaviatuur.

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

Paremale, vasakule, üles ja alla vind je vrij gelijkaardige kood, samuti nupud, het grote verschil zit hem in het if (accx <-20000) deel van de code. Kiirendusmõõturil on kiirendusmõõtur: kiirendusmõõturil on ka kiirendusmõõtur ja -20000 ei tohi seda sõna võtta (KEY_RIGHT_ARROW). 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 specificieke kiirendusmõõtur ja kalibreerimine. Je kan deze waarden bijstellen naargelang je eigen speelstijl.

Tenslotte vinden we helemaal onderaan de code delay (50). Selle koodi kood on vertikaalne, kui klaviatuuril on arvuti uksed. Märkida, et kontroller on veel komando uksehoidja ja verhoog je dit getal kohtus enkele tientalleniga. Reageert alles te traag dan verklein je het getal wat.

Katse ja viga on de boodschap!

Soovitan: