Tabla de contenido:
- Paso 1: Descripción general de BMG160:
- Paso 2: ¡¡Lo que necesitas …
- Paso 3: Conexión de hardware:
- Paso 4: Código de partículas de medición del giroscopio de 3 ejes:
- Paso 5: Aplicaciones:
Video: Interfaz del sensor de giroscopio de 3 ejes BMG160 con partículas: 5 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:42
En el mundo actual, más de la mitad de los jóvenes y los niños son aficionados a los juegos y todos los que les gustan, fascinados por los aspectos técnicos de los juegos, conocen la importancia de la detección de movimiento en este ámbito. También nos sorprendió lo mismo y solo para traerlo a las placas, pensamos en trabajar en un sensor de giroscopio que pueda medir la velocidad angular de cualquier objeto. Entonces, el sensor que usamos para hacer frente a la tarea es BMG160. BMG160 es un sensor de giroscopio triaxial digital de 16 bits que puede medir la velocidad angular en tres dimensiones de habitación perpendiculares.
En este tutorial, vamos a demostrar el funcionamiento de BMG160 con Particle Photon.
El hardware que va a necesitar para este fin es el siguiente:
1. BMG160
2. Fotón de partículas
3. Cable I2C
4. Escudo I2C para fotones de partículas
Paso 1: Descripción general de BMG160:
En primer lugar, nos gustaría familiarizarlo con las características básicas del módulo sensor que es BMG160 y el protocolo de comunicación en el que funciona.
BMG160 es básicamente un sensor de giroscopio triaxial digital de 16 bits que puede medir velocidades angulares. Es capaz de calcular velocidades angulares en tres dimensiones de habitación perpendiculares, los ejes x, y y z, y proporcionar las señales de salida correspondientes. Puede comunicarse con la placa Raspberry Pi mediante el protocolo de comunicación I2C. Este módulo en particular está diseñado para cumplir con los requisitos de aplicaciones de consumo, así como con fines industriales.
El protocolo de comunicación sobre el que trabaja el sensor es I2C. I2C significa circuito interintegrado. Es un protocolo de comunicación en el que la comunicación se realiza a través de líneas SDA (datos en serie) y SCL (reloj en serie). Permite conectar varios dispositivos al mismo tiempo. Es uno de los protocolos de comunicación más simples y eficientes.
Paso 2: ¡¡Lo que necesitas …
Los materiales que necesitamos para lograr nuestro objetivo incluyen los siguientes componentes de hardware:
1. BMG160
2. Fotón de partículas
3. Cable I2C
4. Escudo I2C para fotones de partículas
Paso 3: Conexión de hardware:
La sección de conexión de hardware básicamente explica las conexiones de cableado necesarias entre el sensor y la partícula. Asegurar las conexiones correctas es la necesidad básica al trabajar en cualquier sistema para obtener la salida deseada. Entonces, las conexiones requeridas son las siguientes:
El BMG160 funcionará sobre I2C. Aquí está el diagrama de cableado de ejemplo, que demuestra cómo cablear cada interfaz del sensor.
Fuera de la caja, la placa está configurada para una interfaz I2C, por lo que recomendamos usar esta conexión si, por lo demás, es agnóstico.
¡Todo lo que necesitas son cuatro cables! Solo se requieren cuatro conexiones Vcc, Gnd, SCL y pines SDA y estos se conectan con la ayuda del cable I2C.
Estas conexiones se muestran en las imágenes de arriba.
Paso 4: Código de partículas de medición del giroscopio de 3 ejes:
Comencemos ahora con el código de partículas.
Mientras usamos el módulo sensor con el arduino, incluimos la biblioteca application.hy spark_wiring_i2c.h. La biblioteca "application.h" y spark_wiring_i2c.h contiene las funciones que facilitan la comunicación i2c entre el sensor y la partícula.
El código de partículas completo se proporciona a continuación para comodidad del usuario:
#incluir
#incluir
// La dirección BMG160 I2C es 0x68 (104)
#define Addr 0x68
int xGyro = 0, yGyro = 0, zGyro = 0;
configuración vacía ()
{
// Establecer variable
Particle.variable ("i2cdevice", "BMG160");
Particle.variable ("xGyro", xGyro);
Particle.variable ("yGyro", yGyro);
Particle.variable ("zGyro", zGyro);
// Inicializar la comunicación I2C como MASTER
Wire.begin ();
// Inicializar la comunicación en serie
Serial.begin (9600);
// Iniciar transmisión I2C
Wire.beginTransmission (Addr);
// Seleccionar registro de rango
Wire.write (0x0F);
// Configurar 2000 dps a escala completa
Wire.write (0x80);
// Detener la transmisión I2C
Wire.endTransmission ();
// Iniciar transmisión I2C
Wire.beginTransmission (Addr);
// Seleccionar registro de ancho de banda
Wire.write (0x10);
// Establecer ancho de banda = 200 Hz
Wire.write (0x04);
// Detener la transmisión I2C
Wire.endTransmission ();
retraso (300);
}
bucle vacío ()
{
datos int sin firmar [6];
// Iniciar transmisión I2C
Wire.beginTransmission (Addr);
// Seleccionar registro de datos
Wire.write (0x02);
// Detener la transmisión I2C
Wire.endTransmission ();
// Solicita 6 bytes de datos
Wire.requestFrom (Dirección, 6);
// Leer 6 bytes de datos
// xGyro lsb, xGyro msb, yGyro lsb, yGyro msb, zGyro lsb, zGyro msb
if (Cable disponible () == 6)
{
datos [0] = Wire.read ();
datos [1] = Wire.read ();
datos [2] = Wire.read ();
datos [3] = Wire.read ();
datos [4] = Wire.read ();
datos [5] = Wire.read ();
}
retraso (300);
// Convertir los datos
xGyro = ((datos [1] * 256) + datos [0]);
si (xGyro> 32767)
{
xGyro - = 65536;
}
yGyro = ((datos [3] * 256) + datos [2]);
si (yGyro> 32767)
{
yGyro - = 65536;
}
zGyro = ((datos [5] * 256) + datos [4]);
si (zGyro> 32767)
{
zGyro - = 65536;
}
// Salida de datos al tablero
Particle.publish ("Eje X de rotación:", String (xGyro));
Particle.publish ("Eje Y de rotación:", String (yGyro));
Particle.publish ("Eje Z de rotación:", Cadena (zGyro));
retraso (1000);
}
Paso 5: Aplicaciones:
BMG160 tiene una variedad de aplicaciones en dispositivos como teléfonos celulares, dispositivos de interfaz hombre-máquina. Este módulo de sensor ha sido diseñado para cumplir con los requisitos de aplicaciones de consumo tales como estabilización de imagen (DSC y teléfono con cámara), juegos y dispositivos señaladores. También se emplea en sistemas que requieren reconocimiento de gestos y los sistemas utilizados en la navegación interior.
Recomendado:
Introducción a la interfaz del sensor I2C - Interfaz de su MMA8451 usando ESP32s: 8 pasos
Introducción a la interfaz del sensor I2C - Interfaz de su MMA8451 usando ESP32s: en este tutorial, aprenderá todo sobre cómo iniciar, conectar y hacer que el dispositivo I2C (acelerómetro) funcione con el controlador (Arduino, ESP32, ESP8266, ESP12 NodeMCU)
Interfaz del sensor de giroscopio de 3 ejes BMG160 con Arduino Nano: 5 pasos
Interfaz del sensor de giroscopio de 3 ejes BMG160 con Arduino Nano: en el mundo actual, más de la mitad de los jóvenes y los niños son aficionados a los juegos y todos los que les gustan, fascinados por los aspectos técnicos de los juegos, conocen la importancia de la detección de movimiento. en este dominio. También nos sorprendió lo mismo y
Interfaz del sensor de giroscopio de 3 ejes BMG160 con Raspberry Pi: 5 pasos
Interfaz del sensor de giroscopio de 3 ejes BMG160 con Raspberry Pi: en el mundo actual, más de la mitad de los jóvenes y los niños son aficionados a los juegos y todos los que les gustan, fascinados por los aspectos técnicos de los juegos, conocen la importancia de la detección de movimiento. en este dominio. También nos sorprendió lo mismo y
Calibración y prueba del módulo de sensor de 6 ejes FSP200: 6 pasos
Calibración y prueba del módulo de sensor de 6 ejes FSP200: El FSP200 es un procesador de unidad de medición inercial de 6 ejes que proporciona salida de rumbo y dirección. Realiza una fusión de acelerómetro y sensores giroscópicos para obtener un rumbo y una dirección estables y precisos. El FSP200 es adecuado para su uso en pr
Tutorial del módulo 6DOF del giroscopio de aceleración de 3 ejes MPU6050 GY-521: 4 pasos
GY-521 MPU6050 Tutorial del módulo 6DOF del giroscopio de aceleración de 3 ejes: Descripción Este módulo simple contiene todo lo necesario para interactuar con Arduino y otros controladores a través de I2C (use la biblioteca Wire Arduino) y brinda información de detección de movimiento para 3 ejes: X, Y y Z .Especificaciones Rangos del acelerómetro: ± 2, ±