Plataforma de aquisição de dados de um giroscópio, acelerômetro e termômetro MPU-6050 com o LabVIEW e Arduino
- Publicado em LabVIEW
Nesta aplicação, apresentaremos um software desenvolvido nos ambientes de desenvolvimento National Instruments LabVIEW e Microsoft Visual Studio 2013 (Visual Micro) para aquisição e processamento dos dados de um acelerômetro, giroscópio, termômetro e unidade de processamento de motivos (MPU), combinados no chip MPU-6050 da empresa InvenSense, conectado em uma plataforma de hardware Arduino, que por sua vez é conectado ao computador por meio de sua porta Serial/USB.
Software de aquisição e processamento de dados (LabVIEW)
O software desenvolvido objetivou a aquisição e processamento dos dados de um sensor MPU-6050 (ênfase na aceleração e giroscópio), retransmitidos ao PC por meio de um sistema embarcado Arduino, com a exibição em tempo real por meio de gráficos (os três eixos X-Y-Z podem ser combinados ou não):
No ambiente de desenvolvimento NI LabVIEW, organizamos o aplicativo para aquisição, processamento e exibição dos dados obtidos do sensor MPU-6050 (acelerômetro, giroscópio e termômetro) em um projeto composto por sete arquivos VIs, conforme imagem abaixo, sendo cada um deles responsável pela execução de uma tarefa específica, além do VI principal main.vi, que possui o loop principal do software:
Conforme imagem abaixo, devido à utilização dos subVIs (encapsulamento), o loop principal é simples e engloba as etapas principais do aplicativo: aquisição de dados por meio da interface VISA, processamento de texto, processamento de erros e exibição dos dados obtidos em três gráficos na tela principal.
Ainda, de acordo com os demais artigos referentes à plataforma de hardware/sistema embarcado Arduino, o mesmo dispõe de uma interface Serial/USB, que é responsável pelo envio de texto ao host por meio de uma porta de comunicação USB COMx ao computador, que pode ser obtido no software LabVIEW por meio da interface VISA (Virtual Instrument Software Architecture).
Os dados obtidos do Arduino que por sua vez foram emitidos pelo MPU-6050 são processados por meio do VI ProcessadorTexto.vi, que utiliza os subVIs EncontrarSimbolosUmaLinha.vi e ProcessaSimbolo.vi, conforme a imagem abaixo. Perceba que erros na aquisição dos dados podem ocorrer e que nessa aplicação são resolvidos pelo descarte dos dados referentes a um pacote contendo os valores de sete registradores do MPU-6050 e obtenção do próximo conjunto de dados:
Os subVIs de processamento de texto foram desenvolvidos em conjunto com a programação do firmware. O subVI de detecção de símbolos em uma linha é o responsável por analisar um pacote de dados e extrair todos os símbolos contidos na mesma em um vetor de símbolos destinado ao subVI seguinte:
Na análise e processamento dos símbolos encontrados em um pacote de dados, temos as configurações de conversão dos dados brutos obtidos do MPU-6050 referentes ao acelerômetro para 'g', referente à unidade de aceleração não-SI equivalente à aceleração gravitacional da Terra, termômetro para graus Celsius e giroscópio para graus por segundo. Essas conversões numéricas são dependentes da configuração do sensor estabelecida na programação do firmware. Em caso de erros, um erro é disparado e será processado no subVI correspondente ao tratamento desses eventos:
Uma vez que o sistema não é crítico e visa apenas a aquisição e processamento de dados, o tratamento de erros consiste no registro dos erros encontrados durante o processamento dos dados obtidos e o loop principal é interrompido apenas em caso de um erro crítico:
Firmware do sistema embarcado Arduino (Visual Micro)
Por meio do ambiente de desenvolvimento Visual Studio 2013, em conjunto com a extensão Visual Micro, o firmware foi escrito em linguagem C e programado simultenamente com o software principal LabVIEW, facilitando o tratamento dos dados obtidos e correção de bugs. Não obstante esse sistema embarcado dispor de uma IDE gratuita, nenhum editor de código-fonte se compara ao profissionalismo do editor do Visual Studio:
Com a extensão Visual Micro destinada ao desenvolvimento de código-fonte para a plataforma Arduino, podemos usar o Visual Studio com os mesmos recursos disponíveis na IDE principal do Arduino, inclusive o monitor de dados seriais, conforme imagem a seguir:
No caso desta aplicação, o firmware executa a configuração do MPU-6050 (principalmente, as escalas de variação do giroscópio e acelerômetro) e obtenção dos dados do mesmo por meio de uma interface I²C (a biblioteca Wire.h foi utilizada) para posterior retransmissão dos mesmos ao computador por meio de uma porta Serial/USB.
5 comentários
-
Ranilson Nunes Terça, 25 Junho 2019 23:10 Link do comentário
ola tudo bom? vcs enviam os arquivos? email : ranilsonnunes6@gmail.com. mt obrigado
-
Felipe Ferreira Terça, 14 Maio 2019 13:25 Link do comentário
Poderia enviar os arquivos estou querendo extrair dados do MPU6050 para um trabalho de monografia.
felipesdt@gmail.com -
Marcos Terça, 20 Setembro 2016 13:23 Link do comentário
bom dia!
poderia me enviar os arquivos?
grato, -
Marcos Terça, 20 Setembro 2016 13:20 Link do comentário
bom dia!
poderia me enviar os arquivos?
meu email é masmes@bol.com.br
grato,
Marcos -
Pedro Brunetto Segunda, 05 Outubro 2015 06:55 Link do comentário
Vocês podem enviar os arquivos por favor?