Hur man använder Python för att kommunicera med en Arduino Uno över serien

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

Att kommunicera mellan Python och Arduino UNO över serien gör att du kan styra hårdvara med Python -skript eller skicka data från Arduino till Python för bearbetning. Denna handledning kommer att vägleda dig genom att ställa in och använda Python för att kommunicera med en Arduino UNO över en seriell anslutning.


Vad du behöver

  1. Arduino Uno med USB -kabel
  2. Python installerad på din dator (version 3.x rekommenderas)
  3. Arduino ide installerad
  4. Ett bibliotek för Python seriekommunikation (t.ex. pyserial)

Steg 1: Installera nödvändig programvara

1. Installera Python

Om du inte har Python installerat, ladda ner den från python.org och följ installationsinstruktionerna.

2. Installera Arduino IDE

Ladda ner och installera Arduino IDE från arduino.cc.

3. Installera pyserialbiblioteket

Pyserial krävs för att Python ska kommunicera över seriella portar. Installera det med följande kommando:

pip install pyserial

Steg 2: Skriv och ladda upp Arduino -koden

Arduino kommer att skicka och ta emot data över serieporten. Nedan är ett exempel Sketch:

Arduinokod

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. Öppna Arduino IDE.
  2. Klistra in koden ovan i redigeraren.
  3. Välj rätt Styrelse och Hamn under Verktyg meny.
  4. Klick Ladda upp För att ladda upp koden till Arduino Uno.

Steg 3: Skriv Python -koden

Nedan är ett exempel Python -skript för att kommunicera med Arduino:

Pytonkod

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

Steg 4: Testa installationen

  1. Anslut Arduino till din dator via USB.
  2. Hitta Arduino's Port:
    • På Windows: Kontrollera porten i enhetshanteraren (t.ex. COM3).
    • På macOS/Linux: använd ls /dev/tty.* kommando för att hitta rätt port (t.ex., /dev/ttyUSB0).
  3. Uppdatera port Värde i Python -skriptet för att matcha din Arduinos port.
  4. Kör pythonskriptet med kommandot:
python your_script_name.py
  1. Observera kommunikationen mellan Python och Arduino i terminal- och seriell monitor.

Applikationer av Python-Artuino-kommunikation

  1. Automatisering av hårdvaruuppgifter (t.ex. slå på lysdioder, kontrollera motorer)
  2. Loggningssensordata till en fil eller databas
  3. Skapa anpassade GUIS för Arduino -projekt som använder Python -bibliotek som Tkinnter eller Pyqt
  4. Integrering av Arduino med IoT -plattformar

Felsökning

  • Ingen anslutning till Arduino:

    • Se till att rätt port anges i Python -skriptet.
    • Kontrollera att baudhastigheten matchar Arduino -skissen.
  • Inget svar från Arduino:

    • Lägg till en försening efter att ha öppnat den seriella anslutningen (time.sleep(2)).
    • Se till att Arduino inte används av ett annat program (t.ex. seriell monitor i Arduino IDE).
  • UnicodedecodeError:

    • Kontrollera kodningen av data som skickas/mottagas. Använda .decode(errors='ignore') om så behövs.

Slutsats

Du har framgångsrikt skapat kommunikation mellan Python och Arduino Uno över Serial. Detta öppnar oändliga möjligheter för att integrera Pythons kraftfulla bibliotek med Arduinos hårdvarufunktioner. Experimentera ytterligare genom att lägga till sensorer, motorer eller skapa pythonbaserade GUIS för dina projekt!

Lämna en kommentar

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.