विषयसूची:

वाईफाई-नियंत्रित एलईडी स्ट्रिप्स के साथ लो-पॉली आयरन मैन: 8 कदम (चित्रों के साथ)
वाईफाई-नियंत्रित एलईडी स्ट्रिप्स के साथ लो-पॉली आयरन मैन: 8 कदम (चित्रों के साथ)

वीडियो: वाईफाई-नियंत्रित एलईडी स्ट्रिप्स के साथ लो-पॉली आयरन मैन: 8 कदम (चित्रों के साथ)

वीडियो: वाईफाई-नियंत्रित एलईडी स्ट्रिप्स के साथ लो-पॉली आयरन मैन: 8 कदम (चित्रों के साथ)
वीडियो: Lucknow में बिजली चोरी रोकने के लिए किया जा रहा drones का इस्तेमाल! पकड़ी गईं आंटी! 2024, नवंबर
Anonim
वाईफाई-नियंत्रित एलईडी स्ट्रिप्स के साथ लो-पॉली आयरन मैन
वाईफाई-नियंत्रित एलईडी स्ट्रिप्स के साथ लो-पॉली आयरन मैन
वाईफाई-नियंत्रित एलईडी स्ट्रिप्स के साथ लो-पॉली आयरन मैन
वाईफाई-नियंत्रित एलईडी स्ट्रिप्स के साथ लो-पॉली आयरन मैन
वाईफाई-नियंत्रित एलईडी स्ट्रिप्स के साथ लो-पॉली आयरन मैन
वाईफाई-नियंत्रित एलईडी स्ट्रिप्स के साथ लो-पॉली आयरन मैन
वाईफाई-नियंत्रित एलईडी स्ट्रिप्स के साथ लो-पॉली आयरन मैन
वाईफाई-नियंत्रित एलईडी स्ट्रिप्स के साथ लो-पॉली आयरन मैन

यह इंटरेक्टिव वॉल आर्ट पीस लगभग 39 "लंबा और 24" चौड़ा है। मैंने क्लेम्सन यूनिवर्सिटी के स्टूडेंट मेकर्सस्पेस में लकड़ी को लेजर से काटा, फिर मैंने सभी त्रिकोणों को हाथ से पेंट किया और उसके पीछे रोशनी लगाई। यह निर्देश योग्य होगा कि मैंने यह सटीक टुकड़ा कैसे बनाया, उम्मीद है कि इसकी अवधारणा किसी और को अपनी अनूठी कला बनाने के लिए प्रेरित करेगी। यह पता करने योग्य WS2812B एलईडी पट्टी रोशनी और नियमित आरजीबी एलईडी पट्टी रोशनी के साथ एक ईएसपी8266 माइक्रोकंट्रोलर का उपयोग करता है।

भागों और सामग्री

  • 1/4 "लकड़ी - 40" 28 "(हमारे लेजर कटर के लिए अधिकतम आयाम)
  • 1/8 "अपारदर्शी एक्रिलिक - TAPPप्लास्टिक (मैं लाइटिंग व्हाइट का उपयोग करता हूं, 69%)
  • बैटरी पैक - टैलेंटसेल 12V/5V बैटरी पैक (मैंने 12V/6000mAh पैक का इस्तेमाल किया)
  • आरजीबी एलईडी पट्टी - 6 फीट ईश (मानक 4 तार, 5050 संस्करण जहां आरजीबी प्रकाश एक मॉड्यूल में है)
  • कई रोशनी के PWM नियंत्रण के लिए TIP122 ट्रांजिस्टर
  • WS2812B एलईडी पट्टी - 2 फीट ईश (मैंने 144 एलईडी प्रति मीटर के साथ संस्करण का उपयोग किया)
  • ESP8266 NodeMCU माइक्रोकंट्रोलर
  • सॉलिड कोर 22 गेज कनेक्टर वायर (लिंक 1 - लिंक 2 - लिंक 3 - लिंक 4)
  • कुछ ३००Ω ईश प्रतिरोधक
  • पेंट ब्रश
  • पेंट - मैंने ज्यादातर क्राफ्ट प्रीमियम पेंट का इस्तेमाल किया। पेंटिंग स्टेप. में विवरण

उपकरण

  • एक लेजर कटर तक पहुंच (मैंने क्लेम्सन में एक का इस्तेमाल किया)
  • सोल्डरिंग आयरन
  • गर्म गोंद बंदूक (यह आवश्यक है)
  • वायर कटर/स्ट्रिपर्स
  • एडोब इलस्ट्रेटर
  • धीरज

चरण 1: इलस्ट्रेटर में डिज़ाइन करें

इलस्ट्रेटर में डिज़ाइन करें
इलस्ट्रेटर में डिज़ाइन करें
इलस्ट्रेटर में डिज़ाइन करें
इलस्ट्रेटर में डिज़ाइन करें

स्रोत छवि विलियम टील द्वारा एक उदाहरण है, कृपया उनके पोर्टफोलियो को उनके द्वारा अन्य महान कार्यों के लिए एक नज़र दें: https://www.behance.net/tealeo93 (मुझे लगता है कि यह उनका है - मैंने GoogleImages, Pinterest के खरगोश छेद का अनुसरण किया, ग्राफिक डिजाइनजंक्शन, बेहंस)

मुझे "लो-पॉली आयरन मैन" या "जियोमेट्रिक आयरन मैन वॉलपेपर" के लिए Google खोज से स्रोत छवि मिली। मैंने चित्र डाउनलोड किया और उसे Adobe Illustrator में खोला।

इसके बाद, मैंने छवि में प्रत्येक पंक्ति को मैन्युअल रूप से खींचने के लिए इलस्ट्रेटर में पेन टूल का उपयोग किया। मैंने ऐसा इसलिए किया ताकि लेजर कटर पूरी छवि पर रेखापुंज करने के बजाय कम शक्ति पर सेट वेक्टर कट के रूप में सभी अंदरूनी रेखाओं को खोद सके। इसे करने में कुछ घंटे लगे (स्कूल में लगभग 3 कक्षा अवधि उर्फ)

एक बार जब चित्र पूरी तरह से रेखांकित हो गया तो मैंने उन सभी रेखाओं को एक साथ समूहित किया और फिर हाथों, छाती और आंखों के लिए आकृतियाँ बनाईं। मैंने इन सभी को एक समूह में रखा और उनका रंग नीला करने के लिए सेट किया ताकि मैं उन्हें आसानी से अलग बता सकूं। मैंने उन्हें ऐक्रेलिक कट के लिए एक अलग फ़ाइल में कॉपी किया।

ऐक्रेलिक भाग के लिए मैं अपने ऐक्रेलिक टुकड़े की दक्षता को अधिकतम करना चाहता था इसलिए मैंने इसे इस वेबसाइट https://svgnest.com/ पर अपलोड किया और केवल ऐक्रेलिक कटे हुए टुकड़ों के साथ एक फ़ाइल अपलोड की और इसे भागों को "घोंसला" करने दिया। यह कचरे को कम करने के लिए शीट पर आपके भागों के सबसे कुशल लेआउट को निर्धारित करने के लिए कुछ पुनरावृत्तियों और शांत एल्गोरिदम का उपयोग करता है। यह उस कॉन्फ़िगरेशन को आउटपुट करता है जो IronManAcrylic.ai फ़ाइल में है।

चरण 2: लेजर काटना

Image
Image

लकड़ी काटने से पहले मैंने स्प्रे किया और इसे प्राइमर से पेंट किया और फिर इसे चिकना करने के लिए इसे हल्के से रेत दिया। मैंने ऐसा इसलिए किया ताकि बाद में पेंट और समान रूप से निकल आए।

जब मैंने लकड़ी के माध्यम से सभी तरह की रूपरेखा को काट दिया तो मैंने क्लेम्सन मेकर्सस्पेस में हमारे 60W एपिलॉग फ्यूजन एम 2 40 पर 100% बिजली 6% गति (मुझे लगता है) का उपयोग किया। इसने इसके अधिकांश के लिए काम किया, लेकिन लकड़ी एक कोने में बहुत विकृत थी इसलिए मुझे वास्तव में उस कोने के लिए लेजर को फिर से लगाना पड़ा और कट के उस हिस्से को फिर से चलाना पड़ा।

चूँकि मैंने सभी आंतरिक त्रिभुजों के लिए रेखाएँ भी खींची थीं, इसलिए मैं उन सभी पंक्तियों को जल्दी से उकेरने के लिए एक वेक्टर कट का उपयोग करने में सक्षम था जैसा कि ऊपर वीडियो में दिखाया गया है। यह फ़ाइल को रेखापुंज करने की तुलना में काफी तेज़ था। मुझे लगता है कि मैंने ७०% गति और ५०% शक्ति का उपयोग किया - हालांकि आपको बस प्रयोग करना होगा।

1/8 ऐक्रेलिक I ने पहली बार 100% शक्ति और 8% गति से काटा, जो थोड़ा बहुत शक्तिशाली था और असुरक्षित ऐक्रेलिक पर कुछ झुलसा देने वाले निशान छोड़ गए, इसलिए मैंने इसे 14% गति से किया और यह एक आकर्षण की तरह काम किया।

चरण 3: पेंटिंग

चित्र
चित्र
चित्र
चित्र
चित्र
चित्र

इसलिए। बहुत। चित्र। मेरा अनुमान है कि यह लगभग 20 घंटे की पेंटिंग थी।

यदि आप इस तरह के कई त्रिभुजों के साथ एक परियोजना करने के बारे में सोच रहे हैं, तो कृपया इसे स्वयं पेंट न करें। बस छवि को धातु या लकड़ी पर मुद्रित करने के लिए भुगतान करें और फिर उसे काट लें, या इसे किसी और चीज़ पर मुद्रित करें और उस टुकड़े को किसी ठोस चीज़ पर चिपका दें। जब तक आप पेंटिंग से प्यार नहीं करते, बस इसे स्वयं पेंट न करें।

जैसा कि मैंने इसे चित्रित किया है, मैंने टुकड़े पर प्रत्येक त्रिकोण को रेखांकित करने के लिए फ्रॉगटेप पेंटर्स टेप का उपयोग किया। इसने मुझे बिना किसी टेप बॉर्डर के प्रत्येक त्रिभुज को हाथ से भरने के अपने शुरुआती प्रयासों की तुलना में बहुत अधिक सुसंगत परिणाम दिए।

फ्रॉगटेप सफेद या नीले रंग के पेंटर टेप की तुलना में बहुत अधिक कुरकुरी रेखाएं देता है। आपका समय और विवेक पूरी तरह से अतिरिक्त $ 2 / टेप के रोल के लायक है। यदि आप चाहते हैं कि यह पतला हो तो आप टेप की शीर्ष कुछ परतों को और भी छोटी पट्टियों में काटने के लिए एक सटीक चाकू का उपयोग कर सकते हैं ताकि जब आप एक त्रिभुज की रूपरेखा तैयार करें तो यह कई पड़ोसी त्रिभुजों को कवर न करे।

मैं सस्ता हूं और मुझे पेंटिंग का ज्यादा अनुभव नहीं है इसलिए मैंने माइकल या हॉबी लॉबी से पेंट की 2 ऑउंस बोतलों का इस्तेमाल किया। मैंने पाया कि क्राफ्ट स्मार्ट प्रीमियम लाइन काफी अच्छी तरह से कवर की गई थी, और मेरे लाल रंगों का 95% बनाने के लिए सफेद या काले रंग के साथ मिश्रित क्राफ्टस्मार्ट प्रीमियम मेटलिक फेस्टिव रेड पेंट का उपयोग करके समाप्त हुआ। पीला सिर्फ क्राफ्ट स्मार्ट प्रीमियम पीला था, इसे थोड़ा चमकदार बनाने के प्रयास के रूप में थोड़ा सोना फेंका गया था।

यदि आप एक सस्ते-ईश पेंट के बारे में जानते हैं जो बेहतर कवर करता है - कृपया मुझे टिप्पणियों में बताएं !! मुझे अक्सर पेंट के दो कोट करने पड़ते थे ताकि नीचे का कोई भी सफेद रंग दिखाई न दे, और मुझे कुछ अच्छे रंग पसंद हैं जो इससे बच सकें।

एक बार जब यह सब पेंट हो गया (लेकिन ऐक्रेलिक टुकड़ों में ग्लूइंग करने से पहले) मैंने पेंट की सुरक्षा और इसे चमकदार बनाने के लिए एक चमकदार स्पष्ट कोट स्प्रे का इस्तेमाल किया।

चरण 4: एक्रिलिक टुकड़े और एक्रिलिक बैकलाइट्स

एक्रिलिक टुकड़े और एक्रिलिक बैकलाइट्स
एक्रिलिक टुकड़े और एक्रिलिक बैकलाइट्स
एक्रिलिक टुकड़े और एक्रिलिक बैकलाइट्स
एक्रिलिक टुकड़े और एक्रिलिक बैकलाइट्स
एक्रिलिक टुकड़े और एक्रिलिक बैकलाइट्स
एक्रिलिक टुकड़े और एक्रिलिक बैकलाइट्स
एक्रिलिक टुकड़े और एक्रिलिक बैकलाइट्स
एक्रिलिक टुकड़े और एक्रिलिक बैकलाइट्स

ऐक्रेलिक टुकड़ों को जोड़ना एक चुनौती थी क्योंकि मेरे कार्यक्षेत्र/डेस्क और लकड़ी के टुकड़े दोनों थोड़े विकृत हैं, इसलिए ऐसा कोई तरीका नहीं था जिससे मैं गारंटी दे सकूं कि यह मेरे एपॉक्सी को सेट करने के लिए पर्याप्त समय तक सपाट रहेगा। वर्कअराउंड के रूप में, मैंने लकड़ी को उस ऐक्रेलिक टुकड़े के पास की मेज पर दबाया, जिसमें मैं गोंद लगा रहा था और पहले प्रत्येक ऐक्रेलिक टुकड़े को रखने के लिए गर्म गोंद का इस्तेमाल किया। ऐक्रेलिक के सामने की तरफ से गर्म गोंद दिखाई देता है, इसलिए मैंने तब गोरिल्ला ग्लू का इस्तेमाल किया, दो भाग एपॉक्सी को टूथपिक के साथ लागू किया गया ताकि ऐक्रेलिक टुकड़ों को स्थायी रूप से रखा जा सके। मैं छोटे सरौता के साथ वापस चला गया और मूल गर्म गोंद के टुकड़ों को बाहर निकाल दिया।

मैंने प्रत्येक ऐक्रेलिक टुकड़े के लिए एक अलग प्रकाश मॉड्यूल बनाया। पहले मैंने 1/4 ब्लैक फोम बोर्ड के एक टुकड़े को आवश्यकता से थोड़ा बड़ा आकार में काटा और उस पर ऐक्रेलिक टुकड़े की एक रूपरेखा तैयार की। फिर मैंने उस टुकड़े के लिए एलईडी स्ट्रिप्स को इस तरह से काटा और टेप किया, जो ज्यादातर ऐक्रेलिक को कवर करता था। क्षेत्र।

प्रोटोटाइप बोर्ड और कुछ स्क्रू टर्मिनलों के साथ यह कदम बेहतर होगा, लेकिन जब मैं इसे वायरिंग शुरू करने के लिए तैयार था तो मेरे पास हाथ नहीं थे। वर्कअराउंड के रूप में, मैंने कुछ महिला हेडर पिन स्ट्रिप्स को 4 इनपुट में काट दिया - ग्राउंड, 5V इन, डेटा इन, डेटा आउट। मैंने फोम बोर्ड पर महिला हेडर स्ट्रिप को गर्म किया और सभी लाइटों को एक साथ मिलाना शुरू किया।

सोल्डरिंग वास्तव में चुनौतीपूर्ण थी क्योंकि वे सोल्डर पैड कितने छोटे थे। सौभाग्य से मेरे पास सभी पावर और ग्राउंड पैड के लिए दो मौके थे क्योंकि प्रत्येक पट्टी को किसी भी छोर तक बिजली की आपूर्ति की जा सकती है। मैंने स्ट्रिप्स बिछाईं ताकि डेटा वायर एक सर्पिन पैटर्न में प्रवाहित हो। मैं समायोज्य तापमान के साथ एक टांका लगाने वाले लोहे का उपयोग करता हूं और मैंने पाया है कि मुझे हरे रंग की सीमा के ऊपरी छोर पर तापमान पसंद है - मुझे शायद यह गर्म पसंद है क्योंकि वर्षों से इस्तेमाल किया जाने वाला टांका लगाने वाला लोहा सस्ता था और इसका कोई तापमान नियंत्रण नहीं था और गर्म भाग गया।

एक बार जब सब कुछ मिलाप हो गया, तो मैंने रोशनी को घेरने और ब्लीड-थ्रू को कम करने के लिए फोम बोर्ड के स्ट्रिप्स को काटने के लिए एक सटीक चाकू (एक ताजा ब्लेड के साथ) का उपयोग किया। मैंने काले के बजाय सफेद रंग का इस्तेमाल किया क्योंकि मेरे पास इसकी लंबी धारियाँ थीं और वास्तव में यह एक अच्छी बात थी क्योंकि इसने मुझे पीछे की तरफ से आसानी से देखने की अनुमति दी थी कि क्या एलईडी स्ट्रिप्स के उस हिस्से को वायरिंग के परीक्षण चरण के दौरान चालू किया गया था।

चरण 5: बाकी इलेक्ट्रॉनिक्स

बाकी इलेक्ट्रॉनिक्स
बाकी इलेक्ट्रॉनिक्स
बाकी इलेक्ट्रॉनिक्स
बाकी इलेक्ट्रॉनिक्स
बाकी इलेक्ट्रॉनिक्स
बाकी इलेक्ट्रॉनिक्स

मैं हमेशा अपनी परियोजनाओं को पहले बिजली इनपुट, फिर नियंत्रक, फिर अन्य बोर्ड तत्वों और बाह्य उपकरणों में डालकर तार करने की कोशिश करता हूं। मैंने बैटरी पैक को जगह में गर्म किया और फिर विभाजित डीसी जैक केबल को रूट किया ताकि चार्जिंग इनपुट आसानी से चार्ज करने के लिए प्रोजेक्ट के किनारे से आसानी से पहुंचा जा सके। बैटरी पैक स्प्लिट केबल के साथ आया था और निर्देशों में कहा गया था कि बैटरी पैक का उपयोग करते समय चार्ज करना ठीक था।

मैंने एक सस्ते माइक्रो-यूएसबी केबल को नरभक्षण किया और माइक्रो यूएसबी एंड को डीसी बैरल जैक से बदल दिया ताकि मैं सिर्फ 5 वी इनपुट का उपयोग कर सकूं। मैंने ब्रेडबोर्ड के एक वोल्टेज रेल पर और ESP8266 विन पिन में 5V लगाया, फिर ग्राउंड रेल में ग्राउंड किया और ESP8266 का एक ग्राउंड पिन (सभी आधारों को नियंत्रक में आंतरिक रूप से एक साथ वायर्ड किया जाना चाहिए ताकि कोई फर्क नहीं पड़ता))

मानक आरजीबी एलईडी स्ट्रिप्स को नियंत्रक से पीडब्लूएम सिग्नल द्वारा नियंत्रित किया जाता है। हालांकि, नियंत्रक के आधार पर माइक्रोकंट्रोलर केवल प्रति पिन 20mA-50mA की आपूर्ति कर सकते हैं। पट्टी में प्रत्येक एलईडी को लगभग उतनी ही शक्ति की आवश्यकता होती है, इसलिए हमें स्ट्रिप्स को नियंत्रित करने के लिए किसी प्रकार के ट्रांजिस्टर का उपयोग करना पड़ता है। Google खोजों पर पॉप अप करने वाले कुछ स्थानों ने TIP122 ट्रांजिस्टर का सुझाव दिया जो 5 amps या 40W बिजली स्विच कर सकता है - हमारे आवेदन के लिए पर्याप्त से अधिक। वे वास्तव में एक ब्रेडबोर्ड में फिट होने के लिए डिज़ाइन नहीं किए गए हैं, लेकिन यदि आप प्रत्येक तार को 90 ° बग़ल में घुमाते हैं तो यह ब्रेडबोर्ड स्लॉट में फिट हो जाएगा। मैंने मूल रूप से प्रत्येक के लिए एक छोटा हीटसिंक पेंच करने की योजना बनाई थी, लेकिन कुछ परीक्षणों के बाद मैंने निर्धारित किया कि वे आवश्यक होने के लिए पर्याप्त गर्म नहीं होते हैं। मैंने प्रत्येक ट्रांजिस्टर इनपुट को PWM आउटपुट के लिए नामित ESP8266 पर एक पिन से तार दिया

आरजीबी एलईडी स्ट्रिप्स जो मुझे "पानी प्रतिरोधी" रबर कोटिंग के साथ हुई थी, और परिणामस्वरूप लकड़ी से चिपके नहीं रहेंगे और साथ ही मैं चाहूंगा। वर्कअराउंड के रूप में, मैंने फोम बोर्ड के छोटे टुकड़ों को काट दिया और फोम के टुकड़े को लकड़ी से चिपका दिया और फिर उन पर एलईडी पट्टी चिपका दी।

चरण 6: प्रोग्रामिंग अवलोकन

यह प्रोजेक्ट विभिन्न पुस्तकालयों का उपयोग करता है ताकि इसे Blynk नामक फोन ऐप से नियंत्रित किया जा सके, Amazon Echo से चालू/बंद किया जा सके, और कोड को वाईफाई पर अपडेट किया जा सके। उपयोग किए गए कुछ पुस्तकालय नीचे हैं

ब्लिंक -

Blynk एक ऐसी सेवा है जो ESP8266 माइक्रोकंट्रोलर और अनुकूलन योग्य फ़ोन ऐप के बीच सरल नियंत्रण की अनुमति देती है। फ़ोन ऐप आपको बटन, स्लाइडर, RGB रंग बीनने वाले और बहुत कुछ के साथ एक एप्लिकेशन बनाने की अनुमति देता है। प्रत्येक "विजेट" एक मान बदलता है जिसे जब भी आप एक निश्चित फ़ंक्शन चलाते हैं तो Blynk ऐप से खींचा जा सकता है।

OTA (ओवर द एयर) अपडेट- डिफ़ॉल्ट लाइब्रेरी ESP8266. के साथ शामिल है

एलेक्सा वेमो एमुलेटर -

अमेज़ॅन इको को यह सोचकर चकमा देता है कि आपका प्रोजेक्ट एक Wemo लाइट स्विच है। कोड आपको एक फ़ंक्शन को चलाने के लिए परिभाषित करने की अनुमति देता है जब एलेक्सा "टर्न ऑन" सिग्नल और टर्न ऑफ सिग्नल के लिए एक अलग फ़ंक्शन भेजता है। आप एकल नियंत्रक के साथ कई उपकरणों (10 तक) का अनुकरण कर सकते हैं जो और भी अधिक लचीलेपन की अनुमति देता है। मेरा कोड सेट किया गया है ताकि इको को "आयरन मैन" और "नाइट लाइट" नाम के दो उपकरण मिलें। वे दोनों इस परियोजना और इस नियंत्रक हैं, लेकिन अगर मैं "नाइट लाइट" चालू करता हूं तो यह मंद सफेद रोशनी के साथ एक फ़ंक्शन चलाएगा, जहां "आयरन मैन" को चालू करने से बाहरी एलईडी स्ट्रिप्स लाल और ऐक्रेलिक टुकड़े सफेद हो जाते हैं.

vMicro. का उपयोग करके विजुअल स्टूडियो में Arduino संपादन

मैं कुछ महीनों के लिए काम पर विजुअल स्टूडियो का उपयोग कर रहा हूं और मुझे इसमें बनाए गए सभी स्वत: पूर्ण उपकरण पसंद हैं, इसलिए कुछ खोज के बाद मैंने पाया कि मैं वास्तव में सामान्य Arduino IDE के बजाय विजुअल स्टूडियो का उपयोग कर सकता हूं। छात्रों के लिए एक एकल कंप्यूटर vMicro लाइसेंस की लागत $ 15 है, जो मेरी राय में पूरी तरह से इसके लायक है यदि आप Arduino कोड प्रोग्रामिंग करने में कुछ घंटों से अधिक खर्च करने जा रहे हैं।

FastLED बनाम Neopixel

मैं अपनी परियोजनाओं में FastLED का उपयोग केवल इसलिए करता हूं क्योंकि मुझे इसके लिए पहले से ही ऑनलाइन किए गए अधिक फ़ंक्शन मिल गए हैं, और इस बिंदु पर मैंने इसका उपयोग करके कई प्रोजेक्ट बनाए हैं इसलिए मेरे पास पुन: उपयोग करने के लिए बहुत सारे कोड हैं। मुझे यकीन है कि यदि आप पर्याप्त रूप से काम करते हैं तो Neopixel लाइब्रेरी ठीक वैसे ही काम करेगी। मैं अन्य लोगों के उपयोग के लिए गिटहब पर अपने सभी कस्टम फ़ंक्शंस डालने की योजना बना रहा हूं, मुझे अभी तक इसके आसपास नहीं मिला है।

चरण 7: प्रोग्रामिंग युक्तियाँ

समग्र संरचना

मैं अपने काम पर एक नियंत्रण इंजीनियर हूं और हम अक्सर पीएलसी प्रोग्रामिंग नामक प्रोग्रामिंग की एक शैली का उपयोग करते हैं। यह प्रकार Arduino के समान है जिसमें इसमें एक लूप होता है जो हर कुछ मिलीसेकंड में लगातार चलता है और कोड में विभिन्न "राज्यों" के बीच कूदते हुए इनपुट/आउटपुट से संबंधित होता है। उदाहरण के लिए, कोड एक कन्वेयर से निपटने वाले चरण को हिट कर सकता है, जहां अगर कन्वेयर पर एक ट्रे है तो यह 45 राज्य के लिए आगे बढ़ेगी, लेकिन अगर कोई ट्रे नहीं है तो यह 100 पर आगे बढ़ेगी। इस प्रोग्रामिंग शैली ने मेरे कोड को प्रेरित किया, हालांकि मैंने कुछ बदलाव किए हैं ताकि मैं राज्य संख्या के बजाय सिर्फ एक स्ट्रिंग पढ़ सकूं।

मैं एक वैश्विक चर (कमांडस्ट्रिंग) का उपयोग करता हूं ताकि यह पता लगाया जा सके कि परियोजना किस प्रकाश स्थिति में है। इसके अतिरिक्त, मैं "चेतन" नामक एक बूलियन का उपयोग करता हूं, यह भी निर्धारित करता है कि यह किसी फ़ंक्शन से बाहर हो जाएगा या नहीं। तो जब आप ब्लिंक पर "क्लासिक मोड" बटन दबाते हैं तो मेरा कोड एनिमेट को गलत पर सेट कर देगा (ताकि यह वर्तमान फ़ंक्शन से बाहर हो जाए) और कमांडस्ट्रिंग को "रनक्लासिक" पर सेट करें। प्रत्येक फ़ंक्शन "चेकइनपुट" फ़ंक्शन चलाकर लगातार Blynk, Alexa, और OTAUpdate से इनपुट की जांच करता है।

सार्वत्रिक चर

मैं अपनी परियोजना में कुछ सेटिंग्स का ट्रैक रखने के लिए वैश्विक चर का उपयोग करता हूं। ये चर मेरे सेटअप कोड से पहले प्रारंभ किए गए हैं, जो उन्हें मेरे कोड में किसी भी फ़ंक्शन के लिए सुलभ बनाता है।

  • वैश्विक चमक (0-255)
  • GlobalSpeed - किसी भी एनिमेटेड फ़ंक्शन की एनीमेशन गति। इस परियोजना में सिर्फ लुप्त होती इंद्रधनुष है
  • GlobalDelayTime - FastLED को प्रत्येक LED को जानकारी लिखने के लिए लगभग 30 माइक्रोसेकंड की आवश्यकता होती है, इसलिए मैंने इस चर को NUM_LEDS * 30 / 1000 + 1 पर सेट किया है; फिर ज्यादातर बार FastLED.show() करने के बाद देरी (globalDelayTime) जोड़ें ताकि कमांड बाधित न हो।
  • _r, _g, _b - वैश्विक RGB मान। इस तरह अलग-अलग रंग योजना बटन वैश्विक r/g/b मानों को बदल सकते हैं और सभी अंत में एक ही फ़ंक्शन को कॉल कर सकते हैं

Arduino OTA अद्यतन नियंत्रक नामकरण

जब तक मुझे पता नहीं चला कि ओवर द एयर अपडेट फ़ंक्शन का उपयोग करके नियंत्रक का नाम कैसे दिया जाए, तब तक मुझे खोज करने में परेशानी हुई। शाब्दिक रूप से "ArduinoOTA.onStart(" -) से पहले अपने कोड के सेटअप सेक्शन में इस लाइन को शामिल करें।

ArduinoOTA.setHostname ("आयरनमैन");

विजुअल स्टूडियो युक्तियों के साथ vMicro

कभी-कभी विजुअल स्टूडियो मानक सी ++ फाइलों जैसी गहरी फाइलों के साथ कुछ समस्याओं का पता लगाएगा और कुछ त्रुटियों को फेंक देगा। विभिन्न प्रकार के त्रुटि संदेशों को तब तक चालू/बंद करने का प्रयास करें जब तक कि आपके खुले प्रोजेक्ट में त्रुटियां न हों और कोई सहायक फ़ाइल न हो। आप Arduino IDE में कोड भी खोल सकते हैं और देख सकते हैं कि क्या यह वहां संकलित होगा या यदि यह अधिक उपयोगी त्रुटि कोड देगा।

फास्टएलईडी

मुझे संदेश दें कि क्या यह निर्देश कुछ हफ्तों से अधिक समय से है और मुझे अभी भी यह पता नहीं चला है कि गिटहब पर अपने कस्टम कार्यों को कैसे रखा जाए।

FastLED को ESP8266 के साथ संगत होने के रूप में सूचीबद्ध किया गया है, लेकिन पिन परिभाषाएँ सही नहीं हो सकती हैं। FastLED के दस्तावेज़ीकरण में यह कहा गया है कि आप #include. से पहले निम्न में से किसी एक पंक्ति को शामिल करने का प्रयास कर सकते हैं

  • //#FASTLED_ESP8266_RAW_PIN_ORDER को परिभाषित करें
  • //#FASTLED_ESP8266_NODEMCU_PIN_ORDER को परिभाषित करें
  • //#FASTLED_ESP8266_D1_PIN_ORDER को परिभाषित करें

हालाँकि, मैंने तीनों की कोशिश की और मेरे सभी पिनों का मिलान कभी नहीं हुआ। वर्तमान में मैं अंतिम पंक्ति का उपयोग कर रहा हूं और अभी स्वीकार किया है कि जब मैं FastLED को पिन D2 का उपयोग करने के लिए कहता हूं तो यह वास्तव में मेरे नियंत्रक पर पिन D4 का उपयोग करता है।

भले ही मेरी रोशनी Neopixels की सिर्फ सस्ती चीनी दस्तक है, फिर भी मैं FastLED को सेटअप में उन्हें Neopixels के रूप में मानने के लिए कहता हूं

  • FastLED.addLeds(LEDs, NUM_LEDS);
  • FastLED.setCorrection (विशिष्टLEDStrip);
  • // FastLED.setMaxPowerInVoltsAndMilliamps(5, maxMilliamps); // बैटरी चालित परियोजनाओं के लिए उपयोगी
  • FastLED.setBrightness (वैश्विक ब्राइट);

चरण 8: अंतिम उत्पाद

अंतिम उत्पाद
अंतिम उत्पाद
अंतिम उत्पाद
अंतिम उत्पाद
अंतिम उत्पाद
अंतिम उत्पाद

टा-दा!

बेझिझक टिप्पणी करें या मुझे प्रश्न ईमेल करें - मुझे यह सामान पसंद है और अन्य लोगों को अच्छे प्रोजेक्ट बनाने में मदद करना अच्छा लगेगा। मेरे द्वारा किए गए कुछ अन्य प्रोजेक्ट और मेरी कुछ फोटोग्राफी के लिए मेरी वेबसाइट देखें: www.jacobathompson.com

सिफारिश की: