Índice:
- Etapa 1: O que precisamos:
- Etapa 2: Construindo …
- Etapa 3: algumas informações extras antes de prosseguirmos
- Etapa 4: Código:
- Etapa 5: Teste e Conclusão
Vídeo: Medição de ângulo usando giroscópio, acelerômetro e Arduino: 5 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:40
O dispositivo é um protótipo grosseiro do que eventualmente se tornará um robô de autoequilíbrio, esta é a segunda parte do buraco (leia o acelerômetro e controle um motor para o autoequilíbrio). A primeira parte com apenas o giroscópio pode ser encontrada aqui. Neste instrutível, mediremos o ângulo usando o giroscópio e o acelerômetro, e usando uma técnica para mesclar os dois sensores para obter um sinal suave. A técnica é chamada de "filtro complementar". Anterior
Etapa 1: O que precisamos:
Alguma parte pode ser substituída, e algumas modificações no código devem ser feitas para se adequar ao seu hardware. Neste projeto usaremos: - Breadboard- Microcontrolador, usei o Arduinoboard- Wire- Jumper Wires- Gyroscope XV-8100- Nunchuck Wii (para o acelerômetro) - Adaptador Nunchuck Wii para Arduino
Etapa 2: Construindo …
O circuito consiste em um giroscópio conectado diretamente à porta 0 em seu arduino e um nunchuck wii conectado na porta I2C. Montagem do giroscópio: 1. - conecte o giroscópio no breadboard2. - conecte cada coisa: - Pino Vo do giroscópio conectado à porta 0 analógica no arduino (fio laranja claro) - Pino G do giroscópio conectado ao aterramento (fio branco) - Pino V + do giroscópio conectado ao Vdd (3,3V) (fio laranja) Montagem o acelerômetro: 1. - conecte o adaptador ao nunchuck2. - conecte o nunchuck no arduino usando o adaptador3. - coloque o sensor de aceleração como na foto acima
Etapa 3: algumas informações extras antes de prosseguirmos
De ambos os sensores podemos medir o ângulo, mas usando duas técnicas distintas. Para medir o ângulo usando o giroscópio, temos que integrar o sinal. Mas por que temos que fazer isso? Como o giroscópio nos dá a taxa angular, uma maneira simples de obter o ângulo é multiplicar a taxa angular pelo tempo [ângulo = ângulo + w * dt]. Para medir o ângulo usando um acelerômetro, temos que sentir a gravidade em cada eixo do acelerômetro, o que significa, a projeção da aceleração da gravidade em cada direção do sensor nos dá uma ideia sobre o ângulo. [angle_accel = arctg (Ay / sqrt (Ax ^ 2 + Az ^ 2))] Então, por que usaremos dois sensores em vez de um? Para aproveitar as vantagens de ambas as propriedades do sensor. Se você olhar no gráfico o aumento contínuo dos dados do giroscópio, isso é chamado de drift e os dados do acelerômetro mudam muito em um pequeno intervalo de tempo. E como mesclar os dois sinais? Usaremos uma técnica chamada filtro complementar. Não sei a teoria exata por trás disso, mas funciona bem. Existem algumas informações na internet, basta pesquisar no Google se precisar de mais informações. Este link contém muitas informações e pode ser útil. Ângulo_filtrado = HPF * (ângulo_filtrado + w * dt) + LPF * (acel_angulo); onde HPF + LPF = 1Os valores de HPF e LPF podem ser encontrados neste link, no arquivo filter.pdf. Obrigado a vocês do "The DIY Segway". Apenas para fins de teste, vamos definir esses valores como este, HPF = 0,98 e LPF = 0,02.
Etapa 4: Código:
O código é uma adaptação de um código que usei em outro projeto. Provavelmente, existem algumas variáveis não utilizadas. Usei uma biblioteca para ler os dados do nunchuck de https://todbot.com/blog/. Obrigado Tod E. Kurt. Os comentários sobre o código são em português, assim que eu tiver um tempo livre, irei traduzi-lo. A saída do código pela linha serial alguns números com este padrão: dt: w: teta: pitch: filter_teta $ time: angular_velocity: gyro_angle: accel_angle: filter_angle $ Assim, você pode salvar esses valores em um terminal serial e traçar um gráfico ou usar o ângulo para outras coisas. Se você precisar de alguma explicação sobre o código, pode perguntar. O código é ziped. Basta descompactar, abrir e fazer upload para o seu arduino.
Etapa 5: Teste e Conclusão
Para testar o sistema, salvei os dados usando um programa chamado Termite, depois importei esses dados no excel e plotei o gráfico para ver o quão bom é o meu filtro. Os resultados são surpreendentes. Claro que você pode usar o sinal para acionar um motor, ou outras coisas. Qualquer comentário, qualquer dúvida, alguma informação faltando, é só me avisar e eu corrijo. Por favor, se gostarem, avaliem. Obrigado a todos.
Recomendado:
DIY Como controlar o ângulo do servo motor usando o componente de sequência Visuino: 10 etapas
DIY Como controlar o ângulo do servo motor usando o componente de sequência Visuino: Neste tutorial, usaremos o servo motor e o Arduino UNO, e o Visuino para controlar o ângulo do servo motor usando o componente de sequência. O componente de sequência é perfeito para situações em que queremos acionar vários eventos em sequência no nosso caso servo motor degr
Mod de direção do acelerômetro / giroscópio do Xbox 360: 7 etapas
Mod de direção do acelerômetro / giroscópio do controlador do Xbox 360: Tenho jogado Assetto Corsa com o meu controlador do Xbox 360. Infelizmente, dirigir com o manche analógico é muito pesado e não tenho espaço para uma configuração de roda. Tentei pensar em maneiras de calçar um mecanismo de direção melhor para
Simulador de jogo do smartphone - jogue jogos do Windows usando o controle de gestos IMU, acelerômetro, giroscópio, magnetômetro: 5 etapas
SmartPhone Game Simulator- Jogue jogos do Windows usando Gesture Control IMU, acelerômetro, giroscópio, magnetômetro: Apoie este projeto: https://www.paypal.me/vslcreations doando para códigos de código aberto & suporte para maior desenvolvimento
Arduino Nano e Visuino: converta aceleração em ângulo do acelerômetro e giroscópio MPU6050 I2C Sensor: 8 etapas (com imagens)
Arduino Nano e Visuino: Converta aceleração em ângulo do acelerômetro e giroscópio MPU6050 I2C Sensor: Um tempo atrás eu postei um tutorial sobre como você pode conectar o acelerômetro MPU9250, o giroscópio e o sensor da bússola ao Arduino Nano e programá-lo com o Visuino para enviar dados do pacote e exibir em um escopo e instrumentos visuais. O acelerômetro envia X, Y
Arduino Nano: Acelerômetro Giroscópio Compasso MPU9250 I2C Sensor com Visuino: 11 etapas
Arduino Nano: Acelerômetro Giroscópio Compass MPU9250 I2C Sensor com Visuino: MPU9250 é um dos mais avançados sensores combinados de acelerômetro, giroscópio e bússola de tamanho pequeno disponíveis atualmente. Eles têm muitos recursos avançados, incluindo filtragem de passagem baixa, detecção de movimento e até mesmo um processador especializado programável