مشروع إضاءة خلفية للتلفاز Ambilight
عبر هذه التدوينة سنتعلم كيفية تصميم نظام إضاءة خلفية لشاشات التلفاز المنزلية Ambilight، والذي يوفر تجربة مشاهدة مختلفة كلياً عبر إضافة مؤثرات ضوئية تتماشى مع طبيعة المشهد الذي يتم عرضه في الوقت الحالي على التلفاز. في البداية إذا أردت أن ترى نظام الإضاءة هذا على أرض الواقع أنصحك بمشاهدة الفيديو التالي
كما نشاهد في الفيديو، تحاكي الإضاءة الخلفية للتلفاز الألوان المعروضة ضمن الشاشة، مما يعطي شعور أن الحائط الخلفي هو امتداد للمشهد المعروض ويضفي على التلفاز حجماً أكبر مما هو عليه في الحقيقة. من الجدير بالذكر أن الإضاءة الخلفية للتفاز مستخدمة في أجهزة فيليبس philips. لكن نظام الإضاءة من هذه الشركة يكلف حوالي 200 يورو. في هذا المقال سنبني نظام مشابه وبتكلفة أقل بكثير.
1. القطع المستخدمة
- حبل أضواء ليد 5 متر من نوع الديودات القابلة للعنونة WS2812B
- لوحة أردوينو أونو Arduino UNO
- لوحة راسبيري باي يُفضل أن تكون من الجيل الثالث وما بعد
- كرت ذاكرة micro SD بسعة 16 جيجابايت على الأقل
- مزود طاقة بجهد 5 فولت و تيار 10 أمبير على الأقل
- حاسوب شخصي بنظام ويندوز
- اقرأوا أيضاً: تطوير وبرمجة – تعرفوا على لوحة الأردوينو Arduino
- اقرأوا أيضاً: مدخل إلى برمجة الأردوينو
2. البرامج المستخدمة
- Win32DiskImager يمكن تحميله من هنا
- Arduino IDE يمكن تحميله من هنا
- HyperCon يمكن تحميله من هنا
- نظام تشغيل لرازبيري يمكن تحميله من هنا
- بيئة تشغيل جافا JRE هنا
3. نظرة شاملة
كيف يتم توليد الإضاءة الخلفية؟
سنبدأ بالراسبيري. بما أن معلومات الصورة المعروضة حاليا على الشاشة تأتي -عن طريق HDMI- من الراسبيري فإنه من الممكن معرفة لون كل بكسل على حواف الصورة المعروضة حالياً. ستقوم الراسبيري بتجميع مجالات لعدد محدد من البكسلات وحساب لون واحد لهذه البكسلات. هده الخطوة مهمة جداً إذ أن عدد البكسلات الموجود على الحافة الطولية هو 1920 في شاشة بدقة FHD إلا أن شريط الليد المستخدم لا يمتلك هذا العدد الكبير لذا سنحتاج إلى تجميع مجالات البكسلات وحساب لون واحد منها. اللون الناتج يجب عرضه على الليد الموجود في منتصف مجال البكسلات. تقوم الراسبيري بإرسال اللون المراد لكل ليد إلى الأردوينو الذي يعمل في هذا المشروع كمشغل Driver لحبل الليد.
في هذا المشروع تم استخدام نوع من خاص من الديودات الباعثة للضوء، والمعروفة باسم الديودات الباعثة للضوء والقابلة للعنونة Adressable-RGB-LED. الميزة الأساسية بهذا النوع من الليدات أنه يمكن مخاطبة أي ليد ضمن الحبل بشكلٍ منفصل دون الحاجة لمخاطبة الآخرين. لنفترض أنه يوجد لدينا حبل يتضمن 10 ليدات، فإنه يمكننا التحكم بإضاءة ولون الليد الخامس بدون الحاجة للمرور على الليدات الأخرى.
من الجدير بالذكر أن عملية حساب الألوان المرادة لكل ليد وكل إطار Frame -عادة ما يكون 60 إطار في الثانية الواحدة- تتطلب عمليات حسابية كثيرة لهذا يٌنصح باستخدام راسبيري 3 أو أحدث، لأن الإصدارات الأقدم لا توفر القدرة الحاسوبية اللازمة لإجراء الحسابات في الوقت الحقيقي Realtime. لتطبيق هذا المشروع تم استخدام راسبيري 4 مع 4GB ذاكرة عشوائية.
4. تجهيز كرت الذاكرة
- بعد تحميل الملف المضغوط zip. سنقوم بفك ضغط الملف لنحصل على ملف img.
- أدخل كرت الذاكرة إلى الحاسوب
- شغل برنامج Win32DiskImager
- اختر كرت الذاكرة من القائمة
- اختر ملف img. المُحمل سابقة
- إبدأ عملية الكتابة
- عند السؤال إذا ما إردت فرمتت الكرت أجب الموافقة
5. تجهيز لوحة الراسبيري باي
- ضع كرت الذاكرة في الراسبيري باي
- قم بتوصيل الراسبيري باي مع التلفاز، الماوس ولوحة المفاتيح
- قم بتشغيل الراسبيري باي
- فعل واجهة ssh
- قم بتوصيل الراسبيري باي بشبكة الإنترنت (عن طريق شبكة واي فاي أو الإنترنت السلكي Ethernet)
6. حمل برنامج kodi (برنامج مسرح منزلي سنستخدمه لاستعراض الأفلام والمسلسلات). يمكن تنفيذ ذلك عبر تنفيذ الأوامر التالية في راسبيري باي:
sudo apt-get update sudo apt-get install kodi
6. تحضير حبل الليد
قم بتثبيت الحبل على الجهة الخلفية للتلفاز. هنا يمكن استخدام لاصق عادي أو لاصق ذو وجهين.
عند الزوايا من الممكن قص الحبل وإعادة لحامه ليشكل زاوية قائمة أو من الممكن أيضاً ثني الحبل لتجنب الحاجة إلى القص.
كلا الطريقتين ستعطي تأثيراً مختلفاً.
7. تحضير HyperCon
لنتمكن من تشغيل برنامج HyperCon على نظام تشغيل ويندوز سنحتاج بيئة تشغيل برامج جافا. هذا الملف تم تحميله في فقرة سابقة. بعد تحميل برنامج HyperCon على حاسوب ويندوز يجب أن نقوم بتثبيت Hyperion. للقيام بذلك نتبع الصورة التالية
ضمن تبويبة Hardware قم بإدخال المعلومات كما في الصورة التالية
قم بوصل الأردوينو بلوحة الراسبير باي عبر منفذ USB، والآن سيتوجب علينا معرفة أي مدخل “tty” تستخدم الأردوينو، ويمكن معرفة ذلك عبر تنفيذ السطر التالي في محرر الأوامر ضمن بيئة الراسبيري باي:
"dmesg | grep "tty
صمن تبوبية Grabber استخدم القيم الموضحة في الصورة
بعد الانتهاء من الأعدادات ضمن HyperCon سنقوم بإرسال هذه المعلومات إلى الراسبيري ليتم العمل بها كما في الصورة التالية
لمعرفة المزيد عن برنامج Hyperion هنا الموقع الرسمي للمشروع حيث يوجد توثيق شامل لكل الوظئف المتوفرة.
8. تحضير الأردوينو
المرحلة الأخيرة من المشروع هي كتابة الشيفرة البرمجية على لوحة الأردوينو والتي تقوم بإضاءة حبل الليدات وإرسال أوامر تؤدي لتوليد ألوان متوافقة مع اللون الذي يتم عرضه حالياً على الشاشة. من أجل ذلك سنحتاج لتحميل مكتبتين، الأولى هي مكتبة التخاطب مع حبل الليدات من نوع WS2812B، والثانية مكتبة التخاطب مع شاشة LCD التي يمكن التخاطب معها عبر معيار I2C التسلسلي. في الشيفرة المصدرية تم استخدام مكتبة LCD إلا أننا لم نستخدمها في مشروعنا هذا. لكن من الضروري تحميل المكتبة لكي تتم عملية ترجمة الشيفرة بدون أخطاء.
لتحميل مكتبة نيوبيكسل Adafruit NeoPixel للتخاطب مع الليدات من نوع WS2812B: اضغط هنا.
لتحميل مكتبة التخاطب مع شاشات LCD عبر معيار I2C: اضغط هنا.
لتحميل الشيفرة البرمجية الخاصة بلوحة الأردوينو كاملةً من منصة جيت هاب: اضغط هنا.