// // // PHPH.com.br - Plataforma de aquisição de dados de um giroscópio, acelerômetro e termômetro MPU-6050 com o LabVIEW e Arduino
All for Joomla All for Webmasters

Plataforma de aquisição de dados de um giroscópio, acelerômetro e termômetro MPU-6050 com o LabVIEW e Arduino

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):

oscilacoes fortes aleatorias

oscilacoes fortes aleatorias

aceleracao ventoinha stacked

aceleracao ventoinha stacked

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:

labview6 projeto

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.

labview1 loop principal

labview1 loop 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:

labview4 processamento linha

labview4 processamento linha

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:

labview2 deteccao simbolos

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:

labview3 processamento simbolos

labview3 processamento simbolos

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:

labview5 tratamento erros

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:

visual studio visual micro codigo fonte

visual studio visual micro codigo fonte

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:

visual studio visual micro serial monitor

visual studio visual micro serial monitor

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

Deixe um comentário

Certifique-se de preencher os campos indicados com (*). Não é permitido código HTML.