جدول المحتويات:
2025 مؤلف: John Day | [email protected]. آخر تعديل: 2025-01-13 06:56
يبلغ طول هذه القطعة الفنية الجدارية التفاعلية 39 بوصة وعرضها 24 بوصة تقريبًا. لقد قطعت الخشب بالليزر في Student Makerspace بجامعة كليمسون ، ثم قمت برسم كل المثلثات يدويًا وتركيب الأنوار على ظهرها. سوف يتعرف هذا التوجيه على كيفية صنع هذه القطعة بالضبط ، ونأمل أن يلهم مفهومها شخصًا آخر لصنع قطعة فنية فريدة خاصة به. يستخدم متحكم ESP8266 مع أضواء شريطية WS2812B LED قابلة للعنونة وأضواء شريطية RGB LED عادية.
الأجزاء والمواد
- 1/4 "خشب - 40" × 28 "(الأبعاد القصوى لماكينة القطع بالليزر)
- 1/8 "أكريليك معتم - TAPPlastics (أستخدم إضاءة بيضاء ، 69٪)
- حزمة البطارية - حزمة بطارية TalentCell 12V / 5V (استخدمت حزمة 12V / 6000mAh)
- شريط RGB LED - حجم 6 أقدام (سلك قياسي 4 ، إصدار 5050 حيث يكون مصباح RGB كله في وحدة واحدة)
- ترانزستور TIP122 للتحكم في PWM للعديد من الأضواء
- شريط WS2812B LED - 2 قدم (لقد استخدمت الإصدار مع 144 LED لكل متر)
- متحكم NodeMCU ESP8266
- سلك موصل قياس 22 صلب النواة (link1 - link2 - link3 - link4)
- حوالي 300 درجة من المقاومات العش
- فرش الرسم
- الطلاء - كنت في الغالب أستخدم طلاء Craft Premium. التفاصيل في خطوة الرسم
أدوات
- الوصول إلى قاطع الليزر (كنت أستخدم واحدًا في كليمسون)
- لحام حديد
- مسدس الغراء الساخن (هذا ضروري)
- قواطع / قواطع للأسلاك
- Adobe Illustrator
- الصبر
الخطوة 1: التصميم في Illustrator
الصورة المصدر عبارة عن رسم توضيحي لـ William Teal ، يرجى إلقاء نظرة على محفظته عن الأعمال الرائعة الأخرى التي قام بها: https://www.behance.net/tealeo93 (أعتقد أنها - لقد تابعت حفرة الأرانب في GoogleImages ، Pinterest ، GraphicDesignJunction، Behance)
لقد عثرت على الصورة المصدر من بحث Google عن "Low-Poly Iron Man" أو "Geometric Iron Man Wallpaper". قمت بتنزيل الصورة وفتحها في Adobe Illustrator.
بعد ذلك ، استخدمت أداة القلم في Illustrator للرسم يدويًا فوق كل سطر في الصورة. لقد فعلت ذلك حتى يتمكن قاطع الليزر من حفر جميع الخطوط الداخلية كقطعة متجهية مضبوطة على طاقة منخفضة بدلاً من الاضطرار إلى تنقيط الصورة بأكملها. استغرق الأمر بضع ساعات للقيام بذلك (ويعرف أيضًا باسم 3 حصص دراسية في المدرسة)
بمجرد تحديد الصورة بالكامل ، جمعت كل هذه الخطوط معًا ثم رسمت أشكالًا لليدين والصدر والعينين. لقد وضعت كل هذه الأشياء في مجموعة ووضعت لونها الملء باللون الأزرق فقط حتى أتمكن من التمييز بينها بسهولة. لقد قمت بنسخها إلى ملف منفصل لقص الأكريليك.
بالنسبة للجزء الأكريليكي ، كنت أرغب في زيادة كفاءة قطعة الأكريليك الخاصة بي إلى الحد الأقصى ، لذا قمت بتحميلها على هذا الموقع https://svgnest.com/ وقمت بتحميل ملف بقطع الأكريليك فقط واتركه "يعشش" الأجزاء. يستخدم هذا بعض التكرارات والخوارزميات الرائعة لتحديد التخطيط الأكثر كفاءة لأجزائك على الورقة لتقليل الفاقد. يقوم بإخراج التكوين الموجود في ملف IronManAcrylic.ai.
الخطوة الثانية: القطع بالليزر
قبل قطع الخشب ، قمت برشه بالطلاء التمهيدي ثم صقله برفق لبدء تشغيله بسلاسة. لقد فعلت ذلك حتى يظهر الطلاء لاحقًا بشكل متساوٍ.
عندما قمت بقص المخطط التفصيلي طوال الطريق عبر الخشب ، استخدمت 100 ٪ من الطاقة بنسبة 6 ٪ (على ما أعتقد) على 60W Epilog Fusion M2 40 في Clemson Makerspace. لقد نجح هذا في معظمها ، لكن الخشب كان ملتويًا جدًا في الزاوية ، لذا كان علي في الواقع إعادة تركيز الليزر لتلك الزاوية وتشغيل هذا الجزء من القطع مرة أخرى.
نظرًا لأنني رسمت أيضًا خطوطًا لجميع المثلثات الداخلية ، فقد تمكنت أيضًا من استخدام قطع متجه لحفر كل هذه الخطوط بسرعة كما هو موضح في الفيديو أعلاه. كان هذا أسرع بكثير مما كان يمكن أن يكون عليه حفر الملف النقطي. أعتقد أنني استخدمت سرعة 70٪ وقوة 50٪ - سيكون عليك فقط التجربة بالرغم من ذلك.
قطع الأكريليك 1/8 بوصة أولاً بقوة 100٪ وسرعة 8٪ والذي كان قويًا جدًا بعض الشيء وترك بعض علامات الاحتراق على الأكريليك غير المحمي ، لذلك قمت بذلك بسرعة 14٪ وعمل مثل السحر.
الخطوة 3: الرسم
وبالتالي. كثير. تلوين. كنت أقدر أنه كان حوالي 20 ساعة من الرسم.
إذا كنت تفكر في القيام بمشروع به أكبر عدد من المثلثات مثل هذا ، من فضلك لا ترسمه بنفسك. ما عليك سوى الدفع للحصول على الصورة مطبوعة على المعدن أو الخشب ثم قصها أو طباعتها على شيء آخر ولصق تلك القطعة على شيء صلب. فقط لا ترسمها بنفسك إلا إذا كنت تحب الرسم.
لقد استخدمت شريط الرسامين FrogTape لتحديد الخطوط العريضة لكل مثلث على القطعة أثناء رسم هذا. لقد أعطاني هذا نتائج أكثر اتساقًا من محاولاتي المبكرة لملء كل مثلث يدويًا دون أي حدود للشريط.
يعطي FrogTape خطوطًا أكثر هشاشة من شريط الرسامين الأبيض أو الأزرق. وقتك وعقلك يستحق تمامًا 2 دولار / لفة الشريط الإضافية. إذا كنت تريد أن تكون أكثر نحافة ، فيمكنك استخدام سكين دقيق لقطع الطبقات القليلة العلوية من الشريط اللاصق إلى شرائح أصغر حتى لا يغطي مثلثًا واحدًا عند تحديده لمثلثات متجاورة.
أنا رخيص وليس لدي الكثير من الخبرة في الرسم ، لذلك استخدمت زجاجتين من الطلاء من Michael's أو Hobby Lobby. لقد وجدت أن خط Craft Smart Premium مغطى جيدًا إلى حد ما ، وانتهى به الأمر باستخدام طلاء CraftSmart Premium Metallic Festive Red الممزوج بالأبيض أو الأسود لصنع 95 ٪ من ظلال حمراء. كان اللون الأصفر مجرد اللون الأصفر المميز لـ Craft Smart ، مع إلقاء القليل من الذهب في محاولة لجعله لامعًا بعض الشيء.
إذا كنت تعرف طلاءًا رخيصًا يغطي بشكل أفضل - يرجى إعلامي في التعليقات !! غالبًا ما اضطررت إلى عمل طبقتين من الطلاء حتى لا يظهر أي من اللون الأبيض أدناه ، وأود أن أحصل على طلاء أجمل يتجنب ذلك.
بمجرد أن يتم رسمها بالكامل (ولكن قبل لصق قطع الأكريليك) ، استخدمت رذاذ طلاء لامع لامع لحماية الطلاء وجعله كله لامعًا.
الخطوة 4: قطع أكريليك وإضاءة خلفية أكريليك
كان إرفاق قطع الأكريليك تحديًا كبيرًا لأن منضدة العمل / مكتبي والقطعة الخشبية كلاهما مشوهان قليلاً ، لذلك لم يكن هناك طريقة يمكنني أن أضمن أنها ستبقى مسطحة لفترة كافية لضبط الإيبوكسي الخاص بي. كحل مؤقت ، ضغطت على الخشب لأسفل إلى الطاولة بالقرب من قطعة الأكريليك التي كنت ألصقها واستخدمت أولاً الغراء الساخن لتثبيت كل قطعة أكريليك في مكانها. يمكن رؤية الغراء الساخن من الجانب الأمامي من الأكريليك ، لذلك استخدمت بعد ذلك غوريلا غراء من جزأين إبوكسي مطبق مع مسواك لتثبيت قطع الأكريليك في مكانها بشكل دائم. عدت بالزردية الصغيرة وأخرجت قطع الغراء الساخنة الأصلية.
لقد صنعت وحدة إضاءة منفصلة لكل قطعة أكريليك. أولاً ، قمت بقص قطعة من لوح الرغوة السوداء 1/4 بوصة إلى حجم أكبر قليلاً من اللازم ورسمت مخططًا لقطعة الأكريليك عليها. ثم قمت بقص شرائط LED لهذه القطعة ولصقها بطريقة غطت في الغالب الأكريليك منطقة.
من الأفضل القيام بهذه الخطوة باستخدام لوحة نماذج أولية وبعض المحطات اللولبية ، لكن لم يكن لدي تلك الموجودة في متناول اليد عندما كنت مستعدًا لبدء توصيلها. كحل بديل ، قمت بقص بعض شرائط دبوس الرأس الأنثوية إلى 4 مدخلات - أرضي ، 5 فولت ، إدخال بيانات ، إخراج البيانات. لقد قمت بلصق شريط الرأس الأنثوي بالغراء على لوح الرغوة وبدأت في لحام جميع الأضواء معًا.
كان اللحام في الواقع أمرًا صعبًا نظرًا لصغر حجم وسادات اللحام هذه. لحسن الحظ ، أتيحت لي فرصتان لجميع منصات الطاقة والأرض لأنه يمكن تزويد كل قطاع بالطاقة لأي طرف. لقد وضعت الشرائط بحيث يتدفق سلك البيانات في نمط اعوج. أستخدم مكواة لحام ذات درجة حرارة قابلة للتعديل ووجدت أنني أحب أن تكون درجة الحرارة في الطرف العلوي من النطاق الملون باللون الأخضر - ربما أحبها ساخنة لأن مكواة اللحام التي استخدمتها لسنوات كانت رخيصة وليس لديها عناصر تحكم في درجة الحرارة وركض ساخنا.
بمجرد أن يتم لحام كل شيء ، استخدمت سكينًا دقيقًا (بشفرة جديدة) لقطع شرائط لوح الرغوة لإحاطة الأضواء وتقليل النزيف. لقد استخدمت اللون الأبيض بدلاً من الأسود لأن لدي شرائط أطول منه وفي الواقع كان شيئًا جيدًا لأنه سمح لي أن أرى بسهولة من الجانب الخلفي إذا تم تشغيل هذا القسم من شرائط LED أثناء خطوة اختبار توصيل الأسلاك كلها.
الخطوة الخامسة: باقي الإلكترونيات
أحاول دائمًا توصيل مشروعاتي عن طريق إدخال مدخلات الطاقة أولاً ، ثم وحدة التحكم ، ثم عناصر اللوحة والأجهزة الطرفية الأخرى. لقد قمت بلصق حزمة البطارية في مكانها ، ثم قمت بتوجيه كابل مقبس التيار المباشر المنفصل بحيث يمكن الوصول إلى مدخل الشحن بسهولة من حافة المشروع لسهولة الشحن. جاءت حزمة البطارية مع الكبل المنفصل وقالت التعليمات إنه من الجيد شحن حزمة البطارية أثناء استخدامها.
لقد قمت بتفكيك كبل micro-USB رخيص واستبدلت طرف micro USB بمقبس أسطواني DC حتى أتمكن من استخدام إدخال 5V فقط. أضع 5 فولت على سكة جهد واحدة من اللوح وفي دبوس ESP8266 Vin ، ثم أرضي في السكة الأرضية ودبوس أرضي من ESP8266 (يجب توصيل جميع الأسطح معًا داخليًا في وحدة التحكم ، لذلك لا يهم أي واحد)
يتم التحكم في شرائط RGB LED القياسية بواسطة إشارة PWM من وحدة التحكم. ومع ذلك ، يمكن للميكروكونترولر توفير 20 مللي أمبير -50 مللي أمبير فقط من التيار لكل دبوس اعتمادًا على وحدة التحكم. يتطلب كل LED في الشريط هذا القدر من الطاقة ، لذلك يتعين علينا استخدام نوع من الترانزستور للتحكم في الشرائط. اقترحت بعض الأماكن التي ظهرت في عمليات بحث Google ترانزستور TIP122 الذي يمكنه تبديل 5 أمبير أو 40 واط من الطاقة - أكثر من كافية لتطبيقنا. إنها ليست مصممة حقًا لتناسب لوح التجارب ، ولكن إذا قلبت كل سلك جانبيًا بزاوية 90 درجة ، فسوف يتناسب مع فتحات اللوح. لقد خططت في الأصل لربط غرفة تبريد صغيرة بكل واحدة ، ولكن بعد إجراء بعض الاختبارات ، قررت أنها لا تسخن بدرجة كافية حتى تكون ضرورية. لقد قمت بتوصيل كل مدخل ترانزستور بدبوس على ESP8266 مخصص لإخراج PWM
شرائط RGB LED التي صادفت أنها تحتوي على طلاء مطاطي "مقاوم للماء" ، ونتيجة لذلك لن تظل ملتصقة بالخشب كما أريد. كحل مؤقت ، قمت بقطع قطع صغيرة من لوح الرغوة ولصق قطعة الرغوة بالخشب ثم قمت بلصق شريط LED بها.
الخطوة 6: نظرة عامة على البرمجة
يستخدم هذا المشروع مكتبات مختلفة بحيث يمكن التحكم فيها من تطبيق هاتف يسمى Blynk ، يتم تشغيله / إيقاف تشغيله من Amazon Echo ، ويمكن تحديث الكود عبر wifi. بعض المكتبات المستخدمة مذكورة أدناه
بلينك -
Blynk هي خدمة تتيح التحكم البسيط بين متحكم ESP8266 وتطبيق الهاتف القابل للتخصيص. يتيح لك تطبيق الهاتف إنشاء تطبيق باستخدام الأزرار والمنزلقات وأدوات انتقاء الألوان RGB وغير ذلك الكثير. كل "عنصر واجهة مستخدم" يغير قيمة يمكن سحبها من تطبيق Blynk كلما قمت بتشغيل وظيفة معينة.
تحديث OTA (عبر الأثير) - المكتبة الافتراضية المضمنة مع ESP8266
محاكي Alexa Wemo - https://github.com/witnessmenow/esp8266-alexa-wemo …
يخدع Amazon Echo ليعتقد أن مشروعك هو مفتاح Wemo للضوء. يسمح لك الرمز بتحديد وظيفة يتم تشغيلها عندما ترسل Alexa إشارة "تشغيل" ووظيفة منفصلة لإشارة إيقاف التشغيل. يمكنك محاكاة أجهزة متعددة (حتى 10 أجهزة) باستخدام وحدة تحكم واحدة تتيح مزيدًا من المرونة. تم إعداد الكود الخاص بي بحيث يعثر Echo على جهازين باسم "Iron Man" و "Night Light". إنهما هذا المشروع ووحدة التحكم هذه ، ولكن إذا قمت بتشغيل "Night Light" ، فسيتم تشغيل وظيفة بأضواء بيضاء خافتة ، حيث يؤدي تشغيل "Iron Man" إلى ضبط شرائط LED الخارجية على اللون الأحمر وقطع الأكريليك على الأبيض.
تحرير Arduino في Visual Studio باستخدام vMicro
لقد كنت أستخدم Visual Studio في العمل لبضعة أشهر حتى الآن وأنا أحب جميع أدوات الإكمال التلقائي التي تم تضمينها فيها ، لذلك بعد بعض البحث وجدت أنه يمكنني بالفعل استخدام Visual Studio بدلاً من Arduino IDE العادي. يكلف ترخيص vMicro لجهاز كمبيوتر واحد 15 دولارًا للطلاب ، وهو في رأيي يستحق ذلك تمامًا إذا كنت ستقضي أكثر من بضع ساعات في برمجة كود Arduino.
FastLED مقابل Neopixel
أنا أستخدم FastLED في مشاريعي لمجرد أنني وجدت المزيد من الوظائف عبر الإنترنت التي تم إنشاؤها بالفعل من أجلها ، وفي هذه المرحلة ، قمت باستخدام العديد من المشاريع لذلك لدي الكثير من التعليمات البرمجية لإعادة استخدامها. أنا متأكد من أن مكتبة Neopixel ستعمل بشكل جيد إذا عملت عليها بشكل كافٍ. أخطط لوضع جميع الوظائف المخصصة الخاصة بي على GitHub ليستخدمها الآخرون ، ولم أتعرف عليها بعد.
الخطوة 7: نصائح البرمجة
الهيكل العام
أنا مهندس تحكم في وظيفتي وغالبًا ما نستخدم أسلوب برمجة يسمى برمجة PLC. يشبه هذا النوع Arduino من حيث أنه يحتوي على حلقة تعمل باستمرار كل بضعة أجزاء من الثانية وتتعامل مع المدخلات / المخرجات ، وتقفز بين "الحالات" المختلفة في الكود. على سبيل المثال ، قد يصطدم الكود بخطوة تتعامل مع ناقل حيث إذا كان هناك درج على الناقل ، فسيتم المضي قدمًا في الحالة 45 ، ولكن إذا لم يكن هناك درج ، فسيتم المضي قدمًا في الحالة 100. وقد ألهم أسلوب البرمجة هذا الكود الخاص بي ، على الرغم من لقد أجريت بعض التغييرات حتى أتمكن من قراءة سلسلة بدلاً من رقم الحالة.
أستخدم متغيرًا عالميًا (commandString) لتتبع حالة الضوء التي يوجد بها المشروع. بالإضافة إلى ذلك ، أستخدم متغيرًا منطقيًا يسمى "animate" لتحديد ما إذا كان سينفصل عن وظيفة أم لا. لذلك عندما تضغط على زر "الوضع الكلاسيكي" في Blynk ، فإن الكود الخاص بي سيضبط الحركة على "خطأ" (بحيث ينفصل عن الوظيفة الحالية) ويضبط سلسلة الأوامر على "RunClassic". تتحقق كل وظيفة باستمرار من المدخلات من Blynk و Alexa و OTAUpdate عن طريق تشغيل وظيفة "CheckInput".
المتغيرات العالمية
أستخدم المتغيرات العامة لتتبع بعض الإعدادات في مشروعي. تتم تهيئة هذه المتغيرات قبل رمز الإعداد الخاص بي ، مما يجعلها في متناول أي وظيفة في الكود الخاص بي.
- GlobalBrightness (0-255)
- globalSpeed - سرعة الحركة لأي وظائف متحركة. هذا المشروع به أقواس قزح باهتة
- globalDelayTime - يحتاج FastLED إلى حوالي 30 ميكروثانية لكتابة المعلومات إلى كل مؤشر LED ، لذلك قمت بتعيين هذا المتغير على NUM_LEDS * 30/1000 + 1 ؛ ثم أضف التأخير (globalDelayTime) بعد معظم الأوقات أقوم بعمل FastLED.show () حتى لا يتم مقاطعة الأمر.
- _r ، _g ، _b - قيم RGB العالمية. بهذه الطريقة ، يمكن لأزرار نظام الألوان المختلفة فقط تغيير قيم r / g / b العامة وكلها تستدعي نفس الوظيفة في النهاية
تسمية وحدة تحكم تحديث Arduino OTA
استغرق الأمر مني قدرًا مزعجًا من البحث حتى اكتشفت كيفية تسمية وحدة التحكم باستخدام وظيفة التحديث عبر الهواء. حرفيًا ، ما عليك سوى تضمين هذا السطر في قسم الإعداد في التعليمات البرمجية الخاصة بك قبل "ArduinoOTA.onStart (" -
ArduinoOTA.setHostname ("الرجل الحديدي") ؛
vMicro مع نصائح Visual Studio
أحيانًا يكتشف الاستوديو المرئي بعض المشكلات في الملفات العميقة مثل ملفات C ++ القياسية ويرمي بعض الأخطاء. حاول تشغيل / إيقاف تشغيل أنواع مختلفة من رسائل الخطأ حتى تظهر لك أخطاء في مشروعك المفتوح وليس أي ملفات داعمة. يمكنك أيضًا فتح الكود في Arduino IDE ومعرفة ما إذا كان سيتم تجميعه هناك أم أنه سيعطي رمز خطأ أكثر فائدة.
FastLED
أرسل لي رسالة إذا كان هذا Instructable يعمل منذ أكثر من بضعة أسابيع وما زلت لم أكتشف كيفية وضع وظائفي المخصصة على GitHub.
تم إدراج FastLED على أنه متوافق مع ESP8266 ، ولكن قد لا تكون تعريفات الدبوس صحيحة. في وثائق FastLED ، يمكنك محاولة تضمين أحد الأسطر التالية قبل تضمين #
- // # عرّف FASTLED_ESP8266_RAW_PIN_ORDER
- // # عرّف FASTLED_ESP8266_NODEMCU_PIN_ORDER
- // # عرّف FASTLED_ESP8266_D1_PIN_ORDER
ومع ذلك ، جربت الثلاثة ولم أجد كل دبابيسي متطابقة. أنا أستخدم حاليًا السطر الأخير وقبلت للتو أنه عندما أخبر FastLED باستخدام دبوس D2 ، فإنه يستخدم بالفعل رقم التعريف الشخصي D4 على وحدة التحكم الخاصة بي.
على الرغم من أن الأضواء الخاصة بي هي مجرد نسخة صينية رخيصة من Neopixels ، ما زلت أخبر FastLED لمعاملتها على أنها Neopixels في الإعداد
- FastLED.addLeds (المصابيح ، NUM_LEDS) ،
- FastLED.setCorrection (TypicalLEDStrip) ،
- //FastLED.setMaxPowerInVoltsAndMilliamps (5 ، maxMilliamps) ؛ // مفيدة للمشاريع التي تعمل بالبطاريات
- FastLED.setBrightness (globalBright) ،
الخطوة 8: المنتج النهائي
تا دا!
لا تتردد في التعليق أو إرسال الأسئلة إلي بالبريد الإلكتروني - أحب هذه الأشياء وأحب مساعدة الآخرين في إنشاء مشاريع رائعة. تحقق من موقع الويب الخاص بي لبعض المشاريع الأخرى التي قمت بها وبعض الصور الفوتوغرافية الخاصة بي: www.jacobathompson.com