Πίνακας περιεχομένων:
- Βήμα 1: Τι θα χρειαστούμε:
- Βήμα 2: Χτίζοντας…
- Βήμα 3: Μερικές επιπλέον πληροφορίες πριν προχωρήσουμε
- Βήμα 4: Κωδικός:
- Βήμα 5: Δοκιμή και συμπέρασμα
Βίντεο: Μέτρηση γωνίας χρησιμοποιώντας Gyro, επιταχυνσιόμετρο και Arduino: 5 βήματα
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:39
Η συσκευή είναι ένα πρόχειρο πρωτότυπο του τι θα γίνει τελικά ένα ρομπότ αυτοεξισορρόπησης, αυτό είναι το δεύτερο μέρος του πράγματος της τρύπας (διαβάστε το επιταχυνσιόμετρο και ελέγξτε έναν κινητήρα για να ισορροπήσετε). Το πρώτο μέρος μόνο με το γυροσκόπιο μπορεί να βρεθεί εδώ. Σε αυτό το διδακτικό θα μετρήσουμε τη γωνία χρησιμοποιώντας γυροσκόπιο και επιταχυνσιόμετρο και χρησιμοποιώντας μια τεχνική για να συγχωνεύσουμε και τους δύο αισθητήρες για να έχουμε ένα ομαλό σήμα. Η τεχνική ονομάζεται "συμπληρωματικό φίλτρο".πριν
Βήμα 1: Τι θα χρειαστούμε:
Κάποιο μέρος μπορεί να αντικατασταθεί και κάποια τροποποίηση στον κώδικα πρέπει να γίνει ώστε να ταιριάζει στο υλικό σας. Σε αυτό το έργο θα χρησιμοποιήσουμε:- Breadboard- Μικροελεγκτής, χρησιμοποίησα το Arduinoboard- Wire- Jumper Wires- Gyroscope XV-8100- Nunchuck Wii (για το επιταχυνσιόμετρο)- Προσαρμογέας Nunchuck Wii για το Arduino
Βήμα 2: Χτίζοντας…
Το κύκλωμα αποτελείται από ένα γυροσκόπιο συνδεδεμένο απευθείας στη θύρα 0 στο arduino σας και ένα nunchuck wii σύνδεση στη θύρα I2C. Συναρμολόγηση του γυροσκοπίου: 1. - συνδέστε το γυροσκόπιο στο breadboard2. - καλώδιο πάντα πράγμα:- Πείρος Vo από γυροσκόπιο συνδεδεμένο με αναλογική θύρα0 στο arduino (Ανοιχτό πορτοκαλί σύρμα)- Πείρος G από γυροσκόπιο συνδεδεμένος στη γείωση (Λευκό σύρμα)- Καρφίτσα V+ από γυροσκόπιο συνδεδεμένος σε Vdd (3.3V) (Πορτοκαλί σύρμα) Συναρμολόγηση το επιταχυνσιόμετρο: 1. - συνδέστε τον προσαρμογέα στο nunchuck2. - συνδέστε το nunchuck στο arduino χρησιμοποιώντας τον προσαρμογέα3. - τοποθετήστε τον αισθητήρα accel όπως στην παραπάνω φωτογραφία
Βήμα 3: Μερικές επιπλέον πληροφορίες πριν προχωρήσουμε
Και από τους δύο αισθητήρες μπορούμε να μετρήσουμε τη γωνία αλλά χρησιμοποιώντας δύο διαφορετικές τεχνικές. Για να μετρήσουμε τη γωνία χρησιμοποιώντας το γυροσκόπιο πρέπει να ενσωματώσουμε το σήμα. Αλλά γιατί πρέπει να το κάνουμε αυτό; Επειδή ο γυροσκόπιος μας δίνει τον γωνιακό ρυθμό, έτσι ένας απλός τρόπος για να πάρετε τη γωνία είναι ο γωνιακός ρυθμός να πολλαπλασιαστεί με το χρόνο [γωνία = γωνία + w * dt] Για να μετρήσετε τη γωνία χρησιμοποιώντας ένα επιταχυνσιόμετρο πρέπει να αισθανθούμε τη βαρύτητα σε κάθε άξονα του επιταχυνσιόμετρου, τι σημαίνει, η προβολή της επιτάχυνσης της βαρύτητας σε κάθε κατεύθυνση του αισθητήρα μας δίνει μια ιδέα για τη γωνία. [angle_accel = arctg (Ay / sqrt (Ax^2 + Az^2))] Γιατί λοιπόν θα χρησιμοποιήσουμε δύο αισθητήρες αντί για έναν; Για να επωφεληθείτε και από τις δύο ιδιότητες αισθητήρα. Αν κοιτάξετε τη γραφική παράσταση της συνεχούς αύξησης των δεδομένων γύρο, αυτό ονομάζεται μετατόπιση και τα δεδομένα του επιταχυνσιόμετρου αλλάζουν πολύ σε μικρό χρονικό διάστημα. Και πώς να συγχωνεύσετε και τα δύο σήματα; Θα χρησιμοποιήσουμε μια τεχνική που ονομάζεται συμπληρωματικό φίλτρο. Δεν γνωρίζω την ακριβή θεωρία πίσω από αυτό, αλλά λειτουργεί καλά. Υπάρχουν κάποιες πληροφορίες στο διαδίκτυο, απλώς κάντε google αν χρειάζεστε περισσότερες πληροφορίες. Αυτός ο σύνδεσμος έχει πολλές πληροφορίες και μπορεί να είναι χρήσιμο.filtered_angle = HPF*(filtered_angle + w*dt) + LPF*(angle_accel); όπου HPF + LPF = 1Οι τιμές των HPF και LPF μπορούν να βρεθούν σε αυτόν τον σύνδεσμο, στο αρχείο filter.pdf. Σας ευχαριστούμε παιδιά από το "The DIY Segway". Απλά για δοκιμαστικό σκοπό θα ορίσουμε αυτές τις τιμές όπως αυτή, HPF = 0,98 και LPF = 0,02.
Βήμα 4: Κωδικός:
Ο κώδικας είναι μια προσαρμογή από έναν κώδικα που χρησιμοποίησα σε άλλο έργο. Πιθανώς υπάρχουν κάποιες μεταβλητές που δεν χρησιμοποιούνται. Χρησιμοποίησα μια βιβλιοθήκη για να διαβάσω τα δεδομένα nunchuck από τη διεύθυνση https://todbot.com/blog/. Σας ευχαριστώ Tod E. Kurt. Τα σχόλια για τον κώδικα είναι στα πορτογαλικά, μόλις έχω ελεύθερο χρόνο, θα το μεταφράσω. Ο κωδικός εξέρχεται μέσω της σειριακής γραμμής μερικοί αριθμοί με αυτό το μοτίβο: dt: w: teta: pitch: filter_teta $ time: angular_velocity: gyro_angle: accel_angle: filtered_angle $ Έτσι, μπορείτε να αποθηκεύσετε αυτές τις τιμές σε ένα σειριακό τερματικό και να σχεδιάσετε ένα γραφικό ή να χρησιμοποιήσετε τη γωνία για άλλα πράγματα. Εάν χρειάζεστε οποιαδήποτε εξήγηση σχετικά με τον κώδικα, παρακαλούμε να ρωτήσετε. Ο κωδικός είναι φερμουάρ Απλώς αποσυμπιέστε, ανοίξτε και ανεβάστε το στο arduino σας.
Βήμα 5: Δοκιμή και συμπέρασμα
Για να δοκιμάσω το σύστημα, έχω αποθηκεύσει τα δεδομένα χρησιμοποιώντας ένα πρόγραμμα που ονομάζεται Termite, στη συνέχεια εισάγω αυτά τα δεδομένα στο excel και σχεδιάζω το γραφικό για να δω πόσο καλό είναι το φίλτρο μου. Τα αποτελέσματα είναι εκπληκτικά. Φυσικά μπορείτε να χρησιμοποιήσετε το σήμα για να οδηγήσετε έναν κινητήρα ή άλλα πράγματα. Οποιοδήποτε σχόλιο, οποιαδήποτε αμφιβολία, οποιαδήποτε πληροφορία λείπει, απλά πείτε μου και το διορθώνω. Παρακαλώ αν σας αρέσει αυτό, βαθμολογήστε. Σας ευχαριστώ όλους.
Συνιστάται:
Μέτρηση θερμοκρασίας και υγρασίας χρησιμοποιώντας HDC1000 και Arduino Nano: 4 βήματα
Μέτρηση θερμοκρασίας και υγρασίας με χρήση HDC1000 και Arduino Nano: Ο HDC1000 είναι ένας ψηφιακός αισθητήρας υγρασίας με ενσωματωμένο αισθητήρα θερμοκρασίας που παρέχει εξαιρετική ακρίβεια μέτρησης σε πολύ χαμηλή ισχύ. Η συσκευή μετρά την υγρασία με βάση έναν νέο χωρητικό αισθητήρα. Οι αισθητήρες υγρασίας και θερμοκρασίας είναι
Μέτρηση υγρασίας και θερμοκρασίας χρησιμοποιώντας το HIH6130 και το φωτόνιο σωματιδίων: 4 βήματα
Μέτρηση υγρασίας και θερμοκρασίας χρησιμοποιώντας το HIH6130 και το φωτόνιο σωματιδίων: Το HIH6130 είναι αισθητήρας υγρασίας και θερμοκρασίας με ψηφιακή έξοδο. Αυτοί οι αισθητήρες παρέχουν επίπεδο ακρίβειας ± 4% RH. Με κορυφαία μακροπρόθεσμη σταθερότητα στη βιομηχανία, πραγματικό ψηφιακό I2C με αντιστάθμιση θερμοκρασίας, κορυφαία αξιοπιστία στη βιομηχανία, ενεργειακή απόδοση
Μέτρηση θερμοκρασίας και υγρασίας χρησιμοποιώντας HDC1000 και σωματίδιο φωτονίου: 4 βήματα
Μέτρηση θερμοκρασίας και υγρασίας χρησιμοποιώντας HDC1000 και σωματίδιο φωτονίου: Το HDC1000 είναι ένας ψηφιακός αισθητήρας υγρασίας με ενσωματωμένο αισθητήρα θερμοκρασίας που παρέχει εξαιρετική ακρίβεια μέτρησης σε πολύ χαμηλή ισχύ. Η συσκευή μετρά την υγρασία με βάση έναν νέο χωρητικό αισθητήρα. Οι αισθητήρες υγρασίας και θερμοκρασίας είναι
Μέτρηση θερμοκρασίας και υγρασίας χρησιμοποιώντας HDC1000 και Raspberry Pi: 4 βήματα
Μέτρηση θερμοκρασίας και υγρασίας χρησιμοποιώντας HDC1000 και Raspberry Pi: Το HDC1000 είναι ένας ψηφιακός αισθητήρας υγρασίας με ενσωματωμένο αισθητήρα θερμοκρασίας που παρέχει εξαιρετική ακρίβεια μέτρησης σε πολύ χαμηλή ισχύ. Η συσκευή μετρά την υγρασία με βάση έναν νέο χωρητικό αισθητήρα. Οι αισθητήρες υγρασίας και θερμοκρασίας είναι
Μέτρηση υγρασίας και θερμοκρασίας χρησιμοποιώντας το HTS221 και το φωτόνιο σωματιδίων: 4 βήματα
Μέτρηση υγρασίας και θερμοκρασίας χρησιμοποιώντας το HTS221 και το σωματίδιο φωτονίου: Το HTS221 είναι ένας εξαιρετικά συμπαγής χωρητικός ψηφιακός αισθητήρας για σχετική υγρασία και θερμοκρασία. Περιλαμβάνει ένα στοιχείο ανίχνευσης και ένα ολοκληρωμένο κύκλωμα ειδικής εφαρμογής μικτού σήματος (ASIC) για την παροχή των πληροφοριών μέτρησης μέσω ψηφιακού σειριακού