Índice:

Rastreamento de movimento usando MPU-6000 e fóton de partículas: 4 etapas
Rastreamento de movimento usando MPU-6000 e fóton de partículas: 4 etapas
Anonim
Image
Image

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 fóton de partícula foi ilustrada. Para ler os valores de aceleração e ângulo de rotação, usamos partícula 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:

Hardware necessário
Hardware necessário
Hardware necessário
Hardware necessário
Hardware necessário
Hardware necessário

Os materiais necessários para realizar nossa tarefa incluem os componentes de hardware mencionados abaixo:

1. MPU-6000

2. Partícula de fóton

3. Cabo I2C

4. Escudo I2C para partícula de fóton

Etapa 2: Conexão de Hardware:

Conexão de hardware
Conexão de hardware
Conexão de hardware
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 fóton da 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 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:

Código para rastreamento de movimento
Código para rastreamento de movimento

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:

# include # include // MPU-6000 I2C address is 0x68 (104) #define Addr 0x68 int xGyro = 0, yGyro = 0, zGyro = 0, xAccl = 0, yAccl = 0, zAccl = 0; void setup () {// Definir a variável Particle.variable ("i2cdevice", "MPU-6000"); Particle.variable ("xAccl", xAccl); Particle.variable ("yAccl", yAccl); Particle.variable ("zAccl", zAccl); 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, definir a taxa de transmissão = 9600 Serial.begin (9600); // Inicia a transmissão I2C Wire.beginTransmission (Addr); // Selecione o registro de configuração do giroscópio Wire.write (0x1B); // Faixa de escala total = 2000 dps Wire.write (0x18); // Pára a transmissão I2C Wire.endTransmission (); // Inicia 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); // Pára a transmissão I2C Wire.endTransmission (); // Inicia 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); // Pára a transmissão I2C Wire.endTransmission (); atraso (300); } void loop () {dados internos não assinados [6]; // Inicia a transmissão I2C Wire.beginTransmission (Addr); // Selecione o registro de dados Wire.write (0x3B); // Pára a transmissão I2C Wire.endTransmission (); // Solicita 6 bytes de dados Wire.requestFrom (Addr, 6); // Lê 6 bytes de dados if (Wire.available () == 6) {data [0] = Wire.read (); dados [1] = Wire.read (); dados [2] = Wire.read (); dados [3] = Wire.read (); dados [4] = Wire.read (); dados [5] = Wire.read (); } atraso (800); // Converte os dados xAccl = ((data [1] * 256) + data [0]); if (xAccl> 32767) {xAccl - = 65536; } yAccl = ((dados [3] * 256) + dados [2]); if (yAccl> 32767) {yAccl - = 65536; } zAccl = ((dados [5] * 256) + dados [4]); if (zAccl> 32767) {zAccl - = 65536; } atraso (800); // Inicia a transmissão I2C Wire.beginTransmission (Addr); // Selecione o registro de dados Wire.write (0x43); // Pára a transmissão I2C Wire.endTransmission (); // Solicita 6 bytes de dados Wire.requestFrom (Addr, 6); // Lê 6 bytes de dados if (Wire.available () == 6) {data [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 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; } // Dados de saída para o painel Particle.publish ("Aceleração no eixo X:", String (xAccl)); atraso (1000); Particle.publish ("Aceleração no eixo Y:", String (yAccl)); atraso (1000); Particle.publish ("Acceleration in Z-Axis:", String (zAccl)); atraso (1000); Particle.publish ("X-Axis of Rotation:", String (xGyro)); atraso (1000); Particle.publish ("Y-Axis of Rotation:", String (yGyro)); atraso (1000); Particle.publish ("Z-Axis of Rotation:", String (zGyro)); atraso (1000); }

A função Particle.variable () cria as variáveis para armazenar a saída do sensor e a função Particle.publish () exibe a saída no painel do site.

A saída do sensor é mostrada na imagem acima para sua referência.

Etapa 4: Aplicativos:

Formulários
Formulários

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: