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
- Arduino UNO USB -kábelrel
- Python telepítve a számítógépére (3.x verzió ajánlott)
- Arduino IDE telepítve
- 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");
}
}
}
- Nyissa meg az Arduino IDE -t.
- Helyezze be a fenti kódot a szerkesztőbe.
- Válassza ki a helyeset Bizottság és Kikötő a Szerszámok menü.
- 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
- Csatlakoztassa az Arduino -t a számítógépéhez USB -n keresztül.
- 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
).
- Frissítse a
port
Érték a Python szkriptben, hogy megfeleljen az Arduino portjának. - Futtassa a Python szkriptet a parancs segítségével:
python your_script_name.py
- 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
- A hardverfeladatok automatizálása (például a LED -ek bekapcsolása, a motorok vezérlője)
- Az érzékelő adatainak naplózása egy fájlba vagy adatbázisba
- 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
- 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).
- Adjon hozzá egy késleltetést a soros csatlakozás megnyitása után (
-
UnicodedecodeError:
- Ellenőrizze a küldött/fogadott adatok kódolását. Használat
.decode(errors='ignore')
Ha szükséges.
- Ellenőrizze a küldött/fogadott adatok kódolását. Használat
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!