Índice:
- Etapa 1: Visão geral do BMG160:
- Etapa 2: O que você precisa..
- Etapa 3: Conexão de Hardware:
- Etapa 4: Código de partícula de medição de giroscópio de 3 eixos:
- Etapa 5: Aplicativos:
Vídeo: Interface do sensor de giroscópio de 3 eixos BMG160 com partículas: 5 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:37
No mundo de hoje, mais da metade dos jovens e crianças gostam de jogos e todos aqueles que gostam disso, fascinados pelos aspectos técnicos dos jogos, sabem a importância do sensor de movimento neste domínio. Também ficamos maravilhados com a mesma coisa e só para colocá-la nas placas, pensamos em trabalhar em um sensor giroscópio que pode medir a taxa angular de qualquer objeto. Então, o sensor que pegamos para lidar com a tarefa é o BMG160. O BMG160 é um sensor giroscópio digital triaxial de 16 bits que pode medir a taxa angular em três dimensões perpendiculares da sala.
Neste tutorial, vamos demonstrar o funcionamento do BMG160 com o Particle Photon.
Os hardwares de que você vai precisar para essa finalidade são os seguintes:
1. BMG160
2. Fóton de partícula
3. Cabo I2C
4. Escudo I2C para Fóton de Partículas
Etapa 1: Visão geral do BMG160:
Em primeiro lugar, gostaríamos de familiarizá-lo com os recursos básicos do módulo sensor que é o BMG160 e o protocolo de comunicação no qual ele funciona.
O BMG160 é basicamente um sensor giroscópio digital triaxial de 16 bits que pode medir taxas angulares. Ele é capaz de calcular taxas angulares em três dimensões perpendiculares da sala, os eixos x, y e z, e fornecer os sinais de saída correspondentes. Ele pode se comunicar com a placa raspberry pi usando o protocolo de comunicação I2C. Este módulo específico é projetado para atender aos requisitos de aplicações de consumo, bem como para fins industriais.
O protocolo de comunicação no qual o sensor funciona é I2C. I2C significa circuito inter-integrado. É um protocolo de comunicação no qual a comunicação ocorre através das linhas SDA (serial data) e SCL (serial clock). Ele permite conectar vários dispositivos ao mesmo tempo. É um dos protocolos de comunicação mais simples e eficientes.
Etapa 2: O que você precisa..
Os materiais de que precisamos para cumprir nosso objetivo incluem os seguintes componentes de hardware:
1. BMG160
2. Partícula de fóton
3. Cabo I2C
4. Escudo I2C para partícula de fóton
Etapa 3: Conexão de Hardware:
A seção de conexão de hardware explica basicamente as conexões de fiação necessárias entre o sensor e a partícula. Garantir as conexões corretas é a necessidade básica ao trabalhar em qualquer sistema para a saída desejada. Portanto, as conexões necessárias são as seguintes:
O BMG160 funcionará em I2C. Aqui está o diagrama de fiação de exemplo, demonstrando como conectar cada interface do sensor.
Fora da caixa, a placa é configurada para uma interface I2C, como tal, recomendamos usar esta conexão se você for agnóstico.
Você só precisa de quatro fios! São necessárias apenas quatro conexões dos pinos Vcc, Gnd, SCL e SDA e estes são conectados com a ajuda do cabo I2C.
Essas conexões são demonstradas nas fotos acima.
Etapa 4: Código de partícula de medição de giroscópio de 3 eixos:
Vamos começar com o código da partícula agora.
Ao usar o módulo sensor com o arduino, incluímos as bibliotecas application.h e spark_wiring_i2c.h. A biblioteca "application.h" e spark_wiring_i2c.h contém as funções que facilitam a comunicação i2c entre o sensor e a partícula.
Todo o código da partícula é fornecido abaixo para a conveniência do usuário:
#incluir
#incluir
// O endereço I2C do BMG160 é 0x68 (104)
#define Addr 0x68
int xGyro = 0, yGyro = 0, zGyro = 0;
void setup ()
{
// Definir variável
Particle.variable ("i2cdevice", "BMG160");
Particle.variable ("xGyro", xGyro);
Particle.variable ("yGyro", yGyro);
Particle.variable ("zGyro", zGyro);
// Inicializar a comunicação I2C como MASTER
Wire.begin ();
// Inicializar a comunicação serial
Serial.begin (9600);
// Iniciar a transmissão I2C
Wire.beginTransmission (Addr);
// Selecionar registro de alcance
Wire.write (0x0F);
// Configurar escala completa de 2000 dps
Wire.write (0x80);
// Pare a transmissão I2C
Wire.endTransmission ();
// Iniciar a transmissão I2C
Wire.beginTransmission (Addr);
// Selecione o registro de largura de banda
Wire.write (0x10);
// Definir largura de banda = 200 Hz
Wire.write (0x04);
// Pare a transmissão I2C
Wire.endTransmission ();
atraso (300);
}
void loop ()
{
dados internos não assinados [6];
// Iniciar a transmissão I2C
Wire.beginTransmission (Addr);
// Selecione o registro de dados
Wire.write (0x02);
// Pare a transmissão I2C
Wire.endTransmission ();
// Solicita 6 bytes de dados
Wire.requestFrom (Addr, 6);
// Leia 6 bytes de dados
// xGyro lsb, xGyro msb, yGyro lsb, yGyro msb, zGyro lsb, zGyro msb
if (Wire.available () == 6)
{
dados [0] = Wire.read ();
dados [1] = Wire.read ();
dados [2] = Wire.read ();
dados [3] = Wire.read ();
dados [4] = Wire.read ();
dados [5] = Wire.read ();
}
atraso (300);
// Converta os dados
xGyro = ((dados [1] * 256) + dados [0]);
if (xGyro> 32767)
{
xGyro - = 65536;
}
yGyro = ((dados [3] * 256) + dados [2]);
if (yGyro> 32767)
{
yGyro - = 65536;
}
zGyro = ((dados [5] * 256) + dados [4]);
if (zGyro> 32767)
{
zGyro - = 65536;
}
// Saída de dados para o painel
Particle.publish ("X-Axis of Rotation:", String (xGyro));
Particle.publish ("Y-Axis of Rotation:", String (yGyro));
Particle.publish ("Z-Axis of Rotation:", String (zGyro));
atraso (1000);
}
Etapa 5: Aplicativos:
O BMG160 possui um número variado de aplicações em dispositivos como telefones celulares, dispositivos de interface homem-máquina. Este módulo de sensor foi projetado para atender aos requisitos de aplicativos de consumo, como estabilização de imagem (DSC e telefone com câmera), jogos e dispositivos apontadores. Também é empregado em sistemas que requerem reconhecimento de gestos e nos sistemas utilizados na navegação interna.
Recomendado:
Introdução à interface do sensor I2C ?? - Interface do seu MMA8451 usando ESP32s: 8 etapas
Introdução à interface do sensor I2C ?? - Faça a interface do seu MMA8451 usando ESP32s: neste tutorial, você aprenderá tudo sobre como iniciar, conectar e fazer com que o dispositivo I2C (acelerômetro) funcione com o controlador (Arduino, ESP32, ESP8266, ESP12 NodeMCU)
Interface do sensor giroscópio de 3 eixos BMG160 com o Arduino Nano: 5 etapas
Interface do sensor giroscópio de 3 eixos BMG160 com o Arduino Nano: No mundo de hoje, mais da metade dos jovens e crianças gostam de jogos e todos aqueles que gostam disso, fascinados pelos aspectos técnicos dos jogos, sabem a importância do sensor de movimento neste domínio. Também ficamos maravilhados com a mesma coisa e
Interface Sensirion, SPS-30, sensor de partículas com Arduino Duemilanove usando o modo I2C: 5 etapas
Interface Sensirion, SPS-30, sensor de partículas com Arduino Duemilanove usando o modo I2C: Quando eu estava olhando para a interface dos sensores SPS30, percebi que a maioria das fontes eram para Raspberry Pi, mas não tantas para Arduino. Passei um tempinho fazendo o sensor funcionar com o Arduino e resolvi postar aqui minha experiência para que pudesse
Interface do sensor giroscópio de 3 eixos BMG160 com Raspberry Pi: 5 etapas
Interface do sensor giroscópio de 3 eixos BMG160 com Raspberry Pi: No mundo de hoje, mais da metade dos jovens e crianças gostam de jogos e todos aqueles que gostam disso, fascinados pelos aspectos técnicos dos jogos sabem a importância do sensor de movimento neste domínio. Também ficamos maravilhados com a mesma coisa e
GY-521 MPU6050 Giroscópio de aceleração de 3 eixos 6DOF Tutorial do módulo: 4 etapas
GY-521 MPU6050 Giroscópio de aceleração de 3 eixos 6DOF Tutorial: Descrição Este módulo simples contém tudo o que é necessário para fazer a interface com o Arduino e outros controladores via I2C (use a biblioteca Wire Arduino) e fornece informações de detecção de movimento para 3 eixos - X, Y e Z .EspecificaçõesFaixas do acelerômetro: ± 2, ±