Arduino är mycket populärt för att bygga hobbyprojekt och spel, och vi har tidigare använt Arduino för att bygga Snake-spel, Ping pong-spel, Space Race-spel, etc. Idag bygger vi ännu ett populärt spel med Arduino- Buzz-trådspel eller Steady hand-spel.
För detta projekt kommer vi att använda en Arduino Uno, Buzzer och två aluminiumtrådar. En 16x2 LCD är också gränssnitt för att visa spelstatus. Båda ändarna på labyrintråden kommer att anslutas till den digitala stiftet 2 och 3 på Arduino, och handtagstråden är ansluten till Arduinos jordstift. De digitala stiften definieras som INPUT_PULLUP-stift. Så när handtagstråden berör labyrinttråden ändrar den det digitala stiftets tillstånd till lågt och summern avger ett ljud.
En diod är ansluten i slutet av labyrintkabeln, så när du går förbi den dioden och rör vid labyrintkabeln med en rund handtagstråd kommer bara en stift (stift 3) att bli låg. I det tillståndet visas en gratulationstext (Bra gjort) på LCD-skärmen.
Komponenter krävs
- Arduino Uno
- Aluminiumtråd
- 16x2 LCD
- I 2 C-modul
- Bakbord
- Summer
- Diod
Kretsschema
Kretsschemat för Arduino Buzz Wire Game ges ovan. SCL- och SDA-stiften på I2C-modulen är anslutna till A5- och A4-stiften på Arduino medan V CC och GND-stiftet på I2C-modulen är anslutna till 5V och GND-stiftet i Arduino. Den positiva skenan hos Buzzer är ansluten till den digitala stiftet 4 i Arduino och den negativa skenan är ansluten till GND. Klipp av en aluminiumtråd och böjer den i Zig-Zag-form. Löd en diod i trådens ena ände. Klipp sedan av en annan tråd för att skapa ett handtag och böj den ena änden i en ögla.
16x2 LCD-skärmen kan också anslutas till Arduino utan att använda en I2C-modul.
Anslut D2- och D3-stiften på Arduino till båda ändarna på Zig-Zag-kabeln och anslut handtaget till GND-stiftet på Arduino.
Kodförklaring
Komplett kod för detta Arduino Buzz Wire Game ges i slutet av dokumentet.
Starta din kod genom att inkludera biblioteksfilen för LCD-modulen. LiquidCrystal_I2C.h-biblioteket används för I2C-kommunikation mellan Arduino- och LCD-moduler.
#omfatta
Därefter definierar du Arduino-stiften för summern, startpunkten för kabeln och kabelns slutpunkt.
const int startPin = 2; const int endPin = 3; const int summer = 4;
Definiera sedan två variabla start & slut_. Dessa variabler kommer att användas för att spara trådavläsningarna.
int start, end_;
Definiera nu summern som utgång och kabelnålar som INPUT_PULLUP . Arduino har interna uppdragningsmotstånd med ett värde på cirka 20k ohm. Dessa motstånd kan anslutas internt med INPUT_PULLUP . Att definiera en INPUT_PULLUP är funktionellt detsamma som att ansluta ett ~ 20k ohm-motstånd mellan stiftet och + 5V.
pinMode (summer, OUTPUT); pinMode (startPin, INPUT_PULLUP); pinMode (startPin, INPUT_PULLUP);
Inne i tomrummet slingan läsa status av trådstift.
start = digitalRead (startPin); end_ = digitalRead (endPin);
Jämför nu avläsningarna på trådstift. Om båda stiften är låga betyder det att du har rört vid ledningen så att summern kommer att avge ett ljud, och om startstiften för ledningen är hög och ändpinnen är låg betyder det att du når slutpunkten.
if (start == LOW && end _ == LOW) {digitalWrite (summer, HÖG); fördröjning (1000); digitalWrite (summer, LOW); lcd.setCursor (0,0); lcd.print ("Försök igen"); Serial.print ("Försök igen"); } annat om (start == HIGH && end _ == LOW) {lcd.setCursor (0,0); lcd.print ("Bra gjort"); Serial.print ("Bra gjort"); }
Testa Buzz Wire Game
Efter att ha anslutit hårdvaran och laddat upp den givna koden kan du börja spela spelet. Så håll tråden med en cirkel i handen och försök att få tråd med cirkel hela vägen förbi till dioden lödda med sicksacktråd utan att låta den runda tråden beröra någonstans. Om du vidrör kablarna kommer summern att avge ett ljud och LCD visar “ Försök igen ”. Och om du slutför spelet utan att röra vid kabeln, kommer det att visas " Bra gjort ".
Så här kan du skapa ett Buzz Wire-spel med en Arduino. En fungerande video och fullständig kod ges nedan.