Arduino je velmi populární pro stavění hobby projektů a her a dříve jsme pomocí Arduina stavěli hru Snake, hru Ping pong, hru Space Race atd. Dnes stavíme jednu další populární hru pomocí hry Arduino - Buzz wire nebo hry Steady hand.
Pro tento projekt použijeme Arduino Uno, bzučák a dva hliníkové vodiče. K zobrazení stavu hry je také připojen 16x2 LCD. Oba konce labyrintového drátu budou připojeny k digitálnímu kolíku 2 a 3 Arduina a kabel rukojeti je připojen k uzemňovacímu kolíku Arduina. Digitální piny jsou definovány jako piny INPUT_PULLUP. Takže když se drát rukojeti dotkne drátu bludiště, změní se stav digitálních kolíků na nízký a bzučák vydá zvuk.
Na konci drátu bludiště je připojena dioda, takže když jdete kolem této diody a dotknete se drátu bludiště drátem s kulatou rukojetí, pouze jeden kolík (kolík 3) klesne. V takovém případě se na LCD zobrazí text blahopřání (Well done).
Požadované komponenty
- Arduino Uno
- Hliníkový drát
- 16x2 LCD
- Modul I 2 C.
- Nepájivá deska
- Bzučák
- Dioda
Kruhový diagram
Schéma zapojení hry Arduino Buzz Wire je uvedeno výše. Kolíky SCL a SDA modulu I2C jsou připojeny k pinům A5 a A4 Arduina, zatímco kolíky V CC a GND modulu I2C jsou připojeny k kolíku 5V a GND Arduina. Kladná lišta bzučáku je připojena k digitálnímu kolíku 4 Arduina a záporná lišta je připojena k GND. Odřízněte hliníkový drát a ohněte jej ve tvaru cik-cak. Pájejte diodu na jednom konci drátu. Poté odstřihněte další drát, abyste vytvořili rukojeť, a ohněte jeden konec do smyčky.
16x2 LCD lze také propojit s Arduino bez použití modulu I2C.
Připojte piny D2 a D3 Arduina k oběma koncům drátu Zig-Zag a připojte kabel držadla ke kolíku GND Arduina.
Vysvětlení kódu
Kompletní kód této hry Arduino Buzz Wire je uveden na konci dokumentu.
Začněte kód zahrnutím souboru knihovny pro modul LCD. Knihovna LiquidCrystal_I2C.h se používá pro komunikaci I2C mezi moduly Arduino a LCD.
#zahrnout
Poté definujte piny Arduina pro bzučák, počáteční bod drátu a koncový bod drátu.
const int startPin = 2; const int endPin = 3; const int bzučák = 4;
Poté definujte dvě proměnné start & end_. Tyto proměnné budou použity k uložení naměřených hodnot drátu.
int start, end_;
Nyní definujte bzučák jako výstup a drátové piny jako INPUT_PULLUP . Arduino má interní pull-up rezistory s hodnotou kolem 20k ohmů. Tyto rezistory lze interně připojit pomocí INPUT_PULLUP . Definování INPUT_PULLUP je funkčně stejné jako připojení rezistoru ~ 20k ohm mezi pin a + 5V.
pinMode (bzučák, VÝSTUP); pinMode (startPin, INPUT_PULLUP); pinMode (startPin, INPUT_PULLUP);
Ve smyčce prázdnoty si přečtěte stav drátových kolíků.
start = digitalRead (startPin); end_ = digitalRead (endPin);
Nyní porovnejte odečty drátěných kolíků. Pokud jsou oba piny nízké, znamená to, že jste se dotkli drátu, takže bzučák vydá zvuk, a pokud je počáteční kolík drátu vysoký a endpin nízký, znamená to, že jste dosáhli koncového bodu.
if (start == LOW && end _ == LOW) {digitalWrite (bzučák, VYSOKÝ); zpoždění (1000); digitalWrite (bzučák, NÍZKÝ); lcd.setCursor (0,0); lcd.print ("Zkuste to znovu"); Serial.print ("Zkuste to znovu"); } else if (start == HIGH && end _ == LOW) {lcd.setCursor (0,0); lcd.print („Dobře hotovo“); Serial.print („Dobře hotovo“); }
Testování hry Buzz Wire
Po připojení hardwaru a nahrání daného kódu můžete začít hrát hru. Držte tedy drát s kruhem v ruce a pokuste se dostat drát s kruhem až k diodě pájené cik-cak vodičem, aniž byste se kruhového drátu mohli kdekoli dotknout. Pokud se dotknete vodičů, vydá bzučák zvuk a na displeji LCD se zobrazí „ Zkuste to znovu “. A pokud hru dokončíte, aniž byste se dotkli drátu, zobrazí se „ Dobrá práce “.
Takto můžete vytvořit hru Buzz Wire s Arduinem. Níže naleznete pracovní video a kompletní kód.