نضخ ايكيا: كيفية تحويل الموسيقى الخفيفة إلى Big Brother


المقدمة


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

بالنسبة لي ، وقعت آخر حالة من هذا الجنون في هولندا. كنت في رحلة مخططة ، وأخطط لقضاء بضعة أسابيع فقط في البلد. ومع ذلك ، كان هذا في بداية عام 2020 والكارثة مع COVID-19 ... اضطررت للبقاء بعيدًا عن مختبري لفترة أطول.

وعندما رأيت خط المنتجات الإلكترونية Frekevens في Ikea ، لم أستطع مساعدته واشترته كله.

بالنسبة لأولئك الذين لا يعرفون: يجب أن يصبح خط Ikea Frekvens نظيرًا حديثًا لمجموعة HiFi في المدرسة القديمة بالإضافة إلى مجموعة الموسيقى الخفيفة السداسية ، والتي يبدو أنها موجودة في منازل نصف المراهقين في التسعينيات. في هذه الحالة ، يتكون خط الأجهزة المتصلة ببعضها البعض من مكبر صوت Bluetooth لإخراج الصوت وجهاز عرض LED (مكمل بفوهات مختلفة) تومض على إيقاع الموسيقى ، بالإضافة إلى شاشة مكعب LED يمكنها عرض الرسوم المتحركة التي تنتقل أيضًا إلى الموسيقى. تفتخر شركة Ikea بأن هذا الخط تم تطويره بالتعاون مع Teenage Engineering ، المعروفة بسلسلة مشغل الجيب الخاصة بها من مُركِّبات "الألعاب" المحمولة.


كما هو موضح في فيديو Ikea الترويجي ، يجب أن يبدو الشراء النهائي لعشرات الأجهزة كرنفال خفقان لا يطاق ، وهو ما لا يمانعه المراهق البالغ من العمر 15 عامًا في ترتيبه في غرفته.

لقد كنت مهتمًا بشكل خاص بشاشة LED cube: فهو جهاز متكامل عالي الجودة يعمل على التيار الكهربائي. يوجد على اللوحة الأمامية مصفوفة من 16 صفًا و 16 عمودًا من مصابيح LED البيضاء الساطعة جدًا ، أي ما مجموعه 256 مصباح LED. كانت الرسوم المتحركة المضمنة في الجهاز بسيطة جدًا ، لكنها دفعتني إلى فكرة أن الحديد يمكن أن يتحكم في كل مصباح LED بشكل فردي. ومع ذلك ، وبسبب هذا ، كان الصندوق الصغير مكلفًا للغاية: كان جيبي فارغًا بحوالي 40 يورو. لهذا المبلغ ، ستحصل على صندوق مزود بمصابيح LED وكابل طاقة. نظرًا لافتراض أنه يجب عليك شراء هذا المنتج جنبًا إلى جنب مع منتجات Frekvens الأخرى ، ستتلقى أيضًا عناصر توصيل إضافية: كبل طاقة تمديد لتزويد الطاقة من طرف إلى طرف من الصناديق إلى الصناديق الأخرى ،بالإضافة إلى مجموعة من المسامير والوسادات البلاستيكية التي يمكنك من خلالها ربط الهيكل ببعضها البعض ميكانيكيًا.

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

من الواضح أن هذا لم يناسبني. دعنا نتسلل إلى الجهاز - لنرى ما الذي يجعله يعمل ، وهل من الممكن أن يجعل سلوكه أكثر إثارة للاهتمام.

تشريح الجثة


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


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


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


يتم تثبيت الإدخالات بالفعل مع إدخالات بلاستيكية أخرى ؛ يجب إزالتها أولاً.

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


ها هو: الجانب العكسي للوحة الدائرة. كما اتضح ، يتم تجميعها من لوحين دائريين مطبوعين: اللوحة البيضاء لها جانبان - في الخلف توجد جميع محركات LED (ولوحة أخرى متصلة بها) ، وعلى الجبهة توجد مصابيح LED نفسها.

تم تصميم لوحة الدوائر البيضاء بشكل جيد: بدلاً من مصفوفة مصابيح LED ، يوجد 16 برنامج تشغيل SCT2024 LEDالعمل من تيار مباشر. تحتوي محركات LED هذه على 16 قناة ، أي أن كل LED يتم التحكم فيه مباشرة. يمكن لسائقي LED تشغيل أو إيقاف تشغيل مصابيح LED بالكامل ؛ السائقين أنفسهم ليس لديهم دعم درجات الرمادي الأصلي. في الواقع ، يقومون بتحويل التسجيل باستخدام المخرجات التي يتم التحكم فيها حاليًا ، ويتم تبديلهم جميعًا بالتتابع ؛ تتكون واجهة توصيل PCB الخضراء من ناقل المزامنة والبيانات ، وخط تمكين المفاجئة ، وخط الإخراج ، والأرض ، وخط تمكين الطاقة.

على هذا اللوح الأخضر يوجد الدماغ الصغير للجهاز: متحكم دقيق ، لا يمكن العثور على مقالته على Google ، ومكبر للصوت التشغيلي للميكروفون. من المثير للاهتمام ، أن هناك تلميحات إلى أن الجهاز يجب أن يحتوي على المزيد من الميزات: هناك مكان ، على الأرجح ، لـ I2C EEPROM 24Cxx وإشارة إلى أنه في المشروع الأصلي كان هناك جهاز استقبال IR على اللوحة الأمامية. ربما كان من المفترض أن يأتي الجهاز بجهاز تحكم عن بعد يسمح لك بإنشاء أنماطك الخاصة؟ قد يفسر ذلك أن الرسوم المتحركة الحالية تبدو باهتة جدًا.


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


توجد جميع الإلكترونيات الأخرى على ظهر اللوحة. ليس هناك ما يكفي هناك: فقط مصدر طاقة تحت العلامة التجارية Ikea ، إصدار 4 V. تحت مزود الطاقة ، توجد لوحة دوائر مطبوعة صغيرة يوجد عليها مفتاحان لمسيان للأزرار في الجزء الخلفي من العلبة.

لذا ، إذا أردنا "تحسين" التصميم ، فإن لدينا ضعفًا واضحًا: فمن الأفضل استبدال البطاقة الخضراء الصغيرة بمعالج بشيء أكثر قوة.

نقوم بتعديل الحديد


اعتقدت أنه قد يكون من الممكن استبدال المعدات بكاميرا ESP. هذه لوحة رخيصة جدًا (10 يورو أو نحو ذلك) مع شريحة ESP32 WiFi / BT ، وعدة ميغابايت من PSRAM ، ووحدة كاميرا. لست مهتمًا جدًا بالموسيقى الخفيفة ، أردت أن يستجيب الجهاز لشيء مرئي. نظرًا لوجود ثقب بالفعل في الواجهة الأمامية لجهاز الاستقبال ، اعتقدت أنه يمكنني استخدامه تحت الكاميرا. سأحتاج أيضًا إلى حفر حفرة في اللوحة البيضاء حيث يوجد الميكروفون ؛ لحسن الحظ ، إلى جانب مسارات الميكروفون عديمة الفائدة هذه ، سيؤدي هذا إلى تدمير مسار واحد فقط من LED. قمت بحفر حفرة واستعدت المسار. مؤقتًا أعدت اللوحة إلى مكانها وشغلت المكعب ، تأكدت من أن جميع مصابيح LED لا تزال تعمل.


الآن لدي لوحة بها ثقب محفور ، ولا يمكنني سوى توصيل كاميرا ESP-Cam وتوصيلها ميكانيكيًا. أشار المصممون بلطف إلى الغرض من جميع اللوحات الموجودة على الشاشة الحريرية للوحة الخضراء ، لذلك كان علي تقريبًا أن أخمن أي شيء. نظرًا لأن مزود الطاقة يوفر 4 فولت فقط ، فقد قمت بتوصيله مباشرةً بإدخال 3.3 فولت لشريحة ESP-CAM. اضطررت للقيام بذلك لأنه عندما قمت بتوصيله بدبوس Vin 5V ، لم ترغب الشريحة في البدء ... على الأرجح ، فإن منظم LDO لديه انخفاض جهد مرتفع قليلاً. بالعودة إلى الوراء ، أعتقد الآن أن الأمر يستحق محاولة توصيل الصمام الثنائي في سلسلة بمصدر 4 فولت للحصول على 3.3-3.4 فولت ، لكن الحل الخاص بي نجح ؛ ESP32 متواضع للغاية.


لحام جميع الموصلات ، كان علي التعامل مع الميكانيكا على أي حال. لقد كان مشروعًا "سريعًا وقذرًا" ، وقد قمت بالفعل بلحام موصلات ESP-Cam من قبل ، لذلك لمحاذاة الكاميرا مع الفتحة ، يمكنك القيام بها مع العديد من الحشوات والكثير من الإيبوكسي.


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


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

لذلك ، اكتمل زرع الدماغ والجسد جاهز للتجميع. يمكنك بدء البرنامج.

البرمجيات


دعنا ننتقل إلى البرنامج. بادئ ذي بدء ، نحن بحاجة إلى السيطرة على محركات LED. هذا ليس صعبًا: تتوافق إشارات السائق بشكل مباشر تقريبًا مع واجهة SPI الطرفية لشريحة ESP32: تتصل لوحة CLK الموجودة على اللوحة بواجهة CLK الطرفية SPI ، وتتصل لوحة DA على اللوحة بـ MOSI لإشارة SPI. سيسمح لك ذلك بمزامنة 256 بت مع سلسلة من برامج تشغيل LED: يتحكم كل بت متزامن في تشغيل أو إيقاف تشغيل الصمام المقابل. بالإضافة إلى ذلك ، يوجد مدخل LAK. إذا كانت الإشارة عليها منخفضة ، فإن LED يحتفظ بقيمته السابقة ، بغض النظر عن ما تم نقله إلى سجلات التحول ؛ إذا كانت الإشارة عالية ، فحينئذٍ تتحول جميعها في نفس الوقت إلى القيم الموجودة حاليًا في سجل النقل. أخيرًا ، يوجد مدخل EN يعمل على تشغيل أو إيقاف تشغيل جميع مصابيح LED ؛لم أقم بتوصيله بـ GPIO وقم دائمًا بتشغيل مصابيح LED برمجياً.

وبالتالي ، يمكنني الآن تشغيل وإيقاف تشغيل مصابيح LED الفردية ، والحصول على شاشة سوداء وبيضاء. ومع ذلك ، أحتاج إلى شيء آخر. مع قوة حوسبة كافية ، يجب أن تكون الشاشة قادرة أيضًا على عرض ظلال رمادية - لهذا ، تحتاج فقط إلى تشغيل / إيقاف مصابيح LED بشكل أسرع مما ترى العين.

لتنفيذ ذلك باستخدام LED واحد ، عادة ما أستخدم PWM ، ولكن في حالة 256 LEDs ، سيستهلك هذا جزءًا كبيرًا من معالج ESP32. لذا ، بدلاً من ذلك ، قررت استخدام تعديل الشفرة الثنائية (يسمى أيضًا تعديل زاوية البت). هذه تقنية تسمح لك بالحصول على ظلال رمادية مع طاقة أقل لوحدة المعالجة المركزية. لقد استخدمتها بالفعل بنجاح في مشاريع أخرى ، لذلك كنت متأكدًا من أنها ستعمل.


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

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

الآن لدي كاميرا وقطعة قماش 16x16 بظلال رمادية. ماذا علي أن أفعل معهم؟ لدي فكرة: في وقت أول أجهزة كمبيوتر ماكنتوش ، كان هناك امتداد شائع أضاف فقط بضع عيون كرتونية إلى شريط القائمة. اتبعت هذه العيون ببساطة المؤشر. (لا يزال هناك شكل مختلف من هذا الموضوع لـ Linux / Unix يسمى "xeyes".) ماذا لو حاولت تكراره في الحياة الواقعية؟


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

نظرًا لأن البيانات الأولية كانت قذرة نوعًا ما ، كان عليّ أن أعمل بجد على المعالجة اللاحقة. بدأت بقطع جزء كان حول عيني اليمنى تقريبًا. ثم قمت بتحويل كل إطار من الفيديو إلى صورة وحذف جميع الصور الزائدة ؛ في النهاية ، كان لدي مجموعة جيدة من الصور التي أبحث عنها في اتجاهات مختلفة ، بالإضافة إلى بعض الإطارات مع وميض. ومع ذلك ، نظرًا لأنني استخدمت هاتفًا محمولًا للتسجيل ، تبين أن الفيديو هش قليلاً وتم تخطي الصور. لإصلاح ذلك ، مررت مجموعة من الصور من خلال برنامج Hugin image glueوالتي تستخدم عادة للصور البانورامية وصور HDR ؛ عند الخروج ، حصلت على صور تتمحور بشكل مثالي حول هذا الجزء من وجهي. الآن يمكنني فقط تحديد الاتجاه الذي كنت أبحث فيه ، وما إذا كنت يومض. لقد قمت بذلك عن طريق تحويل جميع الصور إلى ظلال رمادية أولاً ثم تحميلها إلى Gimp . في كل صورة ، استخدمت نقطة حمراء للإشارة إلى موقع مركز التلميذ ، بالإضافة إلى نقطة حمراء في الزاوية اليسرى أو اليمنى للإشارة إلى ما إذا كنت يومض ، وإذا رمشت ، فإن عيني نصف مفتوحة أو مغلقة.


بعد وضع علامة على كل صورة بهذه الطريقة ، أصبح من السهل جدًا كتابة برنامج نصي للحصول على موقع التلميذ ، وكذلك حالة الوميض. قام البرنامج النصي أيضًا بتحجيم الصور إلى 16x16 وحفظها كبيانات ثنائية أولية ، جاهزة للكتابة في البرامج الثابتة لوحدة ESP-CAM. في النهاية ، حصلت على مجموعة من الصور وفهرس لمكان التلميذ وحالة غمضة العين.

يحتوي ESP-Cam على مكون مكتبة كاميرا سهل الاستخدام إلى حد ما لـ ESP-IDF ، لذلك كان الحصول على الصور أمرًا سهلاً. لقد قمت بإعداد صور 120 × 160 بظلال رمادية ، لأنها أسهل في المعالجة ، ولم أكن بحاجة إلى الكثير من الدقة ، لأنه يجب عرض النتيجة النهائية على شاشة 16 × 16. ومع ذلك ، ما زلت أعاني من مشكلة في الأجهزة: الكاميرا لا تزال قريبة جدًا من مصابيح LED.


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

باستخدام صورة أنظف ، يمكنني الانتقال إلى التعرف على الحركة. قمت بتطبيقه عن طريق الحصول على إطار من الكاميرا وطرح الإطار السابق منها. ثم تمكنت من حساب مقدار الحركة عن طريق إضافة جميع وحدات البكسل الناتجة. علاوة على ذلك ، كان من الممكن حساب موقع تركيز الحركة من خلال أخذ متوسط ​​إحداثيات جميع وحدات البكسل المرجحة بفارق الإطارات في هذه البكسل. في النهاية ، يتم تنفيذ سحر التصفية بحيث لا يبدو الجهاز متشنجًا مثل جاك راسل تيرير مع ADHD: من أجل جذب انتباهه ، يجب أن تتحرك الأشياء بشكل أكثر انتظامًا أو تتحرك بعيدًا بما فيه الكفاية.

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

يحتوي البرنامج الثابت على العديد من أوضاع التصحيح التي توضح العملية برمتها. إليك مقطع فيديو قصير يوضح هذا:


استنتاج


لدي الآن جهاز يتبعني ... غير مفيد حقًا ، أوافق. ولكن كان من الممتع بالنسبة لي إنشاءه ، وإذا وجدت شيئًا أكثر فائدة يمكن تنفيذه على شاشة LED مقاس 16x16 ، فيمكنني فعل ذلك ، لأن لدي بالفعل رمز تحكم. بالحديث عن الكود: يمكنك تنزيل نتيجتي الخام بحرية من هنا . اتمنى ان تكون قد استمتعت به و اعتن بنفسك


All Articles