Como usar o Python para se comunicar com um Arduino UNO sobre a série

How to Use Python to Communicate with an Arduino Uno Over Serial

A comunicação entre Python e Arduino UNO sobre a série permite controlar hardware usando scripts Python ou envie dados do Arduino para o Python para processamento. Este tutorial o guiará através da configuração e do uso do Python para se comunicar com um Arduino UNO sobre uma conexão serial.


O que você precisará

  1. Arduino Uno com cabo USB
  2. Python instalado no seu computador (versão 3.x recomendado)
  3. Arduino IDE instalado
  4. Uma biblioteca para comunicação serial de Python (por exemplo, pyserial)

Etapa 1: Instale o software necessário

1. Instale o python

Se você não possui o Python instalado, faça o download de python.org e siga as instruções de instalação.

2. Instale o Arduino IDE

Baixar e instalar o Arduino IDE de Arduino.cc.

3. Instale a biblioteca Pyseial

É necessário que o Python se comunique sobre as portas seriais. Instale -o usando o seguinte comando:

pip install pyserial

Etapa 2: Escreva e envie o código Arduino

O Arduino enviará e receberá dados pela porta serial. Abaixo está um exemplo de esboço:

Código Arduino

void setup() {
  Serial.begin(9600); // Start serial communication at 9600 baud
  while (!Serial);    // Wait for the serial port to connect
  Serial.println("Arduino is ready!");
}

void loop() {
  // Check if data is available on the serial port
  if (Serial.available()) {
    String data = Serial.readString(); // Read the incoming data
    Serial.print("Received: ");
    Serial.println(data); // Echo the data back

    // Optional: Respond based on the received data
    if (data.trim() == "LED_ON") {
      Serial.println("Turning LED on");
    } else if (data.trim() == "LED_OFF") {
      Serial.println("Turning LED off");
    }
  }
}
  1. Abra o Arduino IDE.
  2. Cole o código acima no editor.
  3. Selecione o correto Quadro e Porta sob o Ferramentas menu.
  4. Clique Carregar Para fazer upload do código para o Arduino Uno.

Etapa 3: Escreva o código Python

Abaixo está um exemplo de script python para se comunicar com o Arduino:

Código Python

import serial
import time

# Configure the serial connection
arduino = serial.Serial(port='COM3', baudrate=9600, timeout=1) # Replace 'COM3' with your Arduino's port

def send_data(data):
    print(f"Sending: {data}")
    arduino.write(f"{data}\n".encode()) # Send data to Arduino
    time.sleep(0.1)

    response = arduino.readline().decode().strip() # Read response from Arduino
    if response:
        print(f"Arduino responded: {response}")

if __name__ == "__main__":
    time.sleep(2)  # Wait for Arduino to initialize
    print("Connected to Arduino")

    # Example: Send commands to Arduino
    send_data("LED_ON")
    time.sleep(2)
    send_data("LED_OFF")

    # Close the serial connection
    arduino.close()

Etapa 4: teste a configuração

  1. Conecte o Arduino ao seu computador via USB.
  2. Encontre a porta do Arduino:
    • No Windows: verifique a porta no gerenciador de dispositivos (por exemplo, COM3).
    • No macOS/linux: use o ls /dev/tty.* comando para encontrar a porta correta (por exemplo, /dev/ttyUSB0).
  3. Atualize o port Valor no script Python para combinar com a porta do Arduino.
  4. Execute o script python usando o comando:
python your_script_name.py
  1. Observe a comunicação entre Python e Arduino no terminal e no monitor serial.

Aplicações da comunicação em python-suduino

  1. Automatando tarefas de hardware (por exemplo, ativando os LEDs, controlando motores)
  2. Dados do sensor de log para um arquivo ou banco de dados
  3. Criando GUIs personalizados para projetos Arduino usando bibliotecas Python como Tknter ou Pyqt
  4. Integração do Arduino com plataformas de IoT

Solução de problemas

  • Sem conexão com Arduino:

    • Verifique se a porta correta está especificada no script python.
    • Verifique se a taxa de transmissão corresponde ao esboço do Arduino.
  • Nenhuma resposta de Arduino:

    • Adicione um atraso depois de abrir a conexão serial (time.sleep(2)).
    • Verifique se o Arduino não está sendo usado por outro programa (por exemplo, monitor serial no Arduino IDE).
  • UnicodedecodeError:

    • Verifique a codificação dos dados sendo enviados/recebidos. Usar .decode(errors='ignore') se necessário.

Conclusão

Você configurou com sucesso a comunicação entre Python e Arduino Uno sobre série. Isso abre inúmeras possibilidades para integrar as poderosas bibliotecas do Python aos recursos de hardware da Arduino. Experimente ainda mais, adicionando sensores, motores ou criando GUIs baseados em Python para seus projetos!

Deixe um comentário

Notice an Issue? Have a Suggestion?
If you encounter a problem or have an idea for a new feature, let us know! Report a problem or request a feature here.