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
- Arduino Uno met USB -kabel
- Python geïnstalleerd op uw computer (versie 3.x aanbevolen)
- Arduino Ide geïnstalleerd
- 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");
}
}
}
- Open de Arduino Ide.
- Plak de bovenstaande code in de editor.
- Selecteer het juiste Bord En Haven onder de Hulpmiddelen menu.
- 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
- Sluit de Arduino via USB aan op uw computer.
- 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
).
- Update de
port
Waarde in het Python -script om overeen te komen met de poort van uw Arduino. - Voer het Python -script uit met de opdracht:
python your_script_name.py
- Let op de communicatie tussen Python en Arduino in de terminal en seriële monitor.
Toepassingen van Python-Arduino-communicatie
- Hardwaretaken automatiseren (bijv. LED's inschakelen, motoren controleren)
- Sensorgegevens inloggen naar een bestand of database
- Custom GUI's maken voor Arduino -projecten met behulp van Python -bibliotheken zoals Tkinter of Pyqt
- 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).
- Voeg een vertraging toe na het openen van de seriële verbinding (
-
UnicodedecodeError:
- Controleer de codering van gegevens die worden verzonden/ontvangen. Gebruik
.decode(errors='ignore')
indien nodig.
- Controleer de codering van gegevens die worden verzonden/ontvangen. Gebruik
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!