Arduino er veldig populært for å bygge hobbyprosjekter og spill, og vi har tidligere brukt Arduino til å bygge Snake game, Ping pong game, Space race game, etc. I dag bygger vi enda et populært spill ved hjelp av Arduino- Buzz wire game eller Steady hand game.
For dette prosjektet vil vi bruke en Arduino Uno, Buzzer og to aluminiumsledninger. En 16x2 LCD er også grensesnitt for å vise spillets status. Begge endene av labyrintledningen blir koblet til den digitale pinnen 2 og 3 på Arduino, og håndtakstråden er koblet til jordpinnen på Arduino. De digitale pinnene er definert som INPUT_PULLUP-pinner. Så når håndtakstråden berører labyrintledningen, endrer den den digitale pinsstatusen til lav, og summeren gir lyd.
En diode er koblet til på slutten av labyrintwiren, så når du går forbi til dioden og berører labyrintwiren med rund håndtakstråd, vil bare en pinne (pin 3) gå lavt. I den tilstanden vil en gratulasjonstekst (Well done) vises på LCD-skjermen.
Komponenter kreves
- Arduino Uno
- Aluminium Wire
- 16x2 LCD
- I 2 C-modul
- Brettbrett
- Summer
- Diode
Kretsdiagram
Kretsskjemaet for Arduino Buzz Wire Game er gitt ovenfor. SCL og SDA-pinner på I2C-modulen er koblet til A5- og A4-pinnene på Arduino, mens V CC og GND-pinnen på I2C-modulen er koblet til 5V og GND-pinnen på Arduino. Den positive skinnen til Buzzer er koblet til den digitale pin 4 av Arduino, og den negative skinnen er koblet til GND. Klipp en aluminiumstråd og bøy den i Zig-Zag-form. Lodd en diode i den ene enden av ledningen. Klipp deretter en annen ledning for å lage et håndtak og bøy den ene enden til en løkke.
16x2 LCD kan også kobles til Arduino uten å bruke en I2C-modul.
Koble D2 & D3-pinnene til Arduino til begge endene av Zig-Zag-ledningen og koble håndtakstråden til GND-pinnen på Arduino.
Kode Forklaring
Komplett kode for dette Arduino Buzz Wire Game er gitt på slutten av dokumentet.
Start koden ved å inkludere biblioteksfilen til LCD-modulen. LiquidCrystal_I2C.h-biblioteket brukes til I2C-kommunikasjon mellom Arduino og LCD-moduler.
#inkludere
Deretter definerer du Arduino-pinnene for summeren, ledningens startpunkt og ledningens sluttpunkt.
const int startPin = 2; const int endPin = 3; const int summer = 4;
Definer deretter to variable start & end_. Disse variablene vil bli brukt til å lagre avlesningene av ledningen.
int start, slutt_;
Definer nå summerpinnen som utgang og ledningspinnene som INPUT_PULLUP . Arduino har interne trekkmotstander med en verdi på rundt 20k ohm. Disse motstandene kan kobles internt ved hjelp av INPUT_PULLUP . Å definere en INPUT_PULLUP er funksjonelt det samme som å koble en ~ 20k ohm motstand mellom pinnen og + 5V.
pinMode (summer, UTGANG); pinMode (startPin, INPUT_PULLUP); pinMode (startPin, INPUT_PULLUP);
Inne i tomrommet sløyfe, lese status av trådnålene.
start = digitalRead (startPin); end_ = digitalRead (endPin);
Sammenlign nå målingene av ledningspinner. Hvis begge pinnene er lave, betyr det at du har berørt ledningen slik at summeren gir lyd, og hvis startpinnen til ledningen er høy og endenålen er lav, betyr det at du nådde endepunktet.
hvis (start == LAV && slutt _ == LAV) {digitalWrite (summer, HØY); forsinkelse (1000); digitalWrite (summer, LAV); lcd.setCursor (0,0); lcd.print ("Prøv på nytt"); Serial.print ("Prøv på nytt"); } annet hvis (start == HIGH && end _ == LOW) {lcd.setCursor (0,0); lcd.print ("Well Done"); Serial.print ("Godt gjort"); }
Testing av Buzz Wire Game
Etter å ha koblet til maskinvaren og lastet opp den gitte koden, kan du begynne å spille spillet. Så hold ledningen med en sirkel i hånden, og prøv å få ledning med sirkel helt forbi til dioden loddet med sikksakk wire uten å la den runde ledningen berøre hvor som helst. Hvis du berører ledningene, vil summeren gi lyd og LCD-skjermen viser “ Prøv igjen ”. Og hvis du fullfører spillet uten å berøre ledningen, vil det vise " Well done ".
Slik kan du lage et Buzz Wire-spill med en Arduino. En arbeidsvideo og fullstendig kode er gitt nedenfor.