Πίνακας περιεχομένων:

Arduino Hot Wheels Speed Track Μέρος #2 - Κωδικός: 5 Βήματα
Arduino Hot Wheels Speed Track Μέρος #2 - Κωδικός: 5 Βήματα

Βίντεο: Arduino Hot Wheels Speed Track Μέρος #2 - Κωδικός: 5 Βήματα

Βίντεο: Arduino Hot Wheels Speed Track Μέρος #2 - Κωδικός: 5 Βήματα
Βίντεο: 35 Scary Ghost Videos: Mega Compilation του 2023 [V1] 2024, Ιούλιος
Anonim
Image
Image

Στο πρώτο μέρος αυτού του έργου δημιουργήσαμε το υλικό για το πρωτότυπο σε 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/

Συνιστάται: