„Arduino“ yra labai populiarus kuriant pomėgių projektus ir žaidimus, ir anksčiau „Arduino“ naudojome kurdami „Snake“ žaidimą, „Ping pong“ žaidimą, „Space race“ žaidimą ir kt. Šiandien mes kuriame dar vieną populiarų žaidimą naudodami „Arduino- Buzz wire game“ arba „Steady hand game“..
Šiam projektui naudosime „Arduino Uno“, „Buzzer“ ir du aliuminio laidus. 16x2 LCD taip pat yra sąsaja, kad būtų galima parodyti žaidimo būseną. Abu labirinto laido galai bus prijungti prie „Arduino“ skaitmeninio kaiščio 2 ir 3, o rankenos laidas - prie „Arduino“ žemės kaiščio. Skaitmeniniai kaiščiai apibrėžiami kaip INPUT_PULLUP kaiščiai. Taigi, kai rankenos viela liečia labirinto laidą, ji pakeičia skaitmeninių kaiščių būseną į žemą, o garsinis signalas skleidžia garsą.
Labirinto laido gale yra prijungtas diodas, todėl, eidami pro tą diodą ir palietę labirinto laidą apvalia rankenos viela, žemai nusileis tik vienas kaištis (3 kaištis). Esant tokiai būklei, LCD ekrane bus rodomas sveikinimo tekstas (gerai padaryta).
Būtini komponentai
- Arduino Uno
- Aliuminio viela
- 16x2 LCD ekranas
- I 2 C modulis
- Bandomoji Lenta
- Buzeris
- Diodas
Grandinės schema
„Arduino Buzz Wire Game“ grandinės schema pateikta aukščiau. „I2C“ modulio SCL ir SDA kaiščiai yra prijungti prie „Arduino“ A5 ir A4 kaiščių, o „I2C“ modulio V CC ir GND kaiščiai yra prijungti prie „Arduino“ 5V ir GND kaiščių. Teigiamas „Buzzer“ bėgis sujungtas su „Arduino“ 4 skaitmeniniu kaiščiu, o neigiamasis - su GND. Iškirpkite aliuminio vielą ir sulenkite ją „Zig-Zag“ forma. Lituokite diodą viename laido gale. Tada nukirpkite kitą vielą, kad padarytumėte rankeną, ir sulenkite vieną galą į kilpą.
16x2 skystųjų kristalų ekraną taip pat galima suderinti su „Arduino“, nenaudojant „I2C“ modulio.
Prijunkite „Arduino“ D2 ir D3 kaiščius prie abiejų „Zig-Zag“ vielos galų ir prijunkite rankenos laidą prie „Arduino“ GND kaiščio.
Kodo paaiškinimas
Pilnas šio „ Arduino Buzz Wire Game“ kodas pateikiamas dokumento pabaigoje.
Pradėkite savo kodą įtraukdami LCD modulio bibliotekos failą. „LiquidCrystal_I2C.h“ biblioteka naudojama I2C ryšiui tarp „Arduino“ ir LCD modulių.
# įtraukti
Po to nustatykite garsiakalbio „Arduino“ kaiščius, laido pradžios tašką ir vielos galinį tašką.
const int startPin = 2; const int endPin = 3; const int zumeris = 4;
Tada apibrėžkite du kintamuosius pradžia ir pabaiga_. Šie kintamieji bus naudojami laidų rodmenims išsaugoti.
int pradžia, pabaiga_;
Dabar apibrėžkite garsinio signalo kaištį kaip išvestį, o laido kaiščius - kaip INPUT_PULLUP . „Arduino“ turi vidinius prisitraukimo rezistorius, kurių vertė yra apie 20k omų. Šie rezistoriai gali būti prijungti viduje naudojant INPUT_PULLUP . INPUT_PULLUP apibrėžimas funkciškai yra tas pats, kaip prijungti ~ 20k omų rezistorių tarp kaiščio ir + 5V.
pinMode (zumeris, OUTPUT); pinMode (startPin, INPUT_PULLUP); pinMode (startPin, INPUT_PULLUP);
Tuščiosios kilpos viduje perskaitykite vielos kaiščių būseną.
pradžia = digitalRead (startPin); end_ = digitalRead (endPin);
Dabar palyginkite vielinių kaiščių rodmenis. Jei abu smeigtukai yra žemi, tai reiškia, kad palietėte laidą, kad garsinis signalas skleistų garsą, o jei laido pradinis kaištis yra aukštas ir galas yra žemas, tai reiškia, kad pasiekėte galinį tašką.
if (pradžia == LOW && pabaiga _ == LOW) {digitalWrite (zumeris, AUKŠTAS); vėlavimas (1000); digitalWrite (zumeris, LOW); lcd.setCursor (0,0); lcd.print („Bandykite dar kartą“); Serial.print („Bandykite dar kartą“); } else if (pradžia == HIGH && pabaiga _ == LOW) {lcd.setCursor (0,0); lcd.print („Gerai padaryta“); Serial.print („Gerai padaryta“); }
„Buzz Wire“ žaidimo testavimas
Prijungę aparatūrą ir įkėlę nurodytą kodą, galite pradėti žaisti žaidimą. Taigi rankoje laikykite laidą su apskritimu ir pabandykite gauti vielą su apskritimu iki diodo, lituoto zigzagine viela, neleisdami apvaliajai vielai bet kur liesti. Jei paliesite laidus, garsinis signalas pasigirs ir LCD ekrane pasirodys užrašas „ Bandyti dar kartą “. Ir jei baigsite žaidimą neliesdami laido, tada bus rodoma „ Gerai padaryta “.
Taip galite sukurti „Buzz Wire“ žaidimą naudodami „Arduino“. Veikiantis vaizdo įrašas ir visas kodas pateikiami žemiau.