جدول المحتويات:

تحكم DIY بألوان RGB LED عبر البلوتوث: 5 خطوات
تحكم DIY بألوان RGB LED عبر البلوتوث: 5 خطوات

فيديو: تحكم DIY بألوان RGB LED عبر البلوتوث: 5 خطوات

فيديو: تحكم DIY بألوان RGB LED عبر البلوتوث: 5 خطوات
فيديو: مشروع أردوينو - التحكم في لون الاضاءة عن طريق بلوتوث هاتفك الذكي 2024, يوليو
Anonim
DIY التحكم RGB LED اللون عن طريق البلوتوث
DIY التحكم RGB LED اللون عن طريق البلوتوث

ازدادت شعبية المصابيح الذكية مؤخرًا وأصبحت باطراد جزءًا أساسيًا من مجموعة أدوات المنزل الذكي. تتيح المصابيح الذكية للمستخدم التحكم في الإضاءة عبر تطبيق خاص على الهاتف الذكي للمستخدم ؛ يمكن تشغيل وإيقاف المصباح ويمكن تغيير اللون من واجهة التطبيق. في هذا المشروع ، قمنا ببناء وحدة تحكم لمبة ذكية يمكن التحكم فيها من زر يدوي أو تطبيق محمول عبر البلوتوث. لإضافة بعض الذوق إلى هذا المشروع ، قمنا بإضافة بعض الميزات التي تتيح للمستخدم اختيار لون الإضاءة من قائمة الألوان المضمنة في واجهة التطبيق. يمكنه أيضًا تنشيط "المزج التلقائي" لإنشاء تأثيرات لونية وتغيير الإضاءة كل نصف ثانية. يمكن للمستخدم إنشاء مزيج الألوان الخاص به باستخدام ميزة PWM والتي يمكن استخدامها أيضًا كأداة باهتة للألوان الأساسية الثلاثة (الأحمر والأخضر والأزرق). أضفنا أيضًا أزرارًا خارجية إلى الدائرة بحيث يمكن للمستخدم التبديل إلى الوضع اليدوي وتغيير لون الإضاءة من زر خارجي.

يتكون هذا Instructable من قسمين ؛ تصميم GreenPAK ™ وتصميم تطبيقات Android. يعتمد تصميم GreenPAK على استخدام واجهة UART للاتصال. تم اختيار UART لأنه مدعوم من قبل معظم وحدات Bluetooth ، بالإضافة إلى معظم الأجهزة الطرفية الأخرى ، مثل وحدات WIFI. وبالتالي ، يمكن استخدام تصميم GreenPAK في العديد من أنواع التوصيلات.

لبناء هذا المشروع ، سنستخدم SLG46620 CMIC ووحدة Bluetooth و RGB LED. سيكون GreenPAK IC هو جوهر التحكم في هذا المشروع ؛ يتلقى البيانات من وحدة Bluetooth و / أو الأزرار الخارجية ، ثم يبدأ الإجراء المطلوب لعرض الإضاءة الصحيحة. كما أنه يولد إشارة PWM ويخرجها إلى LED. يوضح الشكل 1 أدناه مخطط الكتلة.

يحتوي جهاز GreenPAK المستخدم في هذا المشروع على واجهة اتصال SPI وكتل PWM و FSM والكثير من الكتل الإضافية المفيدة الأخرى في IC واحد. كما أنها تتميز بصغر حجمها وانخفاض استهلاكها للطاقة. سيمكن ذلك الشركات المصنعة من بناء دائرة عملية صغيرة باستخدام دائرة متكاملة واحدة ، وبالتالي سيتم تقليل تكاليف الإنتاج عند مقارنتها بأنظمة مماثلة.

في هذا المشروع ، نتحكم في RGB LED واحد. لجعل المشروع قابلاً للتطبيق تجاريًا ، من المحتمل أن يحتاج النظام إلى زيادة مستوى اللمعان عن طريق توصيل العديد من مصابيح LED بالتوازي واستخدام الترانزستورات المناسبة ؛ يجب أن تؤخذ دائرة الطاقة في الاعتبار أيضًا.

يمكنك متابعة جميع الخطوات لفهم كيفية برمجة شريحة GreenPAK للتحكم في لون RGB LED عبر البلوتوث. ومع ذلك ، إذا كنت ترغب فقط في برمجة IC بسهولة دون فهم جميع الدوائر الداخلية ، فقم بتنزيل برنامج GreenPAK لعرض ملف تصميم GreenPAK المكتمل بالفعل. قم بتوصيل GreenPAK Development Kit بجهاز الكمبيوتر الخاص بك واضغط على البرنامج لإنشاء IC مخصص للتحكم في RGB LED Color عبر Bluetooth.

يتكون تصميم GreenPAK من جهاز استقبال UART ووحدة PWM ووحدة تحكم موضحة في الخطوات أدناه.

الخطوة 1: جهاز استقبال UART

جهاز استقبال UART
جهاز استقبال UART

أولاً ، نحتاج إلى إعداد وحدة Bluetooth. تدعم معظم الدوائر المتكاملة الخاصة بالبلوتوث بروتوكول UART للاتصال. UART تعني جهاز استقبال / جهاز إرسال غير متزامن عالمي. يمكن لـ UART تحويل البيانات ذهابًا وإيابًا بين التنسيقات المتوازية والمتسلسلة. وهو يشتمل على جهاز استقبال تسلسلي إلى متوازي ومحول متوازي مع محول تسلسلي يتم تسجيلهما بشكل منفصل.

سيتم إرسال البيانات الواردة في وحدة Bluetooth إلى جهاز GreenPAK الخاص بنا. حالة الخمول لـ Pin10 عالية. يبدأ كل حرف يتم إرساله ببت بدء منطق منخفض ، متبوعًا بعدد قابل للتكوين من بتات البيانات وواحد أو أكثر من بتات التوقف المنطقية العالية.

يرسل جهاز الإرسال UART 1 START بت و 8 بتات بيانات وبت STOP واحد. عادةً ما يكون معدل البث بالباود الافتراضي لوحدة UART Bluetooth هو 9600. سنرسل بايت البيانات من Bluetooth IC إلى كتلة SPI الخاصة بـ GreenPAK ™ SLG46620.

نظرًا لأن كتلة GreenPAK SPI لا تحتوي على تحكم بتات START أو STOP ، فسنستخدم هذه البتات بدلاً من ذلك لتمكين وتعطيل إشارة ساعة SPI (SCLK). عندما يصبح Pin10 منخفضًا ، نعلم أننا تلقينا بت START ، لذلك نستخدم كاشف حافة السقوط PDLY لتحديد بداية الاتصال. يعمل كاشف الحافة المتساقطة على ساعات DFF0 ، والتي تمكن إشارة SCLK من تسجيل كتلة SPI.

معدل الباود الخاص بنا هو 9600 بت في الثانية ، لذلك يجب أن تكون فترة SCLK 1/9600 = 104 μs. لذلك ، قمنا بتعيين تردد OSC على 2 ميجا هرتز واستخدمنا CNT0 كمقسم تردد.

2 ميجا هرتز -1 = 0.5 ميكرو ثانية

(104 ميكرو ثانية / 0.5 ميكرو ثانية) - 1 = 207

لذلك ، نريد أن تكون قيمة عداد CNT0 هي 207. لضمان عدم تفويت أي بيانات ، نحتاج إلى تأخير ساعة SPI بمقدار نصف دورة على مدار الساعة بحيث يتم تسجيل كتلة SPI في الوقت المناسب. لقد أنجزنا ذلك باستخدام CNT6 و 2 بت LUT1 والساعة الخارجية لكتلة OSC. لا يرتفع ناتج CNT6 حتى 52 ميكرو ثانية بعد تسجيل DFF0 ، وهو نصف فترة SCLK البالغة 104 ميكرو ثانية. عندما يكون CNT6 مرتفعًا ، تسمح بوابة LUT1 AND ذات 2 بت لإشارة OSC 2 ميجا هرتز بالمرور إلى EXT. إدخال CLK0 ، الذي يتم توصيل مخرجاته بـ CNT0.

الخطوة 2: وحدة PWM

وحدة PWM
وحدة PWM

يتم إنشاء إشارة PWM باستخدام PWM0 ومولد نبض الساعة المرتبط (CNT8 / DLY8). نظرًا لأن عرض النبضة يمكن التحكم فيه بواسطة المستخدم ، فإننا نستخدم FSM0 (والذي يمكن توصيله بـ PWM0) لحساب بيانات المستخدم.

في SLG46620 ، يمكن استخدام FSM1 8 بت مع PWM1 و PWM2. يجب توصيل وحدة Bluetooth ، مما يعني أنه يجب استخدام خرج SPI المتوازي. يتم خلط بتات الإخراج المتوازية SPI من 0 إلى 7 مع DCMP1 و DMCP2 و LF OSC CLK's OUT1 و OUT0. يحصل PWM0 على خرجه من FSM0 ذي 16 بت. إذا تُركت دون تغيير ، فإن هذا يؤدي إلى زيادة تحميل عرض النبضة. للحد من قيمة العداد عند 8 بتات ، تتم إضافة ولايات ميكرونيزيا الموحدة أخرى ؛ يتم استخدام FSM1 كمؤشر لمعرفة متى يصل العداد إلى 0 أو 255. يتم استخدام FSM0 لتوليد نبض PWM. يجب مزامنة FSM0 و FSM1. نظرًا لأن كلا من FSMs لهما خيارات ساعة محددة مسبقًا ، يتم استخدام CNT1 و CNT3 كوسيطين لتمرير CLK إلى كلا FSM. تم تعيين العدادين على نفس القيمة ، وهي 25 لهذا Instructable. يمكننا تغيير معدل تغيير قيمة PWM عن طريق تغيير قيم العداد هذه.

يتم زيادة قيمة FSMs وتقليلها بواسطة الإشارات "+" و "-" ، والتي تنشأ من الإخراج المتوازي SPI.

الخطوة الثالثة: وحدة التحكم

وحدة التحكم
وحدة التحكم

داخل وحدة التحكم ، يتم أخذ البايت المستلم من وحدة Bluetooth إلى SPI Parallel Output ثم يتم تمريره إلى الوظائف المرتبطة. في البداية ، سيتم فحص مخرجات PWM CS1 و PWM CS2 لمعرفة ما إذا تم تنشيط نمط PWM أم لا. إذا تم تنشيطه ، فسيحدد القناة التي ستخرج PWM من خلال LUT4 و LUT6 و LUT7.

LUT9 و LUT11 و LUT14 مسؤولون عن التحقق من حالة مصباحي LED الآخرين. تحقق من LUT10 و LUT12 و LUT13 مما إذا كان الزر اليدوي نشطًا أم لا. إذا كان الوضع اليدوي نشطًا ، فعندئذٍ تعمل مخرجات RGB وفقًا لحالات الإخراج D0 و D1 و D2 ، والتي يتم تغييرها في كل مرة يتم فيها الضغط على زر اللون. يتغير مع الحافة الصاعدة القادمة من CNT9 ، والتي تُستخدم كمزيل للحافة الصاعدة.

يتم تكوين دبوس 20 كإدخال ويستخدم للتبديل بين التحكم اليدوي والبلوتوث.

إذا تم تعطيل الوضع اليدوي وتم تنشيط وضع الخلاط التلقائي ، فإن اللون يتغير كل 500 مللي ثانية مع ظهور الحافة الصاعدة من CNT7. يتم استخدام LUT1 من 4 بت لمنع حالة "000" لـ D0 D1 D2 ، نظرًا لأن هذه الحالة تؤدي إلى إطفاء الضوء أثناء وضع المزج التلقائي.

إذا لم يتم تنشيط الوضع اليدوي ووضع PWM ووضع المزج التلقائي ، فإن أوامر SPI باللون الأحمر والأخضر والأزرق تتدفق إلى الدبابيس 12 و 13 و 14 ، والتي تم تكوينها كمخرجات ومتصلة بـ RGB LED الخارجي.

يتم استخدام DFF1 و DFF2 و DFF3 لبناء عداد ثنائي 3 بت. تزداد قيمة العداد مع نبضات CNT7 التي تمر عبر P14 في وضع المزج التلقائي ، أو من الإشارات القادمة من زر اللون (PIN3) في الوضع اليدوي.

الخطوة 4: تطبيق Android

تطبيق أندرويد
تطبيق أندرويد
تطبيق أندرويد
تطبيق أندرويد
تطبيق أندرويد
تطبيق أندرويد
تطبيق أندرويد
تطبيق أندرويد

في هذا القسم ، سنقوم ببناء تطبيق Android الذي سيراقب ويعرض اختيارات التحكم للمستخدم. تتكون الواجهة من قسمين: القسم الأول يحتوي على مجموعة من الأزرار ذات ألوان محددة مسبقًا بحيث عند الضغط على أي من هذه الأزرار ، يضيء مؤشر LED من نفس اللون المقابل. القسم الثاني (MIX square) يخلق لونًا مختلطًا للمستخدم.

في القسم الأول ، يختار المستخدم دبوس LED الذي يريد أن تمر إشارة PWM من خلاله ؛ لا يمكن تمرير إشارة PWM إلا إلى دبوس واحد في كل مرة. تتحكم القائمة السفلية في تشغيل / إيقاف تشغيل اللونين الآخرين بشكل منطقي أثناء وضع PWM.

يعد زر الخلاط التلقائي مسؤولاً عن تشغيل نمط تغيير الضوء التلقائي حيث يتغير الضوء كل نصف ثانية. يحتوي قسم MIX على قائمتين من قوائم مربعات الاختيار بحيث يمكن للمستخدم تحديد لونين يخلطان معًا.

قمنا ببناء التطبيق باستخدام موقع مخترع تطبيق MIT. إنه موقع يتيح إنشاء تطبيقات Android دون خبرة برمجية سابقة باستخدام كتل البرامج الرسومية.

في البداية ، قمنا بتصميم واجهة رسومية عن طريق إضافة مجموعة من الأزرار المسؤولة عن عرض الألوان المحددة مسبقًا ، وقمنا أيضًا بإضافة قائمتين لخانات الاختيار ، وتحتوي كل قائمة على 3 عناصر ؛ يتم تحديد كل عنصر في صندوقه الفردي ، كما هو موضح في الشكل 5.

الأزرار الموجودة في واجهة المستخدم مرتبطة بأوامر البرنامج: جميع الأوامر التي سيرسلها التطبيق عبر البلوتوث ستكون بتنسيق بايت ، وكل بت تكون مسؤولة عن وظيفة معينة. يوضح الجدول 1 شكل إطارات الأوامر المرسلة إلى GreenPAK.

ستحافظ البتات الثلاث الأولى ، B0 و B1 و B2 ، على حالة RGB LEDs في وضع التحكم المباشر بواسطة أزرار الألوان المحددة مسبقًا. وبالتالي ، عند النقر فوق أي منها ، سيتم إرسال القيمة المقابلة للزر ، كما هو موضح في الجدول 2.

يحتوي البتان B3 و B4 على الأمرين "+" و "-" ، وهما المسؤولان عن زيادة عرض النبضة وخفضه. عند الضغط على الزر ، ستكون قيمة البت 1 ، وعندما يتم تحرير الزر ، ستكون قيمة البت 0.

البتات B5 و B6 هي المسؤولة عن اختيار الدبوس (اللون) الذي ستمر به إشارة PWM: تظهر تسميات الألوان لهذه البتات في الجدول 3. الجزء الأخير ، B7 ، مسؤول عن تنشيط الخلاط التلقائي.

يوضح الشكل 6 والشكل 7 عملية ربط الأزرار بكتل البرمجة المسؤولة عن إرسال القيم السابقة.

لمشاهدة التصميم الكامل للتطبيق يمكنك تحميل الملف المرفق “.aia” مع ملفات المشروع وفتحه داخل الموقع الرئيسي.

يوضح الشكل 8 أدناه مخطط دائرة المستوى الأعلى.

الخطوة 5: النتائج

تم اختبار وحدة التحكم بنجاح وتم عرض مزج الألوان جنبًا إلى جنب مع الميزات الأخرى للعمل بشكل مناسب.

استنتاج

في Instructable ، تم إنشاء دائرة لمبة ذكية ليتم التحكم فيها لاسلكيًا بواسطة تطبيق Android. ساعد GreenPAK CMIC المستخدم في هذا المشروع أيضًا في تقصير وتضمين العديد من المكونات الأساسية للتحكم في الضوء في دائرة متكاملة واحدة صغيرة.

موصى به: