Πίνακας περιεχομένων:
- Βήμα 1: Γενικές πληροφορίες σχετικά με την ενότητα πυξίδας
- Βήμα 2: Απαιτούμενα εξαρτήματα
- Βήμα 3: Διασύνδεση μονάδας πυξίδας GY-511 με Arduino
- Βήμα 4: Βαθμονόμηση μονάδας πυξίδας GY-511
- Βήμα 5: Κύκλωμα
- Βήμα 6: Κωδικός
- Βήμα 7: Δημιουργία ψηφιακής πυξίδας
- Βήμα 8: Κύκλωμα
- Βήμα 9: Κωδικός
- Βήμα 10: Τι ακολουθεί;
Βίντεο: Πώς να χρησιμοποιήσετε τη μονάδα GY511 με το Arduino [Δημιουργήστε μια ψηφιακή πυξίδα]: 11 βήματα
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:35
ΣΦΑΙΡΙΚΗ ΕΙΚΟΝΑ
Σε ορισμένα έργα ηλεκτρονικής, πρέπει να γνωρίζουμε τη γεωγραφική θέση ανά πάσα στιγμή και να κάνουμε μια συγκεκριμένη λειτουργία ανάλογα. Σε αυτό το σεμινάριο, θα μάθετε πώς να χρησιμοποιείτε τη μονάδα πυξίδας LSM303DLHC GY-511 με το Arduino για να δημιουργήσετε μια ψηφιακή πυξίδα. Αρχικά, θα μάθετε για αυτήν την ενότητα και πώς λειτουργεί και, στη συνέχεια, θα δείτε πώς να διασυνδέσετε τη μονάδα LSM303DLHC GY-511 με το Arduino.
Τι θα μάθετε
- Τι είναι η μονάδα πυξίδας;
- Ενότητα πυξίδας και διεπαφή Arduino.
- Φτιάξτε μια ψηφιακή πυξίδα με τη μονάδα GY-511 και το Arduino.
Βήμα 1: Γενικές πληροφορίες σχετικά με την ενότητα πυξίδας
Η μονάδα GY-511 περιλαμβάνει επιταχυνσιόμετρο 3 αξόνων και μαγνητόμετρο 3 αξόνων. Αυτός ο αισθητήρας μπορεί να μετρήσει τη γραμμική επιτάχυνση σε πλήρεις κλίμακες ± 2 g / ± 4 g / ± 8 g / ± 16 g και μαγνητικά πεδία σε πλήρεις κλίμακες ± 1.3 / ± 1.9 / ± 2.5 / ± 4.0 / ± 4.7 / ± 5.6 / ± 8.1 Gauss.
Όταν αυτή η μονάδα τοποθετείται σε μαγνητικό πεδίο, σύμφωνα με τον νόμο του Lorentz, προκαλεί ένα ρεύμα διέγερσης στο μικροσκοπικό του πηνίο. Η μονάδα πυξίδας μετατρέπει αυτό το ρεύμα στη διαφορική τάση για κάθε κατεύθυνση συντεταγμένων. Χρησιμοποιώντας αυτές τις τάσεις, μπορείτε να υπολογίσετε το μαγνητικό πεδίο προς κάθε κατεύθυνση και να λάβετε τη γεωγραφική θέση.
Υπόδειξη
Το QMC5883L είναι μια άλλη μονάδα πυξίδας που χρησιμοποιείται συνήθως. Αυτή η ενότητα, η οποία έχει παρόμοια δομή και εφαρμογή με τη μονάδα LMS303, είναι ελαφρώς διαφορετική σε απόδοση. Έτσι, εάν κάνετε τα έργα, να είστε προσεκτικοί σχετικά με τον τύπο της ενότητας σας. Εάν η μονάδα σας είναι QMC5882L, χρησιμοποιήστε την κατάλληλη βιβλιοθήκη και κωδικούς που περιλαμβάνονται επίσης στο σεμινάριο.
Βήμα 2: Απαιτούμενα εξαρτήματα
Συστατικά υλικού
Arduino UNO R3 *1
Επιταχυνσιόμετρο 3 αξόνων GY-511 + Μαγνητόμετρο *1
TowerPro Servo Motor SG-90 *1
1602 LCD μονάδα *1
Άλτες *1
Εφαρμογές λογισμικού
Arduino IDE
Βήμα 3: Διασύνδεση μονάδας πυξίδας GY-511 με Arduino
Η μονάδα πυξίδας GY-511 έχει 8 ακίδες, αλλά χρειάζεστε μόνο 4 από αυτές για διασύνδεση με το Arduino. Αυτή η μονάδα επικοινωνεί με το Arduino χρησιμοποιώντας πρωτόκολλο I2C, οπότε συνδέστε τις καρφίτσες SDA (έξοδο I2C) και SCK (είσοδο ρολογιού I2C) της μονάδας στις ακίδες I2C στην πλακέτα Arduino.
Όπως μπορείτε να δείτε, έχουμε χρησιμοποιήσει την ενότητα GY-511 σε αυτό το έργο. Αλλά μπορείτε να χρησιμοποιήσετε αυτήν την οδηγία για τη ρύθμιση άλλων μονάδων πυξίδας LMS303.
Βήμα 4: Βαθμονόμηση μονάδας πυξίδας GY-511
Για να πλοηγηθείτε, πρέπει πρώτα να βαθμονομήσετε τη μονάδα, που σημαίνει να ορίσετε το εύρος μέτρησης από 0 έως 360 μοίρες. Για να το κάνετε αυτό, συνδέστε τη μονάδα στο Arduino όπως φαίνεται παρακάτω και ανεβάστε τον ακόλουθο κώδικα στον πίνακα σας. Μετά την εκτέλεση του κώδικα, μπορείτε να δείτε τις ελάχιστες και μέγιστες τιμές της περιοχής μέτρησης για τον άξονα Χ, Υ και Ζ στο παράθυρο σειριακής οθόνης. Θα χρειαστείτε αυτούς τους αριθμούς στο επόμενο μέρος, οπότε γράψτε τους.
Βήμα 5: Κύκλωμα
Βήμα 6: Κωδικός
Σε αυτόν τον κώδικα, χρειάζεστε τη βιβλιοθήκη Wire.h για επικοινωνία I2C και τη βιβλιοθήκη LMS303.h για τη μονάδα πυξίδας. Μπορείτε να κατεβάσετε αυτές τις βιβλιοθήκες από τους παρακάτω συνδέσμους.
Βιβλιοθήκη LMS303.h
Βιβλιοθήκη Wire.h
ΣημείωσηΑν χρησιμοποιείτε QMC5883, θα χρειαστείτε την ακόλουθη βιβλιοθήκη:
MechaQMC5883L.h
Εδώ, εξηγούμε τον κώδικα για το LMS303, αλλά μπορείτε να κατεβάσετε τους κωδικούς και για την ενότητα QMC.
Ας δούμε μερικές από τις νέες λειτουργίες:
compass.enableDefault ();
Προετοιμασία ενότητας
compass.read ();
Ανάγνωση των τιμών εξόδου της μονάδας πυξίδας
running_min.z = min (running_min.z, πυξίδα.m.z); running_max.x = max (running_max.x, πυξίδα.m.x);
Προσδιορισμός των ελάχιστων και μέγιστων τιμών του εύρους μέτρησης συγκρίνοντας τις μετρημένες τιμές.
Βήμα 7: Δημιουργία ψηφιακής πυξίδας
Μετά τη βαθμονόμηση της μονάδας, πρόκειται να δημιουργήσουμε μια πυξίδα συνδέοντας έναν σερβοκινητήρα στη μονάδα. Έτσι, ο δείκτης σερβο, μας δείχνει πάντα τη βόρεια κατεύθυνση, όπως το κόκκινο βέλος στην πυξίδα. Για να γίνει αυτό, πρώτα η μονάδα πυξίδας υπολογίζει πρώτα τη γεωγραφική κατεύθυνση και τη στέλνει στο Arduino και, στη συνέχεια, εφαρμόζοντας έναν κατάλληλο συντελεστή, θα υπολογίσετε τη γωνία που θα πρέπει να περιστρέφεται ο σερβοκινητήρας έτσι ώστε ο δείκτης του να δείχνει προς τον μαγνητικό βορρά. Τελικά, εφαρμόζουμε αυτή τη γωνία στον σερβοκινητήρα.
Βήμα 8: Κύκλωμα
Βήμα 9: Κωδικός
Για αυτό το μέρος χρειάζεστε επίσης τη βιβλιοθήκη Servo.h, η οποία είναι εγκατεστημένη στο λογισμικό Arduino από προεπιλογή.
Ας δούμε μερικές από τις νέες λειτουργίες:
Servo Servo1;
Προετοιμασία ενότητας
compass.read ();
Παρουσίαση του αντικειμένου σερβοκινητήρα
Servo1.attach (servoPin); πυξίδα.init (); compass.enableDefault ();
Αρχικοποίηση της μονάδας πυξίδας και του σερβοκινητήρα
Το όρισμα Servo1.attach () είναι ο αριθμός του πείρου που είναι συνδεδεμένος με τον σερβοκινητήρα.
πυξίδα.m_min = (LSM303:: διάνυσμα) { -32767, -32767, -32767}; πυξίδα.m_max = (LSM303:: διάνυσμα) { +32767, +32767, +32767};
Χρησιμοποιώντας αυτές τις γραμμές ορίζετε τις ελάχιστες και μέγιστες τιμές για τη μέτρηση του εύρους που ελήφθη στο προηγούμενο μέρος.
float heading = compass.heading ((LSM303:: vector) {0, 0, 1});
Η συνάρτηση επικεφαλίδας () επιστρέφει τη γωνία μεταξύ του άξονα συντεταγμένων και ενός σταθερού άξονα. Μπορείτε να ορίσετε τον σταθερό άξονα με ένα διάνυσμα στο όρισμα συνάρτησης. Για παράδειγμα, εδώ, καθορίζοντας το (LSM303:: διάνυσμα) {0, 0, 1}, ο άξονας Ζ θεωρείται σταθερός άξονας.
Servo1.write (επικεφαλίδα);
Η συνάρτηση Servo1.write () εφαρμόζει την τιμή ανάγνωσης από τη μονάδα πυξίδας στον σερβοκινητήρα.
Σημείωση Σημειώστε ότι ο σερβοκινητήρας μπορεί να έχει μαγνητικό πεδίο, οπότε είναι καλύτερο να τοποθετήσετε τον σερβοκινητήρα σε κατάλληλη απόσταση από τη μονάδα πυξίδας, ώστε να μην προκαλεί απόκλιση της μονάδας πυξίδας.
Συνιστάται:
Πώς να χρησιμοποιήσετε μια μονάδα ρολογιού σε πραγματικό χρόνο (DS3231): 5 βήματα
Πώς να χρησιμοποιήσετε μια μονάδα ρολογιού σε πραγματικό χρόνο (DS3231): Το DS3231 είναι ένα χαμηλού κόστους, εξαιρετικά ακριβές ρολόι I2C σε πραγματικό χρόνο (RTC) με ενσωματωμένο κρυσταλλικό ταλαντωτή με αντιστάθμιση θερμοκρασίας (TCXO) και κρύσταλλο. Η συσκευή ενσωματώνει μια είσοδο μπαταρίας και διατηρεί ακριβή χρονομέτρηση όταν η κύρια τροφοδοσία
Πώς να χρησιμοποιήσετε τον αισθητήρα PIR και μια μονάδα βομβητή - Visuino Tutorial: 6 βήματα
Πώς να χρησιμοποιήσετε τον αισθητήρα PIR και μια μονάδα Buzzer - Visuino Tutorial: Σε αυτό το σεμινάριο θα μάθουμε πώς να χρησιμοποιούμε έναν αισθητήρα PIR και μια μονάδα βομβητή για να κάνουμε ήχο κάθε φορά που ένας αισθητήρας PIR ανιχνεύει μια κίνηση. Δείτε ένα βίντεο επίδειξης
Πώς να γκρεμίσετε μια ψηφιακή δαγκάνα και πώς λειτουργεί μια ψηφιακή δαγκάνα: 4 βήματα
Πώς να γκρεμίσετε μια ψηφιακή δαγκάνα και πώς λειτουργεί μια ψηφιακή δαγκάνα: Πολλοί άνθρωποι γνωρίζουν πώς να χρησιμοποιούν δαγκάνες για μέτρηση. Αυτό το σεμινάριο θα σας διδάξει πώς να γκρεμίσετε μια ψηφιακή δαγκάνα και μια εξήγηση για το πώς λειτουργεί η ψηφιακή δαγκάνα
Πώς να προσαρμόσετε μια μπαταρία κινητού σε μια ψηφιακή φωτογραφική μηχανή και λειτουργεί!: 5 βήματα (με εικόνες)
Πώς να προσαρμόσετε μια μπαταρία κινητού σε μια ψηφιακή φωτογραφική μηχανή και λειτουργεί!: Γεια σε όλους! Το GoPro είναι η τέλεια επιλογή για κάμερες δράσης, αλλά δεν μπορούμε όλοι να αντέξουμε αυτό το gadget. Παρά το γεγονός ότι υπάρχει μια μεγάλη ποικιλία από κάμερες που βασίζονται σε GoPro ή μικρές κάμερες δράσης (έχω ένα Innovv C2 για τα παιχνίδια airsoft μου), όχι όλα τα
Δημιουργήστε μια συσκευή Apple HomeKit Temperature Sensor (DHT22) χρησιμοποιώντας μια RaspberryPI και μια DHT22: 11 βήματα
Δημιουργήστε μια συσκευή Apple HomeKit Temperature Sensor (DHT22) χρησιμοποιώντας μια RaspberryPI και μια DHT22: Έψαχνα για έναν χαμηλού κόστους αισθητήρα θερμοκρασίας / υγρασίας που θα μπορούσα να χρησιμοποιήσω για να παρακολουθήσω τι συμβαίνει στον ανιχνευτικό μου χώρο, καθώς διαπίστωσα ότι αυτή την άνοιξη ήταν πολύ υγρό , και είχε πολύ υγρασία. Έτσι έψαχνα έναν αισθητήρα σε λογικές τιμές που θα μπορούσα να