Arduino este foarte popular pentru construirea de proiecte hobby și jocuri, și am folosit anterior Arduino pentru a construi joc Snake, ping - pong joc, joc Space rasă, etc Astăzi construim un joc mai popular folosind Arduino- Buzz joc de sârmă sau joc mână de echilibru.
Pentru acest proiect, vom folosi un Arduino Uno, Buzzer și două fire din aluminiu. Un LCD 16x2 este, de asemenea, interfațat pentru a afișa starea jocului. Ambele capete ale firului labirint vor fi conectate la pinul digital 2 & 3 al Arduino, iar firul mânerului este conectat la pinul de masă al Arduino. Pinii digitali sunt definiți ca pinii INPUT_PULLUP. Așadar, atunci când firul mânerului atinge firul labirintului, acesta schimbă starea pinilor digitali la scăzut, iar soneria emite un sunet.
O diodă este conectată la capătul firului de labirint, așa că, atunci când treceți de acea diodă și atingeți firul de labirint cu sârmă rotundă, un singur pin (pinul 3) va scădea. În această condiție, un text de felicitare (Bine făcut) va fi afișat pe ecranul LCD.
Componente necesare
- Arduino Uno
- Sârmă de aluminiu
- 16x2 LCD
- Modulul I 2 C
- Breadboard
- Buzzer
- Diodă
Diagrama circuitului
Diagrama circuitului pentru jocul Arduino Buzz Wire este prezentată mai sus. Pinii SCL și SDA ai modulului I2C sunt conectați la pinii A5 și A4 ai Arduino, în timp ce pinii V CC și GND ai modulului I2C sunt conectați la pinii 5V și GND ai Arduino. Sina pozitivă a lui Buzzer este conectată la pinul digital 4 al Arduino, iar șina negativă este conectată la GND. Tăiați un fir de aluminiu și îndoiți-l în formă de Zig-Zag. Lipiți o diodă la capătul firului. Apoi tăiați un alt fir pentru a face un mâner și îndoiți un capăt într-o buclă.
Ecranul LCD 16x2 poate fi, de asemenea, interfațat cu Arduino fără a utiliza un modul I2C.
Conectați pinii D2 și D3 ai Arduino la ambele capete ale firului Zig-Zag și conectați firul mânerului la pinul GND al Arduino.
Explicarea codului
Codul complet pentru acest joc Arduino Buzz Wire este dat la sfârșitul documentului.
Porniți codul prin includerea fișierului bibliotecă pentru modulul LCD. Biblioteca LiquidCrystal_I2C.h este utilizată pentru comunicarea I2C între modulele Arduino și LCD.
#include
După aceea, definiți pinii Arduino pentru buzzer, punctul de pornire al firului și punctul final al firului.
const int startPin = 2; const int endPin = 3; const int buzzer = 4;
Apoi definiți două variabile start & end_. Aceste variabile vor fi folosite pentru a salva citirile firului.
int start, end_;
Acum definiți pinul sonor ca ieșire și pinii firului ca INPUT_PULLUP . Arduino are rezistențe de tragere interne cu o valoare de aproximativ 20k ohm. Aceste rezistențe pot fi conectate intern folosind INPUT_PULLUP . Definirea unui INPUT_PULLUP este funcțional aceeași cu conectarea unui rezistor de ~ 20k ohm între pin și + 5V.
pinMode (buzzer, OUTPUT); pinMode (startPin, INPUT_PULLUP); pinMode (startPin, INPUT_PULLUP);
În interiorul buclei de gol, citiți starea știfturilor de sârmă.
start = DigitalRead (startPin); end_ = digitalRead (endPin);
Acum comparați citirile pinilor de sârmă. Dacă ambii știfturi sunt scăzuți, înseamnă că ați atins firul, astfel încât sonorul va emite un sunet și, dacă știftul de pornire al firului este ridicat și vârful final este scăzut, înseamnă că ați atins punctul final.
if (start == LOW && end _ == LOW) {digitalWrite (buzzer, HIGH); întârziere (1000); digitalWrite (buzzer, LOW); lcd.setCursor (0,0); lcd.print („Încercați din nou”); Serial.print („Încercați din nou”); } else if (start == HIGH && end _ == LOW) {lcd.setCursor (0,0); lcd.print („Gata”); Serial.print („Bine gata”); }
Testarea jocului Buzz Wire
După conectarea hardware-ului și încărcarea codului dat, puteți începe jocul. Așadar, țineți firul cu un cerc în mână și încercați să obțineți firul cu cercul până la dioda lipită cu fir zig-zag fără a lăsa firul rotund să atingă oriunde. Dacă atingeți firele, atunci buzzer-ul va emite un sunet și LCD va afișa „ Încercați din nou ”. Și dacă finalizați jocul fără a atinge firul, atunci va apărea „ Bravo ”.
Așa puteți face un joc Buzz Wire cu un Arduino. Un videoclip funcțional și un cod complet sunt prezentate mai jos.