- Yleiskatsaus:
- Vaaditut komponentit:
- Piirin selitys:
- Kiihtyvyysanturin toiminta:
- Arduinon ohjelmointi:
- Ohjelmoinnin käsittely:
- Testaus:
Laajennetusta todellisuudesta ja virtuaalisesta pelaamisesta on tullut viime aikoina trendi pelialalla. Näppäimistön / ohjaussauvan ja hiiren käyttö tietokonepelissä on mennyt taaksepäin. Jokaisessa pelikonsolissa on nyt virtuaalinen ohjain, joka auttaa meitä pelaamaan peliä kehon liikkeillä ja eleillä. Tällä tavalla pelikokemus on kasvanut paljon ja käyttäjä tuntee olevansa enemmän mukana pelissä.
Yritetään tässä projektissa pitää hauskaa oppimalla projektin läpi. Annetaan meidän luoda peli (kyllä, kuulit minun korjaavan, että me aiomme luoda pelin) ja pelata sitä kätesi liikkeellä. Luomme klassisen Ping Pong -pallopelin käyttämällä Arduinoa ja Kiihtyvyysmittaria.
Yleiskatsaus:
Nykyään tarjolla on tonnia avoimen lähdekoodin ohjelmistoja, jotka ovat tuoneet paljon onnea kaltaisille harrastajille, ja käsittely on yksi niistä. Tämän JAVA-pohjaisen sovelluksen avulla voimme rakentaa oman ohjelmiston (.exe-muoto) ja myös Android-sovelluksen (.apk-tiedosto). Joten aiomme käyttää tätä ohjelmistoa pelin rakentamiseen, olemme aiemmin käyttäneet Processingia Arduino Chat Roomin luomisessa.
Laitteisto-osa koostuu Arduinosta, joka hakee syötteen kiihtyvyysmittarista syöttääksesi sen sarjaan tietokoneellemme / kannettavamme.
Joten mennään ostoksille !!!!
Vaaditut komponentit:
- Arduino (mikä tahansa versio tai malli)
- Kiihtyvyysanturi
- Johtojen liittäminen
- Korot (Lolz)
Kiihtyvyysmittari ja Arduino Nano
Piirin selitys:
Arduino Ping Pong -peliprojektin piiri ei sisällä monimutkaisia yhteyksiä. Olen käyttänyt Arduino Nanoa kiihtyvyysmittarilla. Mutta muutama asia on hoidettava, kuten alla mainitaan:
1. Kiihtyvyysanturisi ei pysty käsittelemään 5 V: tä, joten liitä kiihtyvyysanturin Vcc aina 3,3 V: n Arduino-nastallesi.
2. Jokainen kiihtyvyysanturi kärsii painovoiman vaikutuksesta, joka on käsiteltävä ohjelmoinnin aikana (yksinkertaisesti suodattimen avulla).
Tässä mielessä tarkastellaan kiihtyvyysmittarin toimintaa ja miten sitä käytetään.
Kiihtyvyysanturin toiminta:
Kiihtyvyysmittari on laite, joka voi muuntaa kiihtyvyys mihin tahansa suuntaan sen vastaava vaihteleva jännite. Tämä saavutetaan käyttämällä kondensaattoreita (viite kuva), kun Accel liikkuu, sen sisällä oleva kondensaattori muuttuu myös liikkeen perusteella (katso kuva), koska kapasitanssi vaihtelee, voidaan myös saada vaihteleva jännite.
Joten, kuten edellä mainittiin, jokainen kiihtyvyysanturi kärsii painovoimaongelmasta. Huolimatta siitä, kuinka tarkka anturi on kalibroitu (jopa omenapuhelimesi Accel.), Painovoima vaikuttaa siihen. Teknisempi selitys tälle ongelmalle on annettu alla.
Nyt Arduinossa voimme vähentää painovoiman vaikutusta yksinkertaisen suodattimen avulla. Tämä suodatin koostuu kahdesta matriisista, toista käytetään näytteen arvojen tallentamiseen anturista ja toista käytetään näytearvojen lajitteluun ja toistetuimman arvon löytämiseen. Toteutetaan tämä algoritmi Arduinossa ja hankitaan laitteistomme valmiiksi.
Arduinon ohjelmointi:
Arduino-ohjelma on annettu alla Koodi-osassa. Kriittisiä tietoja ei tarvitse muuttaa. Voit kuitenkin harkita seuraavaa:
Suurenna otoskokoa, jos Accel näyttää edelleen satunnaisia arvoja.
#define Samplesize 13 // filterSample number
Pelaa 9600 baudinopeudella lisätäksesi tiedonsiirtonopeutta Arduinon ja Processingin välillä. Muista kuitenkin muuttaa ne molemmissa ohjelmistoissa (Ohjelmat).
void setup () {Sarja.alku (9600); }
X-akselin kiihtyvyysmittarini antaa 193 vasemmalle ja 280 oikealle, mittaa ne Accelille ja päivitä arvo.
toSend = kartta (smoothData1, 193, 280, 0, 255);
Arvot kartoitetaan yhdeksi tavuksi tietoja sarjaliikennettä varten.
Tarkasta tarkemmin alla olevan koodin kommentit ymmärtääksesi ne selvästi.
Ohjelmoinnin käsittely:
Processing on avoimen lähdekoodin ohjelmisto, jota taiteilijat käyttävät graafiseen suunnitteluun. Tätä ohjelmistoa käytetään ohjelmistojen ja Android-sovellusten kehittämiseen. Se on melko helppo kehittää ja hyvin samanlainen kuin Android Development IDE. Siksi olen lyhentänyt selitystä.
Käsittelytunnuksen varten Ping Pong Game annetaan tässä:
- Käsittelykoodi Arduino Ping -pelille
Napsauta sitä hiiren kakkospainikkeella ja napsauta Tallenna linkki nimellä.. ladataksesi kooditiedoston. Avaa sitten tiedosto 'Processing' -ohjelmistossa ja napsauta 'Run' -painiketta pelataksesi peliä. *.Pde-tiedostojen avaamiseen on asennettava 'Processing' -ohjelmisto. Kommentti-osa on avoin kyselyille, ja tarkista myös ohjelman kommentit ymmärtääksesi sen paremmin.
Rivin alapuolella, koodin käsittelyn toiminto void setup () on tärkeä, koska se päättää, mistä portista tiedot lähetetään.
portti = uusi sarja (tämä, Serial.list (), 9600); // Lukee 4. portin 9600 baudinopeudella
Täällä olen lukenut tietoja Arduinoni 4. portista.
Joten esimerkiksi jos sinulla on COM COM COM COM COM
Sitten yllä oleva koodi lukee tietoja COM: sta.
Testaus:
Nyt kun käsittely- ja Arduino-luonnos on valmis, lataa alla oleva ohjelma Arduinoon ja liitä Arduino käyttäjän tietokoneeseen perusteelliseen ohjelmointikaapeliin ja käynnistä peli Suorittamalla prosessointikooditiedosto (.pde). Se siitä! Siirrä kiihtyvyysmittariasi ja pelaa Ping Pong -peliäsi. Video opastaa koko projektin.
Kun olet ymmärtänyt ohjelman, voit luoda monia samanlaisia pelejä ja pelata niitä Arduino-laitteellasi. Lisäksi Y-akseli ja Z-akseli voidaan myös sisällyttää pelaamiseen.