विषयसूची:
वीडियो: Arduino Uno मिडी फाइटर: 5 स्टेप्स
2024 लेखक: John Day | [email protected]. अंतिम बार संशोधित: 2024-01-30 09:21
यह निर्देश दक्षिण फ्लोरिडा विश्वविद्यालय (www.makecourse.com) में मेककोर्स की परियोजना की आवश्यकता को पूरा करने के लिए बनाया गया था।
डीजे टेकटूल्स के लोकप्रिय मिडीफाइटर के आधार पर, यह होममेड अरुडिनो संचालित म्यूजिकल इंस्ट्रूमेंट डिजिटल इंटरफेस (एमआईडीआई) कंट्रोलर को किसी भी डिजिटल ऑडियो वर्कस्टेशन (डीएडब्ल्यू) सॉफ्टवेयर में मिडी डिवाइस के रूप में इस्तेमाल किया जा सकता है। एक MIDI नियंत्रक कंप्यूटर से MIDI संदेश भेज और प्राप्त कर सकता है और जो भी सॉफ़्टवेयर का उपयोग किया जा रहा है उसे सीधे नियंत्रित करने के लिए उपयोग किया जा सकता है। इसके अतिरिक्त, MIDI नियंत्रक पर नियंत्रण पूरी तरह से अनुकूलन योग्य हैं - जिसका अर्थ है कि प्रत्येक व्यक्तिगत बटन, स्लाइडर और नॉब को DAW में किसी भी फ़ंक्शन के लिए मैप किया जा सकता है। उदाहरण के लिए, एक बटन दबाने से एक विशिष्ट नोट चल सकता है या आपके ऑडियो प्रोजेक्ट की गति को चालू करने के लिए प्रोग्राम किया जा सकता है।
github.com/jdtar/Arduino-Midi-Controller
चरण 1: सामग्री
नीचे इस परियोजना में प्रयुक्त सामग्री और उपकरणों की एक सूची है।
Arduino Uno
ब्रेड बोर्ड
4051/4067 बहुसंकेतक
जम्पर तार
अतिरिक्त तार
2x 10k ओम रैखिक स्लाइड पोटेंशियोमीटर
16x सानवा 24 मिमी बटन
ताप शोधक
सोल्डरिंग आयरन
धार
4.7 kΩ रोकनेवाला
एक्रिलिक शीट (ढक्कन के लिए)
बटन और Arduino के लिए आवास
थ्री डी प्रिण्टर
लेजर कटर
चरण 2: डिजाइन
मुझे परियोजना शुरू करने से पहले ही मेरे मिडी नियंत्रक के लिए आवास प्रदान किया गया था, इसलिए मैंने ढक्कन के लिए एक स्केच का मज़ाक उड़ाया ताकि यह कल्पना की जा सके कि सब कुछ कहाँ रखा जाना है। मुझे पता था कि मुझे एक विशेषता के रूप में कम से कम 16 बटन और एक दो पोटेंशियोमीटर चाहिए थे इसलिए मैंने घटकों को यथासंभव समान रूप से बाहर निकालने का प्रयास किया।
ढक्कन के लिए लेआउट तैयार करने के बाद, मैंने फ़ाइल को 1:1 पीडीएफ के रूप में निर्यात किया और इसे ऐक्रेलिक की एक शीट को काटने के लिए लेजर कटर को भेजा। पेंच छेद के लिए, मैंने चिह्नित किया कि मैं कहाँ चाहता था कि छेद मार्कर के साथ हों और ऐक्रेलिक को एक गर्म फिलामेंट के साथ पिघलाया।
संलग्न 1:1 पीडीएफ है जिसे 1:1 के रूप में प्रिंट किया जा सकता है और लेजर कटर उपलब्ध नहीं होने पर बिजली उपकरणों के साथ काटा जा सकता है।
चरण 3: निर्माण और वायरिंग
ऐक्रेलिक काटने के बाद, मुझे पता चला कि ऐक्रेलिक सभी घटकों को पर्याप्त रूप से समर्थन देने के लिए बहुत पतला था। मैंने फिर एक और शीट काट दी और उन्हें एक साथ चिपका दिया जो पूरी तरह से काम करने के लिए हुआ।
तारों के घटकों में कुछ परीक्षण और त्रुटि हुई लेकिन इसके परिणामस्वरूप फ्रिट्ज़िंग स्केच संलग्न हो गया। मैंने पहले जमीन के तारों को तार दिया और 4.7kΩ रोकनेवाला, मिलाप और गर्मी ने बटनों पर कनेक्शन को सिकोड़ दिया। दो स्लाइड पोटेंशियोमीटर को माउंट करने के लिए ऐक्रेलिक में शिकंजा के लिए पिघलने वाले छेद की आवश्यकता होती है। दो पोटेंशियोमीटर खराब होने के बाद, उन्हें A0 और A1 एनालॉग पिन तक तार दिया गया। वायरिंग पूरी होने के बाद, मुझे याद आया कि मेरे फ़ेडर्स के लिए कोई नॉब कैप नहीं थे, इसलिए उन्हें खरीदने के बजाय, मैंने 3-डी प्रिंटर का उपयोग करके कुछ नॉब कैप को ऑटोडेस्क फ्यूजन 360 में स्केच करके और एक एसटीएल फ़ाइल में निर्यात करके मुद्रित किया। डे
Arduino Uno में केवल १२ उपलब्ध डिजिटल इनपुट पिन हैं, लेकिन १६ बटनों को तार-तार किया जाना था। इसकी भरपाई के लिए, मैंने एक ब्रेडबोर्ड पर 74HC4051 मल्टीप्लेक्सर को तार-तार कर दिया, जो 4 डिजिटल इनपुट पिन का उपयोग करता है और एक साझा लाइन का उपयोग करने के लिए कई संकेतों को सक्षम करता है जिसके परिणामस्वरूप कुल 16 डिजिटल पिन के लिए 8 उपलब्ध डिजिटल इनपुट पिन उपयोग के लिए उपलब्ध हैं।
बटनों को सही पिन तक तार-तार करना केवल 4x4 मैट्रिक्स बनाने और कोड में इसका उपयोग करने की बात थी। हालांकि मुश्किल हिस्सा यह था कि खरीदे गए विशिष्ट मल्टीप्लेक्स में एक विशिष्ट पिन लेआउट था, जिसमें डेटाशीट ने मदद की थी और साथ ही मेरे दिमाग में एक विशिष्ट नोट लेआउट था, जब बटनों को वायर किया गया था, जो इस तरह दिख रहा था:
नोट मैट्रिक्स
[सी२] [सी#२] [डी२] [डी#२]
[जी#२] [ए१] [ए#२] [बी१]
[ई१] [एफ१] [एफ#१] [जी१]
[सी२] [सी#२] [डी२] [डी#२]
पिन मैट्रिक्स (एम = एमयूएक्स इनपुट)
[6] [7] [8] [9]
[10] [11] [12] [13]
[एम०] [एम१] [एम२] [एम३]
[एम ४] [एम ५] [एम ६] [एम ७]
चरण 4: प्रोग्रामिंग
एक बार असेंबली पूरी हो जाने के बाद, Arduino की प्रोग्रामिंग करना बाकी है। संलग्न स्क्रिप्ट इस तरह से लिखी गई है कि यह आसानी से अनुकूलन योग्य है।
स्क्रिप्ट की शुरुआत में MIDI.h लाइब्रेरी और नोट्स और वोल्ट ब्लॉग से उधार ली गई एक कंट्रोलर लाइब्रेरी शामिल है, जो दोनों कोड के लिए ज़िप फ़ाइल में शामिल हैं। कंट्रोलर लाइब्रेरी का उपयोग करके, बटन, पोटेंशियोमीटर और मल्टीप्लेक्स बटन के लिए ऑब्जेक्ट बनाया जा सकता है जिसमें डेटा मान शामिल होते हैं जिसमें नोट नंबर, कंट्रोल वैल्यू, नोट वेलोसिटी, MIDI चैनल नंबर आदि शामिल होते हैं। MIDI.h लाइब्रेरी MIDI I/O संचार को सक्षम बनाता है Arduino सीरियल पोर्ट जो बदले में कंट्रोलर ऑब्जेक्ट्स से डेटा लेता है, उन्हें MIDI संदेशों में परिवर्तित करता है और जो भी मिडी इंटरफ़ेस जुड़ा होता है, उसे संदेश भेजता है।
स्क्रिप्ट का शून्य सेटअप भाग सभी चैनलों को बंद के रूप में आरंभ करता है और 115200 बॉड पर एक सीरियल कनेक्शन भी शुरू करता है, मिडी संकेतों की तुलना में तेज दर का आदान-प्रदान किया जा रहा है।
मुख्य लूप अनिवार्य रूप से बटनों और बहुसंकेतक बटनों की सरणी लेता है और लूप के लिए चलाता है जो जांचता है कि बटन दबाया गया है या जारी किया गया है और संबंधित डेटा बाइट्स को मिडी इंटरफ़ेस में भेजता है। पोटेंशियोमीटर लूप पोटेंशियोमीटर की स्थिति की जाँच करता है और संबंधित वोल्टेज परिवर्तनों को मिडी इंटरफ़ेस पर वापस भेजता है।
चरण 5: सेटअप
एक बार स्क्रिप्ट को Arduino पर लोड करने के बाद, अगला कदम प्लग एंड प्ले करना है। हालाँकि, इसका उपयोग करने से पहले कुछ चरण हैं।
OSX पर, Apple ने वर्चुअल मिडी डिवाइस बनाने के लिए एक फीचर को शामिल किया जिसे मैक पर ऑडियो मिडी सेटअप एप्लिकेशन के माध्यम से एक्सेस किया जा सकता है। एक बार नया उपकरण बन जाने के बाद, अरुडिनो और नए वर्चुअल मिडी डिवाइस के बीच सीरियल कनेक्शन बनाने के लिए हेयरलेस मिडी का उपयोग किया जा सकता है। हैरलेस MIDI के माध्यम से Arduino से सीरियल कनेक्शन स्क्रिप्ट के शून्य सेटअप भाग में परिभाषित बॉड दर पर संचालित होता है और इसे हेयरलेस MIDI वरीयता सेटिंग्स में समकक्ष सेट किया जाना चाहिए।
परीक्षण उद्देश्यों के लिए मैंने यह जांचने के लिए मिडी मॉनिटर का उपयोग किया कि क्या सही डेटा भेजा जा रहा है, सीरियल-मिडी कनेक्शन के बारे में सोचा। एक बार जब मैंने यह निर्धारित कर लिया कि सभी बटन सही चैनलों के माध्यम से सही डेटा पर भेजे गए हैं, तो मैंने MIDI सिग्नल को MIDI इनपुट के रूप में Ableton Live 9 पर रूट करने के लिए सेट किया। एबलेटन में मैं कटा हुआ ऑडियो नमूनों को प्रत्येक बटन पर मैप करने और प्रत्येक नमूने को चलाने में सक्षम था।
सिफारिश की:
Arduino मिडी रिदम सेक्शन सीक्वेंसर: 8 स्टेप्स (चित्रों के साथ)
Arduino MIDI रिदम सेक्शन सीक्वेंसर: एक अच्छी सॉफ्टवेयर ड्रम मशीन होना आज आसान और सस्ता है लेकिन माउस का उपयोग करना मेरे लिए मजेदार है। यही कारण है कि मुझे एहसास हुआ कि शुरू में एक शुद्ध 64 कदम हार्डवेयर मिडी ड्रम सीक्वेंसर के रूप में क्या इरादा था जो 12 अलग-अलग ड्रम तत्वों को ट्रिगर करने में सक्षम था
म्यूजिकल मिडी शूज: 5 स्टेप्स (चित्रों के साथ)
म्यूजिकल मिडी शूज: कई लोगों की तरह, मैं अक्सर खुद को अनजाने में अपने पैरों को टैप करते हुए पाता हूं, चाहे वह किसी गाने के साथ हो या किसी नर्वस आदत से। हालांकि यह जितना मजेदार है, मुझे हमेशा ऐसा लगता है कि कुछ छूट गया है। अगर मैं केवल कहने की आवाज़ को ट्रिगर कर सकता हूं, तो एक
मिडी के साथ क्विक फ्रूट पियानो: 6 स्टेप्स (चित्रों के साथ)
मिडी के साथ क्विक फ्रूट पियानो: यह वास्तव में सरल कैपेसिटिव-टच पियानो है। फल, सोडा के डिब्बे, पानी की बोतलें, एल्यूमीनियम पन्नी के स्ट्रिप्स आदि पर टैप करें, और आपको अपने कंप्यूटर से पॉलीफोनिक पियानो संगीत मिलता है। अब जब सॉफ्टवेयर लिखा गया है, तो परियोजना को अधिक समय नहीं लेना चाहिए
Arduino आधारित MIDI फाइटर (स्पर्श संवेदनशील): 7 कदम (चित्रों के साथ)
Arduino आधारित MIDI फाइटर (टच सेंसिटिव): MIDI का मतलब म्यूजिकल इंस्ट्रूमेंट डिजिटल इंटरफेस है। यहां हम टच सेंसिटिव मिडी फाइटर बना रहे हैं। इसमें 16 पैड हैं। इन्हें बढ़ाया या घटाया जा सकता है। यहाँ मैंने सीमित arduino पिन के कारण 16 का उपयोग किया है। इसके अलावा मैंने एनालॉग इनपुट पिन का उपयोग किया है
फायर फाइटर रोबोट: 12 कदम (चित्रों के साथ)
फायर फाइटर रोबोट: यह एक फायर फाइटर रोबोट है जिसे लौ सेंसर के माध्यम से आग का पता लगाने के लिए बनाया गया है, इसकी ओर जाकर आग को पानी से बुझाया जाता है। यह अल्ट्रासोनिक सेंसर के माध्यम से आग की ओर जाते समय बाधाओं से भी बच सकता है। इसके अलावा, यह आपको एक ईमेल भेजता है जब