תקשורת בין פייתון לארדואינו UNO על סדרה מאפשרת לך לשלוט בחומרה באמצעות סקריפטים של פייתון או לשלוח נתונים מהארדואינו לפייתון לעיבוד. מדריך זה ינחה אתכם באמצעות הגדרה ושימוש בפיתון כדי לתקשר עם Arduino UNO על חיבור סדרתי.
מה תצטרך
- ארדואינו אונו עם כבל USB
- Python המותקן במחשב שלך (גרסה 3.x מומלץ)
- Arduino IDE מותקן
- ספרייה לתקשורת סדרתית של פייתון (למשל,
pyserial
)
שלב 1: התקן תוכנה נדרשת
1. התקן את פייתון
אם לא מותקנת פייתון, הורד אותו מ python.org ועקוב אחר הוראות ההתקנה.
2. התקן את ה- Arduino IDE
הורד והתקן את ה- Arduino IDE מ Arduino.cc.
3. התקן את הספרייה Pyserial
Pyserial נדרש לפייתון לתקשר על יציאות סדרתיות. התקן אותו באמצעות הפקודה הבאה:
pip install pyserial
שלב 2: כתוב והעלה את קוד 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");
}
}
}
- פתח את IDE Arduino.
- הדבק את הקוד לעיל בעורך.
- בחר את הנכון לוּחַ וכן נָמָל מתחת ל כְּלֵי עֲבוֹדָה תַפרִיט.
- נְקִישָׁה העלה להעלות את הקוד ל- Arduino UNO.
שלב 3: כתוב את קוד הפיתון
להלן דוגמה לתסריט פייתון לתקשר עם הארדואינו:
קוד פייתון
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: בדוק את ההתקנה
- חבר את Arduino למחשב שלך באמצעות USB.
- מצא את נמל הארדואינו:
- ב- Windows: בדוק את היציאה במנהל ההתקנים (למשל, COM3).
- ב- MacOS/Linux: השתמש ב
ls /dev/tty.*
פקודה למציאת היציאה הנכונה (למשל,/dev/ttyUSB0
).
- עדכן את
port
ערך בתסריט Python כדי להתאים את יציאת הארדואינו שלך. - הפעל את סקריפט Python באמצעות הפקודה:
python your_script_name.py
- שימו לב לתקשורת בין פייתון לארדואינו בטרמינל ובמוניטור הסדרתי.
יישומים של תקשורת Python-arduino
- אוטומציה של משימות חומרה (למשל, הפעלת נוריות LED, שליטה על מנועים)
- רישום נתוני חיישן לקובץ או בסיס נתונים
- יצירת GUIS מותאמת אישית לפרויקטים של Arduino באמצעות ספריות Python כמו Tkinter או PYQT
- שילוב ארדואינו עם פלטפורמות IoT
פתרון בעיות
-
אין קשר לארדואינו:
- ודא כי היציאה הנכונה מוגדרת בסקריפט Python.
- ודא ששיעור Baud תואם את סקיצת Arduino.
-
אין תגובה מארדואינו:
- הוסף עיכוב לאחר פתיחת החיבור הסדרתי (
time.sleep(2)
). - ודא שהארדואינו לא משמש תוכנית אחרת (למשל, צג סדרתי ב- Arduino IDE).
- הוסף עיכוב לאחר פתיחת החיבור הסדרתי (
-
Unicodedecodeerror:
- בדוק את קידוד הנתונים שנשלחו/מתקבלים. לְהִשְׁתַמֵשׁ
.decode(errors='ignore')
במידת הצורך.
- בדוק את קידוד הנתונים שנשלחו/מתקבלים. לְהִשְׁתַמֵשׁ
מַסְקָנָה
הגדרת בהצלחה תקשורת בין פייתון לארדואינו אונו על סדרה. זה פותח אפשרויות אינסופיות לשילוב הספריות החזקות של פייתון עם יכולות החומרה של ארדואינו. התנסו עוד יותר על ידי הוספת חיישנים, מנועים או יצירת GUIS מבוסס פיתון לפרויקטים שלכם!