تفتح برمجة Arduino مع Python عالمًا من الإمكانيات لأولئك المتحمسين للإلكترونيات وتطوير البرمجيات. يتيح لك دمج هاتين الأداتين الجمع بين تعدد استخدامات Arduino كوحدة تحكم دقيقة مع قوة وبساطة Python لإنشاء مشاريع مبتكرة. في هذه المقالة، ستتعلم كيفية ربط كلا العالمين والتعمق في الخطوات الأساسية لبدء تطوير تطبيقاتك الخاصة باستخدام هذه التقنيات.
اردوينو، منصة hardware libre، معروف بسهولة استخدامه وقابليته للتكيف، بينما Python، لغة برمجة عالية المستوى، تتميز ببساطتها وفعاليتها. بالرغم من أن الاردوينو عادة ما يتم برمجته بلغته الخاصة المبنية على لغة C++، إلا أنه من الممكن التواصل معه باستخدام لغة بايثون بفضل مكتبات مثل باي سيريالوالتي تمكن الاتصال من خلال المنفذ التسلسلي. سنستكشف هنا بدقة كيفية تنفيذ هذا التكامل بدءًا من المبادئ الأساسية وحتى الأمثلة العملية الأكثر تقدمًا.
المتطلبات للبدء
قبل البدء في برمجة Arduino باستخدام Python، من الضروري التأكد من أن لديك الأدوات والإعدادات اللازمة:
- لوحة اردوينو: نماذج مثل Arduino UNOتعتبر Nano أو Mega مثالية لهذا النوع من المشاريع.
- كابل USB: ضروري لتوصيل لوحة الاردوينو بالكمبيوتر.
- تم تثبيت بايثون: يمكنك تنزيل أحدث إصدار من لغة بايثون من موقعها الرسمي.
- قم بتثبيت مكتبة PySerial: هذه المكتبة ضرورية لإقامة اتصال بين Arduino وPython. يتم تثبيته عن طريق تشغيل الأمر
pip install pyserial
.
التكوين الأساسي على اردوينو
الخطوة الأولى لربط Arduino مع Python هي تكوين رسم تخطيطي من اردوينو. سيسمح هذا الكود المكتوب في Arduino IDE للوحة بتلقي ومعالجة البيانات التي ترسلها Python إليها. على سبيل المثال، يتيح لك البرنامج التالي تشغيل وإيقاف تشغيل مؤشر LED الموجود على الطرف 13 اعتمادًا على البيانات المستلمة:
إعداد باطل () {Serial.begin (9600)؛ pinMode(13, OUTPUT); } حلقة باطلة() { إذا (Serial.available() > 0) { بيانات char = Serial.read(); if (data == '1') { digitalWrite(13, HIGH); } else if (data == '0') { digitalWrite(13, LOW); } } }
ينشئ هذا الرمز الاتصال عبر المنفذ التسلسلي عند 9600 باود وينتظر تلقي الأحرف "1" o "0" لتشغيل أو إيقاف تشغيل مؤشر LED المدمج.
الاتصال مع بايثون
بمجرد تكوين Arduino، حان الوقت لكتابة برنامج Python الذي ينشئ الاتصال باللوحة ويرسل الأوامر. فيما يلي مثال بسيط لاستخدام المكتبة باي سيريال:
استيراد وقت الاستيراد التسلسلي # تكوين المنفذ التسلسلي لـ Arduino = serial.Serial('COM3', 9600) time.sleep(2) # انتظر حتى يستقر الاتصال # أرسل الأوامر arduino.write(b'1') print("LED on " ) time.sleep(2) arduino.write(b'0') print("LED off") arduino. Close()
يفتح هذا البرنامج النصي المنفذ التسلسلي، ويرسل الأمر "1" لتشغيل مؤشر LED، انتظر ثانيتين ثم أرسل "0" لإيقاف تشغيله. تذكر أن تقوم بضبط منفذ COM وفقًا لنظام التشغيل واتصال اللوحة الخاصة بك.
تحديد المنفذ التسلسلي
لكي يتواصل Arduino وPython بشكل صحيح، من الضروري تحديد المنفذ التسلسلي الذي يتصل به Arduino. في ويندوزيمكنك التحقق من ذلك من إدارة الأجهزة. في الأنظمة لينكس o ماكاستخدم الأمر ls /dev/
في المحطة للعثور على شيء مماثل ل / dev / ttyUSB0.
مثال متقدم: قراءة المستشعر
الاستخدام العملي الآخر للتواصل بين Arduino وPython هو قراءة البيانات من أجهزة الاستشعار المتصلة بـ Arduino وعرضها في الوقت الفعلي في Python. على سبيل المثال، ل استشعار درجة الحرارة:
كود اردوينو:
int SensorPin = A0; إعداد باطل () {Serial.begin (9600)؛ } حلقة باطلة() { int SensorValue =analogRead(sensorPin); Serial.println(sensorValue); تأخير (1000)؛ }
كود بايثون:
استيراد وقت الاستيراد التسلسلي اردوينو = serial.Serial('COM3', 9600) time.sleep(2) بينما صحيح: Sensor_data = arduino.readline().decode('utf-8').strip() print(f"Value المستشعر: {sensor_data}")
يستقبل هذا المثال قيم المستشعر على Arduino ويطبعها على وحدة تحكم Python، مما يسمح بمراقبة البيانات في الوقت الفعلي.
توسيع الاحتمالات مع الرؤية الاصطناعية
إذا كنت تريد الارتقاء بمشروعك إلى المستوى التالي، فيمكنك دمج Python وArduino لمهام التطوير. رؤية اصطناعية باستخدام OpenCV. على سبيل المثال، نظام يكتشف ما إذا كان شخص ما يرتدي قناعًا ويقوم بتشغيل أضواء LED الملونة اعتمادًا على النتيجة:
- Un الصمام أزول يشير إلى أن الشخص يرتدي قناعًا.
- Un أدى الأحمر يتم تشغيله إذا لم يكتشف قناعًا.
باستخدام Mediapipe وOpenCV، يمكنك تدريب نموذج لاكتشاف الوجه وإرسال النتائج إلى Arduino لتشغيل مصابيح LED وفقًا لذلك.
يفتح اتحاد Arduino وPython إمكانيات لا حصر لها للمشاريع الإبداعية والتعليمية. بدءًا من المهام البسيطة مثل التحكم في مصابيح LED وحتى التطبيقات المتقدمة باستخدام أجهزة الاستشعار ورؤية الآلة، توفر هذه الأدوات مزيجًا مثاليًا لتحقيق أقصى قدر من التعلم في مجال الإلكترونيات والبرمجة.