Cum să folosești Python pentru a comunica cu un Arduino Uno peste serial

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

Comunicarea între Python și Arduino Uno Over Serial vă permite să controlați hardware -ul folosind scripturi Python sau să trimiteți date de la Arduino la Python pentru procesare. Acest tutorial vă va ghida prin configurarea și utilizarea Python pentru a comunica cu un Arduino Uno printr -o conexiune în serie.


Ce vei avea nevoie

  1. Arduino UNO cu cablu USB
  2. Python instalat pe computer (versiunea 3.x recomandată)
  3. Arduino IDE instalat
  4. O bibliotecă pentru comunicarea serială Python (de exemplu, pyserial)

Pasul 1: Instalați software -ul necesar

1. Instalați Python

Dacă nu aveți Python instalat, descărcați -l din python.org și urmați instrucțiunile de instalare.

2. Instalați Ideul Arduino

Descărcați și instalați IDE Arduino din Arduino.cc.

3. Instalați biblioteca pyserial

Pyryial este necesar pentru ca Python să comunice prin porturi seriale. Instalați -o folosind următoarea comandă:

pip install pyserial

Pasul 2: Scrieți și încărcați codul Arduino

Arduino va trimite și primi date prin portul serial. Mai jos este o schiță de exemplu:

Cod 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. Deschideți IDE Arduino.
  2. Lipiți codul de mai sus în editor.
  3. Selectați corect Bord şi Port sub Instrumente meniu.
  4. Clic Încărcați Pentru a încărca codul în Arduino Uno.

Pasul 3: Scrieți codul Python

Mai jos este un exemplu de script python pentru a comunica cu Arduino:

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

Pasul 4: Testați configurarea

  1. Conectați Arduino la computer prin USB.
  2. Găsiți portul lui Arduino:
    • Pe Windows: verificați portul din managerul dispozitivului (de exemplu, COM3).
    • Pe macOS/Linux: Utilizați ls /dev/tty.* Comanda pentru a găsi portul corect (de exemplu, /dev/ttyUSB0).
  3. Actualizați port Valoare în scriptul Python pentru a se potrivi cu portul dvs. Arduino.
  4. Rulați scriptul Python folosind comanda:
python your_script_name.py
  1. Observați comunicarea dintre Python și Arduino în terminal și monitor în serie.

Aplicații de comunicare Python-Arduino

  1. Automatizarea sarcinilor hardware (de exemplu, pornirea LED -urilor, controlul motoarelor)
  2. Înregistrarea datelor senzorului într -un fișier sau o bază de date
  3. Crearea de GUI personalizate pentru proiecte Arduino folosind biblioteci Python precum Tkinter sau Pyqt
  4. Integrarea Arduino cu platformele IoT

Depanare

  • Fără conexiune cu Arduino:

    • Asigurați -vă că portul corect este specificat în scriptul Python.
    • Verificați dacă rata de transfer se potrivește cu schița Arduino.
  • Fără răspuns de la Arduino:

    • Adăugați o întârziere după deschiderea conexiunii în serie (time.sleep(2)).
    • Asigurați -vă că Arduino nu este utilizat de un alt program (de exemplu, monitorul serial în IDE Arduino).
  • UnicodedecodeError:

    • Verificați codificarea datelor trimise/primite. Utilizare .decode(errors='ignore') dacă este necesar.

Concluzie

Ați înființat cu succes comunicarea între Python și Arduino UNO peste serial. Aceasta deschide posibilități interminabile pentru integrarea bibliotecilor puternice ale Python cu capacitățile hardware ale lui Arduino. Experimentați în continuare adăugând senzori, motoare sau creând GUI bazate pe Python pentru proiectele dvs.!

Lasă un comentariu

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.