- Adafruit 5X8 NeoPixel Shield لأردوينو
- فهم عملية الاتصال بين تطبيق Blynk و Arduino
- المكونات مطلوبة
- Adafruit RGB LED Shield و Arduino - اتصال الأجهزة
- تكوين تطبيق Blynk
- كود اردوينو يتحكم في Adafruit WS2812B RGB LED Shield
- تحميل الكود على لوحة اردوينو
على مدار بضع سنوات ، أصبحت مصابيح RGB LED شائعة يومًا بعد يوم بسبب لونها الجميل وسطوعها وتأثيرات الإضاءة الجذابة. لهذا السبب يتم استخدامه في العديد من الأماكن كعنصر زخرفي ، على سبيل المثال يمكن أن يكون المنزل أو مساحة المكتب. أيضًا ، يمكننا استخدام مصابيح RGB في المطبخ وأيضًا في وحدة تحكم الألعاب. إنها أيضًا رائعة في غرفة ألعاب الأطفال أو غرف النوم من حيث الإضاءة المزاجية. في السابق ، استخدمنا WS2812B NeoPixel LEDs و متحكم ARM لبناء مصور طيف موسيقي ، لذا تحقق من ذلك إذا كان هذا مثيرًا للاهتمام بالنسبة لك.
هذا هو السبب في أننا سنستخدم في هذا المشروع درع مصفوفة Neopixel Based RGB LED وتطبيق Arduino و Blynk لإنتاج العديد من تأثيرات الرسوم المتحركة الرائعة والألوان التي سنتمكن من التحكم فيها باستخدام تطبيق Blynk. اذا هيا بنا نبدأ!!!
Adafruit 5X8 NeoPixel Shield لأردوينو
يحتوي NeoPixel Shield المتوافق مع Arduino على أربعين مصباحًا RGB LED قابلًا للعنونة بشكل فردي ، كل منها يحتوي على برنامج تشغيل WS2812b مدمج ، والذي يتم ترتيبه في مصفوفة 5 × 8 لتشكيل NeoPixel Shield. يمكن أيضًا توصيل عدة دروع NeoPixel لتشكيل درع أكبر إذا كان ذلك مطلوبًا. للتحكم في RGB LEDs ، يلزم وجود دبوس Arduino واحد ، لذلك في هذا البرنامج التعليمي ، قررنا استخدام دبوس 6 من Arduino للقيام بذلك.
في حالتنا ، يتم تشغيل مصابيح LED من دبوس 5V المدمج في Arduino ، وهو ما يكفي لتشغيل حوالي "ثلث مصابيح LED" عند السطوع الكامل. إذا كنت بحاجة إلى تشغيل المزيد من مصابيح LED ، فيمكنك قطع التتبع المدمج واستخدام مصدر 5 فولت خارجي لتشغيل الدرع باستخدام طرف 5 فولت خارجي.
فهم عملية الاتصال بين تطبيق Blynk و Arduino
تحتوي مصفوفة 8 * 5 RGB LED المستخدمة هنا على أربعين مصباح RGB LED قابل للتوجيه بشكل فردي بناءً على برنامج تشغيل WS2812B. يحتوي على تحكم في الألوان 24 بت و 16.8 مليون لون لكل بكسل. يمكن التحكم فيه باستخدام منهجية "التحكم في سلك واحد". هذا يعني أنه يمكننا التحكم في بكسل LED بالكامل باستخدام دبوس تحكم واحد. أثناء العمل مع مصابيح LED ، قمت بالاطلاع على ورقة البيانات الخاصة بمصابيح LED حيث وجدت أن نطاق جهد التشغيل للدرع هو 4 فولت إلى 6 فولت وتم اكتشاف الاستهلاك الحالي 50 مللي أمبير لكل LED عند 5 فولت باللون الأحمر والأخضر ، والأزرق في السطوع الكامل. إنه يحتوي على حماية الجهد العكسي على دبابيس الطاقة الخارجية وزر إعادة الضبط على Shield لإعادة ضبط Arduino. يحتوي أيضًا على دبوس إدخال طاقة خارجي لمصابيح LED إذا لم تتوفر كمية كافية من الطاقة من خلال الدوائر الداخلية.
كما هو موضح في الرسم التخطيطي أعلاه ، نحتاج إلى تنزيل تطبيق Blynk وتثبيتهعلى هاتفنا الذكي حيث يمكن التحكم في المعلمات مثل اللون والسطوع. بعد إعداد المعلمات ، إذا حدثت أي تغييرات في التطبيق ، فسيكون ذلك على سحابة Blynk حيث يتصل جهاز الكمبيوتر الخاص بنا أيضًا وجاهزًا لتلقي البيانات المحدثة. يتم توصيل Arduino Uno بجهاز الكمبيوتر الخاص بنا عبر كابل USB مع فتح منفذ اتصال ، ومن خلال منفذ الاتصال (COM Port) ، يمكن تبادل البيانات بين سحابة Blynk و Arduino UNO. يطلب الكمبيوتر بيانات من سحابة Blynk على فترات زمنية ثابتة وعندما يتم تلقي بيانات محدثة ، فإنه ينقلها إلى Arduino ويتخذ قرارات محددة من قبل المستخدم مثل التحكم في سطوع وألوان RGB. يتم وضع درع RGB LED على Arduino LED ويتم توصيله عبر دبوس بيانات واحد للاتصال ، ويتم توصيله افتراضيًا عبر دبوس D6 في Arduino.يتم إرسال البيانات التسلسلية المرسلة من Arduino UNO إلى Neopixel shied والتي تنعكس بعد ذلك على مصفوفة LED.
المكونات مطلوبة
- اردوينو UNO
- 8 * 5 RGB LED مصفوفة درع
- كابل USB A / B لـ Arduino UNO
- كمبيوتر محمول / كمبيوتر شخصي
Adafruit RGB LED Shield و Arduino - اتصال الأجهزة
تحتوي مصابيح WS2812B Neopixel LEDs على ثلاثة دبابيس ، أحدها مخصص للبيانات والآخران يستخدمان للطاقة ، لكن درع Arduino المحدد هذا يجعل اتصال الأجهزة بسيطًا للغاية ، كل ما علينا فعله هو وضع مصفوفة Neopixel LED في الجزء العلوي من Arduino UNO. في حالتنا ، يتم تشغيل LED من سكة Arduino 5V الافتراضية. بعد وضع Neopixel Shield ، يبدو الإعداد كما يلي:
تكوين تطبيق Blynk
Blynk هو تطبيق يمكن تشغيله على أجهزة Android و IOS للتحكم في أي أجهزة وأجهزة إنترنت الأشياء باستخدام هواتفنا الذكية. بادئ ذي بدء ، يجب إنشاء واجهة مستخدم رسومية (GUI) للتحكم في مصفوفة RGB LED. سيرسل التطبيق جميع المعلمات المحددة من واجهة المستخدم الرسومية إلى Blynk Cloud. في قسم جهاز الاستقبال ، لدينا Arduino متصل بجهاز الكمبيوتر عبر كابل اتصال تسلسلي. وبالتالي ، يطلب الكمبيوتر البيانات من سحابة Blynk ، ويتم إرسال هذه البيانات إلى Arduino للمعالجة اللازمة. لذلك ، لنبدأ في إعداد تطبيق Blynk.
قبل الإعداد ، قم بتنزيل تطبيق Blynk من متجر Google Play (يمكن لمستخدمي IOS التنزيل من متجر التطبيقات). بعد التثبيت ، قم بالتسجيل باستخدام معرف البريد الإلكتروني وكلمة المرور.
إنشاء مشروع جديد:
بعد التثبيت الناجح ، افتح التطبيق ، وهناك سنحصل على شاشة بها خيار " مشروع جديد ". انقر فوقه وستظهر لك شاشة جديدة ، حيث نحتاج إلى تعيين المعلمات مثل اسم المشروع واللوحة ونوع الاتصال. في مشروعنا ، حدد الجهاز باسم " Arduino UNO " ونوع الاتصال باسم " USB " وانقر على " إنشاء".
بعد الإنشاء الناجح للمشروع ، سنحصل على معرف مصادقة في بريدنا المسجل. احفظ معرّف المصادقة للرجوع إليه في المستقبل.
إنشاء واجهة المستخدم الرسومية (GUI):
افتح المشروع في Blynk ، وانقر فوق علامة "+" حيث سنحصل على الأدوات التي يمكننا استخدامها في مشروعنا. في حالتنا ، نحتاج إلى RGB Color Picker المدرج باسم "zeRGBa" كما هو موضح أدناه.
ضبط الحاجيات:
بعد سحب الأدوات إلى مشروعنا ، يتعين علينا الآن تعيين معلماتها التي تُستخدم لإرسال قيم RGB الملونة إلى Arduino UNO.
انقر فوق ZeRGBa ، ثم سنحصل على شاشة باسم إعداد ZeRGBa. ثم اضبط خيار الإخراج على " دمج " واضبط الدبوس على "V2" الذي يظهر في الصورة أدناه.
كود اردوينو يتحكم في Adafruit WS2812B RGB LED Shield
بعد الانتهاء من توصيل الجهاز ، يجب تحميل الكود على Arduino. يتم عرض الشرح التدريجي للكود أدناه.
أولاً ، قم بتضمين جميع المكتبات المطلوبة. افتح Arduino IDE ، ثم انتقل إلى علامة التبويب Sketch وانقر على الخيار Include Library-> Manage Libraries . ثم ابحث عن Blynk في مربع البحث ثم قم بتنزيل وتثبيت حزمة Blynk لـ Arduino UNO.
هنا يتم استخدام مكتبة " Adafruit_NeoPixel.h " للتحكم في RGB LED Matrix. لتضمينها ، يمكنك تنزيل مكتبة Adafruit_NeoPixel من الرابط المحدد. بمجرد حصولك على ذلك ، يمكنك تضمينه مع خيار Include ZIP Library.
#define BLYNK_PRINT DebugSerial #include #include
ثم نحدد عدد مصابيح LED المطلوبة لمصفوفة LED الخاصة بنا ، كما نحدد رقم الدبوس المستخدم للتحكم في معلمات LED.
#define PIN 6 # تعريف NUM_PIXELS 40
بعد ذلك ، نحتاج إلى وضع معرف المصادقة الوامض في مصفوفة المصادقة ، والتي حفظناها مسبقًا.
char auth = "HoLYSq-SGJAafQUQXXXXXXXX" ؛
هنا يتم استخدام المسامير التسلسلية للبرامج كوحدة تحكم التصحيح. لذلك ، يتم تعريف دبابيس Arduino على أنها تسلسل تصحيح الأخطاء أدناه.
#تضمن
داخل الإعداد ، تتم تهيئة الاتصال التسلسلي باستخدام الوظيفة Serial.begin ، يتم توصيل blynk باستخدام Blynk.begin وباستخدام pixels.begin () ، تتم تهيئة LED Matrix.
إعداد باطل () { DebugSerial.begin (9600) ، pixels.begin () ، Serial.begin (9600) ؛ Blynk.begin (المسلسل ، المصادقة) ؛ }
داخل الحلقة () ، استخدمنا Blynk.run () ، الذي يتحقق من الأوامر الواردة من blynk GUI وينفذ العمليات وفقًا لذلك.
حلقة باطلة () { Blynk.run () ، }
في المرحلة النهائية ، يجب استلام ومعالجة المعلمات التي تم إرسالها من تطبيق Blynk. في هذه الحالة ، تم تخصيص المعلمات إلى دبوس افتراضي "V2" كما تمت مناقشته سابقًا في قسم الإعداد. وظيفة BLYNK_WRITE هي وظيفة مضمنة يتم استدعاؤها كلما تغيرت حالة / قيمة الطرف الظاهري المرتبط. يمكننا تشغيل الكود داخل هذه الوظيفة تمامًا مثل أي وظيفة أخرى في Arduino.
هنا تتم كتابة وظيفة BLYNK_WRITE للتحقق من البيانات الواردة في الرقم الظاهري V2. كما هو موضح في قسم إعداد Blink ، تم دمج بيانات بكسل اللون وتعيينها إلى دبوس V2. لذلك يتعين علينا أيضًا إلغاء الدمج مرة أخرى بعد فك التشفير. نظرًا للتحكم في مصفوفة بكسل LED ، نحتاج إلى جميع بيانات بكسل الألوان الثلاثة الفردية مثل الأحمر والأخضر والأزرق. كما هو موضح في الكود أدناه ، تمت قراءة ثلاثة فهارس للمصفوفة مثل param.asInt () للحصول على قيمة اللون الأحمر. وبالمثل ، تم استلام جميع القيمتين الأخريين وتخزينهما في 3 متغيرات فردية. ثم يتم تعيين هذه القيم إلى مصفوفة البكسل باستخدام وظيفة pixels.setPixelColor كما هو موضح في الكود أدناه.
هنا ، تُستخدم وظيفة pixels.setBrightness () للتحكم في السطوع والبكسل. تُستخدم وظيفة () لعرض اللون المحدد في المصفوفة.
BLYNK_WRITE (V2) { int r = param.asInt () ؛ int g = param.asInt () ؛ int b = param.asInt () ؛ بكسل. واضح () ، pixels.setBrightness (20) ، لـ (int i = 0 ؛ i <= NUM_PIXELS ؛ i ++) { pixels.setPixelColor (i ، pixels.Color (r ، g ، b)) ؛ } pixels.show ()؛ }
تحميل الكود على لوحة اردوينو
أولاً ، نحتاج إلى تحديد منفذ Arduino داخل Arduino IDE ، ثم نحتاج إلى تحميل الكود إلى Arduino UNO. بعد التحميل الناجح ، قم بتدوين رقم المنفذ الذي سيتم استخدامه لإعداد الاتصال التسلسلي الخاص بنا.
بعد ذلك ، ابحث عن مجلد البرنامج النصي لمكتبة Blynk على جهاز الكمبيوتر الخاص بك. يتم تثبيته عند تثبيت المكتبة ،
"C: \ Users \ PC_Name \ Documents \ Arduino \ libraries \ Blynk \ scripts"
في مجلد البرنامج النصي ، يجب أن يكون هناك ملف باسم "blynk-ser.bat" وهو ملف دفعي يستخدم للاتصال التسلسلي الذي نحتاج إلى تحريره باستخدام المفكرة. افتح الملف باستخدام المفكرة وقم بتغيير رقم المنفذ إلى رقم منفذ Arduino الذي سجلته في الخطوة الأخيرة.
بعد التحرير ، احفظ الملف وقم بتشغيل الملف الدفعي بالنقر المزدوج عليه. بعد ذلك ، يجب أن تشاهد نافذة كما هو موضح أدناه:
ملاحظة: إذا لم تكن قادرًا على رؤية هذه النافذة الموضحة أعلاه وتمت مطالبتك بإعادة الاتصال ، فقد يكون ذلك بسبب خطأ في اتصال الكمبيوتر مع درع Arduino. في هذه الحالة ، تحقق من اتصال Arduino بجهاز الكمبيوتر. بعد ذلك ، تحقق مما إذا كان رقم منفذ COM يظهر في Arduino IDE أم لا. إذا كان يعرض منفذ COM الصالح ، فهو جاهز للمتابعة. يجب عليك تشغيل الملف الدفعي مرة أخرى.
العرض النهائي:
حان الوقت الآن لاختبار الدائرة ووظائفها. افتح تطبيق Blynk وافتح واجهة المستخدم الرسومية وانقر على زر التشغيل. بعد ذلك ، يمكنك تحديد أي من الألوان التي تريدها لتنعكس على مصفوفة LED. كما هو موضح أدناه ، في حالتي اخترت اللون الأحمر والأزرق ، يتم عرضه في المصفوفة.
وبالمثل ، يمكنك أيضًا محاولة إنشاء رسوم متحركة مختلفة باستخدام مصفوفات LED هذه عن طريق تخصيص الترميز قليلاً.