Índice:
- Etapa 1: Hardware necessário:
- Etapa 2: Conexão de Hardware:
- Etapa 3: Código para rastreamento de movimento:
- Etapa 4: Aplicativos:
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:35
MPU-6000 é um sensor de rastreamento de movimento de 6 eixos com acelerômetro de 3 eixos e giroscópio de 3 eixos embutidos. Este sensor é capaz de rastrear de forma eficiente a posição e localização exata de um objeto no plano tridimensional. Pode ser empregado em sistemas que requerem análise de posição com a mais alta precisão.
Neste tutorial, a interface do módulo sensor MPU-6000 com o arduino nano foi ilustrada. Para ler os valores de aceleração e ângulo de rotação, usamos o arduino nano com um adaptador I2c. Este adaptador I2C torna a conexão ao módulo sensor mais fácil e confiável.
Etapa 1: Hardware necessário:
Os materiais de que precisamos para cumprir nosso objetivo incluem os seguintes componentes de hardware:
1. MPU-6000
2. Arduino Nano
3. Cabo I2C
4. Escudo I2C para arduino nano
Etapa 2: 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 o arduino nano. 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 MPU-6000 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 3: Código para rastreamento de movimento:
Vamos começar com o código do Arduino agora.
Ao usar o módulo sensor com o arduino, incluímos a biblioteca Wire.h. A biblioteca "Wire" contém as funções que facilitam a comunicação i2c entre o sensor e a placa arduino.
Todo o código do arduino é fornecido abaixo para a conveniência do usuário:
#incluir
// O endereço I2C do MPU-6000 é 0x68 (104)
#define Addr 0x68
void setup ()
{
// Inicializar a comunicação I2C como Mestre
Wire.begin ();
// Inicialize a comunicação serial, defina a taxa de transmissão = 9600
Serial.begin (9600);
// Iniciar a transmissão I2C
Wire.beginTransmission (Addr);
// Selecione o registro de configuração do giroscópio
Wire.write (0x1B);
// Faixa de escala total = 2.000 dps
Wire.write (0x18);
// Pare a transmissão I2C
Wire.endTransmission ();
// Iniciar a transmissão I2C
Wire.beginTransmission (Addr);
// Selecione o registro de configuração do acelerômetro
Wire.write (0x1C);
// Faixa de escala total = +/- 16g
Wire.write (0x18);
// Pare a transmissão I2C
Wire.endTransmission ();
// Iniciar a transmissão I2C
Wire.beginTransmission (Addr);
// Selecione o registro de gerenciamento de energia
Wire.write (0x6B);
// PLL com referência xGyro
Wire.write (0x01);
// 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 (0x3B);
// Pare a transmissão I2C
Wire.endTransmission ();
// Solicita 6 bytes de dados
Wire.requestFrom (Addr, 6);
// Lê 6 bytes de dados
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 ();
}
// Converta os dados
int xAccl = dados [0] * 256 + dados [1];
int yAccl = dados [2] * 256 + dados [3];
int zAccl = dados [4] * 256 + dados [5];
// Iniciar a transmissão I2C
Wire.beginTransmission (Addr);
// Selecione o registro de dados
Wire.write (0x43);
// Pare a transmissão I2C
Wire.endTransmission ();
// Solicita 6 bytes de dados
Wire.requestFrom (Addr, 6);
// Lê 6 bytes de dados
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 ();
}
// Converta os dados
int xGyro = dados [0] * 256 + dados [1];
int yGyro = dados [2] * 256 + dados [3];
int zGyro = dados [4] * 256 + dados [5];
// Dados de saída para monitor serial
Serial.print ("Aceleração no eixo X:");
Serial.println (xAccl);
Serial.print ("Aceleração no eixo Y:");
Serial.println (yAccl);
Serial.print ("Aceleração no eixo Z:");
Serial.println (zAccl);
Serial.print ("Eixo X de rotação:");
Serial.println (xGyro);
Serial.print ("Eixo Y de rotação:");
Serial.println (yGyro);
Serial.print ("Eixo Z de rotação:");
Serial.println (zGyro);
atraso (500);
}
Na biblioteca de fios, Wire.write () e Wire.read () são usados para escrever os comandos e ler a saída do sensor.
Serial.print () e Serial.println () são usados para exibir a saída do sensor no monitor serial do IDE do Arduino.
A saída do sensor é mostrada na imagem acima.
Etapa 4: Aplicativos:
MPU-6000 é um sensor de rastreamento de movimento, que encontra sua aplicação na interface de movimento de smartphones e tablets. Em smartphones, esses sensores podem ser empregados em aplicativos como comandos de gestos para aplicativos e controle de telefone, jogos aprimorados, realidade aumentada, captura e visualização de fotos panorâmicas e navegação de pedestres e veículos. A tecnologia MotionTracking pode converter aparelhos e tablets em poderosos dispositivos 3D inteligentes que podem ser usados em aplicações que variam de monitoramento de saúde e condicionamento físico a serviços baseados em localização.
Recomendado:
Sistema de rastreamento de movimento da cabeça para VR: 8 etapas
Head Motion Tracking System para VR: Meu nome é Sam KODO, neste tutorial, vou ensinar você passo a passo como usar os sensores Arduino IMU para construir um sistema de head tracking para VR. Neste projeto você vai precisar de: - Um LCD Display HDMI : https: //www.amazon.com/Elecrow-Capacitive-interfac…- Um
Rastreamento de movimento do olho humano: 6 etapas
Rastreamento de movimento do olho humano: Este projeto tem como objetivo capturar o movimento do olho humano e exibir seu movimento em um conjunto de luzes LED colocadas na forma de um olho. Este tipo de projeto pode potencialmente ter muitos usos no campo da robótica e, especificamente, huma
Motor em movimento com rastreamento ocular: 8 etapas
Motor em movimento com rastreamento ocular: Atualmente, os sensores de rastreamento ocular são mais comuns em várias áreas, mas comercialmente são mais conhecidos por jogos interativos. Este tutorial não pretende elaborar os sensores por ser muito complexo e devido ao seu uso cada vez mais comum o
QeMotion - rastreamento de movimento para cada fone de ouvido !: 5 etapas (com imagens)
QeMotion - Rastreamento de movimento para todos os fones de ouvido !: Visão geral: este dispositivo permite que você utilize o movimento da cabeça para acionar eventos em basicamente qualquer videogame. Ele funciona rastreando o movimento de sua cabeça (ou fone de ouvido) e acionando pressionamentos de teclado para certos movimentos. Então, seu comp
Rastreamento de movimento ocular usando sensor infravermelho: 5 etapas
Rastreamento de movimento ocular usando sensor infravermelho: usei um sensor infravermelho para detectar os movimentos dos olhos e controlar o LED. Fiz globos oculares com fita LED NeoPixel