MPU6050: ενότητα για τοποθέτηση με Arduino

Πίνακας MPU6050

Εάν πρέπει να δημιουργήσετε ένα έργο και να το τοποθετήσετε, δηλαδή, ξέρετε πως τοποθετείται σχετικά με το χώρο, μπορείτε να χρησιμοποιήσετε την ενότητα MPU6050. Δηλαδή, αυτή η ενότητα είναι μια αδρανειακή μονάδα μέτρησης ή IMU (Inertial Measurment Units) με 6 μοίρες ελευθερίας (DoF). Αυτό χάρη στους αισθητήρες τύπου επιταχυνσιόμετρου 3 αξόνων και ένα γυροσκόπιο 3 αξόνων που εφαρμόζει για να λειτουργήσει.

Αυτό το MPU6050 μπορεί να γνωρίζει πώς τοποθετείται το περιεχόμενο που περιέχει για χρήση στο εφαρμογές πλοήγηση, γωνιομετρία, σταθεροποίηση, έλεγχος χειρονομίας κ.λπ. Τα κινητά τηλέφωνα περιλαμβάνουν συνήθως αυτόν τον τύπο αισθητήρων για, για παράδειγμα, τον έλεγχο ορισμένων λειτουργιών μέσω χειρονομιών, όπως η διακοπή εάν το smartphone είναι αναποδογυρισμένο, η οδήγηση οχημάτων σε βιντεοπαιχνίδια γυρίζοντας το κινητό σαν να ήταν τιμόνι κ.λπ.

Τι είναι ένα επιταχυνσιόμετρο και ένα γυροσκόπιο;

Παραδείγματα MEMS

Παραδείγματα MEMS

Λοιπόν, ας πάμε εν μέρει. Το πρώτο πράγμα είναι να δούμε ποιοι είναι αυτοί οι τύποι αισθητήρων είναι σε θέση να ανιχνεύσουν επιτάχυνση και στροφές, όπως μπορεί να συναχθεί από τα ονόματά τους.

  • Επιταχυνσιόμετρο: μετρά την επιτάχυνση, δηλαδή, την αλλαγή ταχύτητας ανά μονάδα χρόνου. Να θυμάστε ότι στη φυσική, η αλλαγή της ταχύτητας με το χρόνο (a = dV / dt) είναι ο ορισμός της επιτάχυνσης. Σύμφωνα με τον Δεύτερο Νόμο του Νεύτωνα, έχουμε επίσης ότι a = F / m, και αυτό είναι που χρησιμοποιούν τα επιταχυνσιόμετρα για να λειτουργήσουν, δηλαδή, χρησιμοποιούν παραμέτρους δύναμης και μάζας του αντικειμένου. Για να μπορεί να εφαρμοστεί στα ηλεκτρονικά, χρησιμοποιούνται τεχνικές MEMS (Micro Electro Mechanical Systems), οι οποίες διαφέρουν από τις συμβατικές τεχνικές κατασκευής ηλεκτρονικών τσιπ, καθώς τα μηχανικά μέρη δημιουργούνται σε ένα MEMS. Σε αυτήν την περίπτωση, δημιουργούνται κομμάτια ή στοιχεία ικανά για μέτρηση επιταχύνσεων. Αυτό σημαίνει ότι μπορούν να ληφθούν πολλές άλλες μονάδες, όπως η ταχύτητα (εάν η επιτάχυνση ενσωματωθεί στο χρόνο), εάν ενσωματωθεί ξανά, έχουμε μετατόπιση κ.λπ. Δηλαδή, πολύ ενδιαφέρουσες παράμετροι για να γνωρίζουμε τη θέση ή να ανιχνεύσουμε την κίνηση ενός αντικειμένου.
  • Γυροσκόπιο: ονομάζεται επίσης γυροσκόπιο, είναι μια συσκευή που μετρά τη γωνιακή ταχύτητα ενός αντικειμένου, δηλαδή τη γωνιακή μετατόπιση ανά μονάδα χρόνου ή πόσο γρήγορα ένα σώμα περιστρέφεται γύρω από τον άξονά του. Σε αυτήν την περίπτωση, οι τεχνικές MEMS χρησιμοποιούνται επίσης για τη μέτρηση της εν λόγω ταχύτητας χρησιμοποιώντας ένα φαινόμενο γνωστό ως Coriolis. Χάρη σε αυτό, η γωνιακή ταχύτητα μπορεί να μετρηθεί ή, ενσωματώνοντας τη γωνιακή ταχύτητα σε σχέση με το χρόνο, μπορεί να επιτευχθεί η γωνιακή μετατόπιση.

Μονάδα MPU6050

Pinout MPU6050

Τώρα που ξέρετε τι είναι το επιταχυνσιόμετρο και το γυροσκόπιο, η μονάδα MPU6050 Είναι ένας ηλεκτρονικός πίνακας που ενσωματώνει αυτά τα δύο στοιχεία για να σας επιτρέψει να μετρήσετε αυτές τις αλλαγές στη θέση ενός στοιχείου και έτσι να μπορείτε να δημιουργήσετε μια αντίδραση. Για παράδειγμα, όταν ένα αντικείμενο κινείται ένα LED ανάβει ή άλλα πολύ πιο περίπλοκα πράγματα.

Όπως είπα, έχει 6 άξονες ελευθερίας, DoF, Επιταχυνσιόμετρο επιτάχυνσης 3 αξόνων X, Y και Z και άλλο γυροσκόπιο 3 αξόνων για τη μέτρηση της γωνιακής ταχύτητας. Πρέπει να λάβετε υπόψη να μην κάνετε λάθη στον τρόπο με τον οποίο τοποθετείτε τη μονάδα και την κατεύθυνση περιστροφής για τις μετρήσεις, καθώς εάν κάνετε το λάθος σημάδι θα είναι λίγο χαοτικό. Κοιτάξτε την παρακάτω εικόνα όπου καθορίζει την κατεύθυνση των αξόνων (ωστόσο, παρατηρήστε ότι το ίδιο το PCB το έχει εκτυπώσει και από τη μία πλευρά):

Δελτίο δεδομένων MPU6050

Λαμβάνοντας υπόψη αυτό και το pinout, περισσότερο ή λιγότερο έχετε τα πάντα ξεκάθαρα για να αρχίσετε να χρησιμοποιείτε το MPU6050. Όπως μπορείτε να δείτε στην προηγούμενη εικόνα, οι συνδέσεις είναι αρκετά απλές και επιτρέπει στην επικοινωνία I2C να είναι συμβατή με τους περισσότερους μικροελεγκτές, συμπεριλαμβανομένου του Arduino. Οι ακίδες SCL και SDA έχουν μια αντίσταση pull-up στην πλακέτα για άμεση σύνδεση στην πλακέτα Arduino, οπότε δεν χρειάζεται να ανησυχείτε για την προσθήκη τους μόνοι σας.

Για να εργαστείτε και με τις δύο κατευθύνσεις στο λεωφορείο I2C, μπορείτε να τα χρησιμοποιήσετε καρφίτσες και οδηγίες:

  • AD0 = 1 ή Υψηλό (5v): για διεύθυνση I0C 69x2.
  • AD0 = 0 ή χαμηλό (GND ή Nc): για διεύθυνση 0x68 του διαύλου I2C.

Θυμηθείτε ότι η τάση λειτουργίας του μοντέλου είναι 3v3, αλλά ευτυχώς διαθέτει ενσωματωμένο ρυθμιστή, οπότε μπορεί να αλλάξει με το Arvino 5v χωρίς πρόβλημα και θα το μετατρέψει σε 3.3v.

Παρεμπιπτόντως, έχοντας εσωτερική αντίσταση στο GND, εάν αυτός ο ακροδέκτης δεν είναι συνδεδεμένος, η διεύθυνση από προεπιλογή θα είναι 0x68, δεδομένου ότι θα συνδεθεί από προεπιλογή με τη γη, ερμηνεύοντας το ως λογικό 0.

Ενσωμάτωση με το Arduino

Σύνδεση Arduino και MPU6050

Μπορείς να πάρεις περισσότερες πληροφορίες σχετικά με το λεωφορείο I2C σε αυτό το άρθρο. Γνωρίζετε ήδη ότι, ανάλογα με την πλακέτα Arduino, οι πείροι που χρησιμοποιούνται για το λεωφορείο διαφέρουν, αλλά στο Arduino UNO είναι ο αναλογικός πείρος A4 και A5, για SDA (δεδομένα) και SCL (ρολόι) αντίστοιχα. Είναι οι μόνοι καρφίτσες Arduino, μαζί με τους 5v και GND που τροφοδοτούν τον πίνακα, που πρέπει να χρησιμοποιήσετε. Έτσι, η σύνδεση είναι όσο το δυνατόν πιο απλή.

Για τις λειτουργίες του MPU6050 μπορείτε να χρησιμοποιήσετε τις βιβλιοθήκες των οποίων μπορείτε να λάβετε περισσότερες πληροφορίες σε αυτόν τον σύνδεσμο για το I2C της μονάδας και του λεωφορείου MPU6050.

Ο προγραμματισμός του Arduino board δεν είναι πολύ απλός με το MPU6050, οπότε δεν είναι για αρχάριους. Επιπλέον, γνωρίζοντας τα όρια των επιταχύνσεων ή το εύρος των γωνιών, μπορείτε να βαθμονομήσετε για να προσδιορίσετε ποια ήταν η ακριβής κίνηση ή επιτάχυνση. Ωστόσο, για να έχετε τουλάχιστον ένα παράδειγμα για το πώς να σχολιάσετε τη χρήση του, μπορείτε να δείτε αυτόν τον κωδικό από το Παράδειγμα σκίτσου για το Arduino IDE σας που θα διαβάσει τις τιμές που καταγράφονται από το επιταχυνσιόμετρο και το γυροσκόπιο:

// Bibliotecas necesarias:
#include "I2Cdev.h"
#include "MPU6050.h"
#include "Wire.h"

// Dependiendo del estado de AD0, la dirección puede ser 0x68 o 0x69, para controlar así el esclavo que leerá por el bus I2C
MPU6050 sensor;

// Valores RAW o en crudo leidos del acelerometro y giroscopio en los ejes x,y,z
int ax, ay, az;
int gx, gy, gz;

void setup() {
  Serial.begin(57600);    //Función para iniciar el puerto serie con 57600 baudios
  Wire.begin();           //Inicio para el bus I2C 
  sensor.initialize();    //Iniciando del sensor MPU6050

  if (sensor.testConnection()) Serial.println("Sensor iniciado correctamente");
  else Serial.println("Error al iniciar el sensor");
}

void loop() {
  // Leer las aceleraciones y velocidades angulares
  sensor.getAcceleration(&ax, &ay, &az);
  sensor.getRotation(&gx, &gy, &gz);

  // Muestra las lecturas que va registrando separadas por una tabulación 
  Serial.print("a[x y z] g[x y z]:\t");
  Serial.print(ax); Serial.print("\t");
  Serial.print(ay); Serial.print("\t");
  Serial.print(az); Serial.print("\t");
  Serial.print(gx); Serial.print("\t");
  Serial.print(gy); Serial.print("\t");
  Serial.println(gz);

  delay(100);
}

Εάν είστε αρχάριος και δεν γνωρίζετε καλά πώς να προγραμματίσετε με το Arduino IDEΑυτό θα είναι δύσκολο να το καταλάβετε, οπότε μπορείτε να συμβουλευτείτε το εγχειρίδιό μας με το εισαγωγικό μάθημα του προγραμματισμού Arduino δωρεάν ...


Γίνε ο πρώτος που θα σχολιάσει

Αφήστε το σχόλιό σας

Η διεύθυνση email σας δεν θα δημοσιευθεί. Τα υποχρεωτικά πεδία σημειώνονται με *

*

*

  1. Υπεύθυνος για τα δεδομένα: Miguel Ángel Gatón
  2. Σκοπός των δεδομένων: Έλεγχος SPAM, διαχείριση σχολίων.
  3. Νομιμοποίηση: Η συγκατάθεσή σας
  4. Κοινοποίηση των δεδομένων: Τα δεδομένα δεν θα κοινοποιούνται σε τρίτους, εκτός από νομική υποχρέωση.
  5. Αποθήκευση δεδομένων: Βάση δεδομένων που φιλοξενείται από τα δίκτυα Occentus (ΕΕ)
  6. Δικαιώματα: Ανά πάσα στιγμή μπορείτε να περιορίσετε, να ανακτήσετε και να διαγράψετε τις πληροφορίες σας.