10 Comentários

Osciloscópio de 4 canais com Arduino Uno

O osciloscópio é um dos instrumentos de bancada mais importantes, principalmente se você for realizar alguma montagem com sinais alternados.

Contudo, seu custo pode assustar muitos iniciantes e entusiastas que gostariam de ter um instrumento desses em casa. Neste tutorial, vou apresentar um osciloscópio de 4 canais construído com Arduino Uno utilizando como interface uma aplicação web local feita com Flask, um framework Python para desenvolvimento de servidores web.

Todo o código está disponível no GitHub, é totalmente Open Source (baseado em Python), e o único hardware que você irá precisar é um Arduino Uno, seu cabo USB e um fio.

No final, iremos ter um osciloscópio DIY (Do It Yourself - Faça você mesmo) com 4 canais integrados.

Materiais

Hardware

  • Arduino Uno
  • Cabo USB
  • Computador Windows
  • 2 fios macho-macho (daqueles de protoboard)
  • (Opcional: protoboard, quatro fios, resistor de 100 kOhm, e capacitor de 100 nF)

Software

  • Firmware (programa que iremos carregar no Arduino Uno pelo Arduino IDE, disponível no GitHub)
  • Biblioteca TimerOne (carregada no Arduino IDE para compilarmos o código)
  • Flask (web server python)
  • Biblioteca pyserial (biblioteca python)
  • Python 3

Setup das Ferramentas

Arduino

No Arduino IDE, iremos precisar da biblioteca TimerOne.

No github da biblioteca, podemos baixar o ZIP da biblioteca:

Osciloscópio de 4 canais

No Arduino IDE, basta ir em Sketch -> Incluir Biblioteca -> Adicionar biblioteca ZIP

Osciloscópio de 4 canais

Basta então selecionar o arquivo que baixamos do GitHub da biblioteca:

Osciloscópio de 4 canais

Python

Será necessário ter o Python 3 instalado.

Caso não tenha, basta instalar a partir da página oficial do Python, e marcar a opção de “Add Python to PATH” durante a instalação (se precisar de mais detalhes, há um tutorial do Python Brasil para a instalação do Python 3 no Windows).

Duas bibliotecas do Python serão necessárias: flask e pyserial.

No Windows, podemos fazer a instalação pelo comando pip do Python.

Para instalar a biblioteca pyserial, basta digitar o comando “pip install pyserial” no prompt de comando do Windows:

Osciloscópio de 4 canais

De forma similar, basta digitar no prompt de comando “pip install flask” para a biblioteca Flask:

Osciloscópio de 4 canais

Obtenção do projeto Osciloscópio de 4 canais no GitHub

No GitHub do projeto, basta selecionar a opção “Download ZIP”:

Osciloscópio de 4 canais

Código Arduino

Temos três abas principais no programa Arduino: main, serial e timerOne.

De forma geral, a aba timerOne utiliza a biblioteca timerOne para geração da onda quadrada pelo Arduino Uno, a aba serial possui o código que implementa o protocolo serial no Arduino. Este protocolo também é implementado do lado do computador, mas pelo uso da biblioteca pyserial e o flask, como iremos detalhar na próxima seção.

Após abrir o arquivo LabUno4.ino, iremos conectar o Arduino Uno com seu cabo USB, selecionar a porta serial correspondente, e realizar a compilação e carga do programa.

Osciloscópio de 4 canais

Código Python no Computador

Após o programa carregado no Arduino, falta rodar o programa em Python no computador.

Antes de rodar o programa, precisamos fazer uma configuração: trocar a porta serial presente no programa pela porta serial que o Arduino Uno está conectado (que utilizamos para a carga no passo anterior), no código app.py:

Após feito o ajuste, podemos executar o código (no menu superior, Run -> Run module):

O programa em Python utiliza a biblioteca pyserial para que o computador se comunique com o Arduino Uno através da comunicação serial.

O webserver implementado com o Flask receberá as requisições HTTP do cliente (página web) e utiliza a comunicação serial da biblioteca pyserial.

Com o código app.py em execução, podemos então abrir um navegador e acessar o endereço http://127.0.0.1:

A seguinte página deverá ser aberta:

Ao clicar em LabUno4a.htm no fim da página, ou sobre a figura, iremos para outra página, que é a interface do osciloscópio, desenvolvida em HTML e javascript. Como o Arduino estará em aberto, os sinais do osciloscópio devem estar “pulando” conforme a imagem:

Osciloscópio de 4 canais

Exemplo de uso do Osciloscópio de 4 canais com Arduino Uno

Nesta seção iremos dar alguns exemplos de operação do osciloscópio de 4 canais.

Ajuste do trigger

O ajuste do trigger (canal e nível) pode ser feito nos campos à direita da tela superior:

Osciloscópio de 4 canais

Seleção de canal

A seleção dos canais para visualização na tela pode ser feita nos demais campos da tela superior:

Osciloscópio de 4 canais

Monitoramento de onda quadrada

Com o fio macho-macho, devemos ligar a porta D8 (onde um sinal de onda quadrada é gerado) na porta A0 (onde temos um canal do osciloscópio).

Ajuste de ms/div

Ao clicar na parte superior da tela, podemos trocar os ms/div da visualização:

Ajuste da frequência

Para modificar a frequência da onda quadrada, podemos digitar o comando “f8=500” (para ajustar para 500 Hz) no campo de Comando, e apertar a seta (>) para mandar o comando para o Arduino:

Saída Digital

Para controlar qualquer porta como saída digital, basta digitar o comando do tipo: dw=[porta],[valor 0 ou 1], sendo 0 desligado e 1 ligado.

Osciloscópio de 4 canais

Saída Analógica

Para controlar o PWM das portas (PWM do Arduino Uno é de 500 Hz), basta digitar o comando:

aw=[porta 3,5,6,9,10 ou 11],[valor 0 a 255]

Com outro fio macho-macho, podemos ligar a porta D5 na porta A5.

Após um comando de “aw=5,100” e configuração de um dos canais visíveis como o A5, devemos visualizar a forma de onda gerada pelo PWM do Arduino.

Uma possibilidade é o uso de um circuito RC dimensionado para transformar esta saída PWM em uma tensão contínua de 0 a 5V.

Osciloscópio de 4 canais

Ajuste de V/div

O ajuste de V/div no canto superior esquerdo da tela torna possível alternar entre duas visualizações: canais do osciloscópio sobrepostos ou separados.

Osciloscópio de 4 canais

Circuito RC no D8 (adicional)

Adicionalmente, podemos ligar um circuito RC no pino D8.

Na figura, temos uma montagem do circuito em uma protoboard:

Osciloscópio de 4 canais

Ajustando os parâmetros do osciloscópio, e incluindo mais um canal para visualizar a forma de onda resultante da aplicação da onda quadrada no circuito RC, podemos ver três sinais no osciloscópio construído com Arduino:

Osciloscópio de 4 canais

Este projeto está em constante desenvolvimento, então sugestões são muito bem vindas!

Este e outros instrumentos de bancada de baixo custo com Arduino estão sendo usados no projeto LabEAD, para a execução de atividades de laboratório de eletrônica analógica e digital de forma remota. Se você se interessou pela iniciativa, temos uma página no Facebook e uma playlist no Youtube, com experimentos de eletrônica.
Nesta playlist do LabEAD temos também uma demonstração da versão do osciloscópio de bancada standalone com ESP32, o que torna possível a visualização do osciloscópio pelo celular. Mas isso já é assunto para outro tutorial.

Saiba Mais

HS10X – Um osciloscópio DIY para todos

Monte seu próprio osciloscópio digital

Licença Creative Commons Esta obra está licenciada com uma Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional.

Receba os melhores conteúdos sobre sistemas eletrônicos embarcados, dicas, tutoriais e promoções.

Arduino » Osciloscópio de 4 canais com Arduino Uno
Comentários:
Notificações
Notificar
guest
10 Comentários
recentes
antigos mais votados
Inline Feedbacks
View all comments
José Armando Santos
José Armando
28/07/2020 07:40

Python 3.8.5 (tags/v3.8.5:580fbb0, Jul 20 2020, 15:57:54) [MSC v.1924 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>

dá este erro em cima mais uma vez reafírmo se alguem tiver a gentileza de me ajudar meu email é
[email protected]

José Armando Santos
José Armando
28/07/2020 07:38

não consigo instalar o tal programa pynthon não abre
por favor se caso tenha a sua gentileza de me ajudar com toda a dignidade me escreve para o meu email pessoal
[email protected]
o mestre em engenharia eletrotecnica e computadores pelo IST de Lisboa

Victor Hayashi
Victor Hayashi
Reply to  José Armando
28/07/2020 09:26

Olá José,
Creio que esteja com problemas na instalação do python no Windows, no passo "setup das ferramentas -> python".
Conforme indiquei no tutorial, uma referência para fazer este procedimento está em https://python.org.br/instalacao-windows/.
Minha sugestão é buscar discussões em fóruns e tutoriais para esta parte geral do python. O pessoal que faz tutoriais específicos para este setup devem conseguir te auxiliar melhor, se comentar nestes fóruns como fez aqui.
Penso ser mais proveitoso deixarmos a discussão nos comentários deste tutorial, para que eventualmente outras pessoas com problemas parecidos possam ter estas respostas como referência.

Att.
Victor

Fabiano Fruett
Fabiano Fruett
27/07/2020 14:04

Excelente iniciativa. Principalmente agora que tantos cursos de eletrônica precisam re-estruturar para EAD.

Jorge
Jorge
25/07/2020 23:29

Muito bom o tutorial !!! embora não consiga visualizar a tela do osciloscópio ("Não é possível acessar esse siteA conexão com 127.0.0.1 foi recusada")
tentando de tudo quanto é jeito, mas por enquanto nada 😉
]

Joao Fracarolli
22/07/2020 13:57

Oi Victor,
Testei o seu tutorial no Linux (Ubuntu 16.04 LTS) e vi que neste caso precisa comentar a linha 11 do script app.py.

Obrigado e parabéns pelo projeto!

Edgard
Edgard
21/07/2020 02:03

Muito bom. Parabéns. 🙂

Talvez você goste:

Nenhum resultado encontrado.

Séries

Menu

WEBINAR
 
Sensores e soluções para aplicações em indústria inteligente

Data: 13/08 às 15:00h - Apoio: STMicroelectronics
 
INSCREVA-SE AGORA »



 
close-link