Arduino je zelo priljubljen za gradnjo hobi projektov in iger, že prej pa smo ga uporabljali za izdelavo iger Snake, Ping pong, Vesoljske dirke itd. Danes gradimo še eno priljubljeno igro z uporabo Arduino- Buzz žične igre ali igre Steady hand.
Za ta projekt bomo uporabili žice Arduino Uno, Buzzer in dve aluminijasti žici. Za prikaz stanja igre je povezan tudi 16x2 LCD. Oba konca žice labirinta bosta priključena na digitalni zatič 2 in 3 Arduina, žica ročaja pa na ozemljitveni zatič Arduino. Digitalni zatiči so definirani kot INPUT_PULLUP zatiči. Ko se žica ročaja dotakne žice labirinta, spremeni stanje digitalnih zatičev na nizko in zvočni signal sproži zvok.
Na koncu žice labirinta je priključena dioda, tako da, ko grete mimo te diode in se z žico okroglega ročaja dotaknete žice labirinta, bo le en zatič (pin 3) nizek. V tem stanju se na LCD-prikazovalniku prikaže besedilo čestitke (Dobro opravljeno).
Potrebne komponente
- Arduino Uno
- Aluminijasta žica
- 16x2 LCD
- I 2 C modul
- Breadboard
- Zvočni signal
- Dioda
Shema vezja
Shema vezij za igro Arduino Buzz Wire je navedena zgoraj. Zatiči SCL in SDA modula I2C so povezani z zatiči A5 in A4 Arduino, zatiči V CC in GND modula I2C pa na 5 V in GND zatiča Arduino. Pozitivna tirnica Buzzerja je priključena na digitalni zatič 4 Arduina, negativna tirnica pa na GND. Izrežite aluminijasto žico in jo upognite v cik-cak obliki. Na enem koncu žice spajkajte diodo. Nato odrežite drugo žico, da naredite ročaj, in en konec upognite v zanko.
LCD 16x2 je mogoče povezati tudi z Arduino brez uporabe modula I2C.
Priključite zatiča D2 in D3 Arduina na oba konca žice Zig-Zag in žico ročaja priključite na zatič GND Arduino.
Razlaga kode
Popolna koda te igre Arduino Buzz Wire je navedena na koncu dokumenta.
Zaženite kodo tako, da vključite datoteko knjižnice za modul LCD. Knjižnica LiquidCrystal_I2C.h se uporablja za komunikacijo I2C med moduli Arduino in LCD.
#include
Po tem določite zatiče Arduino za zvočni signal, začetno točko žice in končno točko žice.
const int startPin = 2; const int endPin = 3; zvočni signal const int = 4;
Nato določite dve spremenljivki start & end_. Te spremenljivke bodo uporabljene za shranjevanje odčitkov žice.
int začetek, konec_;
Zdaj definirajte zatič brenčača kot izhodni in žični zatič kot INPUT_PULLUP . Arduino ima notranje vlečne upore z vrednostjo približno 20k ohm. Te upore lahko povežete interno s pomočjo INPUT_PULLUP . Določitev INPUT_PULLUP je funkcionalno enaka kot pri priključitvi ~ 20k ohmskega upora med zatičem in + 5V.
pinMode (brenčalo, IZHOD); pinMode (startPin, INPUT_PULLUP); pinMode (startPin, INPUT_PULLUP);
V notranjosti praznine preberite stanje žičnih zatičev.
start = digitalRead (startPin); end_ = digitalRead (endPin);
Zdaj primerjajte odčitke žičnih zatičev. Če sta oba zatiča nizka, to pomeni, da ste se dotaknili žice, da bo zvočni signal zaslišal, in če je začetni zatič žice visok, končni pa nizek, to pomeni, da ste dosegli končno točko.
if (start == LOW && end _ == LOW) {digitalWrite (zvočni signal, HIGH); zamuda (1000); digitalWrite (brenčalo, LOW); lcd.setCursor (0,0); lcd.print ("Poskusi znova"); Serial.print ("Poskusi znova"); } sicer če (začetek == VISOKO && konec _ == LOW) {lcd.setCursor (0,0); lcd.print ("Dobro opravljeno"); Serial.print ("Dobro opravljeno"); }
Testiranje igre Buzz Wire
Po priključitvi strojne opreme in nalaganju dane kode lahko začnete igrati igro. Držite torej žico s krogom v roki in poskušajte žico s krogom spraviti vse do diode, ki je spajkana s cik-cak žico, ne da bi se okrogla žica kje dotaknila. Če se dotaknete žic, se oglasi zvočni signal in na LCD-prikazovalniku se izpiše » Poskusi znova «. In če igro dokončate, ne da bi se dotaknili žice, bo prikazana " Dobro opravljeno ".
Tako lahko ustvarite igro Buzz Wire z Arduinom. Spodaj sta navedena delujoči video in celotna koda.