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á
- Arduino Uno com cabo USB
- Python instalado no seu computador (versão 3.x recomendado)
- Arduino IDE instalado
- 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");
}
}
}
- Abra o Arduino IDE.
- Cole o código acima no editor.
- Selecione o correto Quadro e Porta sob o Ferramentas menu.
- 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
- Conecte o Arduino ao seu computador via USB.
- 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
).
- Atualize o
port
Valor no script Python para combinar com a porta do Arduino. - Execute o script python usando o comando:
python your_script_name.py
- Observe a comunicação entre Python e Arduino no terminal e no monitor serial.
Aplicações da comunicação em python-suduino
- Automatando tarefas de hardware (por exemplo, ativando os LEDs, controlando motores)
- Dados do sensor de log para um arquivo ou banco de dados
- Criando GUIs personalizados para projetos Arduino usando bibliotecas Python como Tknter ou Pyqt
- 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).
- Adicione um atraso depois de abrir a conexão serial (
-
UnicodedecodeError:
- Verifique a codificação dos dados sendo enviados/recebidos. Usar
.decode(errors='ignore')
se necessário.
- Verifique a codificação dos dados sendo enviados/recebidos. Usar
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!