Comunicarea între Python și Arduino Uno Over Serial vă permite să controlați hardware -ul folosind scripturi Python sau să trimiteți date de la Arduino la Python pentru procesare. Acest tutorial vă va ghida prin configurarea și utilizarea Python pentru a comunica cu un Arduino Uno printr -o conexiune în serie.
Ce vei avea nevoie
- Arduino UNO cu cablu USB
- Python instalat pe computer (versiunea 3.x recomandată)
- Arduino IDE instalat
- O bibliotecă pentru comunicarea serială Python (de exemplu,
pyserial
)
Pasul 1: Instalați software -ul necesar
1. Instalați Python
Dacă nu aveți Python instalat, descărcați -l din python.org și urmați instrucțiunile de instalare.
2. Instalați Ideul Arduino
Descărcați și instalați IDE Arduino din Arduino.cc.
3. Instalați biblioteca pyserial
Pyryial este necesar pentru ca Python să comunice prin porturi seriale. Instalați -o folosind următoarea comandă:
pip install pyserial
Pasul 2: Scrieți și încărcați codul Arduino
Arduino va trimite și primi date prin portul serial. Mai jos este o schiță de exemplu:
Cod Arduino
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");
}
}
}
- Deschideți IDE Arduino.
- Lipiți codul de mai sus în editor.
- Selectați corect Bord şi Port sub Instrumente meniu.
- Clic Încărcați Pentru a încărca codul în Arduino Uno.
Pasul 3: Scrieți codul Python
Mai jos este un exemplu de script python pentru a comunica cu Arduino:
Cod Python
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()
Pasul 4: Testați configurarea
- Conectați Arduino la computer prin USB.
- Găsiți portul lui Arduino:
- Pe Windows: verificați portul din managerul dispozitivului (de exemplu, COM3).
- Pe macOS/Linux: Utilizați
ls /dev/tty.*
Comanda pentru a găsi portul corect (de exemplu,/dev/ttyUSB0
).
- Actualizați
port
Valoare în scriptul Python pentru a se potrivi cu portul dvs. Arduino. - Rulați scriptul Python folosind comanda:
python your_script_name.py
- Observați comunicarea dintre Python și Arduino în terminal și monitor în serie.
Aplicații de comunicare Python-Arduino
- Automatizarea sarcinilor hardware (de exemplu, pornirea LED -urilor, controlul motoarelor)
- Înregistrarea datelor senzorului într -un fișier sau o bază de date
- Crearea de GUI personalizate pentru proiecte Arduino folosind biblioteci Python precum Tkinter sau Pyqt
- Integrarea Arduino cu platformele IoT
Depanare
-
Fără conexiune cu Arduino:
- Asigurați -vă că portul corect este specificat în scriptul Python.
- Verificați dacă rata de transfer se potrivește cu schița Arduino.
-
Fără răspuns de la Arduino:
- Adăugați o întârziere după deschiderea conexiunii în serie (
time.sleep(2)
). - Asigurați -vă că Arduino nu este utilizat de un alt program (de exemplu, monitorul serial în IDE Arduino).
- Adăugați o întârziere după deschiderea conexiunii în serie (
-
UnicodedecodeError:
- Verificați codificarea datelor trimise/primite. Utilizare
.decode(errors='ignore')
dacă este necesar.
- Verificați codificarea datelor trimise/primite. Utilizare
Concluzie
Ați înființat cu succes comunicarea între Python și Arduino UNO peste serial. Aceasta deschide posibilități interminabile pentru integrarea bibliotecilor puternice ale Python cu capacitățile hardware ale lui Arduino. Experimentați în continuare adăugând senzori, motoare sau creând GUI bazate pe Python pentru proiectele dvs.!