Wolfram Language

Filtre dados I2C

Na comunicação de um circuito integrado (I2C), um dispositivo mestre pode conversar com até 128 dispositivos escravos. Cada escravo é identificado por um endereço exclusivo e a transferência de dados ocorre na linha Serial Data (SDA). A outra linha é a linha Serial Clock (SCL). O I2C também é conhecido como interface de dois fios (TWI).

mostre o input completo da Wolfram Language

Neste exemplo, um Arduino Nano foi programado para ler os dados de um acelerômetro e um giroscópio de um sensor MPU-6050. O ângulo de orientação do sensor pode ser calculado com as leituras do acelerômetro ou do giroscópio. Esses cálculos são imprecisos porque o primeiro sinal é barulhento e o segundo oscila durante o estado estacionário. Portanto, é usado um filtro complementar, que combina os dois valores. Os valores não filtrados e filtrados serão enviados de volta pelo barramento serial e visualizados.

A aceleração ao longo dos eixos e , a temperatura e a velocidade angular ao longo do eixo axis are stored in two bytes, são armazenadas em dois bytes, cada um começando no endereço 0x3D. A seguir está a especificação para obter esses 8 bytes.

A especificação de inicialização.

O endereço do MPU-6050 é 0x68. Aqui está a especificação completa.

A conversão para cada canal de entrada.

mostre o input completo da Wolfram Language

A especificação completa do microcontrolador.

Um bloco pré-filtro calcula o ângulo em graus dos dados do acelerômetro e também a velocidade angular em graus por segundo dos dados do giroscópio.

Um filtro complementar pega as saídas do pré-filtro e calcula um valor de ângulo filtrado.

Um integrador calcula o ângulo apenas integrando a velocidade angular.

O modelo completo dos sistemas.

Implemente o código.

Abra uma conexão com o Arduino Nano.

Crie uma tarefa para ler os dados.

Analise e faça um gráfico dos dados.

mostre o input completo da Wolfram Language

Exclua a tarefa e encerre a conexão com o dispositivo.

Exemplos Relacionados

de en es fr ja ko zh