- المواد المطلوبة:
- تثبيت Python على جهاز الكمبيوتر الخاص بك:
- الحصول على PySerial في Python:
- برنامج Arduino Python الأول لدينا:
- التحكم في LED باستخدام Python و Arduino:
لطالما كانت Arduino منصة تعلم / تطوير قوية وسهلة الاستخدام عندما يتعلق الأمر بتطوير الأجهزة مفتوحة المصدر. في عالم اليوم الحديث ، يتم تشغيل كل جهاز بواسطة لغة برمجة للأغراض العامة عالية المستوى لجعلها أكثر فعالية وسهولة في الاستخدام. إحدى هذه اللغات هي بايثون. Python هي لغة برمجة مفسرة وموجهة للكائنات وذات مستوى عالٍ مع دلالات ديناميكية ذات مستوى عالٍ من هياكل البيانات ، جنبًا إلى جنب مع الكتابة الديناميكية والربط الديناميكي ، مما يجعلها جذابة للغاية لتطوير التطبيقات السريعة.
سيؤدي الجمع بين قوة Arduino و Python إلى فتح الأبواب أمام الكثير من الاحتمالات نظرًا لأن Python لديها إنتاجية متزايدة مع قدرتها على التفاعل مع منصات أخرى مثل openCV و Matlab وما إلى ذلك. لذا في هذا البرنامج التعليمي سوف نتعلم كيف يمكننا تثبيت Python على جهاز الكمبيوتر الخاص بنا وكيفية استخدامه مع Arduino لتبديل مؤشر LED الموجود على متن Arduino.
اذا هيا بنا نبدأ….
المواد المطلوبة:
- Arduino Uno (أو أي من لوحات Arduino)
- كمبيوتر متصل بالإنترنت
تثبيت Python على جهاز الكمبيوتر الخاص بك:
من الواضح أن الخطوة الأولى في هذا البرنامج التعليمي هي تثبيت Python على جهاز الكمبيوتر الخاص بنا. الخطوات المذكورة أدناه قابلة للتطبيق فقط لمستخدمي windows الذين يستخدمون نظام تشغيل 32 بت أو 64 بت. يختلف إجراء التثبيت لنظامي MAC و Linux.
- انقر فوق Python-2.7.9 32 بت وسيقوم هذا بتثبيت Python IDLE 32 بت على جهاز الكمبيوتر الخاص بك. لا تقم بتنزيل الإصدار 64 بت أو الإصدارات المحدثة لأنها لا تقدم دعمًا لمكتبات Arduino. حتى إذا كان جهاز الكمبيوتر الخاص بك يعمل على 64 بت ، يمكنك استخدام Python 32 بت نفسها.
- افتح ملف exe الذي تم تنزيله واتبع التعليمات. لا تغير الدليل الذي يتم تثبيت Python فيه. سيكون C: \ Python27 افتراضيًا واتركه على هذا النحو.
- أثناء إجراء التثبيت ، قد تتلقى تحذيرًا من برنامج مكافحة الفيروسات (إن وجد) في هذه الحالة ، انقر فوق السماح.
هذا كل شيء !، تم تثبيت python بنجاح على جهاز الكمبيوتر الخاص بنا. يمكنك التحقق من ذلك بالبحث عن "Python IDLE" في مربع بحث Windows وفتحه.
عند الفتح يجب أن تحصل على الشاشة التالية. هذه النافذة تسمى Python Shell وسنشير إليها باسم " Python shell " من الآن.
هذه الشاشة تسمى Python Shell. يمكنك كتابة التعليمات البرمجية مباشرة هنا والحصول على الإخراج على نفس الشاشة أو إنشاء ملف جديد وكتابة البرنامج هناك والتحقق من البرنامج هنا. سوف ندخل لاحقًا في تفاصيل إنشاء برنامج بايثون ، والآن دعونا نتحقق مما إذا كان برنامج بايثون يعمل.
للقيام بذلك ، ما عليك سوى كتابة " طباعة (1 + 1) " واضغط على إدخال. يجب أن ترى النتيجة مطبوعة كما هو موضح أدناه.
الحصول على PySerial في Python:
الخطوة التالية هي تثبيت pyserial. PySerial هي وحدة Python API التي تستخدم لقراءة وكتابة البيانات التسلسلية إلى Arduino أو أي متحكم آخر.
انقر فوق Pyserial Windows لتنزيل PySerial. سيكون التنزيل الناتج عبارة عن ملف exe يمكن تثبيته مباشرة. لا تقم بتغيير أي إعداد أثناء التثبيت. اتركه للدليل الافتراضي والإعدادات الافتراضية.
الآن ، دعنا نتحقق مما إذا تم تثبيت PySerial بشكل صحيح. للقيام بذلك ، افتح Python Shell مرة أخرى واكتب
استيراد المسلسل . إذا تم تثبيت المكتبة بنجاح ، فلن تتلقى أي رسائل خطأ كما هو موضح في الصورة أدناه. إذا واجهت أي أخطاء ، فقم بنشرها في قسم التعليقات وسنحاول حلها.
يفترض هذا البرنامج التعليمي أنك معتاد على Arduino ولديك خبرة في تحميل المشاريع إلى Arduino. لذلك دعونا ننتقل مباشرة إلى برنامج بايثون الخاص بنا. إذا كنت مبتدئًا في Arduino ، فتحقق من مشاريع Arduino وابدأ من وميض LED مع Arduino.
برنامج Arduino Python الأول لدينا:
كما ذكرنا سابقًا ، سوف نتحكم في لوحة Arduino LED المدمجة باستخدام برنامج Python النصي. دعونا نبدأ برمز Arduino.
برنامج اردوينو:
يتم تقديم البرنامج الكامل لهذا البرنامج التعليمي Arduino python في نهاية هذه الصفحة. اقرأ المزيد لمعرفة كيف يعمل.
داخل وظيفة الإعداد ، نقوم بتهيئة الاتصال التسلسلي بمعدل 9600 باود ونعلن أننا سنستخدم الصمام المدمج كمخرج ونخفضه أثناء بدء البرنامج. لقد أرسلنا أيضًا رسالة ترحيب إلى Python عبر الطباعة التسلسلية كما هو موضح أدناه:
إعداد باطل () {Serial.begin (9600) ؛ // تهيئة COM التسلسلي عند 9600 baudrate pinMode (LED_BUILTIN ، OUTPUT) ؛ // اجعل دبوس LED (13) كإخراج رقمي للكتابة (LED_BUILTIN ، LOW) ؛ Serial.println ("مرحبًا ، أنا اردوينو") ؛ }
داخل وظيفة الحلقة ، نقرأ أي بيانات تأتي بشكل تسلسلي ونخصص القيمة للمتغير "data". الآن استنادًا إلى قيمة هذا المتغير ("البيانات") ، نقوم بتبديل الصمام المدمج كما هو موضح أدناه.
حلقة باطلة () {while (Serial.available ()) {data = Serial.read () ؛ } إذا كانت (data == '1') digitalWrite (LED_BUILTIN، HIGH) ؛ وإلا إذا كانت (data == '0') digitalWrite (LED_BUILTIN، LOW) ؛ }
برنامج بايثون:
يتم توفير برنامج Python الكامل لهذا البرنامج التعليمي في نهاية هذه الصفحة. اقرأ المزيد لمعرفة كيفية كتابة واستخدام نفس الشيء.
- افتح Python Shell (Python IDLE) وانقر فوق ملف-> جديد
- سيؤدي هذا إلى فتح ملف نصي جديد حيث يمكنك كتابته في برنامجك.
- قبل أن نكتب أي شيء ، دعونا نحفظ الملف ، عن طريق Ctrl + S. اكتب أي اسم وانقر فوق حفظ. سيؤدي هذا تلقائيًا إلى حفظ ملفك بامتداد “.py”.
- الآن ، اكتب البرنامج أو الصق كود Python المعطى في نهاية هذه الصفحة. يتم تقديم شرح لنفس الأمر أدناه وتشغيل البرنامج في النهاية.
في برنامجنا ، ستكون الخطوة الأولى هي استيراد مكتبة التسلسل والوقت. سيتم استخدام المكتبة التسلسلية كما ذكرنا سابقًا لقراءة البيانات التسلسلية وكتابتها وسيتم استخدام مكتبة الوقت لإنشاء تأخيرات في برنامجنا. يمكن استيراد هاتين المكتبتين في برنامجنا باستخدام السطرين التاليين:
استيراد مسلسل #Serial تم استيراده لوقت استيراد الاتصالات التسلسلية # مطلوب لاستخدام وظائف التأخير
ستكون الخطوة التالية هي تهيئة كائن تسلسلي باستخدام مكتبتنا التسلسلية. في هذا البرنامج ، قمنا بتسمية الكائن التسلسلي باسم "ArduinoSerial" . في هذا السطر ، يجب أن نذكر اسم منفذ COM الذي يتصل به Arduino الخاص بنا وبأي معدل باود يعمل كما هو موضح أدناه.
ArduinoSerial = مسلسل تسلسلي ('com18'، 9600)
ملاحظة: من المهم جدًا ذكر اسم منفذ COM الصحيح. يمكن العثور عليه باستخدام مدير الجهاز على جهاز الكمبيوتر الخاص بك.
بمجرد تهيئة الكائن التسلسلي ، يجب أن نحتفظ بالبرنامج لمدة ثانيتين حتى يتم إنشاء الاتصال التسلسلي. يمكن القيام بذلك باستخدام السطر أدناه:
time.sleep (2) الوقت
الآن يمكننا قراءة أو كتابة أي شيء من / إلى لوحة Arduino الخاصة بنا.
سيقرأ السطر التالي أي شيء قادم من Arduino وسيطبعه على نافذة shell
طباعة ArduinoSerial.readline ()
يمكنك أيضًا إسناد قيمة إلى متغير واستخدامه في الحسابات.
سيكتب السطر التالي قيمة المعلمة إلى Arduino Board.
ArduinoSerial.write ('1')
سيكتب هذا السطر '1' إلى Arduino. يمكنك إرسال أي شيء من الكسور العشرية إلى السلاسل باستخدام نفس السطر.
الآن ، بالعودة إلى برنامجنا ، داخل الحلقة اللانهائية أثناء التكرار ، لدينا الأسطر التالية
var = raw_input () #get input from user print "you الذي أدخلته" ، var # طباعة الإدخال للتأكيد إذا (var == '1'): # إذا كانت القيمة 1 ArduinoSerial.write ('1') #send 1 print ("LED قيد التشغيل") time.sleep (1) إذا (var == '0'): # إذا كانت القيمة 0 ArduinoSerial.write ('0') # إرسال 0 طباعة ("LED مطفأ") وقت.sleep (1)
سيحصل السطر var = raw_input على أي قيمة يتم كتابتها في البرنامج النصي Shell وتعيين هذه القيمة إلى المتغير var .
لاحقًا ، إذا كانت القيمة 1 ، فسيتم طباعة "1" بشكل متسلسل إلى Arduino وإذا كانت القيمة 0 فسيتم طباعة "0" بشكل تسلسلي إلى Arduino. الكود الموجود في برنامج Arduino (الذي تمت مناقشته أعلاه) سنقوم بتبديل مؤشر LED بناءً على القيمة المستلمة.
بمجرد الانتهاء من البرنامج الكامل ، يجب أن يبدو البرنامج النصي الخاص بك كما يلي
الآن انقر فوق تشغيل -> تشغيل الوحدة النمطية أو اضغط على F5 وقد يطلب منك ذلك حفظ البرنامج ثم تشغيله.
التحكم في LED باستخدام Python و Arduino:
العمل في هذا المشروع هو أمر مستقيم إلى الأمام. قم بتحميل البرنامج على Arduino وتحقق من اتصاله بنفس منفذ COM كما هو مذكور في برنامج python. ثم قم بتشغيل برنامج Python كما هو مذكور أعلاه.
سيؤدي هذا إلى تشغيل برنامج نصي لقذيفة Python كما هو موضح أدناه. النافذة على اليسار هي نافذة shell التي تعرض الإخراج والنافذة على اليمين هي النص الذي يظهر البرنامج.
كما ترى ، فإن السلسلة "Hi !، I am Arduino" التي تم إدخالها في برنامج Arduino تستقبلها Python ويتم عرضها على نافذة غلافها.
عندما تطلب نافذة الغلاف إدخال القيم ، يمكننا إدخال إما 0 أو 1. إذا أرسلنا 1 ، فسيتم تشغيل مؤشر LED الموجود على لوحة Arduino وإذا أرسلنا 0 ، فسيتم إيقاف تشغيل مؤشر LED الموجود على لوحة Arduino. إظهار اتصال ناجح بين برنامج Arduino و Python.
يوجد برنامجان مذكوران أدناه ، أحدهما يتم تحميله وتشغيله من Arduino والثاني يتم تشغيله من Python Shell في Windows.
آمل أن تكون قد فهمت المشروع وتمكنت من تشغيله. إذا لم يكن الأمر كذلك ، فقم بنشر مشكلتك في التعليق أدناه وسيسعدني مساعدتك. في مشروعنا التالي سوف نتعلم ما الذي يمكن القيام به بشكل رائع مع Python و Arduino من خلال استكشاف عميق في وحدات Python الأخرى مثل Vpython و gamepython وما إلى ذلك حتى ذلك الحين ترقبوا…