Come usare Python per comunicare con un Arduino Uno su seriale

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

La comunicazione tra Python e Arduino Uno su Serial consente di controllare l'hardware usando gli script di Python o inviare dati da Arduino a Python per l'elaborazione. Questo tutorial ti guiderà attraverso l'impostazione e l'utilizzo di Python per comunicare con un Arduino Uno su una connessione seriale.


Cosa avrai bisogno

  1. Arduino Uno con cavo USB
  2. Python installato sul tuo computer (versione 3.x consigliato)
  3. Arduino IDE installato
  4. Una biblioteca per la comunicazione seriale Python (ad es., pyserial)

Passaggio 1: installare il software richiesto

1. Installa Python

Se non hai installato Python, scaricalo da pithon.org e seguire le istruzioni di installazione.

2. Installa l'IDE Arduino

Scarica e installa l'IDE Arduino da Arduino.cc.

3. Installa la libreria pyserial

Pyserial è necessario per Python di comunicare rispetto alle porte seriali. Installalo utilizzando il seguente comando:

pip install pyserial

Passaggio 2: scrivere e caricare il codice Arduino

Arduino invierà e riceverà dati sulla porta seriale. Di seguito è riportato uno schizzo di esempio:

Codice 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. Apri l'IDE Arduino.
  2. Incolla il codice sopra nell'editor.
  3. Seleziona il corretto Asse E Porta sotto il Utensili menu.
  4. Clic Caricamento Per caricare il codice su Arduino Uno.

Passaggio 3: scrivi il codice Python

Di seguito è riportato uno script di Python ad esempio per comunicare con l'Arduino:

Codice 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()

Passaggio 4: testare l'installazione

  1. Collega l'Arduino al tuo computer tramite USB.
  2. Trova il porto di Arduino:
    • Su Windows: controllare la porta nel gestore dei dispositivi (ad es. Com3).
    • Su macOS/Linux: usa il ls /dev/tty.* comanda per trovare la porta corretta (ad es. /dev/ttyUSB0).
  3. Aggiorna il port Valuta nello script Python per abbinare la porta del tuo Arduino.
  4. Esegui lo script Python usando il comando:
python your_script_name.py
  1. Osservare la comunicazione tra Python e Arduino nel monitor terminale e seriale.

Applicazioni di comunicazione Python-Arduino

  1. Automazione delle attività hardware (ad es. Accensione dei LED, controllo dei motori)
  2. Registrazione dei dati del sensore in un file o un database
  3. Creazione di GUI personalizzate per progetti Arduino utilizzando librerie Python come Tkinter o Pyqt
  4. Integrazione di Arduino con piattaforme IoT

Risoluzione dei problemi

  • Nessuna connessione ad Arduino:

    • Assicurarsi che la porta corretta sia specificata nello script Python.
    • Verificare che il tasso di baud corrisponda allo schizzo Arduino.
  • Nessuna risposta da Arduino:

    • Aggiungi un ritardo dopo l'apertura della connessione seriale (time.sleep(2)).
    • Assicurarsi che Arduino non venga utilizzato da un altro programma (ad esempio, monitor seriale nell'IDE Arduino).
  • UnicodeDecodeError:

    • Controllare la codifica dei dati inviati/ricevuti. Utilizzo .decode(errors='ignore') se necessario.

Conclusione

Hai impostato con successo la comunicazione tra Python e Arduino Uno su seriale. Questo apre infiniti possibilità per l'integrazione delle potenti librerie di Python con le capacità hardware di Arduino. Sperimenta ulteriormente aggiungendo sensori, motori o creando GUI a base di Python per i tuoi progetti!

Lascia un commento

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.