UM PROGRAMA EM PYTHON PARA EXPERIMENTOS DE FÍSICA AUTOMATIZADOS COM O ARDUINO.
Nathan Rabelo Martins, Ricardo Cordeiro, Marcos Paulo De Oliveira Loureiro
- Evento
- Simpósio Nacional de Ensino de Física ↗ (SNEF)
- Edição
- XXIII
- Ano
- 2019
- Data
- 31/01/2019
- Linha de pesquisa
- Tecnologias Da Informação E Comunicação No Ensino De Física
- Tipo
- Comunicação
Abrir o PDF original ↗ Baixar referência .bib Ver todos do SNEF 2019
Texto completo
## UM PROGRAMA EM PYTHON PARA EXPERIMENTOS DE FÍSICA AUTOMATIZADOS COM O ARDUINO.
## Nathan Rabelo Martins 1 , Ricardo Cordeiro 2 , Marcos Paulo de Oliveira Loureiro 3
1
UFV/Departamento de Física/Colégio Pólis, nathanrabelo@gmail.com 2 UFV/Departamento de Física, cordeiro.ufv@gmail.com 3 UFV-CRP/Instituto de Ciências Exatas, mpoloureiro@gmail.com
## Resumo
Este artigo objetiva apresentar uma ferramenta pedagógica (um programa de computador) que visa facilitar a reprodução de experimentos de Física automatizados com o Arduino. Por meio dele os usuários não precisarão manipular e modificar códigos de programação, mas apenas interagir com uma interface gráfica amigável clicando em botões e inserindo informações em campos pré-determinados. Desta forma acreditamos que mesmo usuários que não tenham conhecimento em programação e eletrônica consigam reproduzir os experimentos. Pelo programa o usuário tem acesso a textos com a lista de materiais utilizados em cada experimento, tutoriais das montagens eletrônicas, além de diversos textos de apoio. Por meio do programa também é possível acompanhar os valores de cada variável inerente ao experimento, concomitante à sua realização, além de visualizar os resultados completos em forma gráfica sem a necessidade de utilizar outros softwares adicionais. Inicialmente o programa engloba três experimentos: pêndulo simples, carga e descarga de um capacitor e absorção de radiação eletromagnética, todos com resultados condizentes com as previsões teóricas e tendo potencial para inserção de outros experimentos com o passar do tempo. Esta ferramenta foi desenvolvida na linguagem de programação Python e a conversação necessária entre ela e a plataforma do Arduino foi feita por meio do protocolo firmata.
Palavras-chave: Ensino de Física, Arduino, Automação, Python
## Introdução
Aprender física é um processo complicado para grande parte dos alunos, seja no ensino médio ou superior. Isso acontece devido à dificuldade de abstração dos fenômenos e ao excesso de matematização desta disciplina por parte de alguns professores. Isso faz com que os alunos enxerguem a disciplina apenas como um emaranhado de fórmulas desconexas, nas quais ele muitas vezes não consegue relacionar as variáveis inclusas aos seus respectivos fenômenos e tão pouco percebê-los em seu cotidiano.
Uma maneira de tornar as aulas de física mais agradáveis e palpáveis é a realização de experimentos, uma vez que nesse tipo de metodologia, em geral, os fenômenos físicos ficam mais nítidos e pode-se estabelecer relações numéricas de forma mais intuitiva. Aulas experimentais também possibilitam que os estudantes vivenciem o método científico. [1]
Outra maneira de estimular os alunos e tornar as aulas mais interessantes é incorporando tecnologias atuais no cotidiano das aulas diminuindo, deste modo, a distância tecnológica entre estudante e os avanços percebidos no dia a dia, além de possibilitar a coleta de dados de forma rápida e a sua representação de forma gráfica. Este tipo de metodologia também permite que o estudante passe por todas as etapas do método científico de maneira mais rápida, possibilitando que o
\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_
experimento seja ajustado e refeito várias vezes em uma mesma aula. [2]
Um outro aspecto diz respeito ao fato de muitas escolas públicas viverem uma escassez de equipamentos de qualidade para a realização de aulas experimentais, sobretudo aqueles utilizados na coleta automatizada de dados. Esse deficit se deve, dentre outros motivos, ao alto valor dos equipamentos utilizados. Na expectativa de contornar este problema muitos professores trabalham com experimentos feitos com materiais de baixo custo, muitas vezes improvisados. Isso é, sem dúvida, uma maneira de mostrar o fenômeno de modo criativo. Porém, a parte do estudo quantitativo de um experimento fica muito limitada, por vezes com margens de erros muito grandes, fazendo com que a prática fuja da teoria, o que acreditamos não ser o desejado.
É nesse ponto que entendemos a utilização do Arduino como um importante auxílio já que é possível montar um laboratório com diversos experimentos automatizados por um baixo custo se comparado a um laboratório convencional (equipado com instrumentos fabricados e comercializados por empresas especializadas no ramo). [3]
Os resultados obtidos pelas práticas que utilizam o Arduino mostram resultados que não apenas condizem com as predições teóricas, mas que possuem um erro relativo muito baixo, principalmente se comparado com experimentos sem interface computacional. [2,3,4,5]
A plataforma Arduino surgiu na Itália no ano de 2005 objetivando a redução dos custos nas confecções de protótipos automatizados/robotizados. Estes custos eram muito elevados na época e o Arduino acabou se destacando devido a sua linguagem simples e a respectiva padronização na programação [3]. De lá para cá o Arduino vem ganhando cada vez mais espaço na automação e robótica, sendo utilizado em várias áreas. No presente trabalho temos como foco o seu uso no ensino de física.
Normalmente, para a reprodução dos protótipos educacionais utilizando o Arduino é necessário que o usuário manuseie e modifique códigos de programação, que apesar de ser uma tarefa relativamente simples para usuários mais experientes ou para quem está imerso nas linguagens de programação, isto é uma barreira para muitos professores que não são familiarizados com a lógica de programação, exigindo destes muito tempo de dedicação e inclusive suporte de técnicos de informática. [6]
'A importância e a presença, quase onipresente, da tecnologia e da informação no cotidiano da maioria das pessoas são inquestionáveis. A questão é: o quanto estão os professores preparados para enfrentar uma realidade mutante do ponto de vista tecnológico e comportamental? Os alunos já não se satisfazem apenas com aulas expositivas de Física, e anseiam por mais e os professores estão angustiados diante da evolução tecnológica e da mudança comportamental de seus alunos que estão irrequietos com as aulas tradicionais. ' [4]
É com foco nesse problema que pensamos este trabalho cujo objetivo foi criar um software de fácil interação utilizando a linguagem Python e que 'converse' com o Arduino. Desse modo se pretende que o usuário consiga realizar os experimentos englobados pelo programa sem a necessidade de digitar e alterar códigos de programação, mas somente utilizando botões em uma interface gráfica amigável onde apenas informações são inseridas em campos pré-determinados.
\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_
O programa desenvolvido possui código aberto uma vez que seu propósito é ser acessível a todo e qualquer colaborador interessado em aprimorá-lo. Assim, se pretende aumentar a abrangência do programa nos mais diversos ramos da Física.
Pensando nesta possível colaboração, precisávamos escolher uma linguagem para escrever o programa que fosse bastante difundida e que os códigos fossem de fácil entendimento. Optamos pelo Python por se tratar de uma linguagem de programação de alto nível, ser um programa livre de fácil portabilidade e com grande apoio da comunidade de usuários e tendo vários módulos e bibliotecas com as mais diversas funcionalidades. Outro motivo que nos fez optar pelo Python foi a sua estrutura de programação que faz com que os códigos dos programas sejam facilmente assimilados por outros usuários. [7]
## Descrição do trabalho desenvolvido
Buscar ferramentas que auxiliam na execução de aulas experimentais no ensino de Física tem sido a preocupação de muitos pesquisadores, uma vez que as aulas práticas contribuem no processo de ensino aprendizagem. [6]
Almejando mais precisão e automação na coleta de dados, muitos pesquisadores se atentaram à utilização do Arduino nesse tipo de metodologia conseguindo experimentos que não só apresentassem resultados muito satisfatórios como também possuíssem um custo acessível à execução. [2,3,4,5]
Porém, percebemos que a incorporação deste tipo de experimento na rotina didática da grande maioria dos professores ainda esbarra em algumas barreiras tais como a pouca familiaridade com a linguagem de programação ou um conhecimento de eletrônica muito restrito, ou ainda barreira linguísticas uma vez que muito da informação disponível está em inglês.
Foi buscando auxiliar esse público que pensamos na criação de um programa de computador. A ideia é que este deveria possibilitar ao usuário realizar o experimento sem a preocupação de manipular as linhas de programação e com a possibilidade de análise dos resultados em forma gráfica sem a utilização de outras ferramentas. Por fim, incorporamos no programa textos explicativos com lista de materiais, esquemas ilustrativos das montagens eletrônicas e diversos outros textos de apoio, todos acessados pelo próprio software .
Para a criação da interface gráfica do programa, optamos por uma biblioteca do Python chamada Tkinter. Contribuiu para esta escolha o fato dela já vir inclusa na maioria das distribuições do Python além de ser bem robusta e suprir todas as necessidades inerentes ao programa.
Ao pensarmos em quais experimentos reproduziríamos inicialmente, optamos por três experimentos bem distintos para que assim pudéssemos envolver o maior número possível de áreas da física. Os experimentos escolhidos foram sobre o pêndulo simples, a carga e descarga de um capacitor e o da emissão e absorção de radiação eletromagnética por corpos de diferentes cores. Desta forma abordamos fenômenos eletromagnético, térmico e movimento harmônico simples.
Inicialmente imaginamos que incorporaríamos os experimentos escolhidos em nosso programa fazendo apenas a conversão entre as linguagens da plataforma Arduino e o Python. Porém, optamos por fazer pequenas modificações na estrutura de alguns dos experimentos buscando adaptá-los ou até mesmo simplificá-los,
\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_
tornando-os mais acessíveis. Outra adaptação que fizemos foi possibilitar, por meio do próprio software, a elaboração de gráficos dos resultados.
Para gerar os gráficos utilizamos a biblioteca do Python chamada Matplotlib. Este trabalha em conjunto com a interface criada em Tkinter abrindo uma janela auxiliar com os gráficos toda vez que o botão correspondente é selecionado. Além de gerar o gráfico, também é possível redimensioná-lo, dar zoom e salvá-lo.
- O programa escrito foi dividido em várias funções que são basicamente blocos de programação com um objetivo específico. Estas funções serão executadas apenas se determinado input for dado por parte do usuário. Na figura abaixo apresentamos o fluxograma do programa afim de mostrar como as funções se relacionam.
Figura 01: Fluxograma do programa.
<!-- image -->
Nas próximas seções discutiremos as particularidades de cada um dos experimentos disponibilizados pelo programa.
## Pêndulo Simples
Nesse experimento gostaríamos de evidenciar duas coisas: primeiro que o período de oscilação do pêndulo não depende da sua massa e, segundo, que este mesmo período tem proporção direta com a raiz quadrada do comprimento do fio de sustentação.
Pensando em dar maior visibilidade aos resultados, trouxemos duas possibilidades de análise gráfica dentro do próprio programa. A primeira correspondendo ao valor do período medido em cada oscilação e a segunda a relação entre o período e o comprimento do fio de sustentação. A primeira possibilidade é disponibilizada assim que concluídas as medições dos períodos. Neste momento também é possível calcular a gravidade local por meio dos resultados experimentais obtidos.
Para analisar o problema do ponto de vista da relação entre o período médio e o comprimento do pêndulo, primeiro criamos um arquivo de texto que armazena o histórico dos experimentos já realizados, salvando o comprimento do fio utilizado e o período experimental obtido cada vez que o experimento é feito. Esses dados são mostrados na tela do programa e o usuário possui liberdade para gerar o gráfico
\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_
relacionado clicando no botão correspondente. É também possível apagar alguns dados caso isso seja necessário. Segue uma imagem extraída do software onde o histórico do experimento está mostrado no lado direito da tela.
Figura 02: Tela extraída do programa, ilustrando o histórico do experimento.
<!-- image -->
## Carga e descarga de um capacitor
Capacitores são trabalhados na física do Ensino Médio geralmente no terceiro ano. Apesar de estarem presentes na maioria dos dispositivos eletroeletrônicos no cotidiano das pessoas, poucos sabem identificá-los ou até mesmo entender superficialmente seu funcionamento.
Em nosso programa optamos por analisar simultaneamente a diferença de potencial no capacitor, a corrente elétrica no circuito e os processos de carga e descarga armazena no capacitor. Essas duas últimas variáveis não são medidas diretamente pelo Arduino, mas sim calculadas pelo software supondo que os resistores utilizados são ôhmicos.
Para o cálculo da corrente elétrica no circuito utilizamos a segunda lei de Ohm. O valor da resistência é informado pelo usuário e para a tensão do circuito existem dois momentos: durante a carga do capacitor a tensão é dada pela diferença entre a tensão fornecida pelo Arduino, que é de 5V, e a tensão acumulada no capacitor. Já na descarga a tensão do circuito é a própria DDP no capacitor.
Já o cálculo da carga armazenada no capacitor é feito através da capacitância do mesmo, cujo valor também é fornecido pelo usuário no aplicativo programa. Assim temos que a carga armazenada no capacitor é o produto entre a capacitância deste componente e a sua tensão elétrica.
- O software recebe do usuário os valores da capacitância, da resistência do resistor e o número de ciclos de carga e descarga que o usuário deseja medir. Estas informações são importantes pois as medições só serão encerradas após findados todos os ciclos previamente estabelecidos. Durante a realização do experimento será mostrado na tela do programa, a cada intervalo de 0,5s, o tempo total decorrido desde o início do experimento, o valor atual da tensão e da carga do capacitor, além da corrente elétrica no circuito.
No final da medição dos ciclos pré-definidos o botão gráfico ficará liberado e,
\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_
ao ser acionado, mostrará simultaneamente três gráficos: da tensão no capacitor versus tempo, da carga armazenada no capacitor versus tempo e da corrente elétrica no circuito versus tempo.
## Absorção de Radiação Eltromagnética
Os conceitos que envolvem a termometria são trabalhados geralmente no primeiro bimestre do segundo ano do Ensino Médio. Porém, focaremos aqui apenas a trocas de calor por radiação.
Neste experimento utilizamos uma lâmpada ligada como fonte de calor e medimos simultaneamente a temperatura de duas placas metálicas idênticas, porém pintadas com cores diferentes.
Durante a realização do experimento é mostrado, na tela do programa a cada intervalo de 0,3s, o tempo total decorrido desde o início do experimento e a temperatura de cada uma das placas. Encerradas as medições, estas poderão ser visualizadas em forma gráfica. Optamos por colocar os dois gráficos no mesmo plano cartesiano afim de facilitar a comparação das temperaturas das placas.
## Resultados obtidos
Os resultados obtidos com o uso do nosso programa são muito similares aos resultados gerados pelos protótipos na própria plataforma Arduino usando a sua linguagem nativa. Porém, com o nosso programa o usuário tem a facilidade de não ter contato algum com códigos de programação. Também com o programa desenvolvido o usuário pode visualizar os resultados gráficos de forma didática e completa sem a necessidade de utilizar softwares complementares tais como planilhas eletrônicas.
Outra vantagem do programa desenvolvido é que o usuário pode acessar vários textos de apoio como guias para configurações do computador e do Arduino, listas dos materiais utilizados em cada experimento, ilustrações das montagens eletrônicas dos circuitos construídos, além de textos de apoios com explicações detalhadas sobre os experimentos.
Segue abaixo os gráficos obtidos nos três experimentos afim de ilustrar os resultados obtidos em cada um.
<!-- image -->
\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_
Figura 03: Gráfico experimento pêndulo simples. Cada ponto corresponde ao valor do período do pêndulo para um dado comprimento do fio utilizado.Figura 04: Gráfico experimento carga e descarga de um capacitor, com 2 ciclos de carga e descarga e utilizando um resistor de 4.7 KΩ e um capacitor eletrolítico de 20µF.
<!-- image -->
Figura 05: Gráfico experimento absorção de radiação eletromagnética. A linha de cor vermelha corresponde à temperatura da placa cor preta e a linha de cor azul corresponde à temperatura da placa de cor branca.
<!-- image -->
## Considerações finais
Até o momento, o programa desenvolvido funciona em computadores com Windows e que estejam instalados o Python e as bibliotecas utilizadas no programa. Para ajudar os usuários fizemos um tutorial com o passo a passo dessas instalações e a disponibilizamos junto ao produto desenvolvido nesta dissertação.
Os resultados das medidas dos sensores são visualizados simultaneamente a realização do experimento como nos experimentos realizados pela própria plataforma Arduino usando sua linguagem de programação nativa. Porém, o nosso programa não exige do usuário qualquer conhecimento de programação. Outra possibilidade oferecida pelo nosso produto é a de visualizar os resultados obtidos
\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_
em sua totalidade, de forma gráfica sem a utilização de outros softwares ou de planilhas eletrônicas.
A aplicação do programa em salas de aula está em fase final, porém as análises quanto a sua efetividade ainda não foram concluídas.
## Referências
- [1] Parâmetros Curriculares Nacionais. Disponível em:
<http://portal.mec.gov.br/seb/arquivos/pdf/ciencian.pdf>. Acesso em: 16 dez. 2017.
[2] CAVALCANTE, Marisa Almeida; TAVOLARO, Cristiane Rodrigues Caetano; MOLISANI, Elio. Física com Arduino para iniciantes. Revista Brasileira de Ensino de Física, v. 33, n.4, 4503, 2011.
[3] MORAES, Thales Fernandes; LOUREIRO, Marcos Paulo de Oliveira. Análise de viabilidade para criação de um laboratório de física aplicada utilizando tecnologia de baixo custo. 2017. 1 v. TCC (Graduação) - Curso de Engenharia de Produção, Universidade Federal de Viçosa, Rio Paranaíba, 2017.
[4] MARTINAZZO, Claodomir Antonio et al. Arduino: uma tecnologia no ensino de física. Perspectiva, Erechim, v. 38, n. 143, p.21-30, set. 2014.
[5] MOURÃO, Oseias de Sousa; CARVALHO, João Cláudio Nunes. Uso do Arduino como Ferramenta Motivacional para aprendizagem de Física . 2018. 225 f. Dissertação (Mestrado)- Instituto Federal do Ceará - Mestrado Nacional Profissional em Ensino de Física, Campus Sobral, 2018.
[6] D. SHARMA, Manjula et al. Use of interactive lecture demonstrarions: A ten year study. Physical Review Special Topicas - Physics Education Research, Australia, p. 1-9, out. 2010.
[7] DESAI, Pratik. Python Programming for Arduino: Develop practical Internet of Things prototypes and application program s with Arduino and Python. Birmingham: Packt Publishing, 2015. 400 p.
\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_
Texto extraído automaticamente do PDF: podem existir erros de conversão, especialmente em fórmulas, tabelas e figuras.