Monitoramento estrutural de obras civis utilizando a plataforma Arduino e sensores de baixo custo – Prototipagem rápida

Por Douglas Bellomo Cavalcante e Henrique Frank Werner Puhlmann

 

Introdução

 

Neste artigo técnico é apresentada uma solução de prototipagem rápida desenvolvida com a finalidade de permitir a avaliação de desempenho de um acelerômetro comercial de baixo custo (MPU-6050 [1]) e um outro acelerômetro comercial um pouco mais sofisticado (ADXL355 [2]) e comparar esses desempenhos com o desempenho de um acelerômetro profissional de alto custo (Silicon Designs – modelo 2210-002 [3]) utilizado nos monitoramentos estruturais de construções civis.

.

Desenvolvimento do sistema

 

Desenvolvimento do hardware

 

Foi escolhido o ARDUINO modelo Leonardo como plataforma de prototipagem. Inicialmente foi projetada e montada uma placa de ligação entre os acelerômetros e o ARDUINO fazendo a função de um shield. Essa placa permite fácil conexão dos acelerômetros com o ARDUINO Leonardo.

Para definir as tensões de alimentação, observamos que o ARDUINO Leonardo opera com 5 Vcc. O acelerômetro MPU-6050 pode operar com diversas tensões de alimentação. O ADXL355, porém, apenas com 3,3 Vcc. Isso acabou determinando que a tensão de alimentação dos acelerômetros ficasse definida como 3,3 Vcc. Foi necessário acrescentar um conversor de nível lógico nos sinais de comunicação e interrupção para compatibilizar os níveis dos sinais. Utilizamos um desses conversores bi-direcionais com quatro canais lógicos, que são facilmente adquiridos no mercado local. Se você tiver curiosidade em saber como um desses conversores de nível lógico funciona, leia o seguinte artigo técnico:

Para acelerar o desenvolvimento do protótipo, foram compradas placas de avaliação para os dois acelerômetros: Placas do GY-521 ou também breakout board para o MPU-6050, como se pode observar na Figura 1, e as placas EVAL-ADXL355-PMDZ para o acelerômetro ADXL355 (Figura 2).

Figura 1 – Módulo GY-521 e seu esquema elétrico

Figura 2 – Módulo EVAL-ADXL355-PMDZ e seu esquema elétrico

Inicialmente seguimos a sequência dos sinais definida no conector da placa GY-521 e utilizamos um cabo plano para conduzir os sinais até a nosso shield. Esse arranjo pode ser observado nas Figuras 3 e 4.

Figura 3 -Vista das conexões do cabo com a placa GY-521

Figura 4 -Vista do shield e das conexões do cabo com a placa GY-521

Da placa GY-521 foram utilizados os seguintes sinais:

  • VCC (+3,3 Vcc )
  • GND
  • SCL
  • SDA
  • INT

 

Na seqüência foi montado o cabo do módulo EVAL-ADXL355-PMDZ, de forma que os sinais de alimentação, comunicação e controle ficassem posicionados nos mesmos pinos que o cabo do GY-521. Pode-se observar o esquema de conexões na Figura 5.

Figura 5 – Esquema de conexões do cabo que interliga o módulo  EVAL-ADXL355-PMDZ com o shield.

Na Figura 6 pode-se observar uma vista do cabo e suas conexões.

Figura 6 – Vista do cabo e suas conexões

Observe que os sensores estão montados sobre um cubo. Esses cubos foram usinados com um bom grau de precisão para que suas faces opostas ficassem paralelas e as faces adjacentes perpendiculares. O cubo facilitou a fixação dos acelerômetros nos dispositivos de ensaio e o manuseio para testes mais simples.

.

Desenvolvimento do software

 

Foram desenvolvidos três programas de computador para esse projeto.

 

Programa de aquisição de dados

O programa de aquisição de dados desenvolvido em Visual C, que é executado no PC e captura os dados enviados pelo ARDUINO. A partir desses dados, o programa lista os valores brutos na tela, traça um gráfico dos sinais capturados e os armazena num arquivo no formato de planilha eletrônica, valores separados por vírgula (.CSV). O motivo para se escolher esse formato de dados foi para que ficasse compatível com a saída do sistema profissional que seria utilizado durante a avaliação. Isso facilitaria análise e comparação das medidas. Na Figura 7 pode-se observar a tela gerada pelo programa de aquisição de dados

Figura 7 – Tela do programa de aquisição de dados

Repare que na Figura 7 foi realizada a aquisição de dados do MPU-6050, posicionando o sensor nas 6 possíveis faces do cubo.

O programa de aquisição de dados nos permite escolher a porta COM de comunicação serial, onde o ARDUINO está conectado, e tenta verificar essa comunicação. Pode-se observar o piscar de um LED na placa do ARDUINO durante essa operação.

O programa de aquisição de dados está disponível para download nos links a seguir.

São três versões compatíveis com as 3 velocidades de transmissão serial indicadas. Trata-se de um programa “executável” (.EXE) para o sistema operacional Windows. Foi testado no Windows 7. O programa é auto-suficiente, não se instala no computador. Basta iniciá-lo.

 

Programas para o ARDUINO

Para desenvolver os programas, foi instalado num microcomputador o conjunto de ferramentas VSC (Visual Studio Code da Microsoft)  e o Platformio (uma plataforma de desenvolvimento open source profissional para o ARDUINO). Esse conjunto de ferramentas facilita o trabalho do desenvolvedor e otimiza o tempo de desenvolvimento. Se você quiser conhecer melhor esse conjunto de ferramentas ou até instalá-lo no seu computador, leia o seguinte artigo técnico:

No artigo do Giovanni é explicado com detalhes como baixar e instalar esses programas.

 

MPU-6050

O programa desenvolvido para o Arduino contém destacadas as principais definições para os parâmetros de programação do MPU-6050. Você pode alterá-los e compilar o programa para o seu caso de uso. Note que a programação e cálculo dos parâmetros do acelerômetro não é coisa trivial de se fazer. É recomendável realizar uma leitura criteriosa dos manuais:

O programa que é executado no Arduino, ao ligar, inicializa diversos parâmetros no acelerômetro e entra no loop principal esperando receber um comando do programa de aquisição de dados. Esse comando pode ser:

  • Aquisitar – Inicia-se a aquisição de dados;
  • Parar      – Encerra-se a aquisição de dados.

Quando acionado o comando Aquisitar, é iniciada a coleta de dados do acelerômetro no modo de interrupção, quando é coletado um conjunto completo de dados de uma só vez (os 3 eixos). Para isso é ativada a FIFO de dados coletados e foi constatado de que havia a necessidade de se prever um “colchão” de pelo menos dois conjuntos completos de dados anteriores de forma que sempre que fosse realizada a leitura, os dados correspondentes ao mesmo conjunto estariam disponíveis para a leitura simultânea. Coisa que não acontece se não for tomado esse cuidado. Depois esses dados são convertidos e escalonados para que possam ser transmitidos ao PC, que realiza a aquisição de dados, enquanto não receber o comando Parar. O comando Parar encerra a aquisição dos dados no Arduino e conduz o programa de volta ao estado de espera.

O programa desenvolvido pode ser baixado na forma de um projeto completo do Platformio, no link a seguir.

Basta descompactar o projeto no diretório de sua preferência e utilizar o Platformio para abrir esse projeto (Figura 8).

Figura 8 – Como abrir o projeto

 

ADXL355

O programa desenvolvido para o Arduino contém destacadas as principais definições para os parâmetros de programação do ADXL355. Nesse projeto você também pode alterar e recompilar o programa para o seu caso de uso. É recomendável realizar uma leitura criteriosa dos manuais antes de alterar os parâmetros:

O programa para o ADXL355, na sua essência, é o mesmo desenvolvido para o MPU-6050. Foram realizados ajustes de escala dos dados para que não fosse necessário desenvolver outro programa específico para o PC. O mesmo programa funciona para os dois acelerômetros.

O programa desenvolvido pode ser baixado na forma de um projeto completo do Platformio, no link a seguir.

Para descompactar o program e abri-lo é só seguir o mesmo roteiro que foi usado para o MPU-6050.

 

Conclusão

 

Este artigo apresentou uma solução de prototipagem rápida com desenvolvimento de hardware e software que viabilize a comparação dos dados gerados pelos acelerômetros selecionados com um acelerômetro de uso profissional. Os resultados dessa comparação você pode conferir no próximo artigo dessa série.

.

Monitoramento estrutural de obras civis utilizando a plataforma Arduino e sensores de baixo custo

Outros artigos da série

Referências

 

[1] MPU-6000 and MPU-6050 Product Specification

[2] AXL354/355[2]

[3] Especificações resumidas do acelerômetro Silicon Designs – modelo 2210-002

[4] MPU-6000 Register Map and Descriptions

[5] ADXL355 PMOD Hardware User Guide

 

Licença Creative Commons
Esta obra, “Monitoramento estrutural de obras civis utilizando a plataforma Arduino e sensores de baixo custo – Prototipagem rápida“, de Douglas Bellomo Cavalcante e Henrique Frank Werner Puhlmann está sob a licença Creative Commons Atribuição-NãoComercial-CompartilhaIgual 4.0 Internacional.

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google

Você está comentando utilizando sua conta Google. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s