विषयसूची:

लाइट-अप गिटार कैसे बनाएं!: 21 कदम
लाइट-अप गिटार कैसे बनाएं!: 21 कदम

वीडियो: लाइट-अप गिटार कैसे बनाएं!: 21 कदम

वीडियो: लाइट-अप गिटार कैसे बनाएं!: 21 कदम
वीडियो: LEARNING GUITAR 🎸 2024, जुलाई
Anonim
Image
Image
एक योजना बना
एक योजना बना

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

यह प्रोजेक्ट एक कॉन्सर्ट यूकुले किट लेता है और प्रत्येक स्ट्रिंग और झल्लाहट की स्थिति में एक Arduino नियंत्रित एलईडी जोड़ता है। यह एलईडी स्ट्रिंग के मोड और तीव्रता का चयन करने के लिए एक फैंसी OLED डिस्प्ले और रोटरी एनकोडर आधारित यूजर इंटरफेस भी जोड़ता है।

पूर्ण यूके हार्डवेयर विशेषताएं:

  1. Arduino MICRO को LED स्ट्रिंग, डिस्प्ले और इनपुट डिवाइस में इंटरफेस करने के लिए।
  2. 48 व्यक्तिगत रूप से प्रोग्राम करने योग्य पूर्ण रंग एल ई डी
  3. एक OLED डिस्प्ले
  4. उपयोगकर्ता इनपुट के लिए एक रोटरी एन्कोडर
  5. बाहरी शक्ति और Arduino प्रोग्रामिंग के लिए USB इंटरफ़ेस

यूके सॉफ्टवेयर में है:

  1. बुनियादी प्रकाश नियंत्रण मोड जो एल ई डी को उनके गति के माध्यम से चलाते हैं
  2. एक निफ्टी थिएटर मार्की मोड (प्रदर्शन के लिए बहुत आसान!)
  3. एलईडी तीव्रता नियंत्रण
  4. सभी प्रथम स्थान Ukulele chords (तार मान और वर्ण) की एक पूर्ण राग पुस्तकालय
  5. एक अद्वितीय 4 x 6 पिक्सेल वर्ण सेट का उपयोग करके चल रहे पाठ (लंबवत) को प्रदर्शित करने की क्षमता

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

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

चरण 1: एक योजना बनाएं

एक योजना बना
एक योजना बना

कुछ किटों में शामिल फ्रेटबोर्ड (या फ़िंगरबोर्ड) में पहले से ही फ़्रीट्स संलग्न हैं। यह अच्छा/बुरा है। यह एक समय बचाने के लिए अच्छा है, लेकिन एक ड्रिल पैटर्न बिछाने और मिलिंग करते समय इसे रखने के मामले में, यह थोड़ा दर्द है। किट में दिए गए एक को नष्ट करने के बाद, मैंने एक नया फ्रेटबोर्ड खरीदने का विकल्प चुना (ठीक है, मेरे पास एक और किट खरीदने के अलावा कोई विकल्प नहीं था)।

फ्रेटबोर्ड को डिजाइन करते समय, हमें पीसीबी और एलईडी को एम्बेड करने के लिए आवश्यक मोटाई में वृद्धि की गणना करने की आवश्यकता होती है (और निष्क्रिय घटकों को मत भूलना), लेकिन इतना नहीं कि एलईडी फ्रेटबोर्ड सतह से बहुत दूर हों।

एलईडी प्रिंटेड सर्किट बोर्ड (पीसीबी) को एक साधारण 2 लेयर बोर्ड के रूप में डिज़ाइन किया गया है। यह एलईडी स्ट्रिंग की हाथ असेंबली के साथ बहुत मदद करता है और यूकेलेल गर्दन को कुछ यांत्रिक शक्ति (यह शीसे रेशा और एपॉक्सी है) प्रदान करता है। मैंने ईगल में लेआउट शुरू किया, लेकिन बोर्ड आकार की सीमाओं के कारण Altium Designer का उपयोग करना समाप्त कर दिया। Altium योजनाबद्ध और PCB फाइलें यहाँ हैं।

किट फ्रेटबोर्ड मात्र 0.125 इंच मोटा था। तो, एक ०.०६२ इंच मोटा पीसीबी मानकर और एल ई डी के लिए एक अतिरिक्त ०.०६२ इंच की अनुमति देने का मतलब है कि हमें फ्रेटबोर्ड के बहुत से (जैसा कि सभी में) काटना होगा। क्षतिपूर्ति करने के लिए हम या तो पीसीबी के लिए गर्दन में संबंधित जेब के साथ फ्रेटबोर्ड में एलईडी के लिए आंशिक रूप से जेब काट सकते हैं, या हम लूथर मर्केंटाइल इंटरनेशनल (एलएमआईआई) के मोटे संस्करण के साथ पूरे फ्रेटबोर्ड (जिस विकल्प के साथ मैं गया था) को बदल सकते हैं।, जो शुरू करने के लिए 0.25 इंच हैं।

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

इंजीनियरिंग सामग्री (यदि आप चाहें तो अनदेखा करें):

वैसे, यह वास्तव में गर्दन की कठोरता से इतना समझौता नहीं करता है। पीसीबी सामग्री मूल फ्रेटबोर्ड लकड़ी (महोगनी मापांक: 10.6 GPa बनाम FR4 मापांक: 24 GPa) की तुलना में कहीं अधिक सख्त है, साथ ही जब से हम एक Ukulele का निर्माण कर रहे हैं, स्ट्रिंग तनाव की एक बड़ी मात्रा नहीं है जो अन्यथा विकृत हो सकती है (मोड़ या ताना) गर्दन।

एक बहुत ही दिलचस्प विचार (कि मुझे शायद अभी भी गणना करनी चाहिए) तापमान पर क्या होता है। आम तौर पर लकड़ी के लिए, अनाज के समानांतर, विस्तार का थर्मल गुणांक लगभग 3 x 10^-6/K होता है, और FR4 के लिए यह 14×10^−6/K होता है। तो, काफी महत्वपूर्ण अंतर है। चिंता की बात यह है कि तापमान में बदलाव के साथ गर्दन में तनाव पैदा होता है, जो बदले में तारों को डी-ट्यून करता है। यह ऐसा कुछ है जिसे तटस्थ अक्ष के विपरीत दिशा में एक समान परत लगाने या एफआर 4 को तटस्थ अक्ष के जितना संभव हो सके पास करके मुआवजा दिया जा सकता है। लेकिन यह 2.0 के लिए छोड़ दिया जाएगा … मॉडल बनाने और मूल्यांकन करने के लिए कुछ।

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

चरणों की रूपरेखा इस प्रकार है:

  1. सामग्री इकट्ठा करें
  2. आवश्यक उपकरण प्राप्त करें
  3. मोटे फ्रेटबोर्ड को समायोजित करने के लिए गर्दन को मिलाएं
  4. आवश्यक स्थानों पर छेद बनाने और बोर्ड और एलईडी के लिए पॉकेट बनाने के लिए फ्रेटबोर्ड को मिला दें
  5. LED को पकड़े हुए PCB को प्राप्त करें और उसका निर्माण करें
  6. OLED डिस्प्ले, रोटरी एनकोडर और एक्सेस पैनल के लिए Ukulele बॉडी में मिल एक्सेस होल
  7. कवर प्लेट बनाएं
  8. पीसीबी को तार संलग्न करें; इलेक्ट्रॉनिक्स कनेक्ट और परीक्षण करें
  9. गर्दन को उकलूले के शरीर से जोड़ दें
  10. पीसीबी तारों को शरीर में पास करने के लिए एक एक्सेस होल्ड ड्रिल करें
  11. पीसीबी और फ्रेटबोर्ड को गर्दन से संरेखित करें और गोंद करें
  12. फ्रेटबोर्ड के किनारों को गर्दन तक समतल करें (अतिरिक्त सामग्री हटा दें)
  13. झल्लाहट तार स्थापित करें
  14. मास्किंग लागू करें और उकलूले पर फिनिश लागू करें
  15. पुल को संरेखित करें और संलग्न करें
  16. इलेक्ट्रॉनिक्स स्थापित करें और परीक्षण करें।
  17. ट्यूनर इंस्टॉल करें और इंस्ट्रूमेंट को स्ट्रिंग करें
  18. यूके नियंत्रक प्रोग्राम करें
  19. अपने उकलूले कमाल के साथ दुनिया को विस्मित करें!

चरण 2: सामग्री इकट्ठा करें

हमारी सामग्री सूची इस तरह दिखती है:

  1. Ukulele Kit - मैंने ग्रिज़ली कॉन्सर्ट Ukulele किट (अमेज़ॅन पर ग्रिज़ली उके किट) का इस्तेमाल किया, लेकिन ऐसा लगता है कि इसे बंद कर दिया गया है। ज़िमो एक समान मॉडल (ज़िमो उके किट @ अमेज़ॅन) बनाता है जो ऐसा लगता है कि यह काम करेगा
  2. Ukulele fretboard, प्री-स्लॉटेड (LMII Uke फ़िंगरबोर्ड्स)। वे आपके स्केल पर फ्रेटबोर्ड को स्लॉट कर देंगे, जो परेशानी की गड़बड़ी से बचाता है
  3. एपॉक्सी - फ्रेटबोर्ड को गर्दन से चिपकाने के लिए। मैंने एपॉक्सी को चुना क्योंकि यह पीसीबी सामग्री के अनुकूल है। कम से कम 60 मिनट के कामकाजी जीवन के साथ कुछ खोजें। 5 मिनट के प्रकारों का उपयोग न करें, आपको समायोजन करने के लिए समय चाहिए
  4. झल्लाहट तार - LMII से भी उपलब्ध है
  5. कस्टम पीसीबी - Altium फ़ाइलें यहाँ हैं। मैंने सामान्य FR4 प्रकार की सामग्री को चुना। फ्लेक्स (पॉलीमाइड) बोर्ड एक दिलचस्प (यदि अधिक कीमत वाला) विकल्प होगा, क्योंकि वे बहुत पतले हो सकते हैं
  6. 48x नियोपिक्सल (SK6812) एलईडी। एडफ्रूट और डिजिके से उपलब्ध
  7. 48x 0.1uF 0402 कैप्स - बड़ा स्वीकार्य है, लेकिन आपको प्लेसमेंट देखना होगा
  8. हुकअप तार - कम से कम 4 से 6 रंग भ्रम से बचने के लिए, मैंने मुख्य रूप से 28 गेज तार का इस्तेमाल किया। एलईडी बिजली कनेक्शन पर डीसी ड्रॉप देखें (वीसीसी और ग्राउंड दोनों … उस धारा को स्रोत पर वापस लौटना है!)
  9. रोटरी एनकोडर - PEC16-4220F-S0024
  10. फैंसी लकड़ी के घुंडी - रोटरी एन्कोडर के लिए (मुझे LMII से मेरा मिला)
  11. OLED डिस्प्ले - 4D सिस्टम से OLED डिस्प्ले
  12. बाहरी USB बैटरी - हर समय सस्ती, साथ ही आप पुर्जे ले जा सकते हैं!
  13. अरुडिनो माइक्रो
  14. शीट पीतल - प्रदर्शन के लिए प्लेट को आर्डिनो और बेज़ेल रखने के लिए
  15. विविध उपभोग्य सामग्रियों में शामिल हैं: सैंडपेपर, यूरेथेन फिनिश, पॉप्सिकल स्टिक्स, रबर बैंड्स, सोल्डर, फ्लक्स, ब्रश, डबल साइडेड टेप (मुझे यूएचसी टेप 3 एम पसंद है) और छोटे पीतल के वुडस्क्रूज़ (प्लेट के लिए)
  16. वैकल्पिक गिटार संवर्द्धन - बेहतर ट्यूनर, बेहतर तार, बेहतर नट और काठी, जड़ना यदि आप अपना लूथियर कौशल दिखाना चाहते हैं)

चरण 3: आपको आवश्यक उपकरण प्राप्त करें

जल्दी या बाद में आपको इन्हें प्राप्त करने या इन तक पहुंच प्राप्त करने की आवश्यकता होगी:

हमारे उपकरण सूची में शामिल हैं:

  1. मिलिंग मशीन - सीएनसी को प्राथमिकता दी जाती है, लेकिन आपको राउटर और ढेर सारी किस्मत भी मिल सकती है। मैंने एक कॉम्बो सीएनसी मिल/राउटर का इस्तेमाल किया
  2. राउटर बिट्स - कार्बाइड पसंदीदा। अंत मिलों पर चुने गए राउटर बिट्स क्योंकि हम मशीनिंग लकड़ी हैं, धातु नहीं
  3. क्लैंप - उन्हें बहुत सारे। अधिकतर ग्लूइंग करते समय भागों को पकड़ने की आवश्यकता होती है
  4. सोल्डरिंग आयरन - सरफेस माउंट सोल्डरिंग के लिए छोटा टिप
  5. माइक्रोस्कोप या मैग्निफायर - आप केवल अपनी आंखों से मिलाप करने की कोशिश कर सकते हैं, लेकिन मैं इसकी सिफारिश नहीं करूंगा, न्यूनतम 10x
  6. चिमटी (भागों को जगह में रखने के लिए)
  7. झल्लाहट उपकरण (यहां LMII पर उचित उपकरण देखें, लेकिन मैंने घर पर जो कुछ भी था उसका उपयोग किया और किया; हथौड़े, फाइलें और कटर)
  8. मिश्रित हाथ के उपकरण जैसे लकड़ी की छेनी, स्क्रूड्राइवर, सॉफ्ट ब्लो या रॉहाइड हैमर (झल्लाहट के लिए), आदि।
  9. अपघर्षक - सैंडपेपर के विभिन्न पीस

हमारे सॉफ़्टवेयर टूल में शामिल हैं (कुछ आपके बजट/सरलता के आधार पर वैकल्पिक हैं):

  1. Arduino सॉफ्टवेयर
  2. Ukulele स्रोत कोड (https://github.com/conrad26/Ukulele)
  3. पीसीबी लेआउट पैकेज - मैंने Altium का उपयोग किया क्योंकि ईगल का मुफ्त संस्करण मेरे इच्छित बोर्ड आकार का समर्थन नहीं करता था। Altium एक पूर्ण विशेषताओं वाला लेआउट पैकेज है और वास्तव में शौकिया मूल्य सीमा में नहीं है। मैंने प्रोटोटाइप के लिए अपनी साइट पर Gerber फ़ाइलें शामिल की हैं, लेकिन इन्हें निश्चित रूप से अपडेट की आवश्यकता है
  4. 3डी मॉडलिंग सॉफ्टवेयर - मैंने सॉलिडवर्क्स का इस्तेमाल किया, लेकिन एक मुफ्त विकल्प फ्रीकैड (https://www.freecadweb.org/) है।
  5. सीएएम सॉफ्टवेयर - एनसी मिल फाइल बनाने के लिए ऑटोडेस्क से फीचरकैम की तरह।

Altium से फ़्रीबोर्ड के 3D मॉडल के साथ 3D स्टेप फ़ाइल निर्यात का संयोजन यह सुनिश्चित करने में बहुत कठिनाई को समाप्त करता है कि सब कुछ ठीक हो गया है, लेकिन यह एक आवश्यकता नहीं है। सावधान लेआउट एक ही परिणाम प्राप्त करेगा।

अब जब हम जानते हैं कि हम क्या करना चाहते हैं, और हमें क्या करना है, तो चलिए एक Ukulele बनाते हैं।

चरण 4: मोटा फ्रेटबोर्ड को समायोजित करने के लिए गर्दन को मिलाएं।

थिक फ्रेटबोर्ड को समायोजित करने के लिए मिल द नेक।
थिक फ्रेटबोर्ड को समायोजित करने के लिए मिल द नेक।

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

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

एक कारण मैंने गर्दन में एक जड़ना पर एक मोटा फ्रेटबोर्ड चुना था, जो बढ़ते बढ़ते (ग्लूइंग) सतह क्षेत्र था। दूसरा कारण यह है कि यह गर्दन की मिलिंग को सरल करता है। आप बस पूरी सतह को आवश्यक ऊंचाई तक काट लें।

चरण 5: LED को पकड़े हुए PCB प्राप्त करें और उसका निर्माण करें

LED को पकड़े हुए PCB को प्राप्त करें और उसका निर्माण करें
LED को पकड़े हुए PCB को प्राप्त करें और उसका निर्माण करें
LED को पकड़े हुए PCB को प्राप्त करें और उसका निर्माण करें
LED को पकड़े हुए PCB को प्राप्त करें और उसका निर्माण करें

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

फ्रेटबोर्ड डिजाइन WS2812B एलईडी के आसपास आधारित है। मैंने केवल फ्रेटबोर्ड का पहला सप्तक (48 एल ई डी !!) करने का फैसला किया। प्रत्येक एलईडी को एक शिफ्ट रजिस्टर में एक बिट के रूप में माना जा सकता है। शिफ्ट रजिस्टर 800 kHz पर क्लॉक किया गया है। मैंने चीजों को जल्दी से चलाने और चलाने के लिए Adafruit पुस्तकालय (प्रोग्रामिंग अनुभाग देखें) का उपयोग किया।

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

मेरे पास सनस्टोन में बने बोर्ड थे। दो बोर्डों के लिए $129। एक सप्ताह की बारी की गारंटी। हालांकि शिपिंग पर स्क्रिंप न करें। मैंने ध्यान नहीं दिया कि मैंने यूपीएस ग्राउंड का उपयोग किया है और मैंने अपने बोर्ड के आने के लिए एक अतिरिक्त सप्ताह का इंतजार किया। कुल असेंबली समय लगभग 2 घंटे (98 भाग) था।

चरण 6: फ्रेटबोर्ड मिल

Image
Image
यूकेलेल बॉडी में मिल एक्सेस होल्स
यूकेलेल बॉडी में मिल एक्सेस होल्स

हमें आवश्यक स्थानों पर छेद बनाने और बोर्ड और एलईडी के लिए पॉकेट बनाने के लिए फ्रेटबोर्ड को मिलाने की जरूरत है।

मैंने सॉलिडवर्क्स में पूर्ण किए गए फ्रेटबोर्ड का एक 3D मॉडल बनाया और फ़ीचरकैम का उपयोग करके सीएनसी मिलिंग रूटीन बनाया।

गर्दन और शरीर के बीच ऊंचाई में कदम परिवर्तन के लिए फ्रेटबोर्ड के निचले हिस्से (साउंडहोल के सबसे करीब) को पतला बनाने की आवश्यकता होगी। निश्चित रूप से यह सुनिश्चित करने के लिए कई बार परीक्षण फिटिंग के लायक है कि यह एक उचित रूप से फिट फिट है।

पूर्व-निरीक्षण में, मुझे मिल को बेहतर बनाने के लिए फ्रेटबोर्ड के अप्रयुक्त हिस्सों को काट देना चाहिए था (मेरी सस्ती मिल में केवल 12 एक्स-अक्ष यात्रा थी)। संचालन का क्रम पहले मिल मोटाई समायोजन से पहले स्थापित किया जाना चाहिए मिलिंग पॉकेट्स, जिससे पॉकेट्स के बीच कम ब्रेकआउट होना चाहिए।

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

चरण 7: यूकेलेल बॉडी में मिल एक्सेस होल्स

यूकेलेल बॉडी में मिल एक्सेस होल्स
यूकेलेल बॉडी में मिल एक्सेस होल्स

मैंने शरीर में पहुंच छेदों को मैन्युअल रूप से मिला दिया। सबसे कठिन हिस्सा एक बहुत ही घुमावदार सतह का "सपाट" क्षेत्र ढूंढ रहा है। पेंसिल में रूपरेखा को चिह्नित करें और धीरे-धीरे सामग्री को दूर करें जब तक कि आप OLED डिस्प्ले के लिए एक स्नग फिट न हो जाएं। मैंने एक पीतल का बेज़ल मशीनी प्राप्त किया और इसे 3M VHB बॉन्डिंग टेप का उपयोग करके संलग्न किया।

चूंकि न तो बहुत अधिक सटीकता की आवश्यकता होती है, रोटरी एन्कोडर और एक्सेस पैनल छेद बनाना बहुत आसान होता है।

चरण 8: कवर प्लेट्स बनाएं

कवर प्लेट बनाएं
कवर प्लेट बनाएं
कवर प्लेट बनाएं
कवर प्लेट बनाएं
कवर प्लेट बनाएं
कवर प्लेट बनाएं

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

बोर्ड को जगह में रखने के लिए, पीतल के एल ब्रैकेट्स को फैशन करें और उन्हें एक्सेस प्लेट के पीछे मिलाप करें। यह आपको स्थिति में कुछ अक्षांश की अनुमति देता है। स्थिति को सही करने के लिए, पहले Arduino MICRO के लिए एक परफ़ॉर्मिंग माउंटिंग बोर्ड (माउंटिंग होल्स के साथ) बनाएं और 2-56 मशीन स्क्रू का उपयोग करके इसमें L ब्रैकेट संलग्न करें। फिर आप यूएसबी पोर्ट को लाइन अप करने के लिए स्थान को ट्वीक कर सकते हैं और प्लेट पर ब्रैकेट के लिए स्थानों को सटीक रूप से चिह्नित कर सकते हैं। परफ़ॉर्मर से कोष्ठक निकालें और उन्हें जगह में मिलाप करें। अंत में परफ़ॉर्मर असेंबली को माउंट करें।

मैंने पीतल के एक्सेस पैनल को रखने के लिए चार छोटे पीतल के लकड़ी के शिकंजे का इस्तेमाल किया।

इस बिंदु पर मैं अंतिम असेंबली शुरू होने से पहले एक परीक्षण फिट की सलाह देता हूं। यह कदम वैकल्पिक है लेकिन अनुशंसित है। ग्लूइंग से पहले समायोजन करना कहीं अधिक आसान है।

चरण 9: पीसीबी को तार संलग्न करें; इलेक्ट्रॉनिक्स को कनेक्ट और टेस्ट करें

Image
Image
गर्दन को उकलूले के शरीर से जोड़ें
गर्दन को उकलूले के शरीर से जोड़ें

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

चरण १०: गर्दन को उकलूले के शरीर से जोड़ दें

Ukulele किट में शामिल निर्देशों का पालन करते हुए गर्दन को Ukulele के शरीर से जोड़ें। यूके के शरीर के लिए फ्रेटबोर्ड सतह के संरेखण को विशेष रूप से देखें।

चरण 11: पीसीबी तारों को शरीर में पास करने के लिए एक एक्सेस होल ड्रिल करें।

पीसीबी तारों को शरीर में पास करने के लिए एक एक्सेस होल ड्रिल करें।
पीसीबी तारों को शरीर में पास करने के लिए एक एक्सेस होल ड्रिल करें।

एक बार गोंद सूख जाने पर, पीसीबी से तारों को यूकेलेल बॉडी में जाने की अनुमति देने के लिए एक कोण पर ~ 1/4 (10 मिमी) छेद ड्रिल करें। सुनिश्चित करें कि साउंडबोर्ड को नुकसान न पहुंचे।

बोर्ड के नीचे तारों की मोटाई की अनुमति देने के लिए आपको एक छोटी सी जेब भी बनाने की आवश्यकता हो सकती है (या वैकल्पिक रूप से शीर्ष पर कनेक्शन डालें और फ्रेटबोर्ड में राहत शामिल करें।)

एक और परीक्षण फिट इस बिंदु पर चोट नहीं पहुंचाएगा।

चरण 12: पीसीबी और फ्रेटबोर्ड को गर्दन से संरेखित करें और गोंद करें

पीसीबी और फ्रेटबोर्ड को गर्दन से संरेखित करें और गोंद करें
पीसीबी और फ्रेटबोर्ड को गर्दन से संरेखित करें और गोंद करें

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

किसी भी सतह पर एपॉक्सी प्राप्त न करने के लिए बहुत सावधान रहें जिसे आप बाद में समाप्त करना चाहते हैं। गोंद से पहले सभी गैर-चिपके सतहों पर मास्किंग लागू करना बेहतर है, यह सुनिश्चित करने के लिए कि यह केवल वही जाता है जहां आप चाहते थे।

एपॉक्सी का उपयोग कम से कम 60 मिनट के कामकाजी जीवन के साथ करें … आपको इसकी आवश्यकता होगी।

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

फ्रेटबोर्ड को गर्दन से संरेखित करें और गोंद करें। सावधान रहें कि कोई भी जेब न छोड़ें जो बाद में गुंजयमान हो (चर्चा!) यह भी सावधान रहें कि एलईडी सतहों पर गोंद न लगे।

एक बार गोंद सूख जाने के बाद आप इलेक्ट्रॉनिक्स को एक बार और तार और परीक्षण करना चाह सकते हैं। एक खराब एलईडी आपको जीवन से नफरत कर देगी। प्रोटोटाइप पर मेरे पास एक खराब एलईडी (पहली!) थी और मुझे दोषपूर्ण एलईडी तक पहुंचने और इसे सफाई से पैच करने के लिए कुछ रचनात्मक लकड़ी का काम करना था।

चरण १३: फ्रेटबोर्ड के किनारों को गर्दन तक समतल करें और झल्लाहट तारों को जोड़ें

गोंद सूख जाने के बाद, आप किनारों को खत्म करना शुरू कर सकते हैं। मैंने ध्यान से अतिरिक्त फ्रेटबोर्ड सामग्री (एक मिल का उपयोग करके) को काट दिया और अंतिम मिलीमीटर को हाथ से सैंड करके समाप्त कर दिया।

झल्लाहट के तारों को जोड़ना केवल एक हथौड़े से किया जा सकता है (मैरिंग से बचने के लिए प्लास्टिक के चेहरे के साथ)। बस बहुत जोर से मत मारो। यदि आपने झल्लाहट के तार को स्लॉट्स से मिला दिया है, तो उन्हें बिना किसी कठिनाई के अंदर जाना चाहिए।

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

चरण 14: मास्किंग लागू करें और उकलूले पर फिनिश लागू करें

फ्रेटबोर्ड (यह खत्म नहीं होता है) और ब्रिज ग्लूइंग क्षेत्र को मास्क करें और फिनिश लगाना शुरू करें।

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

निर्देशों का आँख बंद करके पालन करने के बजाय, यह समझना हमेशा बेहतर होता है कि आप कुछ क्यों कर रहे हैं।

खत्म करने के लिए, लूथियर्स के बहुत सारे ट्यूटोरियल हैं जो जानते हैं कि वे वेब पर क्या कर रहे हैं, इसलिए मैं परिष्करण प्रक्रिया में कूदने से पहले उनसे परामर्श करने की सलाह देता हूं।

मैंने, निश्चित रूप से, ऐसा नहीं किया, इसलिए मैंने गलत सीलर का उपयोग किया, जिसके परिणामस्वरूप बहुत दानेदार सतह बन गई। ऐसा मत करो।

अपना होमवर्क करें।

चरण 15: पुल को संरेखित और संलग्न करें

पुल को संरेखित और संलग्न करें
पुल को संरेखित और संलग्न करें

यह कदम बहुत सीधा है, लेकिन फिर से, अपनी क्लैंपिंग विधि की योजना बनाएं और ग्लूइंग से पहले इसे पहले से आज़माएं। मैंने पुल को जोड़ने के लिए एक मानक लकड़ी के गोंद का इस्तेमाल किया।

चरण 16: इलेक्ट्रॉनिक्स और परीक्षण स्थापित करें

इलेक्ट्रॉनिक्स और परीक्षण स्थापित करें
इलेक्ट्रॉनिक्स और परीक्षण स्थापित करें

अब अपनी वायरिंग को सुंदर बनाने का समय आ गया है। इसके अलावा आप नहीं चाहते कि यह शरीर के अंदर इधर-उधर हो जाए और भनभनाहट हो या इससे भी बदतर हो और मंच पर टूट जाए।

Arduino कोड को USB पोर्ट के माध्यम से अपडेट किया जा सकता है, इसलिए वास्तव में इसे अलग करने की कोई आवश्यकता नहीं है जब तक कि आप टिंकर नहीं करना चाहते।

चरण 17: ट्यूनर स्थापित करें और उपकरण को स्ट्रिंग करें।

Image
Image
यूके की प्रोग्रामिंग
यूके की प्रोग्रामिंग

आपको फ्रेट्स को समतल करने और सेटअप के साथ थोड़ा खेलने की भी आवश्यकता होगी, लेकिन अब चिंता क्यों करें, जब आप अंत के इतने करीब हैं?

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

चरण 18: यूके की प्रोग्रामिंग

अंतिम Arduino कोड Github पर है। भविष्य के संवर्द्धन का समर्थन करने के लिए कोड में कुछ लाइनें हैं (जैसे मेट्रोनोम फ़ंक्शन और डिस्प्ले के लिए "स्लाइडर" (एक यूआई तत्व जो स्लाइडर की तरह दिखता है)

रोटरी एनकोडर से उपयोगकर्ता इनपुट को संभालने के लिए यह कोड रोटरी एनकोडर लाइब्रेरी (रोटरी एनकोडर Arduino लाइब्रेरी) का उपयोग करता है।

यह यहां स्थित Adafruit Neopixel लाइब्रेरी और उदाहरण कोड का भी उपयोग करता है। थिएटर और रेनबो मोड लाइब्रेरी के साथ दिए गए उदाहरणों से लिए गए हैं। (देखें Strandtest.ino)।

डिस्प्ले ड्राइवर 4D सिस्टम द्वारा प्रदान किया जाता है और Github here पर पाया जाता है।

Ukulele परियोजना के लिए दो अद्वितीय कार्य कार्यान्वित किए गए हैं। पहला कॉर्ड लाइब्रेरी को लागू करता है, और दूसरा कस्टम कैरेक्टर सेट का उपयोग करके स्क्रॉलिंग टेक्स्ट संदेश प्रदर्शित करता है।

संलग्न आरेख फ्रेटबोर्ड एलईडी स्थानों को दिखाता है और वे कैसे जुड़े हुए हैं। LED 0 ऊपरी दाएं कोने में स्थित है।

चरण 19: एक राग कैसे प्रदर्शित करें

एक राग कैसे प्रदर्शित करें
एक राग कैसे प्रदर्शित करें

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

मैंने तारों को स्टोर करने के लिए "जीसीईए" नोटेशन का इस्तेमाल किया (उदाहरण के लिए "ए" "2100" है)। प्रत्येक रूट नोट के लिए कॉर्ड्स की पूर्व-गणना की जाती है और कॉर्ड की गुणवत्ता के अनुरूप एक चर में संग्रहीत किया जाता है। (इसलिए, एक प्रमुख, "2100" के अनुरूप "मेजरचॉर्ड्स" सरणी के पहले स्थान पर संग्रहीत किया जाता है)।

char* majorChords = {"2100\n", "3211\n", "4322\n", "0003\n", "1114\n", "2220\n", "3331\n", " 4442\n", "2010\n", "3121\n", "0232\n", "5343\n"};

ध्यान दें कि चूंकि यह एक टेक्स्ट स्ट्रिंग है, प्रत्येक अंक 9 से अधिक झल्लाहट की स्थिति के लिए एक हेक्स मान का प्रतिनिधित्व कर सकता है। यानी, ए और बी एलईडी 10 और 11 का प्रतिनिधित्व करेंगे। पहली स्थिति के लिए, यह कोई समस्या नहीं थी).

एलईडी स्ट्रिंग को प्रत्येक स्ट्रिंग (ए स्ट्रिंग से शुरू) के साथ 12 (एक सप्तक) की पंक्तियों में लंबाई में तार दिया जाता है, 12 के बाद के रन अगले स्ट्रिंग के पहले झल्लाहट से शुरू होते हैं (चरण 18 में आरेख देखें)। एल्गोरिदम के लिए यह निर्धारित करना महत्वपूर्ण है कि किसी दिए गए तार के लिए कौन सी रोशनी चालू करनी है। इसका मतलब है कि पिक्सेल 0 से 11 ए स्ट्रिंग एलईडी हैं, 12 से 23 ई स्ट्रिंग एलईडी हैं, और इसी तरह। A = "2100" को पार्स करते समय (एक स्ट्रिंग के रूप में संग्रहीत, कोड में एक नल टर्मिनेटर "\n" भी होता है), हम इसकी व्याख्या इस प्रकार करते हैं: A स्ट्रिंग पर कोई पिक्सेल नहीं जलाया जाता है, न ही E स्ट्रिंग पर, पिक्सेल 0 (झल्लाहट १) सी स्ट्रिंग पर जलाया जाता है और जी स्ट्रिंग पर पिक्सेल १ (झल्लाहट २) जलाया जाता है। ध्यान दें कि "0" बंद है, पहली एलईडी नहीं। तारों के आधार पर, हम एल ई डी 24 और 37 को जलाना चाहते हैं। एक तार प्रदर्शित करने के लिए कोड नीचे दिखाया गया है।

for (int i = 0; i <4; i++) {if (int(chord - '0')) {//algorithm to parse to the chord string int ledNumber = int(chord - '0') + (3 - i) * 12 - 1; // ऊपर चर्चा देखें, (3-i) इंडेक्स स्ट्रिप को उलटना है। सेट पिक्सेलकलर (ledNumber, 0, 125, 125); // setPixelColor (ledNumber, लाल मान, हरा मान, नीला मान)}}

अगर स्टेटमेंट चेक करता है कि एलईडी बंद है या नहीं। यदि ऐसा नहीं है, तो यह वर्ण, कॉर्ड का ascii मान लेता है, और '0' के लिए ascii मान घटाता है, जिससे LEDNumber प्रकाश में आता है।

स्ट्रिप Adafruit_NeoPixel वर्ग का एक उदाहरण है। setPixelColor फ़ंक्शन इस मामले में परिकलित पिक्सेल (0, 125, 125 पर नियत) के लिए रंग सेट करता है।

चरण 20: स्क्रॉलिंग संदेश कैसे प्रदर्शित करें

स्क्रॉलिंग संदेश कैसे प्रदर्शित करें
स्क्रॉलिंग संदेश कैसे प्रदर्शित करें

तो हमारे पास एलईडी की 12 x 4 सरणी है … क्यों न इसे सुंदर यादृच्छिक प्रकाश पैटर्न के अलावा कुछ और प्रदर्शित किया जाए!

पहला मुद्दा यह है कि यूके पर स्ट्रिंग्स की संख्या के कारण डिस्प्ले की ऊंचाई (4) सीमित है। क्षैतिज स्क्रॉलिंग अधिकतर पढ़ने योग्य नहीं होगी, लेकिन एक लंबवत अभिविन्यास में, हम लंबवत चलने वाले 4 x 5 वर्णों का समर्थन कर सकते हैं।

वर्णों को पाँच "ऊर्ध्वाधर" पंक्तियों के रूप में व्यवस्थित करने का अर्थ है कि दो वर्णों को एक साथ प्रदर्शित किया जा सकता है जिससे प्रत्येक वर्ण के बीच एक पंक्ति स्थान की अनुमति मिलती है।

कठिनाई यह थी कि कोई मानक 4 x 5 वर्ण सेट नहीं था। मैंने संलग्न स्प्रेडशीट का उपयोग करके अपना खुद का बनाया। मैंने प्रत्येक पंक्ति को एक हेक्स मान (4 बिट्स का प्रतिनिधित्व करता है कि कौन सा पिक्सेल चालू या बंद है) को असाइन किया गया है। पांच हेक्स मानों के संयोजन से एक वर्ण बनता है (उदा. "0" 0x69996 है)।

प्रत्येक वर्ण के मान ASCII क्रम में एक सरणी में संग्रहीत किए जाते हैं। चरित्र सेट कुछ अक्षरों के साथ कुछ समझौता करता है, लेकिन बहुमत एक स्पष्ट रूप से स्पष्ट है। (स्प्रेडशीट के नीचे स्क्रिबलिंग वे विचार हैं जिनके साथ मैं खेल रहा था क्योंकि हमारे पास एक विकल्प के रूप में रंग है, हम चरित्र में "गहराई" जोड़ सकते हैं और संभवतः कुछ अतिरिक्त संकल्प प्राप्त कर सकते हैं।

प्रदर्शित करने के लिए स्ट्रिंग स्ट्रिंग चर, संदेश में निहित है।

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

जब आउटपुट इंडेक्स (पॉइंटर) एक कैरेक्टर बाउंड्री (5, 11, या 17 पर आउटपुट पॉइंटर) तक पहुंच जाता है, तो बफर अगले कैरेक्टर के साथ लोड हो जाता है।

बफर लोड करने के लिए, हम "संदेश" में पहले अक्षर को ASCII मान के रूप में लेते हैं और asciiFont सरणी में अनुक्रमणिका प्राप्त करने के लिए 48 घटाते हैं। उस अनुक्रमणिका का मान codedChar में संग्रहीत है।

स्थानांतरित किए गए संदेश का पहला भाग एलईडी 47, 35, 23 और 11 (प्रदर्शन के नीचे) के अनुरूप है। तो शून्य 0x0F999F संख्या के लिए, F (बाएं एक) को पहले, 9 सेकंड और इसी तरह स्थानांतरित किया जाता है।

अगला चरित्र प्रत्येक कुतरने को मास्क करके और इसे दाईं ओर स्थानांतरित करके लोड किया जाता है। उपरोक्त उदाहरण के लिए, एल्गोरिथ्म (0x0F999F और 0xF00000) >> 20, फिर (0x0F999F और 0x0F0000) >> 16, आदि देता है।

इंट इंडेक्स; अगर (outputPointer == 17 || outputPointer == 5 || outputPointer == 11) {char displayChar = message.charAt(messagePointer); // संदेश के पहले अक्षर को लंबे कोडित चर = asciiFont [displayChar - 48] पकड़ो; अगर (डिस्प्लेचर == 32) कोडेडचार = 0x000000; संदेशबफर [बाइटपॉइंटर + 5] = बाइट ((कोडेडचार और 0xF00000) >> 20); // अंतिम कुतरने के अलावा सभी को मुखौटा करें और इसे 20 (और इसी तरह) संदेशबफर [बाइटपॉइंटर + 4] = बाइट ((कोडेडचार और 0x0F0000) >> 16) से स्थानांतरित करें; // यह प्रति स्मृति स्थान संदेश में एक कुतरना डालना चाहिए [बाइटपोइंटर + 3] = बाइट ((कोडेडचार और 0x00F000) >> 12); // सभी छह चरित्र संदेश बफर [बाइटपॉइंटर + 2] = बाइट ((कोडेडचार और 0x000F00) >> 8) पर प्रतिनिधित्व करते हैं; संदेशबफर [बाइटपॉइंटर + 1] = बाइट ((कोडेडचार और 0x0000F0) >> 4); संदेशबफ़र [बाइटपॉइंटर] = बाइट ((कोडेडचार और 0x00000F)); अगर (बाइटपॉइंटर ==0) {// बाइटपॉइंटर पर लूप को हैंडल करें बाइटपॉइंटर = 12; } और { बाइटपॉइंटर - = 6; // हम नीचे से ऊपर की ओर भर रहे हैं; नोट: यह देखने के लिए इसे उलटने की जरूरत है कि क्या यह आसान बनाता है } अगर (messagePointer == message.length()-1) {// संदेश पर लूप को हैंडल करें messagePointer = 0; } और { संदेशपोइंटर +1; // अगले वर्ण पर जाएँ } }

एक बार बफर लोड हो जाने के बाद, यह ट्रैकिंग का विषय बन जाता है कि आउटपुट पॉइंटर कहां है और एलईडी स्ट्रिंग को सही 48 बिट्स (वर्तमान 4 और पिछले 44) के साथ लोड कर रहा है। जैसा कि पहले उल्लेख किया गया है, स्ट्रिप NeoPixel वर्ग का एक उदाहरण है और setPixelColor प्रत्येक पिक्सेल का रंग (RGB) सेट करता है। शो () फ़ंक्शन प्रदर्शन मानों को एलईडी स्ट्रिंग में बदल देता है।

// लूप लगातार बफर को शिफ्ट करने के लिए

// लूप के माध्यम से प्रत्येक पास पर पूरी पट्टी लिखना चाहते हैं, केवल प्रारंभिक स्थान बदलता है (int row=12;row> 0;row--) {index = outputPointer + (12-row); अगर (इंडेक्स> 17) इंडेक्स = आउटपुट पॉइंटर + (12-पंक्ति) -18; // लूप अगर 17 से अधिक के लिए (इंट कॉलम = 4; कॉलम> 0; कॉलम--) {trip.setPixelColor (uint16_t(12*(column-1)+(row-1)), uint8_t(RedLED*(bitRead) (messageBuffer[index], column-1))), uint8_t(GreenLED*(bitRead(messageBuffer[index], column-1))), uint8_t(BlueLED*(bitRead(messageBuffer[index], column-1)))); // प्रत्येक स्थान पर एलईडी को लाइट करें यदि बिट एक है}} //outputPointer डिस्प्ले स्ट्रिंग में वर्तमान निम्नतम बाइट को इंगित करता है यदि (outputPointer == 0) outputPointer=17; अन्य आउटपुट पॉइंटर - = 1; कपड़े उतारने का प्रदर्शन(); }

चरण २१: अपने उकलूले अजूबेपन से दुनिया को विस्मित करें

Image
Image

अंतिम Ukulele प्रोटोटाइप को शुरू होने और बंद होने में लगभग 6 महीने लगे।

सीखने के लिए बहुत सारी नई तकनीक और शायद बूट करने के लिए कुछ लकड़ी के काम और संगीत सिद्धांत!

अगले संस्करण के लिए क्या करना है?

  1. डिस्प्ले और रोटरी एनकोडर से छुटकारा पाएं। उन्हें Arduino से जुड़े ब्लूटूथ मॉड्यूल से बदलें। फोन या टैबलेट का उपयोग करके इसे दूर से नियंत्रित करें। ब्लूटूथ के साथ सब कुछ बेहतर है।
  2. वास्तविक समय में कॉर्ड पैटर्न को दूरस्थ रूप से अपडेट करें। ऐप के लिए कुछ सबसे अच्छा बचा है।
  3. एलईडी कवर। वर्तमान संस्करण गंक को एलईडी छेद में आने से रोकने के लिए कुछ नहीं करता है। एक दोस्त ने छोटे-छोटे लेंसों का एक गुच्छा बनाया, लेकिन मैं कभी नहीं समझ पाया कि उन्हें ठीक से कैसे रखा जाए।
  4. वैकल्पिक फ्रेटबोर्ड सामग्री, हो सकता है कि जब तक फ्रेट पकड़ में है तब तक कुछ स्पष्ट हो।
  5. अधिक रोशनी! अधिक "पंक्तियों" को जोड़कर पाठ पर बाधा को हटा दें। यह वास्तव में फ्रेटबोर्ड के आकार और एलईडी निकायों के कारण होने वाली एक सीमा है।

फिर से, साथी को निर्देश योग्य देखें जो स्क्रॉलिंग टेक्स्ट की अनुमति देने के लिए मुझे बनाए गए चरित्र सेट का वर्णन करता है।

इसे इतनी दूर बनाने के लिए बहुत-बहुत धन्यवाद! महलो!

सिफारिश की: