Cuprins:
- Pasul 1: Pasul 1: senzor de distanță
- Pasul 2: Pasul 2: Servomotor
- Pasul 3: Pasul 3: LED RGB
- Pasul 4: Pasul 4: LCD
- Pasul 5: Pasul 5: Codul
Video: Joc de reacție rapidă: Versiune la distanță: 5 pași (cu imagini)
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:45
Salut. Acesta este un instructiv despre cum să creați un joc care vă testează atât timpul de reacție, cât și sensul distanței. Acest proiect se bazează pe un proiect vechi pe care l-am făcut, implicând doi jucători care concurau pentru a vedea cine a avut un timp de reacție mai rapid făcând clic pe un buton când o lumină a devenit verde. Acesta are un scop similar, cu excepția faptului că este un singur jucător și mai degrabă decât să se stingă o lumină, jucătorului i se acordă un interval de timp pentru a distanța mâna lor un anumit spațiu departe de un senzor de distanță.
Ca toate proiectele Arduino, acest joc va necesita numeroase componente electrice în circuitul Arduino. Componentele principale, altele decât cablajul și Arduino în sine, includ placa de măsurare, un servomotor, un afișaj LCD, un LED RGB și un senzor de distanță.
Folosind https://abra-electronics.com, prețul excluzând firele și Arduino este de 32,12 USD CAD.
Pasul 1: Pasul 1: senzor de distanță
Primul pas este să configurați senzorul de distanță cu ultrasunete pe panou și să îl conectați la Arduino. Poziția exactă a senzorului nu contează de fapt, dar în mod ideal este aproape de o margine, astfel încât să existe loc pentru celelalte componente, așa cum se arată în imaginea de mai sus. Există patru pini pe senzor; GND, VCC, TRIG și ECHO. GND și VCC trebuie să fie conectate la pământ și, respectiv, la șinele de alimentare și să le conectați în ceilalți doi pini în doi pini de pe Arduino. Cei doi pini pe care i-am folosit au fost 12 pentru ECHO și 11 pentru TRIG. Utilizați alte două fire pentru a alimenta șina de alimentare și împământarea șinei de masă conectând șina de alimentare la știftul de 5V și șina de sol la un știft GND.
Pasul 2: Pasul 2: Servomotor
Următorul pas este configurarea servomotorului. În acest proiect, servomotorul funcționează ca un temporizator. Va începe de la 1 grad și, în perioada de timp în care utilizatorul trebuie să își distanțeze mâinile, se va roti la 180 de grade. Am folosit 2 secunde pentru când utilizatorul află cât de departe trebuie să-și distanțeze mâinile, astfel încât servo-ul se rotește cu 179 grade pe o perioadă de 2 secunde, rotindu-se la intervale scurte. Servomotorul are trei fire; de obicei un galben, un roșu și un maro. Cea roșie intră în șina de alimentare care este deja conectată la 5V, iar cea maro intră în șina de la sol deja cablată în GND. Sârma finală se conectează la un pin Arduino. Am ales pinul # 9 pentru acesta. Apoi, aveți nevoie de un condensator care să conecteze aceeași șină pe care sunt conectate cablurile de alimentare și de împământare ale servomotorului, așa cum se vede în imaginea de mai sus.
Pasul 3: Pasul 3: LED RGB
Funcția LED-ului în acesta este de a acționa ca o scară pentru scor. Când scorul jucătorului este în jur de 0, LED-ul va fi alb și va deveni mai roșu dacă scorul jucătorului scade și verde dacă scorul jucătorului crește. Acest LED are patru picioare; un picior cu lumină roșie, un picior cu lumină albastră, un picior cu lumină verde și un catod comun împărțit între celelalte trei picioare. Catodul comun, cel mai lung picior, este conectat la șina de alimentare, astfel încât să primească 5 volți. Atașați rezistențe de 330 ohm la celelalte trei picioare de culoare și atașați celelalte capete ale acestor rezistențe la pinii digitali PWM de pe Arduino. Cele pe care le-am folosit au fost pinii digitali 3, 5 și 6 pentru picioarele roșu, verde și respectiv albastru.
Pasul 4: Pasul 4: LCD
Componenta finală este LCD-ul, care reprezintă afișajul cu cristale lichide. Scopul acestui lucru este de a spune jucătorului scorul lor actual, precum și distanța de care au nevoie pentru a pune mâinile departe de senzor. Există patru pini aici; GND, VCC, SDA și SCL. GND și VCC vor fi conectate la sol și, respectiv, la șinele de alimentare ale panoului. Pinul SDA trebuie conectat la pinul analogic A4, iar pinul SCL trebuie conectat la pinul analogic A5. Spre deosebire de celelalte componente, trebuie să conectați pinii SDA și SCL la A4 și A5.
Pasul 5: Pasul 5: Codul
Acum că am conectat toate componentele, putem scrie codul. Prima parte a codului este să importăm bibliotecile necesare și să declarăm variabilele noastre și în ce pini componentele sunt conectate. Trebuie să importăm bibliotecile Wire, LiquidCrystal_I2C și Servo pentru acest cod.
#include
#include
#include
Servo myServo;
int const trigPin = 11;
int const echoPin = 12;
int redPin = 3;
int greenPin = 5;
int BluePin = 6;
int scor = 0;
int tim = 500;
int curent = aleatoriu (8, 16); // valoare aleatorie în care utilizatorul trebuie să-și distanțeze mâna de senzor
LiquidCrystal_I2C lcd (0x27, 16, 2); // Configurare LCD
Acum trebuie să folosim setarea nulă () pentru a declara tipurile noastre de pini și a configura alte componente necesare.
void setup () {myServo.attach (9); Serial.begin (9600); pinMode (trigPin, OUTPUT); pinMode (echoPin, INPUT); pinMode pinMode (redPin, OUTPUT); pinMode (greenPin, OUTPUT); pinMode (bluePin, OUTPUT); lcd.init (); lcd.backlight (); lcd.inceput (16, 2); lcd.clear (); // configurare LCD}
Acum trebuie să configurăm codul LED RGB folosind o funcție și PWM:
void setColor (int roșu, int verde, int albastru) {
roșu = 255 - roșu;
verde = 255 - verde;
albastru = 255 - albastru;
analogWrite (redPin, red);
analogWrite (greenPin, verde);
analogWrite (bluePin, blue);
}
Acum trebuie să adăugăm bucla void (). Aici, vom genera numere întregi aleatorii și vom folosi o serie de instrucțiuni if pentru a controla jocul pentru jucător. Variabila curentă, configurată mai sus, este pentru distanța curentă pe care jucătorul trebuie să se distanțeze de senzor.
Deoarece codul din bucla nulă () este foarte lung, voi lipi un link către un document care are acel cod:
docs.google.com/document/d/1DufS0wuX0N6gpv…
În cele din urmă, trebuie să facem calculele efective pentru a converti valorile senzorului de distanță cu ultrasunete în inci. Senzorul de distanță cu ultrasunete nu măsoară direct distanța; eliberează sunet și înregistrează timpul necesar senzorului pentru a obține sunetul înapoi de la orice obiect din care sări.
long microsecondsToInches (microsecunde lungi) {
returnează microsecunde / 74/2;
}
Acum conectăm Arduino cu fir la computer cu codul, configurăm porturile și îl rulăm! Există două moduri în acest joc. Fie puteți utiliza doar afișajul LCD, servomotorul, senzorul și LED-ul RGB și știți doar distanța pe care trebuie să o aveți de la senzor, care este modul cel mai greu. Modul mai ușor implică utilizarea monitorului serial în Instrumente> Monitor serial, care vă va actualiza în fiecare secundă cu privire la cât de departe sunteți de senzor, astfel încât să puteți face ajustările necesare.
Mulțumesc pentru lectură!
Recomandat:
ThreadBoard (versiune tipărită non-3D): placă de prototipare rapidă E-Textile: 4 pași (cu imagini)
ThreadBoard (versiunea non-printată 3D): placă de prototipare rapidă E-Textile: Instrucțiunile pentru versiunea imprimată 3D a ThreadBoard V2 pot fi găsite aici. Versiunea 1 a ThreadBoard poate fi găsită aici. Prin obstacolele costurilor, călătorii, pandemii și alte bariere, este posibil să nu aveți acces la o imprimantă 3D, dar doriți să
Atingeți atingeți Rainbow - un joc cu reacție rapidă pentru 2 jucători: 4 pași (cu imagini)
Tap Tap Rainbow - un joc de reacție rapidă pentru 2 jucători: acum 2 săptămâni fiica mea a avut o idee genială de a face un joc de reacție rapidă cu culori curcubeu (este un expert în curcubeu: D). Mi-a plăcut instantaneu ideea și am început să ne gândim cum o putem transforma într-un joc real. Ai un curcubeu în
Amuzant joc de reacție Arduino: 3 pași
Joc de reacție amuzant Arduino: joc de reacție amuzant Arduino pentru întreaga familie;) Bazat pe comunicare Bluetooth pe mai multe platforme. Ai nevoie doar de câteva lucruri Arduino, un smartphone Android și o cutie de pantofi. Dacă nu aveți niciunul dintre acestea, credeți cu fermitate în el: nu există nimic care
Măriți distanța efectivă la transmițătorul cu declanșare la distanță „ebay” Flash cu antenă: 6 pași
Măriți distanța efectivă pe emițătorul de declanșare la distanță „ebay” cu antenă: amatorii de camere pot achiziționa versiuni ieftine de declanșatoare de la distanță pentru unitățile de bliț externe, controlând fie unitățile de tip flash „hot”, fie cele de tip „studio”. Acești declanșatori suferă de o putere redusă a emițătorului și, prin urmare, de o distanță de control efectivă mică. Acest mo
Iluminare rapidă, rapidă, ieftină, plăcută cu LED cu cameră (pentru oricine): 5 pași (cu imagini)
Iluminare rapidă, rapidă, ieftină, plăcută cu cameră LED (pentru oricine): Bine ați venit pe toți :-) Acesta este primul meu instructiv, așa că comentariile sunt binevenite :-) TINY buget.De ce aveți nevoie: cabluri LED-uri Rezistoare (510 Ohmi pentru 12V) CapseSoldareCutere și alte elemente de bază