Πίνακας περιεχομένων:
Βίντεο: UChip - Simple Sketch to Remote Control Motors And/or Servos Via 2.4GHz Radio Tx -Rx !: 3 βήματα
2025 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2025-01-13 06:57
Μου αρέσει πολύ ο κόσμος του RC. Η χρήση ενός παιχνιδιού RC σας δίνει την αίσθηση ότι έχετε τον έλεγχο κάτι εξαιρετικού, παρά το γεγονός ότι είναι ένα μικρό σκάφος, αυτοκίνητο ή drone!
Ωστόσο, δεν είναι εύκολο να προσαρμόσετε τα παιχνίδια σας και να τα κάνετε να κάνουν ό, τι θέλετε να κάνουν. Συνήθως, περιορίζεστε να χρησιμοποιείτε τις προεπιλεγμένες ρυθμίσεις πομπού ή τους ειδικά σχεδιασμένους συνδυασμούς διακοπτών και κουμπιών.
Είναι πολύ δύσκολο να ελέγξετε τα πάντα όπως θέλετε πραγματικά, κυρίως επειδή ο κόσμος του RC απαιτεί πολύ βαθιά γνώση προγραμματισμού σε επίπεδο υλικού για να αξιοποιήσετε το καλύτερο από αυτό.
Δοκίμασα πολλές πλατφόρμες και ρυθμίσεις, αλλά πάντα κόστιζε μια τεράστια προσπάθεια για να αισθανθώ αρκετά άνετα με τον κώδικα πριν κάνω κάποια πραγματική προσαρμογή στο παιχνίδι RC μου.
Αυτό που μου έλειπε είναι ένα απλό σκίτσο που θα μπορούσα να φορτώσω χρησιμοποιώντας το Arduino IDE και αυτό θα μου επέτρεπε εύκολα να μεταφράσω τις τιμές που βγαίνουν από το Radio RX (δέκτης) στο επιθυμητό χειριστήριο Motor/Servo.
Επομένως, εδώ είναι αυτό που δημιούργησα αφού έπαιξα λίγο με το uChip και το Arduino IDE: Ένα απλό σκίτσο για τηλεχειριστήριο Motors ή/και Servos μέσω 2.4GHz Radio Tx-Rx!
Λογαριασμός υλικών
1 x uChip: Συμβατός πίνακας Arduino IDE
1 σύστημα ραδιοσυχνοτήτων xTx-Rx: οποιοδήποτε ραδιοσύστημα με δέκτη cPPM είναι καλό (ο συνδυασμός μου είναι ένα παλιό Spectrum DX7 Tx + Orange R614XN cPPM Rx), βεβαιωθείτε ότι ακολουθείτε τη σωστή διαδικασία δέσμευσης για να συνδέσετε τα Tx και Rx.
1 x Μπαταρία: Μπαταρίες υψηλής εκφόρτισης είναι απαραίτητες όταν χειρίζεστε κινητήρες και σερβιτόρους.
Motors/Servos: ανάλογα με τις ανάγκες σας
Ηλεκτρονικά εξαρτήματα για την οδήγηση των Motors/Servos: απλές αντιστάσεις, MOSFET και δίοδοι σας επιτρέπουν να επιτύχετε τον οδηγικό σκοπό.
Βήμα 1: Καλωδίωση
Συνδέστε τα εξαρτήματα μαζί όπως περιγράφεται στα σχήματα.
Το Rx συνδέεται απευθείας με το uChipand δεν απαιτεί εξωτερικά εξαρτήματα. Σε περίπτωση που χρησιμοποιείτε διαφορετικό δέκτη, επαληθεύστε εάν χρειάζεστε έναν επιλογέα επιπέδου ή όχι. Βεβαιωθείτε ότι έχετε συνδέσει το σήμα cPPM στο uChip PIN_9 (το οποίο είναι PORTA19 σε περίπτωση που θέλετε να προσαρμόσετε τον κώδικα σε άλλη πλακέτα SAMD21).
Η υπόλοιπη καλωδίωση είναι απαραίτητη για να οδηγήσετε τον κινητήρα και/ή το σερβο. Το συνημμένο σχήμα αντιπροσωπεύει το βασικό κύκλωμα για την προστασία του uChip από αιχμές/υπερβάσεις που συμβαίνουν συνήθως κατά την οδήγηση επαγωγικών φορτίων. Το βασικό συστατικό για τη διατήρηση της ασφάλειας του uChip είναι η δίοδος ισχύος Zener των 5,1V (D1 στο σχήμα) που πρέπει να τοποθετήσετε παράλληλα με το VEXT (uChip pin 16) και GND (uChip pin 8). Εναλλακτικά, αντί να χρησιμοποιήσετε τη δίοδο Zener, μπορείτε να επιλέξετε το προαιρετικό κύκλωμα που αντιπροσωπεύεται από τα D2, C1 και C2, το οποίο εμποδίζει τις αντίστροφες αιχμές να βλάψουν τα συστατικά του uChip.
Μπορείτε να οδηγήσετε όσα μοτέρ/σερβίς χρειάζεστε, απλά αναπαράγοντας το σχηματικό σχήμα και αλλάζοντας τους πείρους ελέγχου (μπορείτε να χρησιμοποιήσετε οποιοδήποτε πείρο εκτός από τους ακροδέκτες ισχύος (PIN_8 και PIN_16) και τον ακροδέκτη cPPM (PIN_9)). Λάβετε υπόψη ότι, ενώ χρειάζεστε μόνο ένα κύκλωμα προστασίας που αντιπροσωπεύεται από τη δίοδο Zener (ή τα εξαρτήματα για το προαιρετικό κύκλωμα), τα ηλεκτρικά εξαρτήματα που σχετίζονται με τον κινητήρα/τον σερβο οδήγηση πρέπει να αναπαραχθούν όσες φορές ο αριθμός των κινητήρων/ servos που σκοπεύετε να οδηγήσετε.
Δεδομένου ότι ήθελα να οδηγήσω τουλάχιστον 2 κινητήρες και 2 σερβο, έφτιαξα ένα μικρό PCB που υλοποίησε το περιγραφόμενο κύκλωμα και που μπορείτε να δείτε στην εικόνα. Ωστόσο, το πρώτο πρωτότυπο κατασκευάστηκε σε έναν πρωτο-πίνακα χρησιμοποιώντας ιπτάμενα σύρματα.
Έτσι, δεν χρειάζεστε ικανότητες συγκόλλησης/σχεδίασης PCB για να υλοποιήσετε αυτό το απλό έργο:)
Βήμα 2: Προγραμματισμός
Εδώ είναι η μαγεία! Εδώ τα πράγματα γίνονται ενδιαφέροντα.
Σε περίπτωση που δημιουργήσατε το κύκλωμα που περιγράφεται στο προηγούμενο σχήμα, μπορείτε απλά να φορτώσετε το σκίτσο "DriveMotorAndServo.ino" και όλα πρέπει να λειτουργήσουν.
Ρίξτε μια ματιά στον κώδικα και ελέγξτε πώς λειτουργεί.
Στην αρχή υπάρχουν λίγα #define που χρησιμοποιούνται για τον ορισμό:
- τα αριθμητικά κανάλια του Rx (6Ch με το Orange 614XN)
- οι ακίδες στις οποίες είναι προσαρτημένα τα μοτέρ/σερβομηχανισμούς
- Max και min που χρησιμοποιούνται για το σερβο και τους κινητήρες
- Μέγιστο και ελάχιστο που χρησιμοποιούνται για εύρος καναλιών ραδιοφώνου
Στη συνέχεια, υπάρχει το τμήμα δήλωσης μεταβλητών όπου δηλώνονται οι μεταβλητές κινητήρων/εξυπηρέτησης.
Σε περίπτωση που οδηγείτε περισσότερους από έναν κινητήρες και έναν σερβο που έχει συνδεθεί όπως περιγράφεται στο προηγούμενο διάγραμμα, πρέπει να τροποποιήσετε το σκίτσο και να προσθέσετε τον κωδικό που χειρίζεται τα επιπλέον μοτέρ/σερβο που συνδέσατε. Πρέπει να προσθέσετε τόσα Servo, servo_value και motor_value όσα servos/μοτέρ χρησιμοποιείτε.
Στο τμήμα δήλωσης μεταβλητών υπάρχουν επίσης ορισμένες πτητικές μεταβλητές που χρησιμοποιούνται για τη σύγκριση καταγραφής του σήματος cPPM. ΜΗΝ ΑΛΛΑΞΕΤΕ ΑΥΤΕΣ ΤΙΣ ΜΕΤΑΒΛΗΤΕΣ!
Αυτό που πρέπει να κάνετε στη συνέχεια είναι στη λειτουργία βρόχου (). Εδώ, μπορείτε να αποφασίσετε ποια χρήση θα έχει η τιμή των εισερχόμενων καναλιών.
Στην περίπτωσή μου συνέδεσα την εισερχόμενη τιμή απευθείας με τον κινητήρα και το σερβο, αλλά είστε περισσότερο από ευπρόσδεκτοι να την αλλάξετε ανάλογα με τις ανάγκες σας! Στο βίντεο και τις εικόνες που συνδέονται σε αυτό το σεμινάριο συνδέσα 2 κινητήρες και 2 σερβο, αλλά θα μπορούσαν να υπάρχουν 3, 4, 5,… έως τις μέγιστες διαθέσιμες δωρεάν ακίδες (13 σε περίπτωση uChip).
Μπορείτε να βρείτε την τιμή του καναλιού που έχει καταγραφεί μέσα στον πίνακα ch [index], του οποίου ο «δείκτης» κυμαίνεται από 0 σε NUM_CH - 1. Κάθε κανάλι αντιστοιχεί σε ένα ραβδί/διακόπτη/κουμπί στο ραδιόφωνό σας. Εναπόκειται σε εσάς να καταλάβετε τι είναι-τι:)
Τέλος, εφάρμοσα κάποιες λειτουργίες εντοπισμού σφαλμάτων προκειμένου να καταστεί ευκολότερη η κατανόηση του τι συμβαίνει. Σχολιάστε/σχολιάστε το #define DEBUG για εκτύπωση της αξίας των καναλιών στο εγγενές SerialUSB.
ΣΥΜΒΟΥΛΗ: Υπάρχει περισσότερος κώδικας κάτω από τη λειτουργία βρόχου (). Αυτό το μέρος του κώδικα είναι απαραίτητο για να ορίσετε ακίδες ισχύος uChip, να χειριστείτε τις διακοπές που δημιουργούνται από τη λειτουργία σύγκρισης λήψης, να ρυθμίσετε τα χρονόμετρα και τον σκοπό εντοπισμού σφαλμάτων. Σε περίπτωση που αισθάνεστε αρκετά τολμηροί για να παίξετε με καταχωρητές, μη διστάσετε να το τροποποιήσετε!
Επεξεργασία: Ενημερωμένο σκίτσο, διορθώθηκε ένα σφάλμα στη λειτουργία αντιστοίχισης.
Βήμα 3: Παίξτε, οδηγήστε, αγωνιστείτε, πετάξτε
Βεβαιωθείτε ότι έχετε συνδέσει σωστά το σύστημα Tx και Rx. Ενεργοποιήστε τη σύνδεση της μπαταρίας. Βεβαιωθείτε ότι όλα λειτουργούν. Μπορείτε να επεκτείνετε τις λειτουργίες ή να αλλάξετε τη λειτουργία κάθε καναλιού όπως θέλετε, επειδή τώρα έχετε τον πλήρη έλεγχο του μελλοντικού σας μοντέλου RC.
Τώρα, δημιουργήστε το προσαρμοσμένο μοντέλο RC σας!
P. S.: Δεδομένου ότι το δέσιμο μπορεί να είναι αρκετά βαρετό, σχεδιάζω να κυκλοφορήσω σύντομα ένα σκίτσο που επιτρέπει τη σύνδεση του συστήματος Tx-Rx χωρίς να χρειάζεται να το κάνετε χειροκίνητα. Μείνετε συντονισμένοι για ενημερώσεις!