Medindo Distâncias com Arduino
Jader Bernardes, Lisiane Diehl
- Evento
- Simpósio Nacional de Ensino de Física ↗ (SNEF)
- Edição
- XXI
- Ano
- 2015
- Data
- 28/01/2015
- Linha de pesquisa
- Materiais, Métodos E Estratégias De Ensino De Física
- Tipo
- Pôster
Abrir o PDF original ↗ Baixar referência .bib Ver todos do SNEF 2015
Texto completo
## MEDINDO DISTÂNCIAS COM ARDUINO
## Jader Bernardes¹, Lisiane Diehl¹
- 1 UFRGS/Instituto de Física/ Mestrado Profissional em Ensino de Física, jaderb@pop.com.br
## Resumo
No presente trabalho buscou-se explorar as possibilidades de uso do sensor ultrassônico HC-SR04 e o microcontrolador Arduino, em diferentes formas (utilidades) de como medir distâncias em um intervalo de tempo definido. Com o microprocessador pode-se prédeterminar o intervalo de tempo, em função do tempo de retardo (delay) na rotina de programação do microcontrolador Arduino, possibilitando coletar variadas medidas de distância com mesmo intervalo de tempo entre elas. As etapas de utilização do microcontrolador Arduino passam desde o processo de construção do circuito, coleta e armazenagem de dados; que são visualizados em formato .txt e transferidos para planilha Excel, plotagem e visualização gráÞca, e análise dos resultados. Para cada etapa de coleta de dados apresentamos algumas propostas didáticas de utilização, com descrição do código fonte (biblioteca, sketch) necessário para interação com o Arduino, com análise dos dados coletados, as possibilidades de análise e usos em aula, sempre com foco na interação do aluno na coleta de dados experimental e os conceitos teóricos .
Palavras-chave : Arduino, sensor ultrassônico, distâncias, tempo definido.
## 1. INTRODUÇÃO
- O ser humano possui uma capacidade surpreendente de evolução, adaptação e superação, e atualmente o professor necessita adaptar-se a um novo perfil de aluno. A velocidade de informações e acesso a novas tecnologias fazem com que se pense um novo fazer pedagógico, didático, novas formas de se trabalhar com conceitos e conteúdos de cinemática (entre outros).
Não há como simplesmente 'montar' um experimento que simule uma prédeterminada situação de estudo, com trilhos, móveis, cronômetro, etc. É necessário estímulos para desenvolver o raciocínio e a criatividade, formas de relacionar conceito teórico e atividade prática.
- A metodologia experimental de aquisição de dados por computador ou microprocessador possibilita real uso das técnicas de análise estatística de dados experimentais. Além da melhora na precisão dos resultados, há uma redução no tempo de coleta de dados e a rápida representação dos mesmos em forma de grá Þ cos, transformando o laboratório de Física num ambiente de construção do conhecimento. O estudante pode observar o fenômeno, predizer seu comportamento pelo modelo teórico, explicar possíveis diferenças entre o previsto e o observado e ainda reformular suas hipóteses, fazer ajustes experimentais e testar novamente. A agilidade e 'metamorfose' desse processo provocam a curiosidade e maior interesse dos estudantes visto que a aula de laboratório se torna um desafio
26 a 30 de janeiro de 2015
Não se justifica simplesmente um resultado ruim com afirmações do tipo: 'foram obtidos poucos dados' ou, 'o instrumento de medida não estava corretamente calibrado'. É necessário buscar melhorias na formulação de hipóteses e comparar os resultados obtidos com os previstos, além de exercitar a identificação das possíveis fontes de erro e propor soluções para minimizá-los.
- A interação entre o conceito teórico e a atividade prática poderá ser realizada através da metodologia experimental de aquisição de dados por computador ou microprocessador. Buscando esta interação e, como público-alvo alunos da primeira série do Ensino Médio, elaborou-se um projeto com a utilização do sensor ultrassônico HC-SR04 e o microcontrolador Arduino.
- O microcontrolador Arduino e o sensor ultrassônico HC-SR04 permitem medir distâncias em intervalos de tempo definidos com possibilidades práticas de verificação de diferentes movimentos, estudados na dinâmica e cinemática. Ao se pré-determinar o tempo entre as medições (delay) na rotina de programação do Arduino, permitem-se variações na coleta de medidas de distâncias, propiciando situações em que o aluno poderá simular um movimento com velocidade constante, variação de velocidade e movimento uniformemente variado.
A utilização do Arduino se faz em etapas sucessivas: construção do circuito, programação do microcontrolador, calibração do sistema, coleta e armazenagem de dados em formato .txt, montagem da tabela Excel com os dados coletados e visualização grá Þ ca (construção dos gráficos).
Para cada etapa de coleta de dados, descreve-se o código fonte (biblioteca, sketch) necessário para interação com o Arduino, são exibidos os gráficos e sugerem-se possibilidades de análise e uso em aula. De acordo com a necessidade, o intervalo de tempo entre as medições pode ser alterado, e é de suma importância que o aluno saiba que pode ser alterado e qual é o valor do delay .
## 1.1 MONTAGEM DO CIRCUITO
As figuras 1 e 2 mostram o esquema de montagem do circuito com sensor de distância e o microcontrolador Arduino.
Figura 1 - Esquema de montagem do circuito
<!-- image -->
Figura 2 - Imagem do esquema de montagem do circuito
<!-- image -->
## 1.2 PROGRAMAÇÃO ARDUINO
O código para upload no Arduino está a seguir, lembrando que é necessário identificar o modelo de microprocessador a ser utilizado (neste caso foi utilizado o Arduino Duemilanove ATMEGA 328P-PU, conforme figura 3), caso contrário os comandos não serão reconhecidos.
\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_
Os textos que estão depois das barras duplas são explicações sobre os comandos que foram empregados naquela linha.
Figura 3 - Identificação do Arduino: ATMEGA 328P-PU
<!-- image -->
#include "Ultrasonic.h" #define echoPin 13 // Pino 13 recebe o pulso do echo. #define trigPin 12 // Pino 12 envia o pulso para gerar o echo. // Iniciando a função e passando os pinos. Ultrasonic ultrasonic(12,13); void setup() { Serial.begin(9600); // Inicia a porta serial pinMode(echoPin, INPUT); // Define o pino 13 como entrada (recebe) pinMode(trigPin, OUTPUT);
## 2. EMBASAMENTO CONCEITUAL
## 2.1 PLANO INCLINADO
O movimento de um móvel durante a descida em um plano inclinado é influenciado pela aceleração da gravidade, ocasionando a variação de sua velocidade.
O móvel é colocado (sem velocidade inicial), parte do repouso num plano de inclinação θ executando um movimento de descida ao longo do plano, atuando uma força resultante , de acordo com a 2ª Lei de Newton. Se desconsiderarmos o atrito, essa força é igual à componente paralela ao plano inclinado do peso .
Em função da componente paralela ao plano a aceleração será de:
(equação 1), em função de que,
(equação 2), desta forma tem-se:
<!-- formula-not-decoded -->
\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_
// Define o pino 12 como saída (envia) } void loop() { // Seta o pino 12 com um pulso baixo "LOW" ou desligado ou ainda 0 digitalWrite(trigPin, LOW); // Delay de 2 microssegundos delayMicroseconds(2); // Seta o pino 12 com pulso alto "HIGH" ou ligado ou ainda 1 digitalWrite(trigPin, HIGH); // Delay de 50 microssegundos delayMicroseconds(10); // Seta o pino 12 com pulso baixo novamente digitalWrite(trigPin, LOW); // Função Ranging, faz a conversão do tempo de // resposta do echo em centímetros, e armazena // na variável distancia int distancia = (ultrasonic.Ranging(CM)); Serial.print("Distancia em CM: "); Serial.println(distancia); delay(1000); // Intervalo de tempo em milissegundos para fazer a leitura novamente
Como v0 = 0 (parte do repouso) e nos tempos medidos a partir do instante inicial do movimento (t0 = 0), a sua velocidade será dada por:
<!-- formula-not-decoded -->
Sendo a origem do movimento a posição inicial do corpo (x0 = 0), a lei do movimento será:
<!-- formula-not-decoded -->
## 2.2 MOVIMENTOS RETÍLINEOS
Caracteriza-se o MRU (Movimento Retilíneo Uniforme) quando um móvel descreve deslocamentos iguais, em trajetória retilínea, em intervalos de tempos iguais. Desta forma, a lei do movimento, com velocidade constante, será.
<!-- formula-not-decoded -->
O MRUV (Movimento Retilíneo Uniformemente Variado) é caracterizado por deslocamentos variados (diferentes) a intervalos de tempo constantes, com variação de velocidade constante. Esta variação constante de velocidade deve-se ao fato de que a aceleração é constante, sendo a lei do movimento, também denominado de uniformemente acelerado, descrito por:
<!-- formula-not-decoded -->
O Movimento Retilíneo Variado caracteriza-se por deslocamentos variados em intervalos de tempos iguais. A cada intervalo de tempo a velocidade e a aceleração desenvolvidas, ou seja, somente os intervalos de tempos são constantes. O valor da aceleração média pode ser calculado pela equação 2.2.4
<!-- formula-not-decoded -->
## 2.3 MOVIMENTO OSCILATÓRIO - PÊNDULO SIMPLES
A representação geral de um pêndulo é: um sistema composto por um corpo acoplado a um pivô que permite sua movimentação livremente, ficando a massa sujeita à força restauradora causada pela gravidade.
Podem-se enumerar vários tipos de pêndulos, já estudados e analisados, descritos como um objeto de fácil previsão de movimentos e que possibilita inúmeros avanços tecnológicos, como os pêndulos físicos, de torção, cônicos, de Foucault, duplos, espirais, de Karter e invertidos. Sendo o modelo mais simples, e que tem maior utilização o Pêndulo Simples, e utilizado na coleta de dados.
Este pêndulo consiste em um corpo de massa ( m ) preso a um fio ( ) inflexível e inextensível por uma de suas l extremidades e livre por outra.
Ao se desconsiderar a resistência do ar, as únicas forças que atuam sobre o pêndulo são: a tensão e o peso , conforme figura 4.
Figura 4 - Representação das forças no pêndulo simples
<!-- image -->
\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_
O pêndulo irá realizar um movimento oscilatório, pois, um movimento é considerado oscilatório ou vibratório quando o móvel (no caso o corpo de massa m ) se desloca periodicamente sobre uma mesma trajetória, indo e vindo para um lado e para outro em relação a uma posição média de equilíbrio. Essa posição é o ponto sobre a trajetória, para o qual a resultante das forças que agem sobre o móvel, propicia que a aceleração tangencial seja nula e a aceleração centrípeta seja máxima.
## 3. EXPERIMENTOS
## 3.1 PLANO INCLINADO
Figura 5 - Sensor de distância no plano inclinado
<!-- image -->
O sensor de distância foi posicionado na parte mais baixa do plano, sendo que programamos o software do Arduino para medir distâncias a cada 50 ms ( delay) . Soltamos o objeto da parte mais alta do plano inclinado. A figura 5 exibe a montagem do plano inclinado com sensor de distância na extremidade inferior.
É possível acoplar um display ao microcontrolador Arduino, permitindo, em tempo real, a exibição dos valores coletados sem a necessidade de estar ligado a um computador. Os valores medidos pelo sensor de distância (ou por qualquer dispositivo de entrada ligado ao Arduino) podem ser exibidos neste display.
Porém, nos experimentos aqui propostos foi empregada a ferramenta Serial Monitor do software de programação para o Arduino. A ferramenta Serial Monitor do Arduino é uma janela que exibe, em tempo real, uma tabela com todos os dados que estão sendo coletados.
Estes dados podem ser facilmente copiados e salvos como arquivo de texto (formato .txt) ou empregados em outros aplicativos. Cabe ressaltar que, pode ser necessário trocar o valor do delay na programação do Arduino, em função do tipo de experimento, do tamanho do objeto, do ângulo de inclinação do plano, das forças de atrito, da velocidade inicial, além de outros fatores. Esta informação deve ficar clara para os alunos, que o valor do intervalo de tempo pode ser alterado.
Pode ser que os gráficos dos dados coletados pareçam distorcidos ou incoerentes com o fenômeno. Este fato inicialmente causa desconforto, tendo em vista o embasamento teórico prévio, mas julga-se válido como recurso pedagógico o professor, juntamente com os alunos, analisar os dados coletados considerados 'errados' e buscar alternativas para melhorar os gráficos com base nos conteúdos já estudados. Uma das alternativas pode ser alterar o valor do delay .
## 3.1.2. GRÁFICOS
A partir dos dados coletados foi elaborado o gráfico experimental (figura 6). Traçamos sua linha de tendência, que por sua vez serviu de base para a plotagem dos gráficos da velocidade e aceleração em função do tempo (gráficos teóricos).
Figura 6 - Gráfico de posição X
<!-- image -->
\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_
Figura 7 - Gráfico de velocidade X tempo
<!-- image -->
Figura 8 - Gráfico de aceleração X tempo
## 3.2 MOVIMENTO RETÍLINEO
O sensor de distância foi posicionado em uma extremidade do plano e o software do Arduino foi programado para medir a distância a cada 50 ms.
Analisou-se o movimento de um objeto aproximando-se e afastando-se do sensor de distância. Os dados coletados nestas etapas são exibidos na tela 'Serial Monitor' do software do microcontrolador, exibida na figura 9.
Os gráficos da posição em função do tempo foram plotados a partir dos valores coletados. Em seguida foram traçadas suas linhas de tendência e estas serviram de base para os gráficos da velocidade em função do tempo. Pelas linhas de tendência, o módulo da aceleração vale zero.
## 3.2.3 GRÁFICOS
Figura 11 - Gráfico posição X tempo - volta
<!-- image -->
Figura 10 - Gráfico posição X tempo - ida
<!-- image -->
\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_
Figura 9 - Tela 'Serial Monitor' do Arduino
<!-- image -->
Figura 12 - Gráfico velocidade X tempo - ida
<!-- image -->
Figura 13 - Gráfico velocidade X tempo - volta
## 3.3 MOVIMENTO OSCILATÓRIO DO PÊNDULO
## 3.3.1. MONTAGEM DO EXPERIMENTO
O sensor de distância foi posicionado em frente ao ponto mais baixo de um pêndulo simples na posição central, conforme figura 14.
Os valores medidos significam, na prática, duas situações: um valor alto significa que o pêndulo não está passando pela frente do sensor e um valor baixo significa que naquele instante o pêndulo está passando na frente do sensor.
Programou-se o software do Arduino para medir a distância a cada 50 ms. É possível calcular o período de oscilação do pêndulo tendo como base a leitura das posições feita pelo sensor de distância. A cada duas medições de 'valores baixos' obtém-se o tempo correspondente a meio período de oscilação.
Figura 14 - Montagem do experimento
<!-- image -->
d (c m)
<!-- image -->
-20
Figura 15 -Gráfico posição X tempo
## 4.1 CONSIDERAÇÕES FINAIS
Mesmo que já tenham sido feitos comentários incentivando o uso do Arduino, é plenamente compreensível salientar algumas justificativas. O Arduino é um microcontrolador de baixo custo, com linguagem de programação relativamente simples e compatível com diversos sistemas operacionais. Além disso, trabalha com a proposta de código aberto, ou seja, tanto o hardware quanto o software são livres e qualquer pessoa pode fazer modificações e propor melhorias.
Nas atividades propostas, objetivou-se a agilidade na coleta dos dados e o intercâmbio destes dados para serem utilizados em outros aplicativos. Também, por isso, empregou-se o sensor de distância, para abordar tópicos específicos da cinemática e dos movimentos periódicos. Sabe-se que há outras tantas possibilidades para coleta, armazenamento, cálculo e análise destes valores com
\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_
este mesmo sensor, mas a proposta aqui não foi, nem remotamente, esgotar as formas de uso e sim mostrar os resultados obtidos com algumas práticas.
Tudo o que foi relatado até então tem grande valor quando se deseja utilizar tecnologia em sala de aula, onde o aluno atua como protagonista da atividade, montando o circuito, programando, verificando possibilidades de uso, manipulando valores e, sempre com o auxílio do professor, buscando relacionar os conteúdos trabalhados anteriormente com o experimento. O aluno é estimulado a procurar alternativas para superar obstáculos, a propor soluções para os erros, a trabalhar colaborativamente, a pesquisar, a utilizar simultaneamente diferentes aplicativos e a avaliar seu conhecimento sobre os conteúdos de Física para que possa interpretar adequadamente os valores coletados.
- O professor pode sugerir a movimentação do sensor ou de um objeto, simulando movimento uniforme (seja ele progressivo ou retrógrado). Esta simulação é possível em virtude dos valores estão sendo obtidos com intervalos de tempo iguais. O resultado da simulação do movimento uniforme poderá ser visualizado na tela 'Serial Monitor', com as distâncias igualmente espaçadas. Em um segundo momento, quando as distâncias não estão igualmente espaçadas, poderá ser trabalhado o movimento variado, abordando o conceito de aceleração.
Alem disso, como simples exploração, sem se preocupar com o movimento realizado, pode-se estudar conversão de unidades, noção de tamanho, posição de um objeto, ou seja, abrem-se possibilidades em decorrência dos dados visualizados em tempo real na tela.
Ou seja, são vivenciadas situações de aprendizado riquíssimas para o aluno e também para o professor. Deseja-se que, ao término das atividades realizadas, o número de atividades similares a esta se multiplique e que o conhecimento obtido (em Física, em eletrônica, em computação, etc.) não fique encastelado, mas seja compartilhado para que mais pessoas sejam beneficiadas com mais essa possibilidade.
## REFERÊNCIAS
Arduino Library For Ultrasonic Ranging Module HC-SR04. Link:
http://blog.iteadstudio.com/arduino-library-for-ultrasonic-ranging-module-hc-sr04/. Acesso em 20 jun 2014.
DIOGO, E. M. Estudo do movimento uniformemente acelerado - determinação da aceleração da gravidade. Link: http://fisica.uc.pt/data/20062007/apontamentos/ apnt\_067\_9.pdf. Acesso em 26 jun 2014.
GASPAR, A. Física. Volume único, 1ª ed. São Paulo: Ática, 2005.
Introdução ao Arduino . Grupo de Robótica da UFMS. Link: http://destacom.ufms.br/ mediawiki/images/9/9f/Arduino\_Destacom.pdf. Acesso em 01 jul 2014.
Medir distância e velocidade. Link: http://forum.arduino.cc/index.php?topic=176713.0. Acesso em 30 maio 2014.
Medindo distância com o sensor ultrassônico HC-SR04. Link:
http://www.arduinoecia.com.br/2013/05/medidor-de-distancia-com-o-sensor.html. Acesso em 30 maio 2014.
RAMALHO Jr., F. et al. Os Fundamentos da Física . V.1, 9ª ed. SP: Moderna, 2007. Sensor de distância ultrassônico e Arduino . Link: http://www.nubiasouza.com.br/ sensor-de-distancia-ultra-sonico-e-arduino/. Acesso em 30 maio 2014.
\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_
Texto extraído automaticamente do PDF: podem existir erros de conversão, especialmente em fórmulas, tabelas e figuras.