Πίνακας περιεχομένων:
- Βήμα 1: Γιατί να χρησιμοποιήσετε μια μονάδα αδρανειακής μέτρησης;
- Βήμα 2: Πώς να χρησιμοποιήσετε το BNO055 για 2D Localization;
- Βήμα 3: Hardware Point of Vue
- Βήμα 4: Πώς λειτουργεί;
- Βήμα 5: Η αρχιτεκτονική και το λογισμικό
- Βήμα 6: Τι έμαθα;
Βίντεο: Ένας τρόπος χρήσης μιας μονάδας αδρανειακής μέτρησης;: 6 βήματα
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:32
Το περιεχόμενο:
Χτίζω για διασκέδαση ένα ρομπότ που θέλω να μετακινηθεί αυτόνομα μέσα σε ένα σπίτι.
Είναι μια μακρά δουλειά και το κάνω βήμα βήμα.
Έχω ήδη δημοσιεύσει 2 οδηγίες για αυτό το θέμα:
- ένα για την κατασκευή κωδικοποιητή τροχού
- ένα για σύνδεση wifi
Το ρομπότ μου οδηγείται από 2 κινητήρες DC με τη βοήθεια του σπιτικού κωδικοποιητή τροχών.
Αυτή τη στιγμή βελτιώνω τον έλεγχο κίνησης και έχω περάσει λίγο χρόνο με γυροσκόπιο, επιταχυνσιόμετρο και IMU. Θα χαρώ να μοιραστώ αυτήν την εμπειρία.
Θέλετε να μάθετε περισσότερα για την τοπική προσαρμογή; Ακολουθεί ένα άρθρο σχετικά με τον τρόπο συνδυασμού τεχνητής νοημοσύνης και υπερήχων για τον εντοπισμό του ρομπότ
Βήμα 1: Γιατί να χρησιμοποιήσετε μια μονάδα αδρανειακής μέτρησης;
Γιατί λοιπόν χρησιμοποίησα μια IMU;
Ο πρώτος λόγος ήταν ότι εάν ο κωδικοποιητής τροχού είναι αρκετά ακριβής για τον έλεγχο της ευθείας κίνησης, ακόμη και μετά από συντονισμό δεν μπόρεσα να λάβω μια ακρίβεια περιστροφής μικρότερη από +- 5 βαθμούς και αυτό δεν είναι αρκετό.
Δοκίμασα λοιπόν 2 διαφορετικούς αισθητήρες. Αρχικά χρησιμοποιώ μαγνητόμετρο (LSM303D). Η αρχή ήταν απλή: πριν από την περιστροφή πάρτε τον βόρειο προσανατολισμό, υπολογίστε τον στόχο και ρυθμίστε την κίνηση μέχρι να επιτευχθεί ο στόχος. Aταν λίγο καλύτερα από ό, τι με τον κωδικοποιητή αλλά με υπερβολική διασπορά. Μετά από αυτό προσπάθησα να χρησιμοποιήσω ένα γυροσκόπιο (L3GD20). Η αρχή ήταν μόνο η ενσωμάτωση της ταχύτητας περιστροφής που παρέχει ο αισθητήρας για τον υπολογισμό της περιστροφής. Και λειτούργησε μια χαρά. Wasμουν σε θέση να ελέγξω την περιστροφή σε +- 1 βαθμό.
Ωστόσο, ήμουν περίεργος να δοκιμάσω κάποια IMU. Επιλέγω ένα στοιχείο BNO055. Πέρασα λίγο χρόνο για να κατανοήσω και να δοκιμάσω αυτό το IMU. Στο τέλος αποφάσισα να επιλέξω αυτόν τον αισθητήρα για τους εξής λόγους
- Μπορώ να ελέγξω την περιστροφή καθώς και με το L3GD20
- Μπορώ να εντοπίσω μικρή περιστροφή όταν κινούμαι ευθεία
- Πρέπει να αποκτήσω προσανατολισμό βορρά για τον εντοπισμό του ρομπότ και η βαθμονόμηση της πυξίδας του BNO055 είναι πολύ απλή
Βήμα 2: Πώς να χρησιμοποιήσετε το BNO055 για 2D Localization;
Το BNO055 IMU είναι ένας έξυπνος αισθητήρας Bosch 9 αξόνων που θα μπορούσε να παρέχει απόλυτο προσανατολισμό.
Το φύλλο δεδομένων παρέχει μια πλήρη τεκμηρίωση. Είναι ένα στοιχείο υψηλής τεχνολογίας, είναι ένα αρκετά περίπλοκο προϊόν και πέρασα μερικές ώρες για να μάθω πώς λειτουργεί και να δοκιμάσω διαφορετικούς τρόπους χρήσης του.
Νομίζω ότι θα ήταν χρήσιμο να μοιραστώ αυτήν την εμπειρία.
Πρώτα χρησιμοποίησα τη βιβλιοθήκη Adafruit που παρέχει ένα καλό εργαλείο για τη βαθμονόμηση και την ανακάλυψη του αισθητήρα.
Στο τέλος και μετά από πολλές δοκιμές αποφάσισα
- χρησιμοποιήστε τη βιβλιοθήκη Adafruit μόνο για εξοικονόμηση βαθμονόμησης
- χρησιμοποιήστε 3 από όλες τις πιθανές λειτουργίες του BNO055 (NDOF, IMU, Compss)
- αφιερώστε ένα Arduino Nano για να υπολογίσετε τον εντοπισμό με βάση τις μετρήσεις BNO055
Βήμα 3: Hardware Point of Vue
Το BNO055 είναι ένα συστατικό I2C. Χρειάζεται λοιπόν τροφοδοτικό, SDA και SCL για να επικοινωνήσει.
Απλώς προσέξτε την τάση Vdd ανάλογα με το προϊόν που αγοράσατε. Το τσιπ Bosch λειτουργεί στην περιοχή: 2,4V έως 3,6V και μπορείτε να βρείτε εξαρτήματα 3,3v και 5v.
Δεν υπάρχουν δυσκολίες για τη σύνδεση του Nano και του BNO055.
- Το BNO055 τροφοδοτείται από το Nano
- Τα SDA & SCL συνδέονται με αντιστάσεις έλξης 2 x 2k.
- 3 LED συνδεδεμένα στο Nano για διάγνωση (με αντιστάσεις)
- 2 συνδετήρες που χρησιμοποιούνται για τον καθορισμό της λειτουργίας μετά την εκκίνηση
- 1 σύνδεσμος προς το BNO (Gnd, Vdd, Sda, Scl, Int)
- 1 συνδετήρας προς το Robot/Mega (+9V, Gnd, sda, Scl, Pin11, Pin12)
Λίγη συγκόλληση και αυτό είναι όλο!
Βήμα 4: Πώς λειτουργεί;
Από σημείο επικοινωνίας vue:
- Το Nano είναι ο κύριος δίαυλος I2C
- Το Robot/Mega και το BNO055 είναι σκλάβοι του I2C
- Το Nano διαβάζει μόνιμα τους καταχωρητές BNO055
- Το Robot/Mega ανεβάζει ένα αριθμητικό σήμα για να ζητήσει τη λέξη από το Nano
Από το σημείο υπολογισμού του vue: Το Nano σε συνδυασμό με το BNO055 αποδίδει
- Η επικεφαλίδα της πυξίδας (χρησιμοποιείται για τον εντοπισμό)
- Μια σχετική επικεφαλίδα (χρησιμοποιείται για τον έλεγχο των περιστροφών)
- Η απόλυτη επικεφαλίδα και θέση (χρησιμοποιείται για τον έλεγχο των κινήσεων)
Από λειτουργικό σημείο vue: The Nano:
- διαχειρίζεται τη βαθμονόμηση BNO055
- διαχειρίζεται τις παραμέτρους και τις εντολές BNO055
Το υποσύστημα Nano & BNO055:
- υπολογίστε για κάθε ρομπότ τροχούς την απόλυτη επικεφαλίδα και εντοπισμό (με συντελεστή κλίμακας)
- υπολογίστε τη σχετική επικεφαλίδα κατά την περιστροφή του ρομπότ
Βήμα 5: Η αρχιτεκτονική και το λογισμικό
Το κύριο λογισμικό τρέχει σε Arduino Nano
- Η αρχιτεκτονική βασίζεται στην επικοινωνία I2C.
- Επέλεξα να αφιερώσω ένα Nano λόγω του γεγονότος ότι το Atmega που τρέχει το ρομπότ ήταν μάλλον ήδη φορτωμένο και αυτή η αρχιτεκτονική διευκολύνει την επαναχρησιμοποίηση αλλού.
- Το Nano διαβάζει τα μητρώα BNO055, υπολογίζει και αποθηκεύει την επικεφαλίδα και τον εντοπισμό στα δικά του μητρώα.
- Το Arduino Atmega που εκτελεί τον κώδικα ρομπότ, στέλνει πληροφορίες κωδικοποίησης τροχών στο Nano και διαβάζει τις επικεφαλίδες και τον εντοπισμό μέσα στα μητρώα Nano.
Ο κωδικός υπο -θέματος (Nano) είναι διαθέσιμος εδώ στο GitHub
Το εργαλείο βαθμονόμησης Adafruit εάν εδώ στο GitHub (η βαθμονόμηση θα αποθηκευτεί στο eeproom)
Βήμα 6: Τι έμαθα;
Σχετικά με το I2C
Πρώτα προσπάθησα να έχω 2 κύριους (Arduino) και 1 slave (αισθητήρα) στον ίδιο δίαυλο, αλλά στο τέλος είναι δυνατό και ευκολότερο να ορίσω μόνο το Nano ως κύριο και να χρησιμοποιήσω τη σύνδεση GPIO μεταξύ των 2 Arduinos για να "ζητήσω το διακριτικό" Το
Όσον αφορά το BNO055 για 2D προσανατολισμό
Μπορώ να επικεντρωθώ σε 3 διαφορετικούς τρόπους λειτουργίας: NDOF (συνδυασμός γυροσκοπίου, επιταχυνσιόμετρου και πυξίδων) όταν το ρομπότ είναι αδρανές, IMU (συνδυασμός γυροσκοπίου, επιταχυνσιόμετρο) όταν το ρομπότ κινείται και Πυξίδα κατά τη φάση εντοπισμού. Η εναλλαγή μεταξύ αυτών των λειτουργιών είναι εύκολη και γρήγορη.
Για να μειώσω το μέγεθος του κώδικα και να διατηρήσω την πιθανότητα να χρησιμοποιήσετε τη διακοπή BNO055 για τον εντοπισμό σύγκρουσης, προτιμώ να μην χρησιμοποιήσω τη βιβλιοθήκη Adafruit και να το κάνω μόνος μου.
Συνιστάται:
Χωρητική γραφίδα για στυλό μιας χρήσης: 6 βήματα (με εικόνες)
Χωρητική γραφίδα για μολύβι μίας χρήσης: Έχω δώδεκα στυλό σφαιρών Micro Roller Uni-ball. Θέλω να προσθέσω μια χωρητική γραφίδα στο καπάκι σε ένα από αυτά. Στη συνέχεια, το καπάκι και η γραφίδα μπορούν να μετακινηθούν από τη μία πένα στην άλλη στην επόμενη καθώς το καθένα έχει μελάνι. Είμαι ευγνώμων στον Jason Poel Smith για την
Ενοχλήσεις ήχου μιας χρήσης 5 $: 7 βήματα
Ενοχλήσεις ήχου μιας χρήσης: $ 5: Έχετε δει ποτέ ένα από αυτά τα σετ ηλεκτρονικών για γεννήτρια θορύβου ή ηλεκτρονικό κρίκετ; Τι θα λέγατε για ένα με $ 5 που δεν χρειάζεται δεξιότητες συγκόλλησης, μόνο πολύ μεγαλύτερο; Τι θα λέγατε αν έπαιζε MP3 αξίας 16MB αντί να κελαηδάει; Υποθέτω ότι τα μόνα "μέσα"
Διασύνδεση μιας μονάδας GPS με το Raspberry Pi: Dashcam Μέρος 2: 3 βήματα
Διασύνδεση μονάδας GPS με το Raspberry Pi: Dashcam Μέρος 2: Αυτό είναι μέρος 2 του έργου dashcam και σε αυτήν την ανάρτηση, θα μάθουμε πώς να διασυνδέουμε μια μονάδα GPS στο Raspberry Pi. Στη συνέχεια, θα χρησιμοποιήσουμε τα δεδομένα GPS και θα τα προσθέσουμε στο βίντεο ως επικάλυψη κειμένου. Διαβάστε το μέρος 1 χρησιμοποιώντας τον παρακάτω σύνδεσμο, πριν
3 απλοί τρόποι προγραμματισμού μιας μονάδας ESP8266 12X: 5 βήματα (με εικόνες)
3 απλοί τρόποι προγραμματισμού μιας μονάδας ESP8266 12X: Εάν δεν είστε εξοικειωμένοι με τον μικροελεγκτή ESP8266, αισθάνομαι πραγματικά ότι έχετε χάσει! Αυτά τα πράγματα είναι απίστευτα: είναι φθηνά, ισχυρά και το καλύτερο απ 'όλα έχουν ενσωματωμένο WiFi! Το ESP8266 ξεκίνησε το ταξίδι του ως WiFi WiFi για
Ασφάλεια και Taser έξω από μια φωτογραφική μηχανή μιας χρήσης: 3 βήματα
Ασφάλεια και Taser έξω από μια φωτογραφική μηχανή μιας χρήσης: τι δεν μπορείτε να κάνετε όταν φτιάχνετε ένα taser από μια φωτογραφική μηχανή μιας χρήσης Ελπίζω να το διαβάσετε πριν φτιάξετε το taser για να μην έχετε τα ίδια σημάδια καύσης που κάνω επειδή η τάση σε αυτό είναι πάνω από 600 βολτ. (ΜΟΝΟ ΓΙΑ ΣΚΟΠΟΥΣ ΕΚΠΑΙΔΕΥΣΗΣ) *κερδίστε