Cómo usar Python para comunicarse con un Arduino Uno sobre Serial

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

Comunicar entre Python y Arduino Uno Over Serial le permite controlar el hardware utilizando scripts de Python o enviar datos del Arduino a Python para su procesamiento. Este tutorial lo guiará a través de la configuración y el uso de Python para comunicarse con un Arduino Uno sobre una conexión serie.


Lo que necesitarás

  1. Arduino Uno con cable USB
  2. Python instalado en su computadora (recomendado la versión 3.x)
  3. Arduino IDE instalado
  4. Una biblioteca para la comunicación en serie de Python (por ejemplo, pyserial)

Paso 1: Instale el software requerido

1. Instale Python

Si no tiene Python instalado, descargue desde python.org y siga las instrucciones de instalación.

2. Instale el Arduino IDE

Descargue e instale el Arduino IDE desde arduino.cc.

3. Instale la biblioteca pyserial

Se requiere piserial para que Python se comunique a través de puertos serie. Instálelo usando el siguiente comando:

pip install pyserial

Paso 2: Escribe y sube el código Arduino

El Arduino enviará y recibirá datos a través del puerto serie. A continuación se muestra un boceto de ejemplo:

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 el IDE Arduino.
  2. Pegue el código anterior en el editor.
  3. Seleccione el correcto Junta y Puerto bajo el Herramientas menú.
  4. Hacer clic Subir Para subir el código al Arduino Uno.

Paso 3: Escribe el código de Python

A continuación se muestra un ejemplo de script de Python para comunicarse con el Arduino:

Código de 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()

Paso 4: prueba la configuración

  1. Conecte el Arduino a su computadora a través de USB.
  2. Encuentra el puerto de Arduino:
    • En Windows: verifique el puerto en el Administrador de dispositivos (por ejemplo, COM3).
    • En macOS/Linux: use el ls /dev/tty.* comando encontrar el puerto correcto (por ejemplo, /dev/ttyUSB0).
  3. Actualizar el port Value en el script de Python para que coincida con el puerto de su Arduino.
  4. Ejecute el script Python usando el comando:
python your_script_name.py
  1. Observe la comunicación entre Python y Arduino en el monitor terminal y en serie.

Aplicaciones de la comunicación de Python-Arduino

  1. Automatizar tareas de hardware (por ejemplo, encender LED, controlar motores)
  2. Registro de datos del sensor en un archivo o base de datos
  3. Creación de GUI personalizadas para proyectos Arduino utilizando bibliotecas de Python como Tkinter o Pyqt
  4. Integrando Arduino con plataformas IoT

Solución de problemas

  • No hay conexión con Arduino:

    • Asegúrese de especificar el puerto correcto en el script de Python.
    • Verifique que la tasa de baudios coincida con el boceto Arduino.
  • Sin respuesta de Arduino:

    • Agregue un retraso después de abrir la conexión en serie (time.sleep(2)).
    • Asegúrese de que el Arduino no esté siendo utilizado por otro programa (por ejemplo, monitor en serie en el IDE Arduino).
  • UnicodeDecodeError:

    • Verifique la codificación de los datos que se envían/reciben. Usar .decode(errors='ignore') si es necesario.

Conclusión

Has establecido con éxito la comunicación entre Python y Arduino Uno sobre Serial. Esto abre infinitos posibilidades para integrar las poderosas bibliotecas de Python con las capacidades de hardware de Arduino. ¡Experimente más al agregar sensores, motores o creando GUI basadas en Python para sus proyectos!

Escribir un comentario

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.