Esbozo de proba de sensores combinados ARDUINO GY87
Introdución
Se es un ávido fabricante ou un entusiasta da robótica, atopaches este módulo pequeno pero poderoso. Se es un ávido fabricante ou un entusiasta da robótica, atopaches este módulo pequeno pero poderoso barómetro BMP085. O módulo GY-87 IMU é unha boa forma de engadir detección de movemento aos teus proxectos, como un robot autoequilibrado ou un cuadricóptero.
Pero antes de comezar a experimentar co módulo IMU GY-87, debes saber como interconectalo coa túa placa Arduino. Aí entra este blog! Nos seguintes parágrafos, trataremos os conceptos básicos do módulo GY-87 IMU, como configuralo e como escribir o código Arduino para ler os datos do sensor. Tamén proporcionaremos algúns consellos e recursos para solucionar problemas comúns.
Entón, se estás listo para comezar, mergullémonos e aprendemos como conectar o módulo IMU GY-87 con Arduino.
O que é GY-87 IMU MPU6050
Os módulos de unidades de medida inercial (IMU) como o GY-87 combinan moitos sensores nun único paquete, como o acelerómetro/xiroscopio MPU6050, o magnetómetro HMC5883L e o sensor de presión barométrica BMP085. Polo tanto, o GY-87 IMU MPU6050 é un módulo de seguimento de movemento de 9 eixes todo-en-un que combina un xiroscopio de 3 eixes, un acelerómetro de 3 eixes, un magnetómetro de 3 eixes e un procesador de movemento dixital. Úsase moito en proxectos de robótica, como cuadricópteros e outros vehículos aéreos non tripulados (UAV), porque pode medir e rastrexar con precisión a orientación e o movemento. Tamén se usa noutras aplicacións, como navegación, xogos e realidade virtual.
Compoñentes de hardware
Necesitará o seguinte hardware para conectar o módulo GY-87 IMU MPU6050 HMC5883L BMP085 con Arduino.
Compoñentes | Valor | Cant |
Arduino UNO | – | 1 |
MPU6050 Módulo sensor | GY-87 | 1 |
Breadboard | – | 1 |
Cables de puente | – | 1 |
GY-87 con Arduino
Agora que entendes o GY-87, é hora de interactuar co Arduino. Para facelo, siga Agora que entendeu o GY-87, é hora de interactuar co Arduino. Para facelo, segue
Esquemático
Realice as conexións segundo o esquema de circuítos que se indica a continuación
GY-87 IMU MPU6050 HMC5883L BMP085 ArduinoCableado / Conexións
Arduino | Sensor MPU6050 |
5V | VCC |
GND | GND |
A4 | SDA |
A5 | SCA |
Instalación de Arduino IDE
En primeiro lugar, cómpre instalar o software Arduino IDE desde o seu oficial websitio Arduino. Aquí tes unha sinxela guía paso a paso sobre "Como instalar Arduino IDE".
Instalación de bibliotecas
Antes de comezar a cargar código, descarga e descomprime as seguintes bibliotecas en /Program Files (x86)/Arduino/Libraries (predeterminado) para usar o sensor coa placa Arduino. Aquí tes unha sinxela guía paso a paso sobre "Como engadir bibliotecas no IDE de Arduino".
- MPU6050
- Adafruit_BMP085
- HMC5883L_Simple
Código
Agora copie o seguinte código e cárgueo a Arduino IDE Software.
#include “I2Cdev.h” #include “MPU6050.h” #include #incluír MPU085 acelerador; Adafruit_BMP5883 bmp; HMC6050L_Compás simple; int085_t ax, ai, az; int5883_t gx, gy, gz; #define LED_PIN 16 bool blinkState = false; void setup () { Serial.begin (16); Wire.begin(); // inicializar dispositivos Serial.println(“Inicializando dispositivos I13C…”); // inicializa bmp9600 if (!bmp.begin()) { Serial.println(“Non foi posíbel atopar un sensor BMP2 válido, comprobe (!bmp.begin()) { Serial.println(“Non se puido atopar un sensor BMP085 válido, comproba Serial.println(accelgyro.testConnection() ? “MPU085 connection successful”: “MPU085 connection failed”); accelgyro.setI6050CBypassEnabled(true); // establecer o modo de derivación para a pasarela a hmc6050L // inicializar hmc2l Compass.5883Set5883,Declination 23, 'E'); Compass.SetSamplingMode(COMPASS_SINGLE);
Compass.SetScale(COMPASS_SCALE_130);
Compass.SetOrientation(COMPASS_HORIZONTAL_X_NORTH); // configurar o LED de Arduino para comprobar a actividade pinMode(LED_PIN, OUTPUT); } bucle void() {
Serial.print ("Temperatura = "); Serial.print(bmp.readTemperature());
Serial.println ("*C"); Serial.print ("Presión = ");
Serial.print(bmp.readPressure()); Serial.println ("Pa"); // Calcula a altitude asumindo unha presión barométrica 'estándar' // de 1013.25 milibar = 101325 Pascal Serial.print(“Altitude = “); Serial.print(bmp.readAltitude()); Serial.println(“metros”); Serial.print ("Presión ao nivel do mar (calculado) = ");
Serial.print(bmp.readSealevelPressure()); Serial.println ("Pa");
Serial.print ("Altitude real = "); Serial.print(bmp.readAltitude(101500));
Serial.println ("metros"); // ler as medidas de aceleración/giroscopio en bruto do dispositivo accelgyro.getMotion6(&ax, &ay, &az, &gx, &gy, &gz); // mostra valores de aceleración/giroxiro x/y/z separados por tabulacións Serial.print(“a/g:\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); rumbo flotante =
Compass.GetHeadingDegrees(); Serial.print(“Título: \t”); Serial.println( encabezamento ); // LED parpadeante para indicar actividade blinkState = !blinkState;
DigitalWrite(LED_PIN, blinkState); atraso (500); }
Probémolo
Unha vez que cargues o código, é hora de probar o circuíto! O código do programa Arduino interactúa cos sensores mediante as súas bibliotecas, o que lle permite ler os datos do sensor e establecer varias configuracións dos sensores. A continuación, imprime os datos do sensor a través do porto serie. O LED úsase para mostrar que o circuíto está facendo algo. Isto significa que o LED parpadea cada vez que se executa a función de bucle, o que indica que o código está lendo activamente os valores do sensor.
Explicación de traballo
O código é o principal no que se basea o funcionamento do circuíto. Entón, imos entender o código:.
- En primeiro lugar, inclúe varias bibliotecas para interactuar cos sensores:
- “I2Cdev.h” e “MPU6050.h” son bibliotecas para o sensor acelerómetro/xiroscopio de 6050 eixes MPU6
- "Adafruit_BMP085.h" é unha biblioteca para o sensor de presión barométrica BMP085.
- “HMC5883L_Simple.h” é unha biblioteca para o sensor magnetómetro HMC5883L.
- A continuación, crea obxectos globais para os tres sensores: MPU6050 accelgyro, Adafruit_BMP085 bmp e HMC5883L_Simple Compass.
- A continuación, define algunhas variables para almacenar os valores do sensor, como ax, ay e az para o acelerómetro de MPU6050 e para dirixirse ao magnetómetro de HMC5883L. E define unha constante LED_PIN e unha variable blinkState.
- A función setup() inicia unha comunicación en serie e comeza a comunicación I2C. A continuación, inicializa os tres sensores:
- O sensor BMP085 iníciase chamando ao método begin(). Se isto devolve falso, o que indica que non se puido atopar o sensor, o programa entra nun bucle infinito e imprime unha mensaxe de erro no porto serie.
- O sensor MPU6050 iníciase chamando ao método initialize() e comprobando se está a funcionar correctamente. E habilitou o bypass I2C para MPU6050.
- O sensor HMC5883L iníciase chamando a algunhas funcións, como SetDeclination, SetSamplingMode, SetScale e SetOrientation, para configurar diferentes configuracións para o sensor.
- Na función loop(), o código le os datos dos tres sensores e imprímaos a través do porto serie:
- Le temperatura, presión, altitude e presión ao nivel do mar desde o sensor.
- Le as medidas brutas de aceleración e xiroscopio do sensor MPU6050.
- Le o título do sensor HMC5883L, que é o ángulo entre a dirección na que apunta o sensor e a dirección na que se atopa o norte magnético.
- Finalmente, o LED parpadea para indicar actividade e agarda un momento antes de reler os sensores.
Documentos/Recursos
![]() |
Esbozo de proba de sensores combinados ARDUINO GY87 [pdfManual do usuario GY87 Esbozo de proba de sensor combinado, GY87, Esbozo de proba de sensor combinado, Esbozo de proba de sensor, Esbozo de proba |