विषयसूची:

Arduino Uno मिडी फाइटर: 5 स्टेप्स
Arduino Uno मिडी फाइटर: 5 स्टेप्स

वीडियो: Arduino Uno मिडी फाइटर: 5 स्टेप्स

वीडियो: Arduino Uno मिडी फाइटर: 5 स्टेप्स
वीडियो: How To Make Fire Fighter Robotic Car Using Arduino UNO | BM EXPERIMENT 2024, नवंबर
Anonim
Arduino Uno मिडी फाइटर
Arduino Uno मिडी फाइटर

यह निर्देश दक्षिण फ्लोरिडा विश्वविद्यालय (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: सेटअप

Image
Image
सेट अप
सेट अप
सेट अप
सेट अप
सेट अप
सेट अप

एक बार स्क्रिप्ट को Arduino पर लोड करने के बाद, अगला कदम प्लग एंड प्ले करना है। हालाँकि, इसका उपयोग करने से पहले कुछ चरण हैं।

OSX पर, Apple ने वर्चुअल मिडी डिवाइस बनाने के लिए एक फीचर को शामिल किया जिसे मैक पर ऑडियो मिडी सेटअप एप्लिकेशन के माध्यम से एक्सेस किया जा सकता है। एक बार नया उपकरण बन जाने के बाद, अरुडिनो और नए वर्चुअल मिडी डिवाइस के बीच सीरियल कनेक्शन बनाने के लिए हेयरलेस मिडी का उपयोग किया जा सकता है। हैरलेस MIDI के माध्यम से Arduino से सीरियल कनेक्शन स्क्रिप्ट के शून्य सेटअप भाग में परिभाषित बॉड दर पर संचालित होता है और इसे हेयरलेस MIDI वरीयता सेटिंग्स में समकक्ष सेट किया जाना चाहिए।

परीक्षण उद्देश्यों के लिए मैंने यह जांचने के लिए मिडी मॉनिटर का उपयोग किया कि क्या सही डेटा भेजा जा रहा है, सीरियल-मिडी कनेक्शन के बारे में सोचा। एक बार जब मैंने यह निर्धारित कर लिया कि सभी बटन सही चैनलों के माध्यम से सही डेटा पर भेजे गए हैं, तो मैंने MIDI सिग्नल को MIDI इनपुट के रूप में Ableton Live 9 पर रूट करने के लिए सेट किया। एबलेटन में मैं कटा हुआ ऑडियो नमूनों को प्रत्येक बटन पर मैप करने और प्रत्येक नमूने को चलाने में सक्षम था।

सिफारिश की: