Como comunicar Arduino e Python pelo USB: lendo o estado de uma chave

É possível conectar um Arduino ao computador pelo cabo USB e utilizar um programa em Python para receber informações da placa. Essa comunicação permite acompanhar sensores, registrar medições e criar aplicações que interagem com o mundo físico.

Neste tutorial, vamos começar com uma experiência simples: uma chave ligada ao Arduino Uno e um programa em Python que mostra se ela está ligada ou desligada.

O Arduino identifica a posição da chave e envia uma mensagem pela comunicação serial. O Python recebe essa mensagem e apresenta o resultado no terminal do computador.

O que você precisa

Para realizar a experiência, você vai precisar de:

  • Arduino Uno;
  • Cabo USB com transmissão de dados;
  • Chave de dois terminais e fios de ligação;
  • IDE do Arduino;
  • Python instalado no computador;
  • Biblioteca Python pyserial.

Se não tiver uma chave, pode fazer o teste com um fio: conectar e desconectar o fio entre o pino 2 e o GND simula os dois estados.

Como funciona a comunicação

O cabo USB permite que o computador se comunique com o Arduino por uma porta serial. No Windows, essa porta recebe um nome como COM3, COM5 ou COM6.

O Arduino envia os textos LIGADA e DESLIGADA. O programa em Python fica à espera dessas mensagens e mostra cada estado recebido.

Nesta experiência, usamos a velocidade de 9600 baud, configurada tanto no Arduino quanto no Python. Os dois lados devem utilizar a mesma velocidade para que a comunicação funcione corretamente.

Ligando a chave ao Arduino

A ligação é simples:

  • Um terminal da chave vai ao pino digital 2.
  • O outro terminal vai ao GND.

O código configura o pino 2 como INPUT_PULLUP. Isso ativa o resistor interno do Arduino e dispensa um resistor externo nesta montagem.

Com essa configuração, quando a chave está aberta, o pino é lido como HIGH. Quando a chave fecha o contato com o GND, o pino é lido como LOW.

No nosso programa, interpretamos esses estados assim:

Condição da chaveLeitura do pinoMensagem enviada
Contato abertoHIGHDESLIGADA
Contato fechadoLOWLIGADA

Carregando e testando o código do Arduino

Na IDE do Arduino, selecione Arduino Uno em Ferramentas → Placa e escolha a porta correspondente em Ferramentas → Porta.

Carregue na placa o código apresentado neste artigo.

O programa envia o estado inicial da chave e, depois, uma nova mensagem apenas quando identifica uma mudança. Assim, o terminal não fica repetindo continuamente o mesmo texto.

const int pinoChave = 2;

int estadoAnterior = -1;

void setup() {

  pinMode(pinoChave, INPUT_PULLUP);

  Serial.begin(9600);

}

void loop() {

  int estado = digitalRead(pinoChave);

  // Envia o estado inicial e depois apenas quando mudar.

  if (estado != estadoAnterior) {

    if (estado == LOW) {

      Serial.println(“LIGADA”);

    } else {

      Serial.println(“DESLIGADA”);

    }

    estadoAnterior = estado;

  }

  delay(50);

}

Antes de passar ao Python, abra o Monitor Serial da IDE e selecione 9600 baud. Ao ligar e desligar a chave, devem aparecer as mensagens LIGADA e DESLIGADA.

Esse teste confirma que a ligação e o código do Arduino estão funcionando.

Preparando o Python

Com o Python instalado, abra o Prompt de Comando do Windows e verifique a instalação com o comando py --version.

Depois, instale a biblioteca de comunicação serial com py -m pip install pyserial.

A biblioteca pyserial permite que o programa abra a porta do Arduino e leia os dados enviados pelo USB.

Criando o programa no computador

Salve o código Python apresentado neste artigo em um arquivo chamado chave.py.

Se utilizar o Bloco de Notas, escolha Todos os arquivos no campo de tipo ao salvar. Isso evita que o arquivo receba o nome chave.py.txt.

No código, ajuste a porta serial para a mesma que aparece na IDE do Arduino. Neste teste, utilizamos COM6, mas no seu computador ela pode ser diferente.

O programa lê uma linha de cada vez, transforma os dados recebidos em texto e verifica se a mensagem corresponde a LIGADA ou DESLIGADA.

Executando a experiência

Mantenha o Arduino conectado ao USB e feche o Monitor Serial da IDE, para liberar a porta para o Python.

Abra a pasta onde salvou chave.py. Na barra de endereço do Explorador de Arquivos, digite cmd e pressione Enter.

Na janela que abrir, execute py chave.py.

Agora, altere a posição da chave. O terminal mostrará Chave: LIGADA ou Chave: DESLIGADA, conforme o estado recebido.

Para encerrar o programa, pressione Ctrl+C.

Se não funcionar

Se o computador não reconhecer o Arduino, teste outro cabo USB e outra porta do computador. O LED de alimentação aceso confirma que a placa recebe energia, mas não garante que o cabo transmita dados.

Se o Python apresentar um erro ao abrir a porta, confira o número da COM e verifique se o Monitor Serial ou outro programa está utilizando essa conexão.

Se as mensagens não aparecerem corretamente, confirme que Arduino e Python estão configurados para 9600 baud.

O que podemos fazer a partir daqui?

Essa experiência demonstra a base da integração entre Arduino e uma aplicação no computador. Podemos substituir a chave por sensores de temperatura, luminosidade ou distância e utilizar o Python para apresentar gráficos, guardar medições ou gerar alertas.

Também podemos criar uma interface com um indicador verde para a chave ligada e vermelho para a chave desligada.

A comunicação pode funcionar nos dois sentidos: além de receber informações, o Python pode enviar comandos para o Arduino controlar LEDs, buzzers e outros componentes.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *