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
- Arduino Uno med USB -kabel
- Python installerad på din dator (version 3.x rekommenderas)
- Arduino ide installerad
- 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");
}
}
}
- Öppna Arduino IDE.
- Klistra in koden ovan i redigeraren.
- Välj rätt Styrelse och Hamn under Verktyg meny.
- 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
- Anslut Arduino till din dator via USB.
- 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
).
- Uppdatera
port
Värde i Python -skriptet för att matcha din Arduinos port. - Kör pythonskriptet med kommandot:
python your_script_name.py
- Observera kommunikationen mellan Python och Arduino i terminal- och seriell monitor.
Applikationer av Python-Artuino-kommunikation
- Automatisering av hårdvaruuppgifter (t.ex. slå på lysdioder, kontrollera motorer)
- Loggningssensordata till en fil eller databas
- Skapa anpassade GUIS för Arduino -projekt som använder Python -bibliotek som Tkinnter eller Pyqt
- 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).
- Lägg till en försening efter att ha öppnat den seriella anslutningen (
-
UnicodedecodeError:
- Kontrollera kodningen av data som skickas/mottagas. Använda
.decode(errors='ignore')
om så behövs.
- Kontrollera kodningen av data som skickas/mottagas. Använda
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!