Πίνακας περιεχομένων:
- Βήμα 1: Βήμα 1: Αισθητήρας απόστασης
- Βήμα 2: Βήμα 2: Servo Motor
- Βήμα 3: Βήμα 3: LED RGB
- Βήμα 4: Βήμα 4: LCD
- Βήμα 5: Βήμα 5: Ο Κώδικας
Βίντεο: Παιχνίδι γρήγορης αντίδρασης: Έκδοση απόστασης: 5 βήματα (με εικόνες)
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:37
Γεια. Αυτό είναι ένα εγχειρίδιο για το πώς να δημιουργήσετε ένα παιχνίδι που δοκιμάζει τόσο τον χρόνο αντίδρασης όσο και την αίσθηση της απόστασης. Αυτό το έργο βασίζεται σε ένα παλιό έργο που έκανα σε δύο παίκτες που διαγωνίζονταν για να δουν ποιοι είχαν ταχύτερο χρόνο αντίδρασης κάνοντας κλικ σε ένα κουμπί όταν το φως γινόταν πράσινο. Αυτός έχει έναν παρόμοιο σκοπό, εκτός από το ότι είναι ένας παίκτης και αντί να σβήνει ένα φως, ο παίκτης έχει ένα χρονικό πλαίσιο για να απομακρύνει το χέρι του από έναν αισθητήρα απόστασης.
Όπως όλα τα έργα Arduino, αυτό το παιχνίδι θα απαιτήσει πολλά ηλεκτρικά εξαρτήματα στο κύκλωμα Arduino. Τα κύρια εξαρτήματα, εκτός από την καλωδίωση και το ίδιο το Arduino, περιλαμβάνουν το breadboard, ένα σερβοκινητήρα, μια οθόνη LCD, ένα LED RGB και έναν αισθητήρα απόστασης.
Χρησιμοποιώντας το https://abra-electronics.com, η τιμή χωρίς τα καλώδια και το Arduino είναι $ 32,12 CAD.
Βήμα 1: Βήμα 1: Αισθητήρας απόστασης
Το πρώτο βήμα είναι να ρυθμίσετε τον υπερηχητικό αισθητήρα απόστασης στην σανίδα και να τον συνδέσετε στο Arduino. Η ακριβής θέση του αισθητήρα δεν έχει πραγματικά σημασία, αλλά ιδανικά είναι κοντά σε μια άκρη, ώστε να υπάρχει χώρος για τα άλλα εξαρτήματα, όπως φαίνεται στην παραπάνω εικόνα. Υπάρχουν τέσσερις ακίδες στον αισθητήρα. GND, VCC, TRIG και ECHO. Το GND και το VCC πρέπει να συνδεθούν στο έδαφος και στις ράγες ισχύος αντίστοιχα και να καλωδιωθούν στις άλλες δύο ακίδες σε δύο ακίδες του Arduino. Οι δύο ακίδες που χρησιμοποίησα ήταν 12 για ECHO και 11 για TRIG. Χρησιμοποιήστε δύο άλλα καλώδια για να τροφοδοτήσετε τη ράγα ισχύος και γειώστε τη ράγα γείωσης συνδέοντας τη ράγα ισχύος στον πείρο 5V και τη ράγα γείωσης σε έναν πείρο GND.
Βήμα 2: Βήμα 2: Servo Motor
Το επόμενο βήμα είναι η ρύθμιση του σερβοκινητήρα. Σε αυτό το έργο, ο σερβοκινητήρας λειτουργεί ως χρονοδιακόπτης. Θα ξεκινήσει από 1 βαθμό και κατά τη διάρκεια της περιόδου κατά την οποία ο χρήστης πρέπει να απομακρύνει τα χέρια του, θα περιστραφεί στους 180 μοίρες. Χρησιμοποίησα 2 δευτερόλεπτα όταν ο χρήστης μάθει πόσο μακριά πρέπει να απομακρύνει τα χέρια του, οπότε το σερβο περιστρέφεται 179 μοίρες σε διάστημα 2 δευτερολέπτων, περιστρέφεται σε σύντομα διαστήματα. Ο σερβοκινητήρας έχει τρία καλώδια. συνήθως ένα κίτρινο, ένα κόκκινο και ένα καφέ. Το κόκκινο μπαίνει στη ράγα ισχύος, η οποία είναι ήδη συνδεδεμένη σε 5V, και η καφέ πηγαίνει στη ράγα εδάφους που είναι ήδη συνδεδεμένη στο GND. Το τελικό καλώδιο συνδέεται σε έναν πείρο Arduino. Επέλεξα το pin #9 για αυτό. Στη συνέχεια, χρειάζεστε έναν πυκνωτή που συνδέει την ίδια ράγα με την οποία συνδέονται τα καλώδια τροφοδοσίας και γείωσης του σερβοκινητήρα, όπως φαίνεται στην παραπάνω εικόνα.
Βήμα 3: Βήμα 3: LED RGB
Η λειτουργία του LED σε αυτό είναι να λειτουργήσει ως κλίμακα για τη βαθμολογία. Όταν η βαθμολογία του παίκτη είναι γύρω στο 0, η λυχνία LED θα είναι λευκή και θα γίνει πιο κόκκινη αν η βαθμολογία του παίκτη μειωθεί και πράσινη αν ανέβει η βαθμολογία του παίκτη. Αυτό το LED έχει τέσσερα πόδια. ένα πόδι με κόκκινο φως, ένα πόδι με μπλε φως, ένα πόδι με πράσινο φως και μια κοινή κάθοδο που μοιράζεται μεταξύ των άλλων τριών ποδιών. Η κοινή κάθοδος, το μακρύτερο πόδι, είναι συνδεδεμένη στη ράγα ισχύος, ώστε να δέχεται 5 βολτ. Συνδέστε αντιστάσεις 330 ohm στα άλλα τρία έγχρωμα πόδια και συνδέστε τα άλλα άκρα αυτών των αντιστάσεων σε ψηφιακές ακίδες PWM στο Arduino. Αυτά που χρησιμοποίησα ήταν οι ψηφιακές ακίδες 3, 5 και 6 για τα κόκκινα, πράσινα και μπλε πόδια αντίστοιχα.
Βήμα 4: Βήμα 4: LCD
Το τελευταίο συστατικό είναι η οθόνη LCD, η οποία σημαίνει οθόνη υγρών κρυστάλλων. Ο σκοπός αυτού είναι να πει στον παίκτη την τρέχουσα βαθμολογία του καθώς και την απόσταση που χρειάζεται για να βάλει τα χέρια του μακριά από τον αισθητήρα. Υπάρχουν τέσσερις καρφίτσες. GND, VCC, SDA και SCL. Το GND και το VCC θα συνδεθούν στο έδαφος και στις ράγες ισχύος του breadboard αντίστοιχα. Ο πείρος SDA πρέπει να συνδεθεί στον αναλογικό πείρο Α4 και ο πείρος SCL πρέπει να συνδεθεί στον αναλογικό πείρο Α5. Σε αντίθεση με τα άλλα εξαρτήματα, πρέπει να συνδέσετε τις καρφίτσες SDA και SCL σε A4 και A5.
Βήμα 5: Βήμα 5: Ο Κώδικας
Τώρα που έχουμε συνδέσει όλα τα στοιχεία, μπορούμε να γράψουμε τον κώδικα. Το πρώτο μέρος του κώδικα είναι να εισαγάγουμε τις απαραίτητες βιβλιοθήκες και να δηλώσουμε τις μεταβλητές μας και σε ποιες καρφίτσες συνδέονται τα στοιχεία. Πρέπει να εισαγάγουμε τις βιβλιοθήκες Wire, LiquidCrystal_I2C και Servo για αυτόν τον κώδικα.
#περιλαμβάνω
#περιλαμβάνω
#περιλαμβάνω
Servo myServo;
int const trigPin = 11;
int const echoPin = 12;
int redPin = 3;
int greenPin = 5;
int bluePin = 6;
βαθμολογία int = 0;
int tim = 500;
int ρεύμα = τυχαίο (8, 16); // τυχαία τιμή όπου ο χρήστης πρέπει να απομακρύνει το χέρι του από τον αισθητήρα
LiquidCrystal_I2C LCD (0x27, 16, 2); // Ρύθμιση LCD
Τώρα πρέπει να χρησιμοποιήσουμε το void setup () για να δηλώσουμε τους τύπους των καρφιτσών μας και να ρυθμίσουμε άλλα απαραίτητα στοιχεία.
void setup () {myServo.attach (9); Serial.begin (9600); pinMode (trigPin, OUTPUT); pinMode (echoPin, INPUT); pinMode pinMode (redPin, OUTPUT); pinMode (greenPin, OUTPUT); pinMode (bluePin, OUTPUT); lcd.init (); lcd. backlight (); lcd.αρχή (16, 2); lcd.clear (); // Ρύθμιση LCD}
Τώρα πρέπει να ρυθμίσουμε τον κωδικό LED RGB χρησιμοποιώντας μια λειτουργία και PWM:
void setColor (int κόκκινο, int πράσινο, int μπλε) {
κόκκινο = 255 - κόκκινο?
πράσινο = 255 - πράσινο?
μπλε = 255 - μπλε?
analogWrite (redPin, κόκκινο);
analogWrite (greenPin, πράσινο);
analogWrite (bluePin, μπλε);
}
Τώρα πρέπει να προσθέσουμε τον κενό βρόχο (). Εδώ, θα δημιουργήσουμε τυχαίους ακέραιους αριθμούς και θα χρησιμοποιήσουμε μια σειρά από εντολές if για τον έλεγχο του παιχνιδιού για τον παίκτη. Η τρέχουσα μεταβλητή, που έχει ρυθμιστεί παραπάνω, είναι για την τρέχουσα απόσταση που ο παίκτης πρέπει να αποστασιοποιηθεί από τον αισθητήρα.
Επειδή ο κώδικας στον βρόχο κενό () είναι πολύ μεγάλος, θα επικολλήσω έναν σύνδεσμο σε ένα έγγραφο που έχει αυτόν τον κωδικό:
docs.google.com/document/d/1DufS0wuX0N6gpv…
Τέλος, πρέπει να κάνουμε τους πραγματικούς υπολογισμούς για να μετατρέψουμε τις τιμές του αισθητήρα υπερήχων σε ίντσες. Ο υπερηχητικός αισθητήρας απόστασης δεν μετρά άμεσα την απόσταση. απελευθερώνει ήχο και καταγράφει το χρόνο που χρειάζεται ο αισθητήρας για να πάρει τον ήχο πίσω από οποιοδήποτε αντικείμενο αναπηδά.
μεγάλα μικροδευτερόλεπταToInches (μεγάλα μικροδευτερόλεπτα) {
επιστροφή μικροδευτερολέπτων / 74 /2?
}
Τώρα συνδέουμε το ενσύρματο Arduino στον υπολογιστή με τον κωδικό, ρυθμίζουμε τις θύρες και το τρέχουμε! Υπάρχουν δύο τρόποι σε αυτό το παιχνίδι. Είτε μπορείτε να χρησιμοποιήσετε μόνο την οθόνη LCD, τον σερβοκινητήρα, τον αισθητήρα και το RGB LED και γνωρίζετε μόνο την απόσταση που πρέπει να έχετε από τον αισθητήρα, που είναι η πιο δύσκολη λειτουργία. Η ευκολότερη λειτουργία περιλαμβάνει τη χρήση της σειριακής οθόνης στα Εργαλεία> Σειριακή οθόνη, η οποία θα σας ενημερώνει κάθε δευτερόλεπτο για το πόσο είστε μακριά από τον αισθητήρα, ώστε να μπορείτε να κάνετε τις απαραίτητες προσαρμογές.
Ευχαριστώ για την ανάγνωση!
Συνιστάται:
Μέτρηση απόστασης απόστασης με αισθητήρα χειρονομίας APDS9960: 6 βήματα
Μέτρηση απόστασης απόστασης με αισθητήρα χειρονομίας APDS9960: Σε αυτό το σεμινάριο θα μάθουμε πώς να μετράμε την απόσταση χρησιμοποιώντας έναν αισθητήρα χειρονομίας APDS9960, arduino και Visuino. Δείτε το βίντεο
Λάμπα απόστασης LED απόστασης σκύλου: 5 βήματα (με εικόνες)
LED Distance Indicator Dog Harness: Συνήθως παίρνω τον σκύλο μου Rusio για έναν περίπατο όταν δύει ο ήλιος για να μπορεί να παίζει χωρίς να ζεσταίνεται πολύ. Το πρόβλημα είναι ότι όταν βγαίνει από το λουρί μερικές φορές ενθουσιάζεται πολύ και τρέχει πιο μακριά από όσο θα έπρεπε και με χαμηλό φωτισμό και τα άλλα σκυλιά
Πατήστε Tap Rainbow - ένα παιχνίδι γρήγορης αντίδρασης 2 παικτών: 4 βήματα (με εικόνες)
Πατήστε Tap Rainbow - a 2 Player Παιχνίδι Γρήγορης Αντίδρασης: Πριν από 2 εβδομάδες η κόρη μου είχε μια ιδιοφυή ιδέα να κάνει ένα παιχνίδι γρήγορης αντίδρασης με χρώματα ουράνιου τόξου (είναι ειδικός σε ουράνιο τόξο: D). Μου άρεσε αμέσως η ιδέα και αρχίσαμε να σκεφτόμαστε πώς θα μπορούσαμε να την κάνουμε ένα πραγματικό παιχνίδι. Η ιδέα ήταν. Έχετε ουράνιο τόξο στο
555 Παιχνίδι αντίδρασης χρονοδιακόπτη: 5 βήματα
555 Παιχνίδι αντίδρασης χρονοδιακόπτη: Κοινό -στόχοςΑυτό το διδακτικό απευθύνεται σε άτομα που ενδιαφέρονται για κυκλώματα (με μικρό υπόβαθρο) που αναζητούν ένα απλό παιχνίδι που μπορείτε να φτιάξετε με λίγα φθηνά εξαρτήματα. Επίπεδο δυσκολίας Αυτό θα ήταν δύσκολο αν
Αστείο παιχνίδι αντίδρασης Arduino: 3 βήματα
Αστείο παιχνίδι αντίδρασης Arduino: Αστείο παιχνίδι αντίδρασης Arduino για όλη την οικογένεια;) Βασισμένο σε διασταυρούμενη επικοινωνία Bluetooth. Χρειάζεστε μόνο μερικά είδη Arduino, ένα smartphone Android και ένα κουτί παπουτσιών. Εάν δεν έχετε κανένα από αυτά, πιστέψτε σταθερά σε αυτό: δεν υπάρχει τίποτα που