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

عصا بوف LED بتقنية البلوتوث منخفضة الطاقة: 10 خطوات (بالصور)
عصا بوف LED بتقنية البلوتوث منخفضة الطاقة: 10 خطوات (بالصور)

فيديو: عصا بوف LED بتقنية البلوتوث منخفضة الطاقة: 10 خطوات (بالصور)

فيديو: عصا بوف LED بتقنية البلوتوث منخفضة الطاقة: 10 خطوات (بالصور)
فيديو: سعد مطر الزهراني يسب الملك 2024, شهر نوفمبر
Anonim
عصا بوف LED مع بلوتوث منخفض الطاقة
عصا بوف LED مع بلوتوث منخفض الطاقة

يوضح لك هذا التوجيه كيفية إنشاء عصا الكتابة الضوئية باستخدام مصابيح RGB LED التي يمكن التحكم فيها عبر BLE من هاتفك!

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

ويغطي عدة مواضيع تتعلق بالتنمية:

  • بناء الأجهزة
  • برمجة شرائح Cypress BLE مع C
  • أنشئ تطبيقك الخاص للتحكم فيه.

الخطوة 1: الأجهزة الخاصة بـ BLE-LED-Stick

الأجهزة الخاصة بـ BLE-LED-Stick
الأجهزة الخاصة بـ BLE-LED-Stick
الأجهزة الخاصة بـ BLE-LED-Stick
الأجهزة الخاصة بـ BLE-LED-Stick
الأجهزة الخاصة بـ BLE-LED-Stick
الأجهزة الخاصة بـ BLE-LED-Stick
الأجهزة الخاصة بـ BLE-LED-Stick
الأجهزة الخاصة بـ BLE-LED-Stick

للعصا تحتاج ما يلي:

  • وحدة بليه السرو (CY8C4247LQI-BL583)
  • شريط WS2812b RGB-LED (64 LEDs من شريط 144Led لكل متر)
  • بطارية ليثيوم أيون بحامل مناسب (18650)
  • زر ضغط
  • قطعة من اللوح

أجهزة العصا نفسها بسيطة للغاية.

يتم تثبيت وحدة Cypress BLE على قطعة من اللوح ومصابيح LED ، والزر ومصدر الطاقة متصلان فقط بلوح التجارب هذا.

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

الخطوة 2: تجميع الإلكترونيات

تجميع الإلكترونيات
تجميع الإلكترونيات
تجميع الإلكترونيات
تجميع الإلكترونيات

توضح لك هذه الخطوة كيفية تركيب وحدة BLE وأي الدبابيس يتم استخدامها لأي غرض.

كما هو الحال في العديد من التعليمات الخاصة بي ، استخدمت Cypress BLE Development Kit. دليل البدء السريع CY8CKIT-042-BLE

إذا كنت ترغب في تشغيل الوحدة بمفردها ، فكل ما تحتاجه للاتصال هو مصادر الطاقة والمسامير المستخدمة.

بالنسبة لمشروعنا ، نستخدم فقط الدبوس 3.5 لقيادة شريط LED. لكن بالطبع يمكنك تغيير ذلك باستخدام PSoC Creator.

كما ترون في صورة PCB ، أضفت رؤوس الدبوس في جميع زوايا الشريحة ولكني تخطيت دبوس VREF.

بهذه الطريقة يتم تركيب الوحدة بشكل صحيح ومن المستحيل فصل الوحدة.

الخطوة 3: كيفية إنشاء الخطوط؟

كيف يتم إنشاء الخطوط؟
كيف يتم إنشاء الخطوط؟

حسنًا ، أعتقد أن هذه كانت واحدة من أكثر المشكلات إثارة للاهتمام التي قمت بحلها خلال هذا المشروع.

بالطبع يمكن للمرء فقط تصميم خط جديد وكتابته في مصفوفة ، لكن هذا عمل كثير حقًا!

إذا ماذا فعلت؟

كنت أعرف أنني بحاجة إلى نوع من ASCII لتحويل صورة نقطية سداسية عشرية. وكنت محظوظًا ، لأنني لم أكن أول من يعاني من هذه المشكلة!:-)

قام برنامج "GLCD Font Generator" بالشيء الصحيح:

نظرًا لأنني أردت الحصول على أقصى استفادة من عصا LED ، فقد قمت باستيراد الخط بحجم كبير إلى حد ما (~ 32 بكسل). إذا كنت تستخدم الأحرف الكبيرة فقط ، فلن تضطر إلى الاهتمام بالصاعدين ، مما سيزيد من حجم الخط المرئي بضع وحدات بكسل أخرى. لكنني اخترت استخدام الأحرف الكبيرة والصغيرة. (https://en.wikipedia.org/wiki/Ascender_٪28typography٪29)

بمجرد استيراد خط إلى منشئ خطوط GLCD ، يمكنك اختيار تصديره بتنسيقات مختلفة.

حاولت تصديره مباشرة إلى رؤوس الصفحات وكان ذلك جيدًا ، لكن ليس مثاليًا. التصدير الناتج عبارة عن مصفوفة من الاختصارات (16 بت) بقيم سداسية البايت للأعمدة لكل حرف من الأحرف الأولى 128-ascii. ليس تمامًا ما أردته أو احتاجه …

لذلك قمت باستيراد المصفوفة في ورقة عمل حساب مكتب مفتوح. ثم أزلت "0x" على ثلاث من أربع قيم وربطتها في قيمة واحدة طويلة 32 بت. لقد أصلحت أيضًا النهاية الخاطئة للبايت الفردي.

المصفوفة الناتجة عبارة عن صفيف N * M من قيم 32 بت. M هو الحرف المعني و N هي الأعمدة التي يتكون منها عرض هذا الحرف. في هذه المسودة الأولى ، تحتوي جميع الأحرف على نفس عدد الأعمدة ، وهذا يعني أن جميع الأحرف متساوية في العرض ، كما هو الحال في خط Courier المعروف. تبدو الأحرف الصغيرة مثل "i" أو "t" وكأنها مفقودة في الفضاء.

لذلك أضفت معاملاً جديدًا في بداية كل حرف لأحدد عدد الأعمدة التي تحتوي عليها هذه الشخصية أو مدى اتساع هذه الشخصية. هذا يحفظ الذاكرة ويجعل النص يبدو أفضل!

الخطوة 4: برنامج التحكم بليه

برنامج التحكم بليه
برنامج التحكم بليه

مبدأ برنامج BLE سهل للغاية:

  • في البداية ، لا تفعل شيئًا.
  • عبر BLE ، يمكنك تعيين رسوم متحركة أو نصوص مختلفة ليتم عرضها.
  • بمجرد الضغط على الزر ، يتم عرض الأعمدة الفردية للرسوم المتحركة أو النص.
  • بعد عرض النص ، يستمر في الانتظار مرة أخرى.

ما عليك سوى استيراد مشروع السرو إلى PSoC-Creator الخاص بك وتعديله إذا أردت.

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

يمكن تخزين "حرف" في متغير بايت واحد بينما يلزم تخزين الصورة النقطية بالأبيض والأسود في نوع من المصفوفة.

هيكل البيانات هو هذا:

سلسلة: newtext = "مرحبًا" ؛

الخط: أحرف uint32 = {FirstCharacter_ColumnCount، FirstCharacter_FirstColumn، FirstCharacter_SecondColumn،… SecondCharacter_ColumnCount، SecondCharacter_FirstColumn،…… LastCharacter_ColumnCount،… LastCharacter_LastColumn}؛ اللون: uint32 rgbcolor = 0xHHBBGGRR ؛ // سطوع ، أزرق ، أخضر ، أحمر كل منها بقيمة 8 بت

لتحويل سلسلة للعرض نقوم بما يلي:

getCharacter (): H (8 بت)

getColumn (int i): العمود (32bit) (أبدأ بالعمود الأول ، يمتد إلى الأخير.) إذا (بت في العمود هو 1) تم ضبط LED في Strip على اللون. مصفوفة شريط LED عبارة عن 64 مصباحًا مع ألوان 32 بت لكل منها!

وإذا تم عرض هذا العمود ، فسنستمر في العمود التالي.

هذا سهل.

الخطوة 5: الاختبار الأول

الاختبار الأول
الاختبار الأول
الاختبار الأول
الاختبار الأول
الاختبار الأول
الاختبار الأول

الآن بعد تشغيل البرنامج ، نحن جاهزون للاختبارات الأولى.

أسهل طريقة لاختبار الوظيفة المضمنة هي باستخدام تطبيق اختبار Bluetooth منخفض الطاقة. مثل تطبيقات الشمال أو السرو.

الشمال: nRF Connect للجوال

السرو: CySmart

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

بمجرد إنشاء الاتصال ، يكتشف التطبيق تلقائيًا جميع الخدمات والخصائص المحددة.

ابحث عن الخدمة الأولى (يجب أن تبدأ بـ 0000ccce…). اضغط عليها لفتحها وعرض الخاصية الأولى (تبدأ بـ 0000ccc1). ثم اضغط على زر الكتابة (أو التحميل) واكتب 01 لهذه الخاصية.

بمجرد الضغط على إرسال ، سيبدأ POVstick في الرسوم المتحركة Color-Knight-rider المعروفة أيضًا باسم Larson Scanner بألوان متغيرة.

تهانينا على إرسالك قيمتك الأولى عبر BLE!

الخطوة 6: حدد الرسوم المتحركة

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

في البرنامج ، حددنا التعداد "e_Animation" بالقيم التالية:

typedef enum {Knightrider = 0، ColorKnightRider، Rainbowswirl، Valueswirl، WS_CandyCane، WS_CandyCane_2، WS_CandyCane_3، WS_Twinkle، WS_Icicle، WS_ColorWheel، RGB_Control، TextAnimation، Animation_Max}؛

هذه هي القيم الصالحة للخاصية ccc1. إذا كنت ترغب في رؤية CandyCane-Animation ، فيجب عليك كتابة 4 أو 5 أو 6 لهذه الخاصية. هم يختلفون في الألوان.

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

الخطوة 7: تحكم RGB

تحكم RGB
تحكم RGB
تحكم RGB
تحكم RGB
تحكم RGB
تحكم RGB
تحكم RGB
تحكم RGB

يمكن اختبار RGB-Control بسهولة باستخدام تطبيق CySmart لأنني استخدمت نفس UUID لهذه الخاصية كما في Cypress Demo.

ابدأ تطبيق CySmart واتصل بـ Povstick. عليك أولاً كتابة "0x0A" إلى الخاصية ccc1.

0x0A هي القيمة السداسية لـ 10 ، وهي الرسوم المتحركة RGB-Control في التعداد.

ثم يمكنك التبديل إلى لوحة تحكم RGB-LED في تطبيق CySmart. ربما يتعين عليك إعادة تشغيل التطبيق للوصول إلى هذه الشاشة. ثم يمكنك التحكم في لون جميع مصابيح LED باستخدام مخطط RGB هذا.

بالطبع يمكنك أيضًا كتابة القيم مباشرة في الخاصية.

الخطوة 8: خدمة Text_Animation وخدمة التخزين المستمر

خدمة Text_Animation وخدمة التخزين المستمر
خدمة Text_Animation وخدمة التخزين المستمر

هذه الخدمات ليست سهلة الاختبار.

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

لذلك ، إذا كنت ترغب في اختبار هذه ، يجب أن تلقي نظرة على مشروع PSoC ، والتي لها خاصية أي UUID.

من المهم تشغيل خاصية "Set-Speed". باستخدام هذه الخاصية ، يمكنك التحكم في سرعة الرسوم المتحركة.

باستخدام خاصية "Set_Animation" الخاصة بـ PersistentStorageService ، يمكنك التحكم في خطوط وألوان سلسلة النص. يتم تحديد القيم الصالحة في "povanimation.h" ، خطين "أحادي" و "سيريف" وخطين أحادي اللون ولون قوس قزح. تعرض القيمتان 0 و 1 النص بلون ثابت ، ويمكن التحكم فيهما عبر خاصية RGB_Control. تغير القيمتان 2 و 3 لون كل عمود وتعطي السلسلة قوس قزح لطيفًا.

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

لبدء سلسلة جديدة ، اكتب "صواب" إلى "Clear_String".

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

يتم عرض سلسلة جديدة مع البدء عند الضغط على الزر الموجود على Povstick.

الخطوة 9: ابدأ تشغيل تطبيق Android

هذه خطوة مهمة ، لكنها تتجاوز نطاق هذه التعليمات. اسف على ذلك!

ربما يمكنني تحميل تطبيقي التجريبي إلى متجر Play ، لكنه لم ينته بعد أو يمكن إطلاقه.

الخطوة 10: اكتب الرسائل بالصور

اكتب الرسائل بالصور
اكتب الرسائل بالصور
اكتب الرسائل بالصور
اكتب الرسائل بالصور
اكتب الرسائل بالصور
اكتب الرسائل بالصور

حسنًا ، هذا هو السبب في أنني أقوم ببناء هذا povstick في المقام الأول: لكتابة الرسائل في الصور.

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

قم بإعداد الكاميرا واضبط وقت التعرض على 10 ثوانٍ للاختبار الأول.

قم بتشغيل الإصدار وابدأ في السير خلال الصورة ، وابدأ عرض النص على العصا.

إت فويلا ها نحن!

مع المزيج الصحيح من سطوع LED وفتحة العدسة ووقت التعرض ، من الممكن حتى التقاط الصور عند الفجر.

تظهر الصور الثلاث في هذه الخطوة مجموعة كاملة من الاحتمالات.

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

الصورة الثانية مكشوفة لمصابيح LED ، لكن هذا يترك الخلفية سوداء تمامًا.

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

اجعلها توهج مسابقة 2018
اجعلها توهج مسابقة 2018
اجعلها توهج مسابقة 2018
اجعلها توهج مسابقة 2018

الجائزة الثانية في مسابقة Make it Glow 2018

موصى به: