Hoe Python te gebruiken om te communiceren met een Arduino Uno via serie

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

Door communiceren tussen Python en Arduino UNO via Serial kunt u hardware regelen met behulp van Python -scripts of gegevens van de Arduino naar Python verzenden voor verwerking. Deze zelfstudie zal u begeleiden door Python in te stellen en te gebruiken om te communiceren met een Arduino Uno via een seriële verbinding.


Wat u nodig hebt

  1. Arduino Uno met USB -kabel
  2. Python geïnstalleerd op uw computer (versie 3.x aanbevolen)
  3. Arduino Ide geïnstalleerd
  4. Een bibliotheek voor python seriële communicatie (bijv. pyserial)

Stap 1: Installeer de vereiste software

1. Installeer python

Als u Python niet hebt geïnstalleerd, download het dan van python.org en volg de installatie -instructies.

2. Installeer de Arduino IDE

Download en installeer de Arduino IDE van arduino.cc.

3. Installeer de pyseriale bibliotheek

Pyseriale is vereist voor Python om over seriële poorten te communiceren. Installeer het met de volgende opdracht:

pip install pyserial

Stap 2: Schrijf en upload de Arduino -code

De Arduino zal gegevens verzenden en ontvangen via de seriële poort. Hieronder is een voorbeeldschets:

Arduino -code

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. Open de Arduino Ide.
  2. Plak de bovenstaande code in de editor.
  3. Selecteer het juiste Bord En Haven onder de Hulpmiddelen menu.
  4. Klikken Uploaden Om de code te uploaden naar de Arduino UNO.

Stap 3: Schrijf de Python -code

Hieronder is een voorbeeld van Python -script om met de Arduino te communiceren:

Python -code

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

Stap 4: Test de instelling

  1. Sluit de Arduino via USB aan op uw computer.
  2. Vind de haven van de Arduino:
    • Op Windows: controleer de poort in de apparaatbeheer (bijv. COM3).
    • Op macOS/linux: gebruik de ls /dev/tty.* opdracht om de juiste poort te vinden (bijv. /dev/ttyUSB0).
  3. Update de port Waarde in het Python -script om overeen te komen met de poort van uw Arduino.
  4. Voer het Python -script uit met de opdracht:
python your_script_name.py
  1. Let op de communicatie tussen Python en Arduino in de terminal en seriële monitor.

Toepassingen van Python-Arduino-communicatie

  1. Hardwaretaken automatiseren (bijv. LED's inschakelen, motoren controleren)
  2. Sensorgegevens inloggen naar een bestand of database
  3. Custom GUI's maken voor Arduino -projecten met behulp van Python -bibliotheken zoals Tkinter of Pyqt
  4. Arduino integreren met IoT -platforms

Problemen oplossen

  • Geen verbinding met Arduino:

    • Zorg ervoor dat de juiste poort is opgegeven in het Python -script.
    • Controleer of de baudrate overeenkomt met de Arduino -schets.
  • Geen reactie van Arduino:

    • Voeg een vertraging toe na het openen van de seriële verbinding (time.sleep(2)).
    • Zorg ervoor dat de Arduino niet wordt gebruikt door een ander programma (bijvoorbeeld seriële monitor in de Arduino IDE).
  • UnicodedecodeError:

    • Controleer de codering van gegevens die worden verzonden/ontvangen. Gebruik .decode(errors='ignore') indien nodig.

Conclusie

Je hebt met succes de communicatie opgezet tussen Python en Arduino Uno over serie. Dit opent eindeloze mogelijkheden voor het integreren van de krachtige bibliotheken van Python met de hardwaremogelijkheden van Arduino. Experimenteer verder door sensoren, motoren toe te voegen of op Python gebaseerde GUI's voor uw projecten te maken!

Laat een reactie achter

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.