- Prezentare generală:
- Componente necesare:
- Explicația circuitului:
- Funcționarea accelerometrului:
- Programare Arduino:
- Procesare programare:
- Testare:
Realitatea augmentată și jocurile virtuale au devenit o tendință recentă în industria jocurilor. Momentele folosirii tastaturii / joystickului și a mouse-ului pentru a juca un joc pe computer au trecut în urmă. Acum fiecare consolă de jocuri vine cu un controler virtual care ne ajută să jucăm jocul folosind mișcările și gesturile corpului nostru, astfel experiența de joc a crescut mult și utilizatorul se simte mai implicat în joc.
În acest proiect, să încercăm să ne distrăm pe măsură ce învățăm prin proiect. Permiteți-ne să creăm un joc (Da, m-ați auzit corect, suntem nevoiți să creăm un joc) și jucați-l folosind mișcarea mâinii. Creăm jocul clasic de mingi Ping Pong folosind Arduino și Accelerometer.
Prezentare generală:
Există o mulțime de programe open source disponibile în aceste zile, ceea ce a adus o mulțime de fericire pentru pasionații ca noi, iar Procesarea este una dintre ele. Cu această aplicație bazată pe JAVA putem crea propriul software (format.exe) și, de asemenea, o aplicație Android (fișier.apk). Deci, vom folosi acest software pentru a ne construi jocul, am folosit anterior Procesarea în crearea Arduino Chat Room.
Partea hardware va consta într-un Arduino care va prelua intrarea de pe un accelerometru pentru al alimenta în serie pe computerul / laptopul nostru.
Așa că hai să mergem la cumpărături !!!!
Componente necesare:
- Arduino (orice versiune sau model)
- Accelerometru
- Conectarea firelor
- Interes (Lolz)
Accelerometru și Arduino Nano
Explicația circuitului:
Circuitul Arduino Ping Pong Ball Game Project nu implică conexiuni complexe. Am folosit un Arduino Nano cu un accelerometru. Dar sunt puține lucruri de care trebuie îngrijite așa cum se menționează mai jos:
1. Accelerometrul dvs. nu poate suporta 5V, deci conectați întotdeauna Vcc-ul accelerometrului la pinul dvs. Arduino de 3,3V.
2. Fiecare accelerometru suferă de efectul gravitațional care trebuie tratat în timpul programării (pur și simplu folosind un filtru).
Având în vedere acest lucru, să analizăm funcționarea unui accelerometru și modul în care îl folosim.
Funcționarea accelerometrului:
Un accelerometru este un dispozitiv care poate converti accelerația în orice direcție la tensiunea sa variabilă respectivă. Acest lucru se realizează prin utilizarea condensatoarelor (a se vedea imaginea), pe măsură ce Accel se mișcă, condensatorul prezent în interiorul său, va suferi și modificări (a se vedea imaginea) pe baza mișcării, deoarece capacitatea este variată, putând fi obținută și o tensiune variabilă.
Deci, după cum sa menționat mai sus, fiecare accelerometru suferă de problema efectului gravitațional. Indiferent cât de precis este calibrat senzorul dvs. (chiar și telefoanele dvs. Apple Accel.), Acesta va fi afectat de gravitație. O explicație mai tehnică pentru această problemă este dată mai jos.
Acum, în Arduino putem reduce efectul gravitației folosind un filtru simplu. Acest filtru va consta din două tablouri, una este utilizată pentru a stoca valorile eșantionului de la senzor și cealaltă este folosită pentru a sorta valorile eșantionului și pentru a găsi cea mai repetată valoare. Să implementăm acest algoritm în Arduino și să pregătim hardware-ul nostru.
Programare Arduino:
Programul Arduino este prezentat mai jos în secțiunea Cod. Nu există date critice care trebuie modificate. Dar s-ar putea să doriți să luați în considerare următoarele:
Măriți dimensiunea eșantionului dacă Accel afișează în continuare valori aleatorii.
#define Samplesize 13 // filterSample number
Joacă cu 9600 baud rate pentru a crește viteza de comunicare între Arduino și Procesare. Dar asigurați-vă că le modificați atât în software (Programe).
void setup () {Serial.begin (9600); }
Accelerometrul meu pe axa X oferă 193 la capătul din stânga și 280 la capătul din dreapta, măsoară-le pentru Accel și actualizează valoarea.
toSend = map (smoothData1, 193, 280, 0, 255);
Valorile sunt mapate într-un singur octet de date pentru comunicarea în serie.
Verificați în continuare Comentariile din Codul de mai jos pentru a înțelege clar.
Procesare programare:
Procesarea este un software open source utilizat de artiști pentru proiectarea grafică. Acest software este utilizat pentru a dezvolta aplicații software și Android. Este destul de ușor de dezvoltat și foarte asemănător cu IDE-ul de dezvoltare Android. De aceea am scurtat explicația.
Codul de procesare pentru jocul de Ping Pong este dat aici:
- Cod de procesare pentru jocul Arduino Ping Ball
Faceți clic dreapta pe acesta și faceți clic pe „Salvați linkul ca..” pentru a descărca fișierul de cod. Apoi deschideți fișierul în software-ul „Procesare” și faceți clic pe butonul „Executare” pentru a juca jocul. Trebuie să instalați software-ul „Procesare” pentru a deschide fișiere *.pde. Secțiunea de comentarii este deschisă pentru interogări și, de asemenea, verificați comentariile din program pentru a o înțelege mai bine.
Sub linia de mai jos, în funcția de configurare nulă () a codului de procesare este importantă, deoarece decide de la ce port la date.
port = Serial nou (acesta, Serial.list (), 9600); // Citește al 4-lea PORT la 9600 baudrate
Aici am citit date de la cel de-al 4-lea port de pe Arduino.
Deci, de exemplu, dacă aveți COM COM COM COM COM
Apoi, codul de mai sus va citi datele de la COM.
Testare:
Acum, deoarece schița noastră de procesare și Arduino este gata, pur și simplu încărcați programul de mai jos la Arduino și conectați-vă Arduino la cablul de programare complet al computerului utilizatorului și lansați jocul executând fișierul cod de procesare (.pde). Asta e! Mutați-vă accelerometrul și jucați jocul de ping-pong. Video vă va ghida pe parcursul întregului proiect.
Odată ce ați înțeles programul, puteți crea multe jocuri similare și le puteți juca folosind Arduino, în plus, axa Y și axa Z pot fi incluse și pentru jocuri.