- Prehľad:
- Požadované komponenty:
- Vysvetlenie obvodu:
- Fungovanie akcelerometra:
- Programovanie Arduina:
- Programovacie spracovanie:
- Testovanie:
Augmented Reality and Virtual Gaming sa stala najnovším trendom v hernom priemysle. Časy používania klávesnice / joysticku a myši na hranie počítačovej hry sa minuli. Teraz je každá herná konzola vybavená virtuálnym ovládačom, ktorý nám pomáha hrať hru pomocou pohybov a gest tela, vďaka čomu sa herný zážitok výrazne zvýšil a užívateľ sa cíti viac zapojený do hry.
Pokúsme sa v tomto projekte pobaviť, keď sa budeme učiť prostredníctvom projektu. Poďme vytvoriť hru (Áno, počuli ste ma, že máme pravdu, vytvoriť hru) a zahrajte si ju pomocou pohybu vašej ruky. Vytvárame klasickú loptovú hru Ping Pong pomocou nástrojov Arduino a Accelerometer.
Prehľad:
V dnešnej dobe je k dispozícii veľa softvéru s otvoreným zdrojovým kódom, ktorý priniesol veľa šťastia pre fanúšikov, ako sme my, a spracovanie je jedným z nich. Pomocou tejto aplikácie založenej na prostredí JAVA môžeme vytvoriť vlastný softvér (formát.exe) a tiež aplikáciu pre Android (súbor.apk). Takže tento softvér použijeme na zostavenie našej hry, pri vytváraní chatovacej miestnosti Arduino sme predtým použili spracovanie.
Hardvérová časť bude pozostávať z Arduina, ktoré bude načítať vstup z akcelerometra a sériovo ho napájať do nášho počítača / notebooku.
Tak poďme nakupovať !!!!
Požadované komponenty:
- Arduino (ľubovoľná verzia alebo model)
- Akcelerometer
- Pripojovacie vodiče
- Úroky (lolz)
Akcelerometer a Arduino Nano
Vysvetlenie obvodu:
Projekt okruhu loptovej hry Arduino Ping Pong nezahŕňa žiadne zložité spojenia. Použil som Arduino Nano s akcelerometrom. Je však treba sa starať o niekoľko vecí, ako je uvedené nižšie:
1. Váš akcelerometer nemôže zvládnuť 5 V, takže vždy pripojte Vcc akcelerometra k svojmu 3,3 V kolíku Arduina.
2. Každý akcelerometer trpí účinkom gravitácie, ktorú je potrebné zvládnuť pri programovaní (jednoducho pomocou filtra).
V tejto súvislosti sa pozrime na prácu akcelerometra a na to, ako ho používame.
Fungovanie akcelerometra:
Akcelerometer je zariadenie, ktoré možno previesť zrýchlenie v každom smere v príslušnej premennej napätí. Toho sa dosahuje použitím kondenzátorov (referenčný obrázok), pri ktorých sa Accel pohybuje, kondenzátor prítomný v ňom, tiež podlieha zmenám (referenčný obrázok) na základe pohybu, pretože kapacita sa mení, dá sa získať aj premenlivé napätie.
Ako už bolo spomenuté vyššie, každý akcelerometer trpí problémom gravitácie. Bez ohľadu na to, ako presný je váš senzor kalibrovaný (dokonca aj vaše telefóny Apple Accel.), Bude to ovplyvnené gravitáciou. Nižšie je uvedené technickejšie vysvetlenie tohto problému.
Teraz v Arduine môžeme znížiť vplyv gravitácie pomocou jednoduchého filtra. Tento filter bude pozostávať z dvoch polí, jedno sa používa na ukladanie vzorkových hodnôt zo senzora a druhé sa používa na triedenie vzorkových hodnôt a na vyhľadanie najopakovanejšej hodnoty. Implementujme tento algoritmus do nášho Arduina a pripravme si hardvér.
Programovanie Arduina:
Program Arduino je uvedený nižšie v sekcii Kód. Nie je potrebné upravovať žiadne kritické údaje. Možno však budete chcieť zvážiť nasledovné:
Ak váš Accel stále zobrazuje náhodné hodnoty, zväčšite veľkosť vzorky.
#define Vzorová veľkosť 13 // filterČíslo vzorky
Pohrajte sa s prenosovou rýchlosťou 9600, aby ste zvýšili rýchlosť komunikácie medzi Arduinom a procesorom. Nezabudnite ich však zmeniť v softvéri (Programy).
void setup () {Serial.begin (9600); }
Môj akcelerometer na osi X dáva 193 na krajnom ľavom konci a 280 na krajnom pravom konci, zmerajte ich pre svoj Accel a aktualizujte hodnotu.
toSend = mapa (smoothData1, 193, 280, 0, 255);
Hodnoty sa mapujú do jedného bajtu dát pre sériovú komunikáciu.
Ďalej si prečítajte Komentáre v nižšie uvedenom Kódexe, aby ste im jasne porozumeli.
Programovacie spracovanie:
Processing je softvér s otvoreným zdrojovým kódom, ktorý používajú umelci na návrh grafiky. Tento softvér sa používa na vývoj softvéru a aplikácií pre Android. Jeho vývoj je dosť jednoduchý a veľmi podobný vývojovému prostrediu Android Development IDE. Preto som vysvetlenie skrátil.
Procesný kód pre hru Ping Pong je uvedený tu:
- Spracováva sa kód pre hru Arduino Ping Ball
Pravým tlačidlom myši kliknite na ňu a kliknutím na položku „Uložiť odkaz ako..“ stiahnite súbor s kódom. Potom otvorte súbor v softvéri „Processing“ a kliknutím na tlačidlo „Spustiť“ zahrajte hru. Musíte otvoriť softvér „Processing“, aby ste otvorili súbory *.pde. Sekcia komentárov je otvorená pre dotazy. Skontrolujte tiež komentáre v programe, aby ste tomu lepšie porozumeli.
Pod riadkom vo void setup () je dôležitá funkcia spracovania kódu, ktorá rozhoduje, z ktorého portu sa majú údaje načítať.
port = new Serial (this, Serial.list (), 9600); // Prečíta 4. PORT pri 9600 baudate
Tu som prečítal údaje zo 4. portu z môjho Arduina.
Takže napríklad ak máte COM COM COM COM COM
Vyššie uvedený kód potom načíta údaje z modelu COM.
Testovanie:
Teraz, keď je náš náčrt Processing and Arduino pripravený, stačí nahrať nižšie uvedený program do Arduina a pripojiť svoje Arduino k užívateľskému PC pomocou dôkladného programovacieho kábla a spustiť hru spustením súboru s kódom spracovania (.pde). To je všetko! Pohybujte akcelerometrom a zahrajte si hru Ping Pong. Video vás prevedie celého projektu.
Keď pochopíte program, môžete vytvoriť veľa podobných hier a hrať ich pomocou svojho Arduina. Ďalej môžu byť pre hranie hier zahrnuté aj osi Y a Z.