Το Arduino είναι πολύ δημοφιλές για την κατασκευή έργων και παιχνιδιών χόμπι και έχουμε χρησιμοποιήσει στο παρελθόν το Arduino για την κατασκευή παιχνιδιού φιδιών, παιχνιδιών πινγκ πονγκ, διαστημικού παιχνιδιού κλπ. Σήμερα χτίζουμε ένα ακόμη δημοφιλές παιχνίδι χρησιμοποιώντας το παιχνίδι Arduino- Buzz wire ή το παιχνίδι Steady hand.
Για αυτό το έργο, θα χρησιμοποιήσουμε ένα καλώδιο Arduino Uno, Buzzer και δύο καλώδια αλουμινίου. Μια οθόνη LCD 16x2 συνδέεται επίσης για την εμφάνιση της κατάστασης του παιχνιδιού. Και τα δύο άκρα του σύρματος λαβυρίνθου θα συνδεθούν με τον ψηφιακό πείρο 2 & 3 του Arduino και το σύρμα λαβής συνδέεται στον πείρο γείωσης του Arduino. Οι ψηφιακές ακίδες ορίζονται ως ακροδέκτες INPUT_PULLUP. Έτσι, όταν το καλώδιο λαβής αγγίζει το καλώδιο λαβυρίνθου, αλλάζει η κατάσταση των ψηφιακών ακίδων σε χαμηλή και ο βομβητής κάνει έναν ήχο.
Μια δίοδος συνδέεται στο τέλος του σύρματος λαβυρίνθου, οπότε όταν περνάτε από αυτήν τη δίοδο και αγγίζετε το σύρμα λαβυρίνθου με στρογγυλό σύρμα λαβής, μόνο ένας πείρος (Pin 3) θα πέσει χαμηλά. Σε αυτήν την κατάσταση, θα εμφανιστεί ένα κείμενο συγχαρητηρίων (Μπράβο) στην οθόνη LCD.
Απαιτούμενα στοιχεία
- Arduino Uno
- Σύρμα αλουμινίου
- LCD 16x2
- Ενότητα I 2 C
- Ψωμί
- Βομβητής
- Δίοδος
Διάγραμμα κυκλώματος
Το διάγραμμα κυκλώματος για το Arduino Buzz Wire Game δίνεται παραπάνω. Οι ακροδέκτες SCL και SDA της μονάδας I2C συνδέονται με τους ακροδέκτες A5 και A4 του Arduino ενώ οι ακροδέκτες V CC και GND της μονάδας I2C συνδέονται με τον ακροδέκτη 5V και GND του Arduino. Η θετική ράγα του Buzzer συνδέεται με τον ψηφιακό πείρο 4 του Arduino και η αρνητική ράγα συνδέεται με το GND. Κόψτε ένα σύρμα αλουμινίου και λυγίστε το σε σχήμα Zig-Zag. Κολλήστε μια δίοδο στο ένα άκρο του καλωδίου. Στη συνέχεια, κόψτε ένα άλλο σύρμα για να κάνετε μια λαβή και λυγίστε το ένα άκρο σε έναν βρόχο.
Η οθόνη LCD 16x2 μπορεί επίσης να διασυνδεθεί με το Arduino χωρίς τη χρήση μονάδας I2C.
Συνδέστε τους ακροδέκτες D2 & D3 του Arduino και στα δύο άκρα του σύρματος Zig-Zag και συνδέστε το καλώδιο λαβής στον ακροδέκτη GND του Arduino.
Επεξήγηση κώδικα
Ο πλήρης κωδικός για αυτό το Arduino Buzz Wire Game δίνεται στο τέλος του εγγράφου.
Ξεκινήστε τον κωδικό σας συμπεριλαμβάνοντας το αρχείο βιβλιοθήκης για τη μονάδα LCD. Η βιβλιοθήκη LiquidCrystal_I2C.h χρησιμοποιείται για επικοινωνία I2C μεταξύ Arduino και LCD modules.
#περιλαμβάνω
Μετά από αυτό, ορίστε τις ακίδες Arduino για το βομβητή, το σημείο εκκίνησης του καλωδίου και το τελικό σημείο του καλωδίου.
const int startPin = 2; const int endPin = 3; const int buzzer = 4;
Στη συνέχεια, ορίστε δύο μεταβλητές start & end_. Αυτές οι μεταβλητές θα χρησιμοποιηθούν για την αποθήκευση των ενδείξεων του σύρματος.
int start, end_;
Τώρα ορίστε τον πείρο του βομβητή ως έξοδο και τους πείρους καλωδίων ως INPUT_PULLUP . Το Arduino έχει εσωτερικές αντιστάσεις έλξης με τιμή περίπου 20k ohm. Αυτές οι αντιστάσεις μπορούν να συνδεθούν εσωτερικά χρησιμοποιώντας INPUT_PULLUP . Ο ορισμός ενός INPUT_PULLUP είναι λειτουργικά ο ίδιος με τη σύνδεση μιας αντίστασης ~ 20k ohm μεταξύ του πείρου και του + 5V.
pinMode (βομβητής, ΕΞΟΔΟΣ); pinMode (startPin, INPUT_PULLUP); pinMode (startPin, INPUT_PULLUP);
Μέσα στον κενό βρόχο, διαβάστε την κατάσταση των ακροδεκτών.
start = digitalRead (startPin); end_ = digitalRead (endPin);
Τώρα συγκρίνετε τις ενδείξεις των ακροδεκτών. Εάν και οι δύο ακίδες είναι χαμηλές, έχετε αγγίξει το καλώδιο, ώστε ο βομβητής να ακούγεται ήχος και αν ο πείρος έναρξης του καλωδίου είναι υψηλός και ο ακροδέκτης είναι χαμηλός, αυτό σημαίνει ότι φτάσατε στο τελικό σημείο.
if (start == LOW && end _ == LOW) {digitalWrite (βομβητής, ΥΨΗΛΟΣ); καθυστέρηση (1000) digitalWrite (βομβητής, LOW); lcd.setCursor (0,0); lcd.print ("Δοκιμάστε ξανά"); Serial.print ("Δοκιμάστε ξανά"); } αλλιώς εάν (start == HIGH && end _ == LOW) {lcd.setCursor (0,0); lcd.print ("Έγινε καλά"); Serial.print ("Well Done"); }
Δοκιμή του παιχνιδιού Buzz Wire
Αφού συνδέσετε το υλικό και ανεβάσετε τον δεδομένο κωδικό, μπορείτε να ξεκινήσετε να παίζετε το παιχνίδι. Κρατήστε λοιπόν το καλώδιο με έναν κύκλο στο χέρι σας και προσπαθήστε να πάρετε καλώδιο με κύκλο μέχρι τη δίοδο που είναι συγκολλημένο με σύρμα ζιγκ-ζαγκ χωρίς να αφήσετε το στρογγυλό σύρμα να αγγίξει πουθενά. Εάν αγγίξετε τα καλώδια, τότε ο βομβητής θα κάνει έναν ήχο και η οθόνη LCD θα εμφανίσει " Δοκιμάστε ξανά ". Και αν ολοκληρώσετε το παιχνίδι χωρίς να αγγίξετε το σύρμα, τότε θα δείξει " Καλά ".
Έτσι μπορείτε να δημιουργήσετε ένα παιχνίδι Buzz Wire With Arduino. Παρακάτω δίνεται ένα βίντεο εργασίας και πλήρης κωδικός.