- Coreless DC Motor για αυτοκίνητα RC
- Απαιτούμενα υλικά
- RF Joystick για RC αυτοκίνητο που χρησιμοποιεί Arduino
- Διάγραμμα κυκλώματος αυτοκινήτου Arduino RC
- Κατασκευή PCB για Arduino RC Car
- Συναρμολόγηση του PCB
- Τροχοί εκτύπωσης 3D και στήριγμα κινητήρα
- Προγραμματισμός του Arduino
- Εργασία του Arduino RC Car
Τα αυτοκίνητα RC είναι πάντα διασκεδαστικά να παίζω, προσωπικά είμαι μεγάλος θαυμαστής αυτών των τηλεχειριζόμενων Αυτοκινήτων και έχω παίξει (εξακολουθεί να κάνει) μαζί τους εκτενώς. Τα περισσότερα από αυτά τα αυτοκίνητα σήμερα παρέχουν μια τεράστια ροπή για να χειρίζονται τραχιά εδάφη, αλλά υπάρχει κάτι που πάντα υστερούσε, η ταχύτητά του !!.. Έτσι, σε αυτό το έργο, θα κατασκευάσουμε έναν εντελώς διαφορετικό τύπο αυτοκινήτου RC χρησιμοποιώντας το Arduino, το κύριο στόχος αυτού του αυτοκινήτου είναι η επίτευξη της μέγιστης ταχύτητας, γι 'αυτό αποφάσισα να δοκιμάσω τον κινητήρα συνεχούς ρεύματος DC για ένα αυτοκίνητο RC. Αυτοί οι κινητήρες χρησιμοποιούνται συνήθως σε drone και έχουν βαθμολογία 39000 RPM που θα πρέπει να είναι περισσότερο από αρκετό για να ξεδιψάσει την ταχύτατη δίψα μας. Το αυτοκίνητο θα τροφοδοτείται με μια μικρή μπαταρία λιθίου και μπορεί να ελεγχθεί εξ αποστάσεως χρησιμοποιώντας τη μονάδα nRF24L01 RF. Εναλλακτικά, εάν ψάχνετε για κάτι απλό, μπορείτε επίσης να ελέγξετε αυτά τα έργα Simple RF Robot και Raspberry Pi Bluetooth Car.
Coreless DC Motor για αυτοκίνητα RC
Ο μηχανοκίνητος κινητήρας DC που χρησιμοποιείται σε αυτό το έργο φαίνεται στην παρακάτω εικόνα. Μπορείτε να τα βρείτε εύκολα, καθώς χρησιμοποιούνται ευρέως σε μίνι drone. Απλά ψάξτε για 8520 Magnetic Micro Coreless Motor και θα τα βρείτε.
Τώρα, υπάρχουν ορισμένα μειονεκτήματα στη χρήση κινητήρων DC για ένα αυτοκίνητο RC. Το πρώτο πράγμα είναι ότι παρέχουν πολύ χαμηλή ροπή εκκίνησης, επομένως το αυτοκίνητο RC πρέπει να είναι όσο το δυνατόν ελαφρύτερο. Γι 'αυτό αποφάσισα να κατασκευάσω ολόκληρο το αυτοκίνητο πάνω από ένα PCB χρησιμοποιώντας εξαρτήματα SMD και να μειώσω όσο το δυνατόν περισσότερο το μέγεθος της πλακέτας. Το δεύτερο πρόβλημα είναι η υψηλή του ταχύτητα, οι 39000 RPM (RPM του άξονα) είναι δύσκολο να χειριστούν, οπότε χρειαζόμαστε ένα κύκλωμα ελέγχου ταχύτητας στην πλευρά Arduino, το οποίο δημιουργήσαμε χρησιμοποιώντας ένα MOSFET. Το τρίτο είναι ότι αυτοί οι κινητήρες θα τροφοδοτούνται από μία μπαταρία πολυμερούς λιθίου με τάση λειτουργίας μεταξύ 3,6V και 4,2V, οπότε πρέπει να σχεδιάσουμε το κύκλωμα μας ώστε να λειτουργεί σε 3.3V. Αυτός είναι ο λόγος για τον οποίο χρησιμοποιήσαμε ένα 3.3V Arduino Pro miniως ο εγκέφαλος του αυτοκινήτου μας RC. Με την επίλυση αυτών των προβλημάτων, ας δούμε τα υλικά που απαιτούνται για την κατασκευή αυτού του έργου.
Απαιτούμενα υλικά
- 3.3V Arduino Pro Mini
- Arduino Nano
- NRF24L01 - 2 τεμάχια
- Ενότητα Joystick
- SI2302 MOSFET
- 1N5819 Δίοδος
- Coreless BLDC Motors
- AMS1117-3.3V
- Μπαταρία λιθίου πολυμερούς
- Αντιστάσεις, πυκνωτές,
- Σύνδεση καλωδίων
RF Joystick για RC αυτοκίνητο που χρησιμοποιεί Arduino
Όπως αναφέρθηκε προηγουμένως, το αυτοκίνητο RC θα ελέγχεται εξ αποστάσεως χρησιμοποιώντας ένα Joystick RF. Αυτό το Joystick θα κατασκευαστεί επίσης χρησιμοποιώντας ένα Arduino μαζί με μια μονάδα RF nRF24L01, έχουμε επίσης χρησιμοποιήσει τη μονάδα Joystick για τον έλεγχο του RC μας στην απαιτούμενη κατεύθυνση. Εάν είστε εντελώς νέοι σε αυτές τις δύο ενότητες, μπορείτε να διαβάσετε τα άρθρα Interfacing Arduino με nRF24L01 και Interfacing Joystick με Arduino για να μάθετε πώς λειτουργούν και πώς να τα χρησιμοποιήσετε. Για να δημιουργήσετε το Arduino RF Remote Joystick μπορείτε να ακολουθήσετε το παρακάτω Circuit Diagram.
Το κύκλωμα RF Joystick μπορεί να τροφοδοτηθεί χρησιμοποιώντας τη θύρα USB του nano board. Η μονάδα nRF24L01 λειτουργεί μόνο σε 3.3V, επομένως έχουμε χρησιμοποιήσει τον πείρο 3.3V στο Arduino. Έχω κατασκευάσει το κύκλωμα σε ένα breadboard και μοιάζει παρακάτω, μπορείτε επίσης να δημιουργήσετε ένα PCB για αυτό εάν απαιτείται.
Το κύκλωμα Arduino Code για RF Joystick είναι πολύ απλό, πρέπει να διαβάσουμε την τιμή X και την τιμή Y από το Joystick μας και να την στείλουμε στο αυτοκίνητο RC μέσω του nRF24L01. Το πλήρες πρόγραμμα για αυτό το κύκλωμα βρίσκεται στο κάτω μέρος αυτής της σελίδας. Δεν θα μπει στην εξήγηση αυτού, αφού το έχουμε ήδη συζητήσει στον σύνδεσμο του έργου διασύνδεσης που κοινοποιήθηκε παραπάνω.
Διάγραμμα κυκλώματος αυτοκινήτου Arduino RC
Το πλήρες διάγραμμα κυκλώματος για το τηλεχειριστήριο Arduino Car φαίνεται παρακάτω. Το διάγραμμα κυκλώματος περιλαμβάνει επίσης μια επιλογή για την προσθήκη δύο μονάδων IR TCRT5000 στο αυτοκίνητό μας. Αυτό είχε σχεδιαστεί για να επιτρέψει στο αυτοκίνητό μας RC να λειτουργεί ως γραμμή που ακολουθεί το ρομπότ, έτσι ώστε να μπορεί να λειτουργεί μόνο του χωρίς να ελέγχεται εξωτερικά. Ωστόσο, για χάρη αυτού του έργου δεν θα επικεντρωθούμε σε αυτό, μείνετε συντονισμένοι για ένα άλλο πρόγραμμα εκμάθησης στο οποίο θα προσπαθήσουμε να δημιουργήσουμε το "Fastest Line Follower Robot". Έχω συνδυάσει και τα δύο κυκλώματα σε ένα μόνο PCB για την ευκολία κατασκευής, μπορείτε να αγνοήσετε τον αισθητήρα IR και την ενότητα Op-amp για αυτό το έργο.
Το αυτοκίνητο RC θα τροφοδοτείται από την μπαταρία Lipo που είναι συνδεδεμένη στον ακροδέκτη P1. Το AMS117-3.3V χρησιμοποιείται για τη ρύθμιση 3.3V για το nRF24L01 και το pro-mini-board. Μπορούμε επίσης να τροφοδοτήσουμε την πλακέτα Arduino απευθείας στον ακατέργαστο πείρο, αλλά ο ενσωματωμένος ρυθμιστής τάσης 3.3V στο pro mini δεν θα μπορεί να παρέχει αρκετό ρεύμα στις μονάδες RF, επομένως έχουμε χρησιμοποιήσει έναν εξωτερικό ρυθμιστή τάσης.
Για να οδηγήσουμε τους δύο κινητήρες BLDC, χρησιμοποιήσαμε δύο SI2302 MOSFET. Είναι σημαντικό να βεβαιωθείτε ότι αυτά τα MOSFETS μπορούν να οδηγηθούν από 3.3V. Εάν δεν μπορείτε να βρείτε τον ίδιο ακριβώς αριθμό εξαρτήματος, μπορείτε να αναζητήσετε ισοδύναμα MOSFET με τα παρακάτω χαρακτηριστικά μεταφοράς
Οι κινητήρες μπορούν να καταναλώσουν μέγιστο ρεύμα έως 7Α (το συνεχές δοκιμάστηκε να είναι 3Α με φορτίο), επομένως το ρεύμα αποστράγγισης MOSFET πρέπει να είναι 7Α ή περισσότερο και θα πρέπει να ενεργοποιηθεί πλήρως στα 3.3V. Όπως μπορείτε να δείτε εδώ, το MOSFET που επιλέξαμε μπορεί να παρέχει 10Α ακόμη και στα 2,25V, οπότε είναι μια ιδανική επιλογή.
Κατασκευή PCB για Arduino RC Car
Το διασκεδαστικό μέρος με το κτίριο αυτού του έργου ήταν το PCB Development. Το PCB εδώ όχι μόνο σχηματίζει το κύκλωμα, αλλά επίσης λειτουργεί ως πλαίσιο για το αυτοκίνητό μας, οπότε σχεδιάσαμε ένα σχήμα που αναζητά ένα αυτοκίνητο με επιλογές για εύκολη τοποθέτηση των κινητήρων μας. Μπορείτε επίσης να δοκιμάσετε να σχεδιάσετε το δικό σας PCB χρησιμοποιώντας το παραπάνω κύκλωμα ή μπορείτε να χρησιμοποιήσετε το σχεδιασμό PCB μου που μοιάζει με αυτό παρακάτω μόλις ολοκληρωθεί.
Όπως βλέπετε, έχω σχεδιάσει το PCB για εύκολη τοποθέτηση της μπαταρίας, του κινητήρα και άλλων εξαρτημάτων. Μπορείτε να κατεβάσετε το αρχείο Gerber για αυτό το PCB από τον σύνδεσμο. Μόλις είστε έτοιμοι με το αρχείο Gerber, ήρθε η ώρα να το φτιάξετε. Για να ολοκληρώσετε εύκολα τα PCB σας από το PCBGOGO ακολουθήστε τα παρακάτω βήματα
Βήμα 1: Μπείτε στο www.pcbgogo.com, εγγραφείτε εάν αυτή είναι η πρώτη σας φορά. Στη συνέχεια, στην καρτέλα Πρωτότυπο PCB εισαγάγετε τις διαστάσεις του PCB σας, τον αριθμό των επιπέδων και τον αριθμό των PCB που χρειάζεστε. Το PCB μου είναι 80cm × 80cm έτσι η καρτέλα μοιάζει με αυτό παρακάτω.
Βήμα 2: Συνεχίστε κάνοντας κλικ στο κουμπί Quote Now . Θα μεταφερθείτε σε μια σελίδα όπου θα ορίσετε μερικές πρόσθετες παραμέτρους, εάν απαιτείται, όπως το υλικό που χρησιμοποιείται σε απόσταση κομματιού κ.λπ. Το μόνο πράγμα που πρέπει να λάβουμε υπόψη εδώ είναι η τιμή και ο χρόνος. Όπως μπορείτε να δείτε, ο Χρόνος Κατασκευής είναι μόνο 2-3 ημέρες και κοστίζει μόνο 5 $ για το PSB μας. Στη συνέχεια, μπορείτε να επιλέξετε μια προτιμώμενη μέθοδο αποστολής με βάση τις απαιτήσεις σας.
Βήμα 3: Το τελευταίο βήμα είναι να ανεβάσετε το αρχείο Gerber και να προχωρήσετε στην πληρωμή. Για να βεβαιωθείτε ότι η διαδικασία είναι ομαλή, το PCBGOGO επαληθεύει εάν το αρχείο Gerber είναι έγκυρο πριν προχωρήσετε στην πληρωμή. Με αυτόν τον τρόπο μπορείτε να είστε σίγουροι ότι το PCB σας είναι φιλικό στην κατασκευή και θα σας φτάσει ως δεσμευμένο.
Συναρμολόγηση του PCB
Μετά την παραγγελία του διοικητικού συμβουλίου, μου έφτασε μετά από λίγες μέρες, αν και η ταχυμεταφορά σε ένα καλά συσκευασμένο κουτί με ετικέτα και όπως πάντα η ποιότητα του PCB ήταν καταπληκτική. Μοιράζομαι μερικές φωτογραφίες από τα διοικητικά συμβούλια παρακάτω για να κρίνετε.
Άνοιξα τη ράβδο συγκόλλησης και άρχισα να συναρμολογώ την σανίδα. Δεδομένου ότι τα Footprints, τα μαξιλάρια, τα vias και η μεταξοτυπία είναι τέλεια του σωστού σχήματος και μεγέθους, δεν είχα κανένα πρόβλημα να συναρμολογήσω το ταμπλό. Ο πίνακας ήταν έτοιμος σε μόλις 10 λεπτά από τη στιγμή της αποσυσκευασίας του κουτιού.
Παρακάτω παρουσιάζονται μερικές φωτογραφίες από το ταμπλό μετά τη συγκόλληση.
Τροχοί εκτύπωσης 3D και στήριγμα κινητήρα
Όπως ίσως έχετε παρατηρήσει στην παραπάνω εικόνα, πρέπει να τρισδιάστασουμε τη βάση του κινητήρα και τους τροχούς του ρομπότ. Εάν έχετε χρησιμοποιήσει το αρχείο PCB Gerber που κοινοποιήθηκε παραπάνω, τότε θα μπορούσατε επίσης να χρησιμοποιήσετε ένα μοντέλο 3D κατεβάζοντάς το από αυτόν τον σύνδεσμο.
Έχω χρησιμοποιήσει το Cura για να κόψω τα μοντέλα μου και να τα εκτυπώσω χρησιμοποιώντας το Tevo Terantuala χωρίς υποστηρίγματα και 0% πλήρωση για μείωση του βάρους. Μπορείτε να αλλάξετε τη ρύθμιση που ταιριάζει στον εκτυπωτή μας. Δεδομένου ότι οι κινητήρες περιστρέφονται πολύ γρήγορα, δυσκολεύτηκα να σχεδιάσω έναν τροχό που θα ταιριάζει άνετα και σφιχτά στον άξονα του κινητήρα. Ως εκ τούτου, αποφάσισα να χρησιμοποιήσω τις λεπίδες drone μέσα στον τροχό όπως μπορείτε να δείτε παρακάτω
Βρήκα ότι αυτό είναι πιο αξιόπιστο και ανθεκτικό, ωστόσο, πειραματίζομαι με διαφορετικά σχέδια τροχών και με ενημερώστε στην ενότητα σχολίων τι λειτούργησε για εσάς.
Προγραμματισμός του Arduino
Το πλήρες πρόγραμμα (τόσο Arduino nano όσο και pro mini) για αυτό το έργο βρίσκεται στο κάτω μέρος αυτής της σελίδας. Η εξήγηση του προγράμματος RC σας έχει ως εξής
Ξεκινάμε το πρόγραμμα συμπεριλαμβάνοντας το απαιτούμενο αρχείο κεφαλίδας. Σημειώστε ότι, η μονάδα nRF24l01 απαιτεί να προστεθεί μια βιβλιοθήκη στο Arduino IDE σας. Μπορείτε να κατεβάσετε τη βιβλιοθήκη RF24 από το Github χρησιμοποιώντας αυτόν τον σύνδεσμο. Εκτός από αυτό, έχουμε ήδη ορίσει την ελάχιστη ταχύτητα και τη μέγιστη ταχύτητα για το ρομπότ μας. Το ελάχιστο και το μέγιστο εύρος είναι 0 έως 1024 αντίστοιχα.
# καθορισμός ελάχιστης ταχύτητας 200 # καθορισμός μέγιστης ταχύτητας 800 # συμπερίληψη
Στη συνέχεια, μέσα στη λειτουργία εγκατάστασης, αρχικοποιούμε το nRF24L01 module μας. Έχουμε χρησιμοποιήσει τις 115 ζώνες, δεδομένου ότι δεν έχει συμφόρηση και έχει ρυθμίσει τη μονάδα να λειτουργεί με χαμηλή ισχύ, μπορείτε επίσης να παίξετε με αυτές τις ρυθμίσεις.
άκυρη ρύθμιση () {Serial.begin (9600); myRadio.begin (); myRadio.setChannel (115); // 115 ζώνη πάνω από το WIFI σηματοδοτεί το myRadio.setPALevel (RF24_PA_MIN); // Ισχύς MIN χαμηλής ισχύος myRadio.setDataRate (RF24_250KBPS); // Ελάχιστη ταχύτητα}
Στη συνέχεια, στη λειτουργία του κύριου βρόχου, θα εκτελέσουμε μόνο τη λειτουργία ReadData με την οποία θα διαβάζουμε συνεχώς την τιμή που αποστέλλεται από τη μονάδα χειριστηρίου πομπού. Σημειώστε ότι η διεύθυνση σωλήνα που αναφέρεται στο πρόγραμμα πρέπει να είναι ίδια με αυτήν που αναφέρεται στο πρόγραμμα πομπού. Έχουμε εκτυπώσει επίσης την αξία που λαμβάνουμε για σκοπούς εντοπισμού σφαλμάτων. Μόλις η τιμή διαβαστεί με επιτυχία, θα εκτελέσουμε τη λειτουργία Control Car για τον έλεγχο του αυτοκινήτου RC με βάση την τιμή που λαμβάνεται από τη
μονάδα Rf.
άκυρο ReadData () {myRadio.openReadingPipe (1, 0xF0F0F0F0AA); // Ποιος σωλήνας να διαβάσει, 40 bit Διεύθυνση myRadio.startListening (); // Διακοπή μετάδοσης και έναρξη επανεξέτασης εάν (myRadio.available ()) {while (myRadio.available ()) {myRadio.read (& data, sizeof (data)); } Serial.print ("\ nΕλήφθη:"); Serial.println (data.msg); έλαβε = data.msg; Control_Car (); }}
Μέσα στη λειτουργία Control Car, θα ελέγξουμε τους κινητήρες που είναι συνδεδεμένοι στις ακίδες PWM χρησιμοποιώντας τη λειτουργία αναλογικής εγγραφής. Στο πρόγραμμα πομπού μας, έχουμε μετατρέψει τις αναλογικές τιμές από τον ακροδέκτη A0 και A1 του Nano σε 1 έως 10, 11 έως 20, 21 έως 30 και 31 έως 40 για τον έλεγχο του αυτοκινήτου προς τα εμπρός, πίσω, αριστερά και δεξιά αντίστοιχα. Το παρακάτω πρόγραμμα χρησιμοποιείται για τον έλεγχο του ρομπότ προς τα εμπρός
if (ληφθείσα> = 1 && έλαβε <= 10) // Μετακίνηση προς τα εμπρός {int PWM_Value = χάρτης (λήφθηκε, 1, 10, ελάχιστη ταχύτητα, μέγ. ταχύτητα); analogWrite (R_MR, PWM_Value); analogWrite (L_MR, PWM_Value); }
Ομοίως, μπορούμε επίσης να γράψουμε τρεις ακόμη συναρτήσεις για αντίστροφο, αριστερό και δεξί έλεγχο όπως φαίνεται παρακάτω.
if (ληφθείσα> = 11 && έλαβε <= 20) // Διακοπή {int PWM_Value = map (ληφθείσα, 11, 20, ελάχιστη ταχύτητα, μέγιστη ταχύτητα); analogWrite (R_MR, 0); analogWrite (L_MR, 0); } εάν (λήφθηκε> = 21 && έλαβε <= 30) // Στρίψτε αριστερά {int PWM_Value = map (ληφθείσα, 21, 30, min_speed, max_speed); analogWrite (R_MR, PWM_Value); analogWrite (L_MR, 0); } εάν (λήφθηκε> = 31 && έλαβε <= 40) // Στρίψτε δεξιά {int PWM_Value = map (ληφθείσα, 31, 40, min_speed, max_speed); analogWrite (R_MR, 0); analogWrite (L_MR, PWM_Value); }
Εργασία του Arduino RC Car
Αφού τελειώσετε με τον κωδικό, ανεβάστε τον στο pro-mini-board σας. Αφαιρέστε την μπαταρία και την πλακέτα σας μέσω της μονάδας FTDI για δοκιμή. Εκκινήστε τον κωδικό σας, ανοίξτε τη σειριακή μπαταρία και θα λάβετε την τιμή από τη μονάδα Joystick του πομπού σας. Συνδέστε την μπαταρία σας και οι κινητήρες σας θα πρέπει επίσης να αρχίσουν να περιστρέφονται.
Η πλήρης εργασία του έργου βρίσκεται στο βίντεο που συνδέεται στο κάτω μέρος αυτής της σελίδας. Εάν έχετε οποιεσδήποτε ερωτήσεις αφήστε τις στην ενότητα σχολίων Μπορείτε επίσης να χρησιμοποιήσετε τα φόρουμ μας για να λάβετε γρήγορες απαντήσεις για άλλες τεχνικές ερωτήσεις σας.