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

HALO: Handy Arduino Lamp Rev1.0 W / NeoPixels: 9 خطوات (بالصور)
HALO: Handy Arduino Lamp Rev1.0 W / NeoPixels: 9 خطوات (بالصور)

فيديو: HALO: Handy Arduino Lamp Rev1.0 W / NeoPixels: 9 خطوات (بالصور)

فيديو: HALO: Handy Arduino Lamp Rev1.0 W / NeoPixels: 9 خطوات (بالصور)
فيديو: DIY HALO Lamp Rev1.0 - Powered by Arduino Nano, 15+ Color Modes 2024, سبتمبر
Anonim
Image
Image
HALO: مصباح Arduino مفيد Rev1.0 W / NeoPixels
HALO: مصباح Arduino مفيد Rev1.0 W / NeoPixels
HALO: مصباح Arduino مفيد Rev1.0 W / NeoPixels
HALO: مصباح Arduino مفيد Rev1.0 W / NeoPixels

في هذا الدليل ، سأوضح لك كيفية إنشاء HALO ، أو Handy Arduino Lamp Rev1.0.

HALO هو مصباح بسيط ، مدعوم من Arduino Nano. تبلغ مساحتها الإجمالية حوالي 2 "× 3" ، وقاعدة خشبية مرجحة لتحقيق أقصى درجات الاستقرار. تسمح العنق المرن و 12 وحدة NeoPixels فائقة السطوع بإضاءة كل التفاصيل بسهولة على أي سطح. تتميز HALO بزرين ضغط للتنقل عبر أوضاع الإضاءة المختلفة ، والتي يوجد منها 15 مبرمجة مسبقًا. نظرًا لاستخدام Arduino Nano كمعالج ، يمكنك إعادة برمجته بميزات إضافية. يستخدم مقياس الجهد الفردي لضبط السطوع و / أو السرعة التي يتم بها عرض الوضع. هيكل معدني بسيط يجعل HALO مصباحًا شديد التحمل ومناسب للاستخدام في أي ورشة. تتفاقم سهولة الاستخدام من خلال منظم الطاقة المدمج في Nano ، لذلك يمكن تشغيل HALO إما من خلال USB أو مقبس برميل قياسي 5 مم في الخلف.

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

قبل أن ندخل في هذا Instructable ، أود أن أقول موجزًا شكراً لجميع متابعيني وأي شخص قام بالتعليق على أي من مشاريعي أو تفضيله أو صوّت عليه. شكراً لكم يا رفاق ، حققت تعليماتي في Cardboard نجاحًا كبيرًا ، وأنا الآن ، منذ كتابة هذا ، يصل إلى ما يقرب من 100 متابع ، وهو معلم كبير في رأيي. إنني أقدر حقًا كل الدعم الذي أحصل عليه منكم يا رفاق عندما أضع Ible الخاص بي ، وعندما يتعلق الأمر بذلك ، لن أكون حيث أنا اليوم بدونكم. مع ذلك ، شكرا لكم جميعا!

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

الخطوة 1: جمع المواد

جمع المواد
جمع المواد
جمع المواد
جمع المواد
جمع المواد
جمع المواد
جمع المواد
جمع المواد

كم مرة يجب أن أقولها؟ احصل دائمًا على ما تحتاجه ، ويضمن لك أن تكون قادرًا على بناء شيء ما حتى النهاية.

ملاحظة: بعض هذه الروابط عبارة عن روابط تابعة (تحمل علامة "al") ، وسأحصل على عمولة صغيرة إذا اشتريت من خلالها ، دون أي تكلفة إضافية عليك. شكرا لك إذا اشتريت من خلال الروابط

القطع:

1x اردوينو نانو نانو - آل

1x 10 كيلو مقياس جهد دوار 5 عبوات 10 كيلو مقاييس جهد - al

مقبس برميل 1x 5 مم (يتم إعادة تدوير المنجم من مقلي Arduino Uno) مقبس برميل أنثى (5 عبوات) - AL

الأزرار الانضغاطية اللحظية 2x 2-pin 10 عبوات SPST Pushbutton Switch - al

12x NeoPixels من 60 LED / متر حبلا (أي مكافئ ، على سبيل المثال WS2812B ، سيعمل) Adafruit NeoPixels

صاج 0.5 مم المنيوم

الرقبة المرنة من ولاعة فليكس قديمة

حلقة الغطاء العلوي من مصباح الخزانة LED "العصا والنقر" LED ضوء الخزانة - al

ورقة صغيرة 1/4 بوصة من الخشب الرقائقي

وزن معدني مسطح وثقيل بأبعاد (تقريبًا) 1.5 × 2.5 × 0.25 بوصة

الأسلاك الكهربائية الأساسية التي تقطعت بهم السبل

أدوات:

مسدس الغراء الساخن والغراء

لحام الحديد ولحام

مثقاب كهربائي لاسلكي ولقم صغير متطور

سكين X-acto (أو سكين فائدة)

قواطع الأسلاك

كماشة

قواطع / قصاصات الأسلاك

مقصات ثقيلة

إذا لم يكن لديك وزن المعدن المسطح ، فأنت بحاجة أيضًا إلى:

لفة واحدة من اللحام الرخيص (وليس الأشياء التي ستستخدمها في اللحام) لحام رخيص خالي من الرصاص

شمعة الكحول (أو موقد بنسن)

طبق فولاذي مقوى صغير لا تمانع في إتلافه (أو بوتقة صغيرة إذا كان لديك واحدة)

حامل ثلاثي القوائم للطبق المذكور / بوتقة (لقد صنعت منجم من سلك فولاذي قياس 12)

طبق نبات طيني (أحد الأشياء التي تدخل تحت الإناء)

بعض رقائق الألومنيوم

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

الخطوة الثانية: صنع الوزن

صنع الوزن
صنع الوزن
صنع الوزن
صنع الوزن
صنع الوزن
صنع الوزن

هذه خطوة صعبة إلى حد ما ، ويجب عليك توخي الحذر الشديد عند القيام بذلك. إذا كان لديك وزن معدني ثقيل أو مغناطيس نيوديميوم مسطح حوالي 2.75 "× 1.75" × 0.25 "، فإنني أوصي باستخدام ذلك بدلاً من ذلك (وسيسمح لك المغناطيس بوضع المصباح جانبًا على الأسطح المعدنية!).

إخلاء المسؤولية: لست مسؤولاً عن أي إصابة من جانبك ، لذا يرجى استخدام الفطرة السليمة

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

أولاً ، اصنع قالبًا صغيرًا من رقائق الألومنيوم أو الطين الرطب ، حوالي 2 3/4 بوصة × 1 3/4 بوصة في 1/4 بوصة في الأبعاد الداخلية. يمكن أن يكون شكل بيضاوي مثل لي ، أو مستطيل. استخدم طبقات متعددة من رقائق معدنية أو طبقات سميكة من الطين.

ضع القالب في طبق نباتات السيراميك ، واملأ القالب والصينية بالماء البارد.

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

من الجيد ارتداء القفازات الجلدية والأكمام الطويلة والسراويل الطويلة والأحذية المغلقة من الأمام وحماية العين أثناء القيام بالخطوات التالية

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

استمر في تغذية اللحام في الطبق حتى يذوب آخره.

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

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

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

بعد أن يبرد اللحام تمامًا (حوالي 20 دقيقة ليكون آمنًا) ، أخرجه من قالب الرقائق.

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

الخطوة الثالثة: بناء غلاف الإلكترونيات ، الخطوة الأولى

بناء مسكن الإلكترونيات ، الخطوة 1
بناء مسكن الإلكترونيات ، الخطوة 1
بناء مسكن الإلكترونيات ، الخطوة 1
بناء مسكن الإلكترونيات ، الخطوة 1
بناء مسكن الإلكترونيات ، الخطوة الأولى
بناء مسكن الإلكترونيات ، الخطوة الأولى
بناء مسكن الإلكترونيات ، الخطوة الأولى
بناء مسكن الإلكترونيات ، الخطوة الأولى

هذه هي أجزاء الغلاف التي ستحتوي على Nano ، وتقوم بتركيب الواجهة ، وهي أساسًا ما يجمع مصباح HALO معًا. لقد صنعت منجم باستخدام الألومنيوم 0.5 مم والغراء الساخن ، ولكن إذا كان لديك طابعة ثلاثية الأبعاد (شيء كنت أحاول الحصول عليه من متجري لفترة من الوقت) فقد صنعت نسخة. STL في Tinkercad والتي أرفقتها هنا من أجلك تحميل. نظرًا لأنني لا أمتلك طابعة بنفسي ، لم أتمكن من اختبار طباعة النموذج لمعرفة ما إذا كان كل شيء يطبع بشكل صحيح ، لكنني أعتقد أنه يجب أن يكون جيدًا إذا قمت بإضافة هياكل الدعم المناسبة في آلة التقطيع الخاصة بك. يمكنك أيضًا نسخ الملف المصدر وتحريره هنا إذا كنت بحاجة أو تريد تصميمًا أو جمالية مختلفة قليلاً.

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

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

إذا كنت تقوم بالتجميع من صفائح معدنية مثلي ، فإليك ما عليك القيام به:

الخطوة 1: لوحات الوجه

قص شكلين متطابقين نصف دائري بطول 1.5 بوصة وعرض 3 بوصة. (لقد حملت يدي ، لذا فهي تشبه إلى حد ما الجزء الأمامي من صندوق الموسيقى).

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

الخطوة 2: غطاء مقوس

ثني قطعة من الألومنيوم لتلائم منحنى إحدى لوحات الوجه ، وحدد طول الحافة المناسب.

قم بقص شريط بهذا الطول وعرضه حوالي 2 بوصة ، وقم بتشكيله على شكل قوس يطابق شكل منحنى لوحات الوجه على كلا الجانبين.

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

الآن بعد أن أصبح لدينا أجزاء الغلاف ، فإن الخطوة التالية هي إضافة الإلكترونيات وجمعها معًا!

الخطوة 4: بناء غلاف الإلكترونيات ، الخطوة 2

بناء مسكن الإلكترونيات ، الخطوة الثانية
بناء مسكن الإلكترونيات ، الخطوة الثانية
بناء مسكن الإلكترونيات ، الخطوة الثانية
بناء مسكن الإلكترونيات ، الخطوة الثانية
بناء مسكن الإلكترونيات ، الخطوة الثانية
بناء مسكن الإلكترونيات ، الخطوة الثانية
بناء مسكن الإلكترونيات ، الخطوة الثانية
بناء مسكن الإلكترونيات ، الخطوة الثانية

الآن نضيف الأزرار ومقياس الجهد ، ونجمعها معًا.

الخطوة 1: الأزرار والمسامير

قم بفك الصواميل السداسية من الأزرار ومقياس الجهد. يجب أن يكون هناك جهاز حلقة إمساك أسفل الجوز ، اتركه في مكانه.

قم بفتح كل مكون من خلال الفتحة الخاصة به ، ثم قم بربط الصواميل مرة أخرى لتأمين كل منها في مكانها. شد الصواميل إلى النقطة التي تكون فيها متأكدًا من أن كل مكون آمن تمامًا.

الخطوة 2. فليكس الرقبة

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

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

الخطوة 3: تجميع القشرة (لا ينطبق على الغلاف المطبوع ثلاثي الأبعاد)

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

الآن بعد أن أصبح لدينا الغلاف ، يمكننا المضي قدمًا لإضافة كل بتات الدوائر.

الخطوة الخامسة: إضافة الإلكترونيات

مضيفا الإلكترونيات
مضيفا الإلكترونيات
مضيفا الإلكترونيات
مضيفا الإلكترونيات
مضيفا الإلكترونيات
مضيفا الإلكترونيات

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

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

يوجد رسم تخطيطي في الصور أعلاه ، يمكنك اتباع ذلك إذا أردت.

الخطوة 1: الواجهة

من كل مفتاح من المفاتيح ، قم بلحام سلك من دبوس واحد إلى دبوس جانبي لمقياس الجهد. قم بتلحيم سلك من نفس الدبوس الجانبي إلى دبوس أرضي على جهاز Nano.

جندى سلكًا من الدبوس المركزي لمقياس الجهد إلى A0 على النانو.

قم بتوصيل سلك من الدبوس غير المتصل لأي من المحولين إلى A1 على Nano.

قم بتوصيل سلك من الدبوس غير المتصل بالمفتاح الآخر إلى A2 على جهاز Nano.

ملاحظة: لا يهم أي مفتاح هو أيهما ، يمكنك تغييرهما بسهولة بالغة في الكود ، إلى جانب حقيقة أن أحد المفاتيح يقوم ببساطة بعكس الآخر.

قطع طول السلك 4 بوصات أطول من العنق المرن ، وقم بتقطيع كلا الجانبين. باستخدام Sharpie ، حدد جانبًا بخط واحد.

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

جندى هذا انضم إلى نهاية 5V على نانو.

الخطوة 2: العرض وأسلاك الطاقة

قطع 2 أطوال من السلك 4 بوصات أطول من الرقبة المرنة ، وشريط كلا الطرفين.

باستخدام Sharpie ، حدد نهايات كل سلك ، وسلك واحد بخطين ، وواحد بثلاثة.

قم بتلحيم السلك بخطين إلى الرقم 9 الرقمي على جهاز Nano.

على مقبس البرميل 5 مم ، قم بتوصيل سلك من الدبوس المركزي (موجب) إلى Vin على Nano.

قم بتلحيم سلك آخر بالدبوس الجانبي (الأرضي / السالب) لمقبس البرميل.

قم بتدوير السلك الطويل مع 3 خطوط سويًا مع السلك من الدبوس الجانبي لمقبس البرميل.

جندى الأسلاك في دبوس GND المفتوح على جهاز Nano.

اعزل التوصيلات بشريط كهربائي أو بالغراء الساخن عند الحاجة.

الخطوة 3: قطع الثقوب (فقط على الإصدار المعدني ، إذا قمت بطباعة الغلاف ثلاثي الأبعاد ، فيجب أن تكون بخير)

باستخدام مثقاب و X-acto أو سكين المساعدة ، قم بعمل ثقب بعناية في جانب الغطاء لمنفذ USB الخاص بـ Nano.

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

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

قم بتغذية الأسلاك الثلاثة الطويلة من خلال العنق المرن وخرج الجانب الآخر.

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

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

الآن يمكننا المضي قدمًا لإنشاء القاعدة المرجحة!

الخطوة 6: القاعدة المرجحة

قاعدة مرجحة
قاعدة مرجحة
قاعدة مرجحة
قاعدة مرجحة
قاعدة مرجحة
قاعدة مرجحة

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

إذا قمت بعمل نسخة مطبوعة ثلاثية الأبعاد ، فيمكنك تخطي الخطوة الأولى والانتقال إلى الثانية.

الخطوة 1: الخشب

من ورقة من الخشب الرقائقي 1/4 بوصة ، قطع قاعدة حوالي 3 بوصات في 2 بوصة.

صنفر الحواف لتنعيمها وإزالة الأزيز.

الخطوة الثانية: الوزن

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

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

الخطوة 3: القاعدة

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

تأكد من أن الوزن لا يتداخل مع أي من الأجهزة الإلكترونية

استخدم الغراء الساخن لتثبيت القاعدة في مكانها. استخدم ما يكفي لضمان اتصال ثابت.

الآن بعد أن أصبح لدينا صندوق التحكم الخاص بنا مصنوعًا بالكامل ، دعنا ننتقل إلى الأضواء.

الخطوة 7: حلقة NeoPixel Halo

حلقة هالو NeoPixel
حلقة هالو NeoPixel
حلقة هالو NeoPixel
حلقة هالو NeoPixel
حلقة هالو NeoPixel
حلقة هالو NeoPixel
حلقة هالو NeoPixel
حلقة هالو NeoPixel

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

الخطوة 1: اللحام

قص شريطًا بطول 12 من مصابيح LED لـ NeoPixels.

قم بلحام دبوس GND بالسلك من العنق المرن الذي يحتوي على 3 خطوط.

قم بلحام دبوس Din في السلك الذي يحتوي على خطين.

قم بلحام دبوس 5 فولت بالسلك الذي يحتوي على خط واحد.

الخطوة الثانية: اختبر الأضواء

قم بتنزيل وتثبيت مكتبة Adafruit_NeoPixel ، وافتح كود "strandtest".

قم بتغيير رقم التعريف الشخصي الثابت إلى 9.

قم بتغيير الخط حيث يتم تعريف الشريط بحيث يتم تكوينه لـ 12 LEDs.

قم بتحميل الكود إلى Nano ، وتأكد من أن جميع مصابيح LED الخاصة بك تعمل بشكل صحيح.

استبدل أي مصابيح LED معيبة بأخرى عاملة ، حتى يعمل الشريط بالكامل.

الخطوة 3: رنين

خذ الحلقة العلوية من ضوء "العصا والنقر" واقطع أي حوامل لولبية على الحافة الداخلية.

قطع شق صغير على الحافة للأسلاك من الشريط.

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

استخدم الغراء الساخن لتأمين حواف الشريط بإحكام

بعد أن يبرد الغراء تمامًا ، اختبر وحدات البكسل مرة أخرى. هذا للتأكد من عدم وجود أي قلق بشأن الحرارة والشباك (كان القليل منها).

الخطوة 4: التثبيت

اقطع مستطيلين صغيرين من الخشب 1/4 بوصة ، بارتفاع الحلقة تقريبًا وعرضه 1 2/3 أضعاف.

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

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

الخطوة 6: التشطيب

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

الآن يمكننا المضي قدمًا للانتهاء من الكود النهائي!

الخطوة 8: الأكواد والاختبارات

الرموز والاختبارات
الرموز والاختبارات
الرموز والاختبارات
الرموز والاختبارات

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

# تضمين #ifdef _AVR_ # تضمين #endif

# تعريف رقم التعريف الشخصي 9

#define POT A0 #define BUTTON1 A1 #define BUTTON2 A2

// المعلمة 1 = عدد البكسل في الشريط

// المعلمة 2 = رقم دبوس Arduino (معظمها صالح) // المعلمة 3 = أعلام نوع البكسل ، أضف معًا حسب الحاجة: // NEO_KHZ800 800 KHz bitstream (معظم منتجات NeoPixel w / WS2812 LEDs) // NEO_KHZ400400 KHz (الكلاسيكية ' v1 '(ليس v2) FLORA بكسل ، برامج تشغيل WS2811) // NEO_GRB Pixels سلكية لـ GRB bitstream (معظم منتجات NeoPixel) // NEO_RGB Pixels سلكية لـ RGB bitstream (v1 FLORA pixels ، وليس v2) // NEO_RGBW Pixels موصلة RGBW bitstream (منتجات NeoPixel RGBW) Adafruit_NeoPixel halo = Adafruit_NeoPixel (12، PIN، NEO_GRB + NEO_KHZ800) ؛

// والآن ، رسالة أمان من أصدقائنا في Adafruit:

// هام: لتقليل مخاطر احتراق NeoPixel ، أضف مكثف 1000 uF عبر

// خيوط طاقة البكسل ، أضف 300-500 أوم المقاوم عند إدخال بيانات البكسل الأول // وتقليل المسافة بين Arduino والبكسل الأول. تجنب الاتصال // على دائرة مباشرة … إذا كان عليك ذلك ، فقم بتوصيل GND أولاً.

// المتغيرات

int buttonState1 ؛ int buttonState2 ؛ // القراءة الحالية من طرف الإدخال int lastButtonState1 = LOW ؛ // القراءة السابقة من طرف الإدخال int lastButtonState2 = LOW ؛ وضع int // وضع الأضواء لدينا ، يمكن أن يكون واحدًا من 16 إعدادًا (من 0 إلى 15) int brightVal = 0 ؛ // السطوع / السرعة ، كما هو محدد بواسطة مقياس الجهد

// المتغيرات التالية طويلة لأن الوقت ، يقاس بالمللي ثانية ،

// سيصبح عددًا أكبر بسرعة مما يمكن تخزينه في عدد صحيح. long lastDebounceTime = 0 ؛ // آخر مرة تم فيها تبديل دبوس الإخراج debounceDelay = 50 ؛ // وقت الرفض ؛ زيادة في حالة وميض الإخراج

تراجع باطل () {

// اقرأ حالة المحول إلى متغير محلي: int Reading1 = digitalRead (BUTTON1) ؛ int Reading2 = digitalRead (BUTTON2) ؛ // إذا تغير أي من الأزرار ، بسبب الضوضاء أو الضغط: if (reading1! = lastButtonState1 || reading2! = lastButtonState2) {// إعادة تعيين مؤقت التصحيح lastDebounceTime = millis () ؛ } if ((millis () - lastDebounceTime)> debounceDelay) {// إذا تغيرت حالة الزر بالتأكيد بسبب الضغط / الإفراج: if (reading1! = buttonState1) {buttonState1 = reading1؛ // قم بتعيينها على أنها القراءة إذا تم تغييرها إذا (buttonState1 == LOW) {// تم تعيينها على أنها وضع التبديل المنخفض النشط ++ ؛ إذا (الوضع == 16) {الوضع = 0 ؛ }}} if (reading2! = buttonState2) {buttonState2 = reading2؛ إذا (buttonState2 == LOW) {الوضع = الوضع - 1 ؛ إذا (الوضع == -1) {الوضع = 15 ؛ }}}} // احفظ القراءة في المرة القادمة من خلال الحلقة lastButtonState1 = reading1؛ lastButtonState2 = Reading2 ؛ }

void getBright () {// الكود الخاص بنا لقراءة مقياس الجهد ، ينطق قيمة بين 0 و 255. يُستخدم لضبط السطوع في بعض الأوضاع والسرعة في أوضاع أخرى.

int potVal = analogRead (POT) ؛ BrightVal = map (potVal، 0، 1023، 0، 255) ؛ }

// ها هي أوضاع الألوان لدينا. بعضها مشتق من مثال strandtest ، والبعض الآخر أصلي.

// املأ النقاط واحدة تلو الأخرى بلون (مسح الألوان ، مشتق من strandtest)

لون باطل (uint32_t c، uint8_t wait) {لـ (uint16_t i = 0؛ i

// وظائف قوس قزح (مشتقة أيضًا من strandtest)

قوس قزح باطل (uint8_t انتظر) {

uint16_t أنا ، ي ؛

لـ (j = 0 ؛ j <256 ؛ j ++) {لـ (i = 0 ؛ i

// مختلف قليلاً ، وهذا يجعل قوس قزح موزعًا بالتساوي في جميع الأنحاء

قوس قزح باطل (uint8_t wait) {uint16_t i، j؛

لـ (j = 0 ؛ j <256 * 5 ؛ j ++) {// 5 دورات من كل الألوان على العجلة لـ (i = 0 ؛ i <halo.numPixels () ؛ i ++) {halo.setPixelColor (i ، Wheel ((((i * 256 / halo.numPixels ()) + j) & 255)) ؛ } halo.show () ؛ تأخير (انتظر) ؛ }}

// أدخل القيمة من 0 إلى 255 للحصول على قيمة اللون.

// الألوان هي انتقال r - g - b - العودة إلى r. uint32_t Wheel (بايت WheelPos) {WheelPos = 255 - WheelPos ؛ إذا (WheelPos <85) {return halo. Color (255 - WheelPos * 3 ، 0 ، WheelPos * 3) ؛ } إذا (WheelPos <170) {WheelPos - = 85 ؛ عودة هالو.اللون (0 ، WheelPos * 3 ، 255 - WheelPos * 3) ؛ } WheelPos - = 170 ؛ عودة هالو.اللون (WheelPos * 3 ، 255 - WheelPos * 3 ، 0) ؛ }

الإعداد باطل() {

// هذا خاص بـ Trinket 5V 16MHz ، يمكنك إزالة هذه الأسطر الثلاثة إذا كنت لا تستخدم Trinket #if محدد (_AVR_ATtiny85_) if (F_CPU == 16000000) clock_prescale_set (clock_div_1) ؛ #endif // نهاية رمز pinMode الخاص للحل (POT ، INPUT) ؛ pinMode (BUTTON1 ، INPUT_PULLUP) ؛ pinMode (BUTTON2 ، INPUT_PULLUP) ؛ pinMode (PIN ، الإخراج) ؛ Serial.begin (9600) ؛ // تصحيح الأخطاء halo.begin () ؛ halo.show () ؛ // تهيئة كل وحدات البكسل على "إيقاف"}

حلقة فارغة() {

debounce () ؛

//Serial.println (الوضع) ؛ // المزيد من تصحيح الأخطاء //Serial.println(lastButtonState1) ؛ //Serial.println(lastButtonState2) ؛

إذا (الوضع == 0) {

getBright () ، لـ (int i = 0 ؛ i <halo.numPixels () ؛ i ++) {halo.setPixelColor (i، halo. Color (brightVal، brightVal، brightVal)) ؛ // ضبط كل البكسلات على الأبيض} halo.show () ؛ } ؛ إذا (الوضع == 1) {getBright () ؛ لـ (int i = 0 ؛ i <halo.numPixels () ؛ i ++) {halo.setPixelColor (i، halo. Color (brightVal، 0، 0)) ؛ // اضبط كل البكسلات على اللون الأحمر} halo.show () ؛ } ؛ إذا (الوضع == 2) {getBright () ؛ لـ (int i = 0 ؛ i <halo.numPixels () ؛ i ++) {halo.setPixelColor (i، halo. Color (0، brightVal، 0)) ؛ // اضبط كل البكسلات على اللون الأخضر} halo.show () ؛ } ؛ إذا (الوضع == 3) {getBright () ؛ لـ (int i = 0 ؛ i <halo.numPixels () ؛ i ++) {halo.setPixelColor (i، halo. Color (0، 0، brightVal)) ؛ // اضبط كل البكسلات على اللون الأزرق} halo.show () ؛ } ؛ إذا (الوضع == 4) {getBright () ؛ لـ (int i = 0 ؛ i <halo.numPixels () ؛ i ++) {halo.setPixelColor (i، halo. Color (0، brightVal، brightVal)) ؛ // ضبط كل البكسل على سماوي} halo.show () ؛ } ؛ إذا (الوضع == 5) {getBright () ؛ لـ (int i = 0 ؛ i <halo.numPixels () ؛ i ++) {halo.setPixelColor (i، halo. Color (brightVal، 0، brightVal)) ؛ // اضبط كل البكسلات على أرجواني / أرجواني} halo.show () ؛ } ؛ إذا (الوضع == 6) {getBright () ؛ لـ (int i = 0 ؛ i <halo.numPixels () ؛ i ++) {halo.setPixelColor (i، halo. Color (brightVal، brightVal، 0)) ؛ // اضبط كل البكسل على برتقالي / أصفر} halo.show () ؛ } ؛ if (mode == 7) {// الآن الأوضاع الديناميكية getBright () ؛ مسح اللون (هالو.اللون (ساطع فال ، 0 ، 0) ، 50) ؛ // أحمر }؛ إذا (الوضع == 8) {getBright () ؛ مسح اللون (هالو.اللون (0 ، BrightVal ، 0) ، 50) ؛ // لون أخضر }؛ إذا (الوضع == 9) {getBright () ؛ مسح اللون (هالو.اللون (0 ، 0 ، ساطع فال) ، 50) ؛ // أزرق }؛ إذا (الوضع == 10) {getBright () ؛ مسح اللون (هالو.اللون (brightVal ، brightVal ، brightVal) ، 50) ؛ // أبيض }؛ إذا (الوضع == 11) {getBright () ؛ مسح اللون (هالو.اللون (brightVal ، brightVal ، 0) ، 50) ؛ // اصفر برتقالي }؛ إذا (الوضع == 12) {getBright () ؛ مسح اللون (هالو.اللون (0 ، BrightVal ، brightVal) ، 50) ؛ // ازرق سماوي }؛ إذا (الوضع == 13) {getBright () ؛ مسح اللون (هالو.لون (ساطع فال ، 0 ، ساطع فال) ، 50) ؛ // أرجواني / أرجواني} ؛ if (mode == 14) {// الأخيران هما التحكم في السرعة ، لأن السطوع ديناميكي getBright () ؛ قوس قزح (BrightVal) ؛ } ؛ إذا (الوضع == 15) {getBright () ؛ قوس قزح دورة (brightVal) ؛ } ؛ تأخير (10) ؛ // اسمح للمعالج ببعض الراحة}

الخطوة 9: الخاتمة الكبرى

الخاتمة الكبرى
الخاتمة الكبرى

والآن لدينا مصباح صغير رائع فائق السطوع!

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

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

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

من فضلك لا تنسى التصويت إذا أعجبك هذا!

كما هو الحال دائمًا ، هذه هي مشاريع Dangerously Explosive ، مهمته مدى الحياة ، "لبناء بجرأة ما تريد بناءه ، والمزيد!"

يمكنك العثور على بقية مشاريعي هنا.

شكرا للقراءة ، ونتمنى لك السعادة!

موصى به: