Πίνακας περιεχομένων:
2025 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2025-01-13 06:57
Αυτό το διδακτικό δημιουργήθηκε για να εκπληρώσει την απαίτηση έργου του Makecourse στο Πανεπιστήμιο της Νότιας Φλόριντα (www.makecourse.com)
Ο στόχος αυτού του έργου ήταν η κατασκευή ενός Gimbal 3 αξόνων για το GoPro χρησιμοποιώντας Arduino nano + 3 σερβοκινητήρες + γυροσκόπιο/επιταχυνσιόμετρο MPU6050. Σε αυτό το έργο, έλεγξα 2 άξονες (Roll and yaw) χρησιμοποιώντας γυροσκόπιο MPU6050, ο τρίτος άξονας (yaw) ελέγχεται από απόσταση και χειροκίνητα με τη βοήθεια του HC-05 και της εφαρμογής Arduino BlueControl που βρίσκεται στο Android App Store Το
Αυτή η εργασία περιλαμβάνει επίσης όλα τα αρχεία σχεδίασης 3D μηχανικών εξαρτημάτων του Gimbal. Μοιράστηκα αρχεία.stl για εύκολη εκτύπωση 3D και αρχεία σχεδίασης 3D στο κάτω μέρος.
Στην αρχή του έργου μου, το σχέδιό μου ήταν να φτιάξω τζάμπα 3 αξόνων με 3 κινητήρες χωρίς ψήκτρες, επειδή οι κινητήρες χωρίς ψήκτρες είναι ομαλοί και ανταποκρίνονται περισσότερο σε σύγκριση με τους σερβοκινητήρες. Οι κινητήρες χωρίς ψήκτρες χρησιμοποιούνται σε εφαρμογές υψηλής ταχύτητας, ώστε να μπορούμε να προσαρμόσουμε την ταχύτητα αγοράς του κινητήρα ESC (ελεγκτής). Αλλά για να μπορώ να χρησιμοποιώ κινητήρα χωρίς ψήκτρες στο έργο Gimbal, συνειδητοποίησα ότι πρέπει να οδηγώ κινητήρα χωρίς ψήκτρες σαν σερβο. Στους σερβοκινητήρες, η θέση του κινητήρα είναι γνωστή. Αλλά στον κινητήρα χωρίς ψήκτρες, δεν γνωρίζουμε τη θέση του κινητήρα, οπότε είναι ένα μειονέκτημα του κινητήρα χωρίς ψήκτρες που δεν μπορούσα να καταλάβω πώς να το οδηγήσω. Στο τέλος αποφάσισα να χρησιμοποιήσω 3 σερβοκινητήρες MG995 για το έργο Gimbal που απαιτεί υψηλή ροπή. Έλεγξα 2 σερβοκινητήρες για τον άξονα κύλισης και κλίσης χρησιμοποιώντας γυροσκόπιο MPU6050 και έλεγξα σερβοκινητήρα άξονα περιστροφής χρησιμοποιώντας bluetooth και εφαρμογή Android HC-05.
Βήμα 1: Στοιχεία
Τα στοιχεία που χρησιμοποίησα σε αυτό το έργο.
1- Arduino Nano (1 μονάδα) (Micro usb)
2- Σερβοκινητήρες MG995 (3 μονάδες)
3- Επιταχυνσιόμετρο/γυροσκόπιο 3 αξόνων GY-521 MPU6050 (1 μονάδα)
4- Μονάδα Bluetooth HC-05 (Για τον έλεγχο του άξονα περιστροφής (Servo3) από απόσταση)
4- Φορητός φορτιστής micro USB 5V 5V
Βήμα 2: Εφαρμογή 3 Servo Motors + MPU6050 Gyro + HC-05
Servo καλωδίωση
Servo1 (Roll), Servo2 (Pitch), Servo3 (Yaw)
Οι σερβοκινητήρες έχουν 3 καλώδια: VCC (κόκκινο), GND (καφέ ή μαύρο), PWM (κίτρινο).
D3 => Servo1 PWM (κίτρινο σύρμα)
D4 => Servo2 PWM (κίτρινο σύρμα)
D5 => Servo3 PWM (κίτρινο σύρμα)
5V PIN του Arduino => VCC (κόκκινο) 3 σερβοκινητήρων.
GND PIN του Arduino => GND (καφέ ή μαύρο) 3 σερβοκινητήρων
MPU6050 γυροσκοπική καλωδίωση
A4 => SDA
A5 => SCL
3,3 V PIN του Arduino => VCC του MPU6050
GND PIN του Arduino => GND του MPU6050
HC-05 καλωδίωση Bluetooth
D9 => TX
D10 => RX
3,3 V PIN του Arduino => VCC του HC-05 Bluetooth
GND PIN του Arduino => GND του HC-05 Bluetooth
Βήμα 3: Τρισδιάστατος σχεδιασμός και λειτουργικότητα
Ολοκλήρωσα τον τρισδιάστατο σχεδιασμό του Gimbal λαμβάνοντας αναφορά σε άλλα Gimbals που πωλούνται στην αγορά. Υπάρχουν τρία κύρια εξαρτήματα που περιστρέφονται με σερβοκινητήρες. Σχεδίασα μια βάση GoPro που ταιριάζει στο μέγεθός της.
Το αρχείο.step όλων των τρισδιάστατων σχεδίων μοιράζεται στο κάτω μέρος για να διευκολύνει την επεξεργασία.
Βήμα 4: Μηχανισμός ελέγχου
Ο κύριος αλγόριθμος του έργου μου Gimbal χρησιμοποιεί την περιστροφή Quaternion που είναι εναλλακτική στις γωνίες του Euler. Χρησιμοποίησα τη βιβλιοθήκη helper_3dmath.h ως αναφορά για να επιτρέψω την ομαλή κίνηση χρησιμοποιώντας τον αλγόριθμο Quaternion. Αν και η απόκριση του άξονα βήματος είναι ομαλή, ο άξονας κύλισης υστερεί για να ανταποκριθεί στην κίνηση του ραβδιού. Χρησιμοποιώντας τον αλγόριθμο Quaternion, μπόρεσα να ελέγξω τους σερβοκινητήρες Roll και Pitch. Εάν θέλετε να χρησιμοποιήσετε τον άξονα περιστροφής, ίσως χρειαστεί να χρησιμοποιήσετε το δεύτερο MPU6050 μόνο για τον έλεγχο του άξονα περιστροφής. Ως εναλλακτική λύση, διαμόρφωσα το HC-05 και έλεγξα τον άξονα περιστροφής από απόσταση με την εφαρμογή Android χρησιμοποιώντας κουμπιά. Σε κάθε πάτημα του κουμπιού, το σερβο άξονα περιστροφής περιστρέφεται κατά 10 μοίρες.
Σε αυτό το έργο, οι βιβλιοθήκες που έπρεπε να εισαγάγω εξωτερικά είναι οι εξής.
1- I2Cdev.h // Χρησιμοποιείται με το wire.h για να ενεργοποιήσετε την επικοινωνία με MPU6050
2- "MPU6050_6Axis_MotionApps20.h" // Βιβλιοθήκη γυροσκοπίου
3- // Επιτρέπει τη μετατροπή ψηφιακών ακίδων σε ακίδες RX και TX (Χρειάζεται μονάδα bluetooth HC-05)
4-
5- // Επιτρέπει την επικοινωνία με συσκευές I2C που χρησιμοποιούν δύο ακίδες δεδομένων (SDA και SCL) => MPU6050
Ο κύριος κώδικας δημιουργήθηκε από τον Jeff Rowberg και τον τροποποίησα σύμφωνα με τη λειτουργικότητα του έργου μου και σχολίασα όλες τις λειτουργίες στο ino αρχείο.