विषयसूची:

होली-टाई: 8 कदम (चित्रों के साथ)
होली-टाई: 8 कदम (चित्रों के साथ)

वीडियो: होली-टाई: 8 कदम (चित्रों के साथ)

वीडियो: होली-टाई: 8 कदम (चित्रों के साथ)
वीडियो: LAAL ISHQ - BAHURIYA KI होली - पूर्ण एपिसोड - 227 - रोमांटिक हॉरर हिंदी टीवी सीरियल - और टीवी 2024, जुलाई
Anonim
Image
Image

द्वारा gwfongMonkey PatchingFollow लेखक द्वारा और अधिक:

रोशन कुत्ता Ramp
रोशन कुत्ता Ramp
स्टील हार्ट और फ्यूज्ड ग्लास स्कल्पचर
स्टील हार्ट और फ्यूज्ड ग्लास स्कल्पचर
स्टील हार्ट और फ्यूज्ड ग्लास स्कल्पचर
स्टील हार्ट और फ्यूज्ड ग्लास स्कल्पचर
कॉपर वायर और फ्यूज्ड ग्लास बटरफ्लाई
कॉपर वायर और फ्यूज्ड ग्लास बटरफ्लाई
कॉपर वायर और फ्यूज्ड ग्लास बटरफ्लाई
कॉपर वायर और फ्यूज्ड ग्लास बटरफ्लाई

के बारे में: सिर्फ एक आदमी जो अच्छी चीजें बनाना चाहता है gwfong के बारे में अधिक »

यह होली-टाई है, छुट्टियों के दौरान पहना जाने वाला एक उत्सव टाई। बेकी स्टर्न द्वारा एम्प्ली-टाई पर आधारित, जो फ्लोरा बोर्ड का उपयोग करता है, होली-टाई NeoPixel एनिमेशन और संगीत को चलाने के लिए एक सर्किट पायथन एक्सप्रेस (CPX) माइक्रोकंट्रोलर का उपयोग करता है। 2 अलग NeoPixel एनिमेशन के बीच एक बटन बदलता है। कैपेसिटिव टच पैड नियोपिक्सल रंग और एनीमेशन गति को बदलते हैं। दूसरा बटन एलईडी एनिमेशन और संगीत के बीच बदलता है। ऑन-बोर्ड माइक्रोफ़ोन का उपयोग VU मीटर एनिमेशन के लिए परिवेशी शोर को मापने के लिए किया जाता है। और CPX स्पीकर हॉलिडे चिप ट्यून्स को आउटपुट करता है।

सर्किटपायथन सिस्टम के ऊपर चलने वाली पायथन प्रोग्रामिंग भाषा का उपयोग करके सब कुछ कोडित किया गया है। यह एक 3.7V, 500mAH LiPo बैटरी द्वारा संचालित है जिसे ऑन/ऑफ स्विच करने के लिए संशोधित किया गया था।

होली-टाई दिखाने वाले दो वीडियो क्लिप हैं:

  • पूरी हुई होली-टाई
  • होली-टाई के अंदर

चरण 1: पुर्जे और उपकरण

पार्ट्स

  • सर्किट खेल का मैदान एक्सप्रेस
  • 15x फ्लोरा नियोपिक्सल
  • चुंबक तार
  • चिपकने वाला हुक और लूप टेप
  • जेएसटी कनेक्टर के साथ 500 एमएएच लाइपो बैटरी
  • कैंडी केन टाई
  • मिनी स्लाइड स्विच, एसपीडीटी
  • तापरोधी पाइप

पुर्जों की सोर्सिंग करते समय, अतिरिक्त खरीदना बुद्धिमानी होगी। मेरे पास कुल 20 NeoPixels थे, जिनमें से एक शुरू से ही टूट गया था और एक मैंने बर्बाद कर दिया था। कैंडी केन टाई इतनी सस्ती थी कि मैंने पहली बार खराब होने की स्थिति में ही दूसरी खरीद ली।

उपकरण

  • गर्म गोंद वाली बंदूक
  • टांका स्टेशन
  • वायर कटर
  • छोटा चाकू
  • मल्टीमीटर
  • संगणक
  • लाइटर या हीट गन
  • धागा और सुई

चरण 2: टाई तैयार करना

टाई की तैयारी
टाई की तैयारी
टाई की तैयारी
टाई की तैयारी
टाई की तैयारी
टाई की तैयारी

मुख्य लक्ष्य आंतरिक टाई कोर और सीमांकित लाइनों तक पहुंच प्राप्त करना है जो यह दर्शाता है कि एल ई डी कहाँ स्थित होना चाहिए।

चरण 1: टाई को स्थिति में बांधें

जब इलेक्ट्रॉनिक्स जगह में हों तो टाई बांधना मुश्किल होगा। तो टाई बांधें ताकि यह अच्छा लगे और गाँठ काफी दृढ़ हो और सुलझे नहीं। फिर टाई के छोटे सिरे को ध्यान से खींचकर सिर के ऊपर से टाई पाने के लिए छेद को खोलें। यह वह स्थिति है जिस पर टाई पर काम किया जाएगा।

सभी प्रकार के विभिन्न टाई नॉट हैं। मैं केवल वही जानता हूं जो मैंने एक बच्चे के रूप में सीखा, विंडसर। इससे कोई फर्क नहीं पड़ता कि किस गाँठ का उपयोग किया जाता है।

चरण 2: टाई के पिछले हिस्से को खोलें

टाई लूप और लोगो के एक तरफ सीम खोलें और फिर टाई के केंद्र के नीचे। सावधान रहें क्योंकि इसे अंत में बैक अप करना है।

चरण 3: रेखाएँ खींचें जहाँ एलईडी लगाई जानी चाहिए

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

लाइनों पर एल ई डी लगाकर और ऊपर स्ट्राइप फैब्रिक बिछाकर लाइनों की केन्द्रितता का परीक्षण करें। जहां जरूरत हो वहां एडजस्ट करें।

चरण 3: NeoPixels संलग्न करना

NeoPixels संलग्न करना
NeoPixels संलग्न करना
NeoPixels संलग्न करना
NeoPixels संलग्न करना
NeoPixels संलग्न करना
NeoPixels संलग्न करना
NeoPixels संलग्न करना
NeoPixels संलग्न करना

मूल रूप से, हम अपनी खुद की एलईडी पट्टी बना रहे हैं। हम बस एलईडी को टाई कोर पर माउंट करते हैं और फिर उन्हें एक दूसरे से जोड़ते हैं।

चरण 1: NeoPixels को टाई कोर से चिपकाएं

NeoPixel के पीछे गर्म गोंद की एक थपकी रखें, इसे केंद्र की रेखाओं पर रखें। 3 NeoPixels वाले अनुभागों के लिए, केंद्र NeoPixel को लंबवत रूप से संरेखित करें और पहले उन्हें नीचे गोंद दें। इससे केंद्र के संबंध में बाएँ और दाएँ NeoPixel की स्थिति आसान हो जाएगी, विशेष रूप से यह देखते हुए कि टाई की चौड़ाई ऊपर से नीचे तक बढ़ जाती है।

सभी NeoPixels को एक ही दिशा में उन्मुख करना सुनिश्चित करें, नीचे बाएँ से ऊपर दाईं ओर जा रहे हैं। यदि यह सही नहीं है, तो पट्टी काम नहीं करेगी।

गर्म गोंद के बारे में एक नोट। यह परियोजना को पूरा करने के लिए पर्याप्त होगा। यह आने वाले वर्षों तक चलेगा या नहीं, यह देखना होगा।

चरण 3: NeoPixels को एक दूसरे से मिलाएं

क्योंकि मैंने प्रवाहकीय धागे का उपयोग करने के बजाय NeoPixels को एक साथ मिलाप करने का निर्णय लिया, NeoPixel पैड में छेद थोड़ा सा हमारे खिलाफ काम करता है। तार को मिलाप करने के लिए बस पैड पर एक अच्छी जगह खोजें। छेद को सोल्डर से भरने की कोशिश न करें, लेकिन अगर ऐसा होता है, तो यह ठीक रहेगा।

तांबे के कोर के चारों ओर चुंबक के तार में इन्सुलेशन की एक पतली परत होती है। एक चाकू के साथ, इन्सुलेशन को केवल सिरों पर परिमार्जन करें जहां उन्हें मिलाप किया जाएगा। तार की पूरी परिधि को परिमार्जन करना सबसे अच्छा है।

चरण 4: कनेक्टिविटी का परीक्षण करें

की कनेक्टिविटी का परीक्षण करने के लिए एक मल्टीमीटर का प्रयोग करें:

  1. सकारात्मक संबंध। टिप से टेल तक कनेक्टिविटी होनी चाहिए। सुनिश्चित करें कि पैड पर कनेक्टिविटी का परीक्षण करें न कि तार पर।
  2. ग्राउंड कनेक्शन। एक ही परीक्षण करें लेकिन ग्राउंड पैड के साथ।
  3. प्रत्येक डेटा लाइन। एक डेटा पैड से दूसरे तक, सत्यापित करें कि कनेक्टिविटी है।

चरण 4: सर्किट खेल का मैदान एक्सप्रेस संलग्न करना

सर्किट खेल का मैदान एक्सप्रेस संलग्न करना
सर्किट खेल का मैदान एक्सप्रेस संलग्न करना

सर्किट प्लेग्राउंड एक्सप्रेस (CPX) सिस्टम का दिल है। इस नियंत्रक के लिए Adafruit के पास कई ट्यूटोरियल हैं। बाद में इस निर्देश में, मैं MCU की कुछ विशेषताओं पर प्रकाश डालूँगा।

चरण 1: CPX को निचले सिरे NeoPixel से मिलाएं

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

अगला टाई कोर को मोड़ें और CPX को वांछित स्थिति में रखें। पावर वायर को VOUT पैड को, ग्राउंड वायर को किसी भी ग्राउंड पैड को, और डेटा वायर को A0 के अलावा किसी भी I/O पैड को फीड करें। मैंने जो कोड लिखा है वह A3 का उपयोग करता है।

कनेक्टिविटी का परीक्षण करें।

चरण 2: CPX को बांधें

एक धागे और सुई का उपयोग करके, कोई भी चार समान दूरी वाले पैड चुनें और उन्हें टाई कोर पर सीवे।

चरण 5: CPX को सशक्त बनाना

CPX को शक्ति देना
CPX को शक्ति देना
CPX को शक्ति देना
CPX को शक्ति देना
सीपीएक्स को शक्ति देना
सीपीएक्स को शक्ति देना

CPX में ऑन/ऑफ स्विच नहीं है। इसका मतलब है कि जैसे ही बैटरी को प्लग किया जाएगा, टाई चालू हो जाएगी। इसका मतलब यह भी है कि इसे बंद करने का एकमात्र तरीका बैटरी को अनप्लग करना है, जो एक बड़ी परेशानी है। एक सरल उपाय यह है कि बैटरी को बंद/बंद कर दिया जाए।

चरण 1: स्विच पर तीसरा पिन काटें

गैर-केंद्र पिन में से एक की आवश्यकता नहीं है। इसे स्विच की बॉडी से फ्लश ऑफ कर दें।

चरण 2: स्विच को एक बैटरी लीड में इन-लाइन मिलाएं

बैटरी ग्राउंड वायर को बीच में कहीं काट लें। प्रत्येक ग्राउंड वायर पर हीट सिकुड़ते टयूबिंग का एक टुकड़ा स्लाइड करें। एक ग्राउंड वायर को एक पिन में और दूसरे ग्राउंड वायर को दूसरे पिन से मिलाएं। सुनिश्चित करें कि वे एक दूसरे को स्पर्श नहीं करते हैं या सोल्डर धातु के शरीर को छूता है।

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

चरण 3: सत्यापित करें कि बैटरी काम करती है

इस बिंदु पर, बैटरी को CPX में प्लग किया जा सकता है। यदि सब कुछ ठीक रहा, तो स्विच CPX को चालू और बंद करने में सक्षम होना चाहिए।

चरण 4: बैटरी को माउंट करें

बैटरी के पीछे और टाई कोर पर थोड़ा सा चिपकने वाला हुक और लूप टेप लगाएं। यदि टाई को बहुत ज्यादा नहीं छेड़ा जाता है तो यह इसे अपनी जगह पर रखेगा।

चरण 6: सर्किट प्लेग्राउंड एक्सप्रेस की स्थापना

मैं इस बारे में विस्तार से नहीं बताऊंगा कि CPX कैसे सेटअप करें। Adafruit ऐसा करता है और फिर कुछ। मैं उन मुद्दों के लिए कुछ सुझाव दूंगा जिनका मुझे अक्सर सामना करना पड़ता है।

CPX जम जाता है

संभवत: रन टाइम मेमोरी मुद्दों के कारण, CPX काफी बार जम जाता है। त्वरित सुधार मिटाना और फिर से फ्लैश करना है। इन निर्देशों में "ओल्ड वे" खोजें। मूल रूप से, यह बटन दबाने की एक जोड़ी है, मिटाने के लिए एक ड्रैग और ड्रॉप, और फिर एक ड्रैग एंड ड्रॉप टू री-फ्लैश।

चेतावनी: यह सब कुछ मिटा देता है। CPX पर सभी कोड खो जाएंगे।

CPX में परिवर्तन सहेजना समस्याएँ पैदा कर सकता है

मैंने पाया कि कभी-कभी सीपीएक्स पर फ़ाइल सहेजने के बाद पाइथन रनटाइम खराब स्थिति में होगा। फिक्स को रीसेट बटन दबाकर अजगर रनटाइम को पुनरारंभ किया गया था। इसे केवल एक बार दबाएं। इसे दो बार दबाने से री-फ्लैश प्रक्रिया शुरू हो जाएगी।

CPX पर सीधे बचत करना जोखिम भरा है

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

चरण 7: सर्किट प्लेग्राउंड एक्सप्रेस की कोडिंग

इस बिंदु पर, CPX और NeoPixels बहुत अधिक पूर्ण हैं। उनके साथ कोई अन्य यांत्रिक या विद्युत कार्य करने की आवश्यकता नहीं है। बाकी सब सॉफ्टवेयर है।

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

कोड में क्या हो रहा है इसका एक उच्च स्तरीय सारांश यहां दिया गया है।

क्या इनपुट करता है?

  • बटन ए: एलईडी एनिमेशन के माध्यम से साइकिल
  • बटन बी: गाने के माध्यम से साइकिल
  • कैपेसिटिव टच पैड A1: एलईडी एनिमेशन के लिए रंग बदलता है
  • कैपेसिटिव टच पैड A6: एलईडी एनिमेशन की गति को बदलता है

3 एनिमेशन मौजूद हैं लेकिन केवल 2 प्रभाव में हैं

code.py

पिक्सलऑफ़ आयात करें

#import vumeter इंपोर्ट सीढ़ियां इंपोर्ट ट्विंकल …led_animations = [pxesoff. PixelsOff(pixels), # vumeter. VuMeter(pixels, 100, 400) सीढ़ियां। सीढ़ियां (पिक्सेल), ट्विंकल। ट्विंकल (पिक्सेल)]

मैंने एम्पली-टाई वीयू मीटर स्टाइल कोड पोर्ट किया। यह ध्वनि लेने और ध्वनि आयाम के आधार पर NeoPixels को हल्का करने के लिए CPX माइक्रोफोन का उपयोग करता है। हालाँकि, मुझे और एनिमेशन चाहिए थे। रनटाइम मेमोरी की कमी के कारण मुझे यह चुनना था कि मुझे कौन से एनिमेशन चाहिए। तो डिफ़ॉल्ट रूप से अन्य दो, सीढ़ियाँ और ट्विंकल, कोड परिवर्तन किए बिना चलेंगे। VU मीटर एनिमेशन को चलाने के लिए, एक या दोनों अन्य एनिमेशन पर कमेंट आउट करना होगा और VU मीटर को अनकम्मेंट करना होगा।

संगीत प्रबंधक और ऑफ़लाइन एन्कोडिंग

फ्रॉस्टी_द_स्नोमैन.py

mn. के रूप में musical_notes आयात करें

# फ्रॉस्टी द स्नोमैन # वाल्टर ई. रॉलिन्स गाना = [(mn. G4, mn. HLF), (mn. E4, mn. DTQ), (mn. F4, mn. ETH), (mn. G4, mn. QTR)), (mn. C5, mn. HLF),…

Convert_to_binary.py

गाने = [(jingle_bells.song, "jingle_bells.bin"), (frosty_the_snowman.song, "frosty_the_snowman.bin")] गानों में गाने के लिए: डेटा = गीत [0] फ़ाइल = गीत [1] खुले के साथ (फ़ाइल, "wb") bin_file के रूप में: डेटा में प्रविष्टि के लिए: प्रिंट ("लेखन:" + str (प्रविष्टि)) नोट = प्रविष्टि [0] दुर = प्रविष्टि [1] bin_file.write (struct.pack ("<HH", नोट, ड्यूर))

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

अधिक गाने जोड़ना तुच्छ है। विवरण के लिए, गाने में README.md देखें।

बटन ए नियोपिक्सल को एनिमेट करता है, बी संगीत बजाता है, लेकिन एक साथ नहीं

code.py

डीईएफ़ बटन_ए_प्रेस्ड ():

if music.is_playing (): # संगीत बजाते समय संगीत बंद करें। संगीत चालू या बंद संगीत। बंद करें () अन्य: संगीत। प्ले ()

यहां तक कि अधिक मेमोरी कुशल संगीत प्रबंधन प्रणाली के साथ, मैं उनमें से 1 को चलाने के दौरान रनटाइम मेमोरी 2 एनिमेशन में रखने में सक्षम नहीं था और एक ही समय में एक गाना भी बजाता था। क्योंकि मैंने पहले से ही रनटाइम मेमोरी में VU मीटर नहीं रखने का विकल्प चुना था, मैं एनिमेशन की संख्या को केवल 1 तक कम नहीं करना चाहता था। इसलिए मैंने कोड लिखा ताकि या तो एनीमेशन चल रहा हो या संगीत चल रहा हो, लेकिन नहीं दोनों। एक अन्य विकल्प NeoPixels की संख्या को कम करना था, लेकिन यह कुछ एनीमेशन कूलनेस को खो देगा।

पायथन कोड फंकनेस

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

संकलित मॉड्यूल

संकलन

#!/बिन/बैश

कंपाइलर=~/डेवलपमेंट/सर्किटपाइथॉन/एमपीई-क्रॉस-3.x-windows.exe सीडी गाने python3./convert_to_binary.py cd.. f के लिए *.py; करो अगर

परियोजना की शुरुआत में मैंने एडफ्रूट की सलाह का पालन किया और सभी एडफ्रूट सर्किटपाइथन पुस्तकालयों को फ्लैश पर संग्रहीत किया। हालाँकि, इसने मेरे प्रोजेक्ट के लिए बहुत कम जगह छोड़ी। सीपीएक्स पर अपना कोड प्राप्त करने में सक्षम होने के लिए, मैंने मॉड्यूल को संकलित करना और उन्हें एमसीयू पर रखना शुरू कर दिया। यह पता चला है कि होली-टाई को किसी बाहरी पुस्तकालय की आवश्यकता नहीं है। UF2 में मौजूदा पुस्तकालय इस परियोजना के लिए पर्याप्त थे। *.mpy फ़ाइलें चलाना थोड़ा अधिक प्रभावशाली है इसलिए मैंने संकलित मॉड्यूल को परिनियोजित करने की प्रक्रिया को जारी रखा।

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

चरण 8: टाई को बटन करना

टाई को बटन करना
टाई को बटन करना
टाई को बटन करना
टाई को बटन करना

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

सिफारिश की: