Schizzo di test del sensore combinato ARDUINO GY87
Introduzione
Se sei un appassionato creatore o un appassionato di robotica, ti sei imbattuto in questo piccolo ma potente modulo Se sei un appassionato creatore o un appassionato di robotica, ti sei imbattuto in questo piccolo ma potente modulo barometro BMP085. Il modulo GY-87 IMU è un ottimo modo per aggiungere il rilevamento del movimento ai tuoi progetti, come un robot autobilanciato o un quadricottero.
Ma prima di poter iniziare a sperimentare con il modulo IMU GY-87, devi sapere come interfacciarlo con la tua scheda Arduino. È qui che entra in gioco questo blog! Nei paragrafi seguenti, tratteremo le basi del modulo IMU GY-87, come configurarlo e come scrivere il codice Arduino per leggere i dati del sensore. Forniremo anche alcuni suggerimenti e risorse per la risoluzione dei problemi comuni.
Quindi, se sei pronto per iniziare, tuffiamoci e scopriamo come interfacciare il modulo IMU GY-87 con Arduino!
Cos'è GY-87 IMU MPU6050
I moduli unità di misura inerziale (IMU) come il GY-87 combinano molti sensori in un unico pacchetto, come l'accelerometro/giroscopio MPU6050, il magnetometro HMC5883L e il sensore di pressione barometrica BMP085. Pertanto, GY-87 IMU MPU6050 è un modulo di tracciamento del movimento a 9 assi all-in-one che combina un giroscopio a 3 assi, un accelerometro a 3 assi, un magnetometro a 3 assi e un processore di movimento digitale. È molto utilizzato nei progetti robotici, come i quadricotteri e altri veicoli aerei senza pilota (UAV), perché può misurare e tracciare con precisione l'orientamento e il movimento. Viene utilizzato anche in altre applicazioni, come la navigazione, i giochi e la realtà virtuale.
Componenti hardware
Avrai bisogno del seguente hardware per interfacciare il modulo GY-87 IMU MPU6050 HMC5883L BMP085 con Arduino.
Componenti | Valore | Quantità |
Arduino UNO | – | 1 |
MPU6050 Modulo sensore | GY-87 | 1 |
Tagliere | – | 1 |
Cavi di collegamento | – | 1 |
GY-87 con Arduino
Ora che hai capito il GY-87, è il momento di interfacciarsi con Arduino. Per farlo, segui Ora che hai capito il GY-87, è il momento di interfacciarsi con Arduino. Per farlo, segui
Schema
Effettuare i collegamenti secondo lo schema elettrico riportato di seguito
GY-87 IMU MPU6050 HMC5883L BMP085 ArduinoCablaggio / Connessioni
Arduino | Sensore MPU6050 |
5V | VCC |
Terra | Terra |
A4 | SDA |
A5 | SCA |
Installazione dell'IDE di Arduino
Innanzitutto, devi installare il software IDE Arduino dal suo file ufficiale websitoArduino. Ecco una semplice guida passo-passo su "Come installare Arduino IDE".
Installazione delle librerie
Prima di iniziare a caricare il codice, scarica e decomprimi le seguenti librerie in /Program Files (x86)/Arduino/Libraries (default) per utilizzare il sensore con la scheda Arduino. Ecco una semplice guida passo-passo su "Come aggiungere librerie nell'IDE di Arduino".
- MPU6050
- Adafruit_BMP085
- HMC5883L_Semplice
Codice
Ora copia il seguente codice e caricalo nel software IDE di Arduino.
#include “I2Cdev.h” #include “MPU6050.h” #include #includere MPU085 accelgyro; Adafruit_BMP5883bmp; HMC6050L_Bussola semplice; int085_t ax, ay, az; int5883_t gx, gy, gz; #define LED_PIN 16 bool blinkState = falso; void setup() { Serial.begin(16); Filo.begin(); // inizializza i dispositivi Serial.println(“Inizializzazione dei dispositivi I13C…”); // inizializza bmp9600 if (!bmp.begin()) { Serial.println("Impossibile trovare un sensore BMP2 valido, controlla (!bmp.begin()) { Serial.println("Impossibile trovare un sensore BMP085 valido, check Serial.println(accelgyro.testConnection() ? “Connessione MPU085 riuscita” : “Connessione MPU085 fallita”); accelgyro.setI6050CBypassEnabled(true); // imposta la modalità di bypass per il gateway su hmc6050L // inizializza hmc2l Compass.SetDeclination(5883, 5883, 'E'); Compass.SetSamplingMode(COMPASS_SINGLE);
Bussola.SetScale(COMPASS_SCALE_130);
Compass.SetOrientation(COMPASS_HORIZONTAL_X_NORTH); // configura il LED Arduino per il controllo dell'attività pinMode(LED_PIN, OUTPUT); } vuoto ciclo() {
Serial.print(“Temperatura = “); Serial.print(bmp.readTemperature());
Serial.println(” *C”); Serial.print(“Pressione = “);
Serial.print(bmp.readPressure()); Serial.println(”Pa”); // Calcola l'altitudine assumendo una pressione barometrica 'standard' // di 1013.25 millibar = 101325 Pascal Serial.print(“Altitude = “); Serial.print(bmp.readAltitude()); Serial.println(“metri”); Serial.print(“Pressione a livello del mare (calcolata) = “);
Serial.print(bmp.readSealevelPressure()); Serial.println(”Pa”);
Serial.print(“Altitudine reale = “); Serial.print(bmp.readAltitude(101500));
Serial.println(”metri”); // legge le misure grezze di accelerazione/giroscopio dal dispositivo accelgyro.getMotion6(&ax, &ay, &az, &gx, &gy, &gz); // visualizza i valori accel/gyro x/y/z separati da tabulazione Serial.print(“a/g:\t”); Serial.print(ax);
Serial.print(“\t”); Serial.print(ay); Serial.print(“\t”); Serial.print(az);
Serial.print(“\t”); Stampa.seriale(gx); Serial.print(“\t”); Serial.print(gy);
Serial.print(“\t”); Serial.println(gz); intestazione mobile =
Compass.GetHeadingDegrees(); Serial.print(“Intestazione: \t”); Serial.println( intestazione ); // lampeggia il LED per indicare l'attività blinkState = !blinkState;
digitalWrite(LED_PIN, blinkState); ritardo(500); }
Testiamolo
Una volta caricato il codice, è il momento di testare il circuito! Il codice nel programma Arduino si interfaccia con i sensori utilizzando le loro librerie, che gli consentono di leggere i dati del sensore e impostare varie configurazioni dei sensori. Quindi stampa i dati del sensore sulla porta seriale. Il LED viene utilizzato per mostrare che il circuito sta facendo qualcosa. Ciò significa che il LED lampeggia ogni volta che viene eseguita la funzione loop, indicando che il codice sta leggendo attivamente i valori del sensore.
Spiegazione operativa
Il codice è la cosa principale su cui si basa il funzionamento del circuito. Quindi, capiamo il codice:.
- Innanzitutto, include diverse librerie per interfacciarsi con i sensori:
- "I2Cdev.h" e "MPU6050.h" sono librerie per il sensore accelerometro/giroscopio a 6050 assi MPU6
- “Adafruit_BMP085.h” è una libreria per il sensore di pressione barometrica BMP085.
- "HMC5883L_Simple.h" è una libreria per il sensore magnetometrico HMC5883L.
- Quindi crea oggetti globali per i tre sensori: MPU6050 accelgyro, Adafruit_BMP085 bmp e HMC5883L_Simple Compass.
- Successivamente, definisce alcune variabili per memorizzare i valori del sensore, come ax, ay e az per l'accelerometro di MPU6050 e per dirigersi verso il magnetometro di HMC5883L. E definisce una costante LED_PIN e una variabile blinkState.
- La funzione setup() avvia una comunicazione seriale e inizia la comunicazione I2C. Quindi inizializza i tre sensori:
- Il sensore BMP085 viene inizializzato chiamando il metodo begin(). Se questo restituisce false, indicando che il sensore non è stato trovato, il programma entra in un ciclo infinito e stampa un messaggio di errore sulla porta seriale.
- Il sensore MPU6050 viene inizializzato chiamando il metodo initialize() e controllando se funziona correttamente. E ha impostato il bypass I2C abilitato per MPU6050.
- Il sensore HMC5883L viene inizializzato chiamando alcune funzioni, come SetDeclination, SetSamplingMode, SetScale e SetOrientation, per impostare diverse configurazioni per il sensore.
- Nella funzione loop(), il codice legge i dati dai tre sensori e li stampa sulla porta seriale:
- Legge la temperatura, la pressione, l'altitudine e la pressione a livello del mare dal sensore.
- Legge l'accelerazione grezza e le misurazioni del giroscopio dal sensore MPU6050.
- Legge la direzione dal sensore HMC5883L, che è l'angolo tra la direzione in cui punta il sensore e la direzione in cui si trova il nord magnetico.
- Infine, fa lampeggiare il LED per indicare l'attività e attende un momento prima di rileggere i sensori.
Documenti / Risorse
![]() |
Schizzo di test del sensore combinato ARDUINO GY87 [pdf] Manuale d'uso GY87 Bozzetto di prova del sensore combinato, GY87, Bozzetto di prova del sensore combinato, Bozzetto di prova del sensore, Bozzetto di prova |