كيفية استخدام Python للتواصل مع Arduino Uno على المسلسل

How to Use Python to Communicate with an Arduino Uno Over Serial

يتيح لك التواصل بين Python و Arduino UNO على المسلسل التحكم في الأجهزة باستخدام البرامج النصية Python أو إرسال بيانات من Arduino إلى Python للمعالجة. سيوجهك هذا البرنامج التعليمي من خلال إعداد واستخدام Python للتواصل مع Arduino UNO على اتصال متسلسل.


ماذا ستحتاج

  1. Arduino Uno مع كابل USB
  2. Python مثبت على جهاز الكمبيوتر الخاص بك (الإصدار 3.x موصى به)
  3. Arduino IDE مثبتة
  4. مكتبة للاتصال التسلسلي لـ Python (على سبيل المثال ، pyserial)

الخطوة 1: تثبيت البرنامج المطلوب

1. تثبيت بيثون

إذا لم يكن لديك تثبيت Python ، فقم بتنزيله من Python.org واتبع تعليمات التثبيت.

2. قم بتثبيت Arduino IDE

قم بتنزيل وتثبيت Arduino IDE من Arduino.cc.

3. تثبيت مكتبة Pyserial

مطلوب Pyserial لبيثون للتواصل عبر المنافذ التسلسلية. تثبيته باستخدام الأمر التالي:

pip install pyserial

الخطوة 2: اكتب وتحميل رمز Arduino

سيقوم Arduino بإرسال واستلام البيانات عبر المنفذ التسلسلي. أدناه هو رسم مثال:

رمز 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");
    }
  }
}
  1. افتح Arduino IDE.
  2. الصق الكود أعلاه في المحرر.
  3. حدد الصحيح سبورة و ميناء تحت أدوات قائمة طعام.
  4. انقر رفع لتحميل الرمز إلى Arduino Uno.

الخطوة 3: اكتب رمز Python

فيما يلي مثال على نص Python للتواصل مع Arduino:

كود بيثون

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: اختبار الإعداد

  1. قم بتوصيل Arduino بجهاز الكمبيوتر الخاص بك عبر USB.
  2. ابحث عن منفذ Arduino:
    • على Windows: تحقق من المنفذ في مدير الأجهزة (على سبيل المثال ، COM3).
    • على macos/linux: استخدم ls /dev/tty.* الأمر للعثور على المنفذ الصحيح (على سبيل المثال ، /dev/ttyUSB0).
  3. تحديث port القيمة في البرنامج النصي Python لتتناسب مع منفذ Arduino الخاص بك.
  4. قم بتشغيل البرنامج النصي Python باستخدام الأمر:
python your_script_name.py
  1. راقب التواصل بين Python و Arduino في الشاشة الطرفية والسلسلة.

تطبيقات اتصال Python-arduino

  1. أتمتة مهام الأجهزة (على سبيل المثال ، تشغيل مصابيح LED ، والسيطرة على المحركات)
  2. تسجيل بيانات مستشعر التسجيل إلى ملف أو قاعدة بيانات
  3. إنشاء واجهة المستخدم الرسومية المخصصة لمشاريع Arduino باستخدام مكتبات Python مثل Tkinter أو Pyqt
  4. دمج Arduino مع منصات إنترنت الأشياء

استكشاف الأخطاء وإصلاحها

  • لا علاقة لأردوينو:

    • تأكد من تحديد المنفذ الصحيح في البرنامج النصي Python.
    • تحقق من أن معدل باود يتطابق مع رسم Arduino.
  • لا استجابة من أردوينو:

    • أضف تأخير بعد فتح الاتصال التسلسلي (time.sleep(2)).
    • تأكد من عدم استخدام Arduino بواسطة برنامج آخر (على سبيل المثال ، الشاشة التسلسلية في Arduino IDE).
  • UnicodedEcodeerror:

    • تحقق من ترميز البيانات التي يتم إرسالها/استلامها. يستخدم .decode(errors='ignore') إذا لزم الأمر.

خاتمة

لقد نجحت في إعداد التواصل بين Python و Arduino UNO على المسلسل. هذا يفتح إمكانيات لا نهاية لها لدمج مكتبات Python القوية مع إمكانات أجهزة Arduino. جرب المزيد من خلال إضافة أجهزة استشعار أو محركات أو إنشاء واجهة المستخدم الرسومية المستندة إلى Python لمشاريعك!

اترك تعليقًا

Notice an Issue? Have a Suggestion?
If you encounter a problem or have an idea for a new feature, let us know! Report a problem or request a feature here.