Hogyan lehet használni a Python -t egy Arduino UNO -val való kommunikációhoz

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

A Python és az Arduino UNO közötti kommunikáció a sorozaton keresztül lehetővé teszi a hardver vezérlését a Python szkriptek segítségével, vagy az Arduino -tól a Python -ból a feldolgozás céljából történő küldését. Ez az oktatóanyag vezeti Önt a Python felállításán és felhasználásán keresztül, hogy egy soros kapcsolaton keresztül kommunikáljon egy Arduino UNO -val.


Mire lesz szüksége

  1. Arduino UNO USB -kábelrel
  2. Python telepítve a számítógépére (3.x verzió ajánlott)
  3. Arduino IDE telepítve
  4. Könyvtár a Python soros kommunikációhoz (például pyserial)

1. lépés: Telepítse a szükséges szoftvert

1. Telepítse a Python -ot

Ha még nem telepítette a Python -ot, töltse le python.org és kövesse a telepítési utasításokat.

2. Telepítse az Arduino IDE -t

Töltse le és telepítse az Arduino IDE -t Arduino.cc.

3. Telepítse a pyserial könyvtárat

A pythonnak pyserial szükséges a soros portokon keresztüli kommunikációhoz. Telepítse azt a következő paranccsal:

pip install pyserial

2. lépés: Írja be és töltse fel az Arduino kódot

Az Arduino adatokat küld és fogad a soros porton keresztül. Az alábbiakban egy példa vázlata:

Arduino -kód

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. Nyissa meg az Arduino IDE -t.
  2. Helyezze be a fenti kódot a szerkesztőbe.
  3. Válassza ki a helyeset Bizottság és Kikötő a Szerszámok menü.
  4. Kattintás Feltöltés A kód feltöltése az Arduino UNO -ba.

3. lépés: Írja be a Python kódot

Az alábbiakban bemutatunk egy python szkriptet az Arduino -val való kommunikációhoz:

Python kód

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

4. lépés: Tesztelje a beállítást

  1. Csatlakoztassa az Arduino -t a számítógépéhez USB -n keresztül.
  2. Keresse meg az Arduino portját:
    • Windows rendszeren: Ellenőrizze az eszközkezelő portját (például COM3).
    • MacOS/Linuxon: Használja a ls /dev/tty.* parancs a helyes port megtalálásához (például /dev/ttyUSB0).
  3. Frissítse a port Érték a Python szkriptben, hogy megfeleljen az Arduino portjának.
  4. Futtassa a Python szkriptet a parancs segítségével:
python your_script_name.py
  1. Vegye figyelembe a Python és az Arduino közötti kommunikációt a terminálban és a soros monitorban.

A Python-ADuino kommunikáció alkalmazásai

  1. A hardverfeladatok automatizálása (például a LED -ek bekapcsolása, a motorok vezérlője)
  2. Az érzékelő adatainak naplózása egy fájlba vagy adatbázisba
  3. Egyedi GUI -k létrehozása az Arduino projektekhez Python könyvtárak, például a TKinter vagy a PYQT segítségével
  4. Az Arduino integrálása az IoT platformokkal

Hibaelhárítás

  • Nincs kapcsolat Arduino -val:

    • Győződjön meg arról, hogy a megfelelő port a Python szkriptben van megadva.
    • Ellenőrizze, hogy az adatátviteli arány megegyezik -e az Arduino vázlatával.
  • Nincs válasz Arduino -tól:

    • Adjon hozzá egy késleltetést a soros csatlakozás megnyitása után (time.sleep(2)).
    • Győződjön meg arról, hogy az Arduino -t nem használja egy másik program (például a soros monitor az Arduino IDE -ben).
  • UnicodedecodeError:

    • Ellenőrizze a küldött/fogadott adatok kódolását. Használat .decode(errors='ignore') Ha szükséges.

Következtetés

Sikeresen felállította a kommunikációt Python és Arduino Uno között a Serial felett. Ez végtelen lehetőségeket nyit meg a Python erőteljes könyvtárainak integrálására az Arduino hardver képességeivel. Kísérletezzen tovább érzékelők, motorok hozzáadásával vagy Python-alapú GUI-k létrehozásával a projektekhez!

Hagyj egy megjegyzést

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.