Πίνακας περιεχομένων:
- Βήμα 1: Τόσο MASTER όσο και SLAVE στον ίδιο κώδικα
- Βήμα 2: Μονάδες BLUETOOTH Ομιλία μέσω σειριακής ανάγνωσης και εγγραφής
- Βήμα 3: Έλεγχος του αγώνα
- Βήμα 4: Ο υπόλοιπος κώδικας
- Βήμα 5: Τι ακολουθεί;
Βίντεο: Arduino Hot Wheels Speed Track Μέρος #2 - Κωδικός: 5 Βήματα
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:37
Στο πρώτο μέρος αυτού του έργου δημιουργήσαμε το υλικό για το πρωτότυπο σε 2 σανίδες.
Και σε αυτό το μέρος θα εξετάσουμε τον κώδικα, πώς λειτουργεί και στη συνέχεια θα τον δοκιμάσουμε.
Βεβαιωθείτε ότι έχετε παρακολουθήσει το παραπάνω βίντεο για ολόκληρη την αναθεώρηση κώδικα και τη βιτρίνα του κώδικα εργασίας.
Βήμα 1: Τόσο MASTER όσο και SLAVE στον ίδιο κώδικα
Ο κωδικός αποτελείται από 2 μέρη, αλλά μέσα στο ίδιο αρχείο. Χρησιμοποιώ #define και #ifdef για να καθορίσω ποιος κώδικας θα καταρτιστεί ή θα αγνοηθεί, ώστε να διαχωρίσω οποιονδήποτε κώδικα είναι μόνο για το MASTER breadboard και κωδικό που είναι μόνο για το SLAVE breadboard.
Βασικά, εάν βρεθεί το καθορισμένο MASTER, τότε κάθε κώδικας που βρίσκεται μέσα στο μπλοκ κώδικα MASTER θα μεταγλωττιστεί και οποιοσδήποτε κώδικας έξω από αυτό το μπλοκ θα αφαιρεθεί τη στιγμή της μεταγλώττισης.
#ifdef MASTER
// Ο κύριος κωδικός είναι εδώ
#αλλού
#define SLAVE
// Ο συγκεκριμένος σκλάβος κωδικός είναι εδώ
#τέλος εαν
Χρησιμοποιώ επίσης την ίδια τεχνική για να #προσδιορίσω το SLAVE όταν καταρτιστεί το MASTER, οπότε πρέπει να ανησυχείτε μόνο για τον ορισμό του MASTER ή για να μην ορίσετε τη δυνατότητα SLAVE.
Βήμα 2: Μονάδες BLUETOOTH Ομιλία μέσω σειριακής ανάγνωσης και εγγραφής
Σε αυτό το έργο μόνο το SLAVE breadboard μιλά με το MASTER breadboard. Το MASTER δεν μιλάει ποτέ πίσω, ακούει μόνο και στη συνέχεια ενεργεί με τα δεδομένα που έρχονται.
Οι ενότητες μιλούν και ακούν χρησιμοποιώντας την ενσωματωμένη σειρά σειρών στο οικοσύστημα κωδικοποίησης Arduino.
Οι μονάδες Bluetooth επικοινωνούν με 38400 baud, οπότε και οι δύο διαδρομές κώδικα αρχικοποιούν τις σειριακές επικοινωνίες τους χρησιμοποιώντας:
Serial.begin (38400);
Και το SLAVE χρησιμοποιεί:
Serial.write (τα δεδομένα εδώ);
Για να μιλήσετε στο MASTER και το MASTER χρησιμοποιεί:
δεδομένα = Serial.read ();
Για να ακούσετε τη σειριακή ροή και να διαβάσετε τα περιεχόμενά της και να την αποθηκεύσετε μέσα σε μια μεταβλητή.
Βήμα 3: Έλεγχος του αγώνα
Ο SLAVE ενημερώνει το MASTER εάν βρίσκεται σε κατάσταση περισσότερης ή έτοιμης λειτουργίας μέσω του πράσινου κουμπιού που είναι συνδεδεμένο στο μικροελεγκτή του. Σε κατάσταση ετοιμότητας, οι αισθητήρες IR δεν κάνουν τίποτα και το MASTER θα εμφανίσει 8 παύλες στην οθόνη για να δείξει ότι είναι σε κατάσταση ετοιμότητας.
Όταν ο SLAVE λέει στο MASTER ότι ένας αγώνας πρόκειται να ξεκινήσει, ο SLAVE αρχίζει να κάνει έρευνα στους αισθητήρες IR στην πλευρά του (Η εκκίνηση της πίστας αγώνα) για να περάσουν τα αυτοκίνητα από κάτω.
Καθώς κάθε αυτοκίνητο περνά κάτω από κάθε αισθητήρα IR, στέλνει ένα Α (αυτοκίνητο 1) ή Β (αυτοκίνητο 2) στο MASTER.
Όταν το MASTER λαμβάνει ένα Α ή Β, ενεργοποιεί το χρονόμετρο για το συγκεκριμένο αυτοκίνητο και στη συνέχεια περιμένει το αυτοκίνητο να περάσει κάτω από τον αντίστοιχο αισθητήρα IR στη γραμμή τερματισμού.
Η οθόνη ενημερώνεται κάθε 50ms για να εμφανίζει την τρέχουσα ώρα για κάθε αυτοκίνητο σε δευτερόλεπτα με 2 δεκαδικά ψηφία.
Μόλις και τα δύο αυτοκίνητα φτάσουν στη γραμμή τερματισμού, το MASTER αποφασίζει ποιο αυτοκίνητο ήταν το γρηγορότερο και αναβοσβήνει εκείνη την ώρα στην οθόνη για να δείξει τον νικητή.
Βήμα 4: Ο υπόλοιπος κώδικας
Ο υπόλοιπος κώδικας είναι απλώς κώδικας χρησιμότητας που είτε ελέγχει την εμφάνιση δεδομένων στην οκταψήφια οθόνη, είτε χειρίζεται το λογικό πάτημα του κουμπιού κ.λπ.
Στο τέλος του βίντεο στην ενότητα εισαγωγής αυτού του έργου, δείχνω ένα παράδειγμα του κώδικα που τρέχει στους 2 πίνακες ψωμιού, οπότε φροντίστε να το ελέγξετε!
Μπορείτε να πάρετε τον κώδικα για αυτό το έργο από το github repo μου.
Βήμα 5: Τι ακολουθεί;
Αυτό είναι προς το παρόν … στο μέρος 3 θα εξετάσουμε τη μετακίνηση των εξαρτημάτων από το breadboard και σε κάτι πιο μόνιμο… μείνετε συντονισμένοι!
Ελπίζω να σας άρεσε αυτό το έργο!
Ακολουθησε με:
www.youtube.com/c/unexpectedmaker
twitter.com/unexpectedmaker
www.facebook.com/unexpectedmaker
www.instagram.com/unexpectedmaker
www.tindie.com/stores/seonr/
Συνιστάται:
Εύκολη πολύ χαμηλής ισχύος BLE στο Arduino Μέρος 2 - Παρακολούθηση θερμοκρασίας/υγρασίας - Αναθ. 3: 7 βήματα
Easy Easy Low Power BLE στο Arduino Μέρος 2 - Θερμοκρασία/Παρακολούθηση υγρασίας - Αναθ. 3: Ενημέρωση: 23 Νοεμβρίου 2020 - Πρώτη αντικατάσταση 2 μπαταριών AAA από τις 15 Ιανουαρίου 2019, δηλαδή 22 μήνες για 2xAAA Alkaline Ενημέρωση: 7 Απριλίου 2019 - Αναθ. 3 του lp_BLE_TempHumidity, προσθέτει γραφήματα ημερομηνίας/ώρας, χρησιμοποιώντας το pfodApp V3.0.362+, και αυτόματη πίεση όταν
Arduino-tomation Μέρος 5: LE TUNNEL DE CHAUFFE: 4 Βήματα
Arduino-tomation Μέρος 5: LE TUNNEL DE CHAUFFE: Πριν από δύο μήνες αποφάσισα να μετασκευάσω ένα μικρό ξεχασμένο σύστημα που είναι αποθηκευμένο στο πολεμικό συγκρότημα του τόπου στον οποίο εργάζομαι. Αυτό το σύστημα ήταν κατασκευασμένο για τη θέρμανση και τη θέρμανση ηλεκτρονικών συσκευών ή οτιδήποτε έβαζε σε ειδική υψηλή θερμοκρασία αντισταθείτε στον ιμάντα μεταφοράς. Έτσι δημιούργησα μερικά
Arduino Control DC Speed and Direction Speed and Direction Using Potentiometer, OLED Display & Buttons: 6 βήματα
Arduino Control DC Motor Speed and Direction Speed and Direction Using Potentiometer, OLED Display & Buttons: Σε αυτό το σεμινάριο θα μάθουμε πώς να χρησιμοποιούμε πρόγραμμα οδήγησης L298N DC MOTOR CONTROL και ποτενσιόμετρο για τον έλεγχο της ταχύτητας και της κατεύθυνσης του κινητήρα DC με δύο κουμπιά και εμφάνιση της τιμής του ποτενσιόμετρου στην οθόνη OLED. Παρακολουθήστε ένα βίντεο επίδειξης
Πώς να τροποποιήσετε τους τυπικούς ζεστούς τροχούς σε R/C Hot Wheels: D: 6 βήματα (με εικόνες)
Τρόπος τροποποίησης των τυπικών θερμών τροχών σε R/C Hot Wheels: D: Από μικρό παιδί, λατρεύω τα αυτοκίνητα Hot Wheels. Μου έδωσε έμπνευση για σχεδιαστικά οχήματα φαντασίας. Αυτή τη φορά ξεπέρασαν τον εαυτό τους με το Star War Hot Wheels, C-3PO. Ωστόσο, θέλω περισσότερο από το να σπρώχνω ή να ταξιδεύω σε μια πίστα, αποφάσισα, «L
Arduino Hot Wheels Speed Track - Μέρος 1 - Πρωτότυπο: 4 Βήματα
Arduino Hot Wheels Speed Track - Μέρος 1 - Πρωτότυπο: Δεν πρέπει να αποτελεί έκπληξη το γεγονός ότι ο γιος μου λατρεύει τις καυτές ρόδες και αγωνίζεται με τα αυτοκίνητά του σε όλο το σπίτι! Ένα από τα αγαπημένα του πράγματα που πρέπει να κάνει είναι να αγωνιστεί με όλα του τα αυτοκίνητα (πάνω από 100 τώρα) για να καθορίσει ποιο είναι το γρηγορότερο αυτοκίνητο. Αυτή τη στιγμή τα κάνει όλα με το μάτι και