- Απαιτούμενα συστατικά:
- MPU6050 γυροσκοπικός αισθητήρας:
- Περιγραφή:
- Διάγραμμα κυκλώματος και επεξήγηση:
- Επεξήγηση προγραμματισμού
Ο αισθητήρας MPU6050 έχει πολλές λειτουργίες πάνω από το μονό τσιπ. Αποτελείται από επιταχυνσιόμετρο MEMS, γυροσκόπιο MEMS και αισθητήρα θερμοκρασίας. Αυτή η ενότητα είναι πολύ ακριβής κατά τη μετατροπή αναλογικών τιμών σε ψηφιακό, επειδή διαθέτει υλικό 16 αναλογικών σε ψηφιακό μετατροπέα για κάθε κανάλι. Αυτή η μονάδα μπορεί να συλλάβει το κανάλι x, y και z ταυτόχρονα. Διαθέτει διασύνδεση I2C για επικοινωνία με τον κεντρικό ελεγκτή. Αυτή η μονάδα MPU6050 είναι ένα συμπαγές τσιπ με επιταχυνσιόμετρο και γυροσκόπιο. Αυτή είναι μια πολύ χρήσιμη συσκευή για πολλές εφαρμογές όπως drones, ρομπότ, αισθητήρες κίνησης. Ονομάζεται επίσης Γυροσκόπιο ή Επιταχυνσιόμετρο τριπλού άξονα.
Σήμερα σε αυτό το άρθρο θα συνδέσουμε αυτό το γυροσκόπιο MPU6050 με το Arduino και θα δείξουμε τις τιμές πάνω από 16x2 LCD.
Απαιτούμενα συστατικά:
- Arduino Uno
- MPU-6050
- 10Κ ΔΟΧΕΙΟ
- Καλώδιο αλτών
- Ψωμί
- καλώδιο USB
- Παροχή ηλεκτρικού ρεύματος
MPU6050 γυροσκοπικός αισθητήρας:
Το MPU-6050 είναι ένα γυροσκόπιο 8 ακίδων 6 και επιταχυνσιόμετρο σε ένα μόνο τσιπ. Αυτή η ενότητα λειτουργεί σε σειριακή επικοινωνία I2C από προεπιλογή, αλλά μπορεί να ρυθμιστεί για διασύνδεση SPI ρυθμίζοντας την εγγραφή της. Για I2C αυτό έχει γραμμές SDA και SCL. Σχεδόν όλες οι ακίδες είναι πολυλειτουργικές, αλλά εδώ προχωράμε μόνο με καρφίτσες λειτουργίας I2C.
Διαμόρφωση καρφιτσών:
Vcc: - αυτός ο πείρος χρησιμοποιείται για την τροφοδοσία της μονάδας MPU6050 σε σχέση με τη γείωση
GND: - αυτός είναι ο πείρος γείωσης
SDA: - Ο πείρος SDA χρησιμοποιείται για δεδομένα μεταξύ ελεγκτή και μονάδας mpu6050
SCL: - Ο πείρος SCL χρησιμοποιείται για είσοδο ρολογιού
XDA: - Αυτή είναι η γραμμή δεδομένων αισθητήρα I2C SDA για διαμόρφωση και ανάγνωση από εξωτερικούς αισθητήρες ((προαιρετικά) που δεν χρησιμοποιείται στην περίπτωσή μας)
XCL: - Αυτή είναι η γραμμή ρολογιού αισθητήρα I2C SCL για διαμόρφωση και ανάγνωση από εξωτερικούς αισθητήρες ((προαιρετικά) που δεν χρησιμοποιείται στην περίπτωσή μας)
ADO: - I2C Slave Διεύθυνση LSB (δεν ισχύει στην περίπτωσή μας)
INT: - Καρφίτσα διακοπής για ένδειξη των δεδομένων που είναι έτοιμα.
Περιγραφή:
Σε αυτό το άρθρο, δείχνουμε μετρήσεις θερμοκρασίας, γυροσκοπίου και επιταχυνσιόμετρου μέσω LCD χρησιμοποιώντας MPU6050 με Arduino. Αυτή η ενότητα μας δίνει τιμές γραμμής και ομαλοποιημένες τιμές στην έξοδο, αλλά οι τιμές γραμμής δεν είναι σταθερές, οπότε εδώ παρουσιάζουμε κανονικοποιημένες τιμές μέσω LCD. Εάν θέλετε απλώς τιμή επιταχυνσιόμετρου, μπορείτε επίσης να χρησιμοποιήσετε το Accelerometer ADXL335 με το Arduino.
Σε αυτό το έργο, δείξαμε πρώτα μια τιμή θερμοκρασίας πάνω από το LCD και μετά από 10 δευτερόλεπτα δείχνουμε τιμές γυροσκοπίας και μετά από 10 δευτερόλεπτα έχουμε αναγνώσεις επιταχυνσιόμετρου όπως φαίνεται στις παρακάτω εικόνες:
Διάγραμμα κυκλώματος και επεξήγηση:
Το διάγραμμα κυκλώματος, για διασύνδεση MPU6050 με Arduino, είναι πολύ απλό εδώ έχουμε χρησιμοποιήσει μια οθόνη LCD και MPU6050. Και εδώ έχουμε χρησιμοποιήσει τροφοδοτικό USB για φορητό υπολογιστή. Χρησιμοποιείται δοχείο 10k για τον έλεγχο της φωτεινότητας της οθόνης LCD. Σε σχέση με το MPU6050, κάναμε 5 συνδέσεις στις οποίες συνδέσαμε την τροφοδοσία 3.3v και τη γείωση του MPU6050 με το 3.3v και τη γείωση του Arduino. Οι ακροδέκτες SCL και SDA του MPU6050 συνδέονται με τον πείρο A4 και A5 του Arduino. Και ο ακροδέκτης INT του MPU6050 είναι συνδεδεμένος για διακοπή 0 του Arduino (D2). Τα RS, RW και EN των LCD συνδέονται απευθείας με το Arduino 8, gnd και 9. Ο πείρος δεδομένων συνδέεται απευθείας με τον ψηφιακό αριθμό 10, 11, 12 και 13.
Επεξήγηση προγραμματισμού
Το πρόγραμμα προγραμματισμού είναι επίσης εύκολο για αυτό το έργο. Εδώ χρησιμοποιήσαμε αυτήν τη βιβλιοθήκη MPU6050 για να την συνδέσουμε με το Arduino. Πρώτα απ 'όλα, πρέπει να κατεβάσετε τη βιβλιοθήκη MPU6050 από το GitHub και να την εγκαταστήσουμε στο Arduino IDE.
Μετά από αυτό, μπορούμε να βρούμε παραδείγματα κωδικών στο παράδειγμα. Ο χρήστης μπορεί να δοκιμάσει αυτόν τον κώδικα ανεβάζοντάς τον απευθείας στο Arduino και μπορεί να δει τιμές μέσω της σειριακής οθόνης. Εναλλακτικά, ο χρήστης μπορεί να χρησιμοποιήσει τον κωδικό που δίνεται στο τέλος του άρθρου για να δείξει τιμές και μέσω LCD και σειριακής οθόνης.
Στην κωδικοποίηση, έχουμε συμπεριλάβει ορισμένες απαιτούμενες βιβλιοθήκες όπως MPU6050 και LCD.
#περιλαμβάνω
Στη λειτουργία εγκατάστασης , αρχικοποιούμε και τις δύο συσκευές και γράφουμε μήνυμα καλωσορίσματος μέσω LCD
άκυρη ρύθμιση () {lcd.begin (16,2); lcd.createChar (0, βαθμός); Serial.begin (9600); Serial.println ("Initialize MPU6050"); ενώ (! mpu.begin (MPU6050_SCALE_2000DPS, MPU6050_RANGE_2G)) {lcd.clear (); lcd.print ("Η συσκευή δεν βρέθηκε"); Serial.println ("Δεν ήταν δυνατή η εύρεση ενός έγκυρου αισθητήρα MPU6050, ελέγξτε την καλωδίωση!"); καθυστέρηση (500) } μέτρηση = 0; mpu.calibrateGyro (); mpu.setThreshold (3); Στη λειτουργία Λειτουργία βρόχου , καλέσαμε τρεις λειτουργίες σε κάθε 10 δευτερόλεπτα για την εμφάνιση θερμοκρασίας, γυροσκοπικού και επιταχυνσιόμετρου στην οθόνη LCD. Αυτές οι τρεις λειτουργίες είναι tempShow, gyroShow και accelShow , μπορείτε να ελέγξετε αυτές τις συναρτήσεις στον πλήρη κώδικα Arduino που δίνεται στο τέλος αυτού του άρθρου:
κενός βρόχος () {lcd.clear (); lcd.print ("Θερμοκρασία"); μακρύ st = millis (); Serial.println ("Θερμοκρασία"); ενώ (χιλιοστά ()
Το MPU6050 γυροσκόπιο και το επιταχυνσιόμετρο χρησιμοποιούνται και για τον εντοπισμό της θέσης και του προσανατολισμού οποιασδήποτε συσκευής. Το Gyro χρησιμοποιεί τη βαρύτητα της γης για να προσδιορίσει τις θέσεις άξονα x, y και z και το επιταχυνσιόμετρο ανιχνεύει με βάση τον ρυθμό αλλαγής κίνησης. Χρησιμοποιήσαμε ήδη το επιταχυνσιόμετρο με το Arduino σε πολλά από τα έργα μας όπως:
- Ρομπότ ελεγχόμενο με χειρονομία βάσει επιταχυνσιόμετρου
- Σύστημα ειδοποίησης ατυχημάτων με βάση το Arduino
- Συναγερμός ανιχνευτή σεισμού χρησιμοποιώντας το Arduino