- Pregled:
- Potrebne komponente:
- Objašnjenje sklopa:
- Rad akcelerometra:
- Programiranje Arduina:
- Programiranje obrade:
- Testiranje:
Proširena stvarnost i virtualno igranje postalo je nedavni trend u industriji igara. Vremena korištenja tipkovnice / džojstika i miša za igranje računalne igre prošla su. Sada svaka igraća konzola dolazi s virtualnim kontrolerom koji nam pomaže u igranju igre koristeći naše pokrete tijela i geste, na taj se način igračko iskustvo uvelike povećalo i korisnik se osjeća više uključenim u igru.
U ovom projektu pokušajmo se zabaviti dok učimo kroz projekt. Dopustite nam da stvorimo igru (da, čuli ste kako ispravljamo da želimo stvoriti igru) i igrajmo je pokretom vaše ruke. Stvaramo klasičnu igru ping pong lopte koristeći Arduino i Akcelerometar.
Pregled:
Danas je dostupno mnoštvo softvera otvorenog koda koji je hobistima poput nas donio hrpu sreće, a Obrada je jedna od njih. Pomoću ove JAVA aplikacije možemo izraditi vlastiti softver (.exe format) i android aplikaciju (.apk datoteka). Dakle, koristit ćemo ovaj softver za izgradnju naše igre, prethodno smo koristili Processing za stvaranje Arduino Chat sobe.
Hardverski dio sastojat će se od Arduina koji će dohvatiti ulaz s akcelerometra da bi ga serijski ubacio na naše računalo / prijenosno računalo.
Pa krenimo u kupovinu !!!!
Potrebne komponente:
- Arduino (bilo koja verzija ili model)
- Brzinomjer
- Spajanje žica
- Kamata (Lolz)

Akcelerometar i Arduino Nano
Objašnjenje sklopa:


Projekt Circuit of Arduino Ping Pong Ball Game Game ne uključuje složene veze. Koristio sam Arduino Nano s akcelerometrom. No, nekoliko je stvari o kojima treba voditi računa kako je spomenuto u nastavku:
1. Vaš akcelerometar ne može podnijeti 5 V, zato uvijek priključite Vcc akcelerometar na vaš 3,3 V pin Arduina.
2. Svaki akcelerometar pati od utjecaja gravitacije s kojim se mora rukovati tijekom programiranja (jednostavno pomoću filtra).
Imajući ovo na umu, pogledajmo kako radi akcelerometar i kako ga koristimo.
Rad akcelerometra:
Akcelerometar je uređaj koji se može pretvoriti u bilo kojem smjeru ubrzanje na svoj dotični varijabilnog napona. To se postiže korištenjem kondenzatora (referenca slika), dok se Accel pomiče, kondenzator koji se nalazi u njemu također će se podvrgnuti promjenama (referenca slika) na temelju kretanja, jer je kapacitivnost promjenjiva, također se može dobiti promjenjivi napon.


Dakle, kao što je gore spomenuto, svaki akcelerometar pati od problema gravitacijskog učinka. Bez obzira na to koliko je senzor točno kalibriran (čak i vaši Apple telefoni Accel.), Na njega će utjecati gravitacija. Tehničko objašnjenje ovog problema dano je u nastavku.
Sada u Arduinu možemo smanjiti učinak gravitacije pomoću jednostavnog filtra. Ovaj će se filtar sastojati od dva polja, jedan se koristi za pohranu vrijednosti uzorka sa senzora, a drugi za sortiranje vrijednosti uzorka i pronalaženje najviše ponavljane vrijednosti. Primijenimo ovaj algoritam u našem Arduinu i pripremimo svoj hardver.
Programiranje Arduina:
Program Arduino dan je u nastavku u odjeljku Code. Ne postoje kritični podaci koje treba izmijeniti. No možda biste trebali razmotriti sljedeće:
Povećajte veličinu uzorka ako vaš Accel i dalje prikazuje slučajne vrijednosti.
#define Samplesize 13 // filterSample number
Poigrajte se s brzinom prijenosa od 9600, da biste povećali brzinu komunikacije između Arduina i Processinga. Ali obavezno ih promijenite u oba softvera (Programi).
void setup () {Serial.begin (9600); }
Moj akcelerometar na X-osi daje 193 na krajnjem lijevom kraju i 280 na krajnjem desnom kraju, izmjerite ih za svoj Accel i ažurirajte vrijednost.
toSend = karta (smoothData1, 193, 280, 0, 255);
Vrijednosti se preslikavaju u jedan bajt podataka za serijsku komunikaciju.
Dalje provjerite komentare u dolje navedenom Kodeksu da biste ih jasno razumjeli.
Programiranje obrade:

Processing je softver otvorenog koda koji umjetnici koriste za grafičko dizajniranje. Ovaj se softver koristi za razvoj softvera i Android aplikacija. Prilično je lako razviti i vrlo je sličan Android IDE razvoju. Stoga sam skratio objašnjenje.
Kod za obradu igre ping pong dat je ovdje:
- Kôd za obradu igre Arduino Ping Ball
Desnom tipkom miša kliknite na nju i kliknite na "Spremi vezu kao.." da biste preuzeli datoteku koda. Zatim otvorite datoteku u softveru 'Obrada' i kliknite gumb 'Pokreni' da biste igrali igru. Morate instalirati softver 'Obrada' da biste otvorili *.pde datoteke. Odjeljak za komentare otvoren je za upite, a također provjerite komentare u programu da biste ih bolje razumjeli.
Ispod retka, u funkciji void setup () funkcije Obrada koda je važna, jer ona odlučuje s kojeg će porta ulaziti podaci.
port = novi serijski (ovaj, Serial.list (), 9600); // Čita 4. PORT na 9600 baudrate
Ovdje sam pročitao podatke s četvrte luke s mog Arduina.
Tako na primjer ako imate COM COM COM COM COM
Tada će gornji kôd čitati podatke iz COM-a.
Testiranje:
Budući da je naša skica za obradu i Arduino spremna, samo prenesite dolje navedeni program na Arduino i povežite svoj Arduino s korisničkim kabelom za temeljno programiranje korisnika i pokrenite igru pokretanjem datoteke s kodom za obradu (.pde). To je to! Pomaknite svoj akcelerometar i igrajte svoju igru ping pong. Video će vas voditi kroz kompletnog projekta.
Nakon što ste razumjeli program, možete stvoriti mnogo sličnih igara i igrati ih koristeći svoj Arduino, nadalje Y-os i Z-os također mogu biti uključene u igre.
