Arduino je veľmi populárne na vytváranie záujmových projektov a hier. V minulosti sme pomocou Arduina stavali hry Snake, Ping pong, vesmírne preteky atď. Dnes staviame jednu populárnejšiu hru pomocou hry Arduino - Buzz wire alebo hry Steady hand.
Pre tento projekt použijeme Arduino Uno, bzučiak a dva hliníkové drôty. Na zobrazenie stavu hry je tiež pripojený displej 16 x 2 LCD. Oba konce labyrintového drôtu budú pripojené k digitálnemu kolíku 2 a 3 Arduina a drôt rukoväte je pripojený k uzemňovaciemu kolíku Arduina. Digitálne piny sú definované ako piny INPUT_PULLUP. Takže keď sa drôt rukoväte dotkne drôtu bludiska, zmení sa stav digitálnych kolíkov na nízky a bzučiak vydá zvuk.
Na konci drôtu bludiska je pripojená dióda, takže keď prejdete okolo tejto diódy a dotknete sa drôtu bludiska guľatým drôtom rukoväte, iba jeden kolík (kolík 3) klesne nízko. V takom prípade sa na LCD displeji zobrazí text s blahoželaním (výborne).
Súčasti sú povinné
- Arduino Uno
- Hliníkový drôt
- 16x2 LCD
- Modul I 2 C.
- Nepál
- Bzučiak
- Dióda
Schéma zapojenia
Schéma zapojenia pre hru Arduino Buzz Wire Game je uvedená vyššie. Kolíky SCL a SDA modulu I2C sú pripojené k pinom A5 a A4 modulu Arduino, zatiaľ čo kolíky V CC a GND modulu I2C sú pripojené k kolíku 5V a GND modulu Arduino. Kladná koľajnica bzučiaka je pripojená k digitálnemu kolíku 4 Arduina a záporná koľajnica je pripojená k GND. Odrežte hliníkový drôt a ohnite ho v tvare Zig-Zag. Na jednom konci drôtu spájkujte diódu. Potom odstrihnite ďalší drôt, aby ste vytvorili rukoväť, a jeden koniec ohnite do slučky.
Displej 16x2 LCD je možné prepojiť s rozhraním Arduino aj bez použitia modulu I2C.
Pripojte piny Arduino D2 a D3 na obidva konce Zig-Zag vodiča a pripojte drôt rukoväte k pinu GND Arduina.
Vysvetlenie kódu
Kompletný kód pre túto hru Arduino Buzz Wire je uvedený na konci dokumentu.
Začnite kód zahrnutím súboru knižnice pre modul LCD. Knižnica LiquidCrystal_I2C.h slúži na komunikáciu I2C medzi modulmi Arduino a LCD.
#include
Potom definujte piny Arduina pre bzučiak, začiatočný bod drôtu a koncový bod drôtu.
const int startPin = 2; const int endPin = 3; konštantný bzučiak = 4;
Potom definujte dve premenné start & end_. Tieto premenné sa použijú na uloženie odpočtov drôtu.
int start, end_;
Teraz definujte kolík bzučiaka ako výstup a kolíky vodiča ako INPUT_PULLUP . Arduino má vnútorné pull-up rezistory s hodnotou okolo 20k ohmov. Tieto odpory je možné interne pripojiť pomocou INPUT_PULLUP . Definovanie INPUT_PULLUP je funkčne rovnaké ako pripojenie odporu ~ 20 k ohmov medzi pin a + 5V.
pinMode (bzučiak, VÝSTUP); pinMode (startPin, INPUT_PULLUP); pinMode (startPin, INPUT_PULLUP);
Vo vnútri prázdnej slučky prečítajte stav vodičových kolíkov.
start = digitalRead (startPin); end_ = digitalRead (endPin);
Teraz porovnajte namerané hodnoty z vodičových kolíkov. Ak sú obidva kolíky nízko, znamená to, že ste sa dotkli drôtu, takže bzučiak vydá zvuk. Ak je počiatočný kolík drôtu vysoký a koncovka nízko, znamená to, že ste dosiahli koncový bod.
if (start == LOW && end _ == LOW) {digitalWrite (bzučiak, VYSOKÝ); oneskorenie (1 000); digitalWrite (bzučiak, LOW); lcd.setCursor (0,0); lcd.print ("Skúste to znova"); Serial.print ("Skúste to znova"); } else if (start == HIGH && end _ == LOW) {lcd.setCursor (0,0); lcd.print („Dobre hotovo“); Serial.print („Dobre hotovo“); }
Testovanie hry Buzz Wire
Po pripojení hardvéru a nahraní daného kódu môžete začať hrať hru. Držte teda drôt s kruhom v ruke a pokúste sa dostať drôt s kruhom úplne okolo k dióde spájkovanej cikcakovým drôtom bez toho, aby sa kruhový drôt kdekoľvek dotýkal. Ak sa dotknete vodičov, vydá bzučiak zvuk a na displeji LCD sa zobrazí „ Try again “. A ak hru dokončíte bez toho, aby ste sa dotkli drôtu, zobrazí sa správa „ Výborne “.
Takto môžete vytvoriť hru Buzz Wire s Arduinom. Nižšie je uvedené pracovné video a kompletný kód.