विषयसूची:

Lune - Arduino के साथ MIDI नियंत्रक (DJ या संगीतकार के लिए): 5 कदम (चित्रों के साथ)
Lune - Arduino के साथ MIDI नियंत्रक (DJ या संगीतकार के लिए): 5 कदम (चित्रों के साथ)

वीडियो: Lune - Arduino के साथ MIDI नियंत्रक (DJ या संगीतकार के लिए): 5 कदम (चित्रों के साथ)

वीडियो: Lune - Arduino के साथ MIDI नियंत्रक (DJ या संगीतकार के लिए): 5 कदम (चित्रों के साथ)
वीडियो: # 2 कैसे एक Arduino के साथ एक MIDI नियंत्रक बनान... 2024, नवंबर
Anonim
Image
Image
Lune - Arduino के साथ MIDI नियंत्रक (DJ या संगीतकार के लिए)
Lune - Arduino के साथ MIDI नियंत्रक (DJ या संगीतकार के लिए)
Lune - Arduino के साथ MIDI नियंत्रक (DJ या संगीतकार के लिए)
Lune - Arduino के साथ MIDI नियंत्रक (DJ या संगीतकार के लिए)
Lune - Arduino के साथ MIDI नियंत्रक (DJ या संगीतकार के लिए)
Lune - Arduino के साथ MIDI नियंत्रक (DJ या संगीतकार के लिए)

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

हर तरह के सेंसर (पोटेंशियोमीटर, पुश बटन,…) को स्वतंत्र रूप से सीखा जा सकता है और मुझे लगता है कि सबसे अच्छा तरीका यह सीखना है कि प्रत्येक सेंसर चरण दर चरण "यह कैसे काम करता है" और "यह कैसे जुड़ा है"।

सब कुछ इस तरह काम करता है:

  1. Arduino से जुड़ा सेंसर एक बदलाव का पता लगाता है
  2. Arduino इस परिवर्तन को कंप्यूटर पर भेजता है
  3. कंप्यूटर पर एक सॉफ्टवेयर सीरियल (आर्डिनो) जानकारी को MIDI में परिवर्तित करता है जिसे आप उदाहरण के लिए सक्षम में उपयोग कर सकते हैं

मेरे नियंत्रक के पास है

  • EQ. के लिए 6 पोटियंटोमीटर अक्षीय
  • प्रभाव के लिए 3 पोटेंशोमीटर अक्षीय
  • आयतन के लिए 6 विभवमापी रैखिक
  • Play के लिए 2 पुश बटन
  • मेरे हाथों की दूरी के साथ प्रभाव के लिए 2 अल्ट्रासोनिक सेंसर (SR04)
  • क्यू के लिए 2 पुश बॉटन
  • 2 x 4 बटन आरजीबी एलईडी पैड
  • स्क्रैच के लिए 1 एन्कोडर

चरण 1: स्टैंडअलोन या सॉफ्टवेयर

सबसे पहले मैंने arduino के साथ MIDI कंट्रोलर के विभिन्न ट्यूटोरियल्स पर शोध किया।

आप एक सॉफ्टवेयर के साथ एक MIDI नियंत्रक कर सकते हैं जो MIDI (मैंने जो किया है) में आप जो करते हैं उसका अनुवाद करते हैं।

आपको चाहिये होगा:

  1. मिडी डेटा भेजने/प्राप्त करने के लिए सॉफ्टवेयर https://projectgus.github.io/hairless-midiserial/ अपने arduino कोड में से एक के अनुसार बॉड दर को "वरीयताओं" में सेट करना न भूलें (मेरे लिए 9600 क्योंकि "Serial.begin" (९६००);")
  2. एक वर्चुअल मिडी डिवाइस

एक और उदाहरण:

www.instructables.com/id/Easy-3-Pot-Potentiometer-Arduino-Uno-Effects-Midi-/

_

आप एक "असली" MIDI नियंत्रक कर सकते हैं जो आपके कंप्यूटर पर चलने वाले सॉफ़्टवेयर के बिना MIDI में नियंत्रक पर आपके द्वारा किए जाने वाले कार्यों का अनुवाद करने के लिए MIDI को कंप्यूटर पर भेज रहा है।

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

आगे जाने के लिए उदाहरण:

create.arduino.cc/projecthub/etiennedesportes/ableton-live-midi-controller-9182b3

MAJ 2018-02-28: https://www.arduino.cc/en/Reference/MIDIUSB सबसे सरल तरीका यदि आपके पास "मूल USB क्षमताओं के साथ माइक्रोकंट्रोलर (atmega32u4 आधारित बोर्ड या ARM बोर्ड)" है (arduino UNO के लिए ठीक नहीं है)

चरण 2: लकड़ी और केस

लकड़ी और मामला
लकड़ी और मामला
लकड़ी और मामला
लकड़ी और मामला
लकड़ी और मामला
लकड़ी और मामला

लकड़ी के मामले का डिज़ाइन: मैंने एक केस जनरेटर https://www.makercase.com/ का उपयोग किया, शीर्ष के लिए शीर्ष और स्लॉट को हटा दिया। ऊंचाई निर्धारित करने के लिए मैं अपने सबसे ऊंचे बटन की ऊंचाई की तलाश करता हूं और 2 सेमी जोड़ता हूं।

शीर्ष के लिए मैंने एक एमडीएफ बोर्ड और एक प्लाइवुड पोपलर 3 मिमी का उपयोग किया जो कि एक उत्कीर्ण है।

लेजर ने लकड़ी के बोर्डों को योजनाओं के साथ काट दिया।

USB केबल के लिए एक छेद काटें/ड्रिल करें।

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

कोडांतरण:

पक्षों के लिए मैंने अलग-अलग पक्षों के बोर्डों को चिपकाया और इकट्ठा किया।

शीर्ष के लिए मैंने 2 शीर्ष एमडीएफ में 4 छेद ड्रिल किए। (मेरे पेंच का व्यास + 1 मिमी)

मैं एक बोल्ट को पेंच करता हूं और अखरोट को चार बार कोण पर गोंद करता हूं, इसके बाद शीर्ष पर 2 शीर्ष लकड़ी के बोर्डों को पेंच करने के लिए।

इस तरह मेरे पास एक नट के साथ 4 कोण हैं, नट के साथ छेद शीर्ष बोर्डों को ठीक करने के लिए शिकंजा के लिए छेद हैं। वास्तव में जब मैं शीर्ष लकड़ी के बोर्डों को पेंच करता हूं तो मैं नीचे अखरोट तक नहीं पहुंच सकता।

मैंने पक्षों के बोर्डों (बॉक्स) में छेद ड्रिल किए, पक्षों को कोण (पेंच और गोंद के बाद सब कुछ) तय किया।

दो शीर्ष बोर्ड लगाएं और उन्हें स्क्रू करें।

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

पोलिश:

मैंने "वर्निस बोइस ब्रिलेंट 125 मिली एवेल लुई XIII" (फ्रेंच पॉलिश) का इस्तेमाल किया जो बहुत अच्छी तरह से काम कर रहा है।

यह थोड़ा लंबा था क्योंकि मैंने कई परतें बिछाईं और प्रत्येक के बीच 24 घंटे प्रतीक्षा की।

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

ग्राफिक: Fornaseti कलाकृतियों और व्यक्तिगत ड्राइंग का असेंबल।

पीएस: मिडी नियंत्रक को डिजाइन करने की सलाह, मेरी योजना पर दो आरजीबी 4 बटन पैड एक दूसरे से बहुत करीब हैं

www.instructables.com/id/A-Framework-For-Making-Affordable-Stylish-Modula/

चरण 3: इलेक्ट्रॉनिक

इलेक्ट्रोनिक
इलेक्ट्रोनिक
इलेक्ट्रोनिक
इलेक्ट्रोनिक
इलेक्ट्रोनिक
इलेक्ट्रोनिक

मैंने सब कुछ (मेरी परियोजना के लिए) एक फ्रिट्ज़िंग फ़ाइल पर रखा है।

प्रत्येक प्रकार के सेंसर के लिए आपको यह सीखना होगा कि यह कैसे काम कर रहा है या वह arduino को क्या देता है।

ऐसा करने के लिए, उदाहरण के लिए इंट्रक्टेबल पर ट्यूटोरियल देखें ("पोटेंशियोमीटर आर्डिनो", …)।

मैंनें इस्तेमाल किया:

  • तनाव नापने का यंत्र
  • आरजीबी पैड (स्पार्कफुन
  • अल्ट्रासाउंड HC-SR04 (दूरी डिटेक्टर)
  • एनकोडर
  • पुश बटन (आर्केड बटन)

मैं अनुशंसा करता हूं कि जब आप अपना अंतिम असेंबल करना चाहते हैं तो इसे उसी समय में फ्रिटिंग पर करना चाहते हैं क्योंकि यह देखना मुश्किल है कि कब केबलों का टन है।

आदेश:

मुझे क्या चाहिए या कम से कम बड़े हिस्से को जानने के बाद मैंने अपने घटकों का आदेश दिया। इस तरह आपके पास शिपिंग लागत कम है।

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

छवियों में मेरे कॉनराड कमांड का एक उदाहरण

चरण 4: Arduino कोड

Arduino कोड
Arduino कोड

Arduino के लिए मेरा कोड है। यदि आप एक अलग नियंत्रक करते हैं, तो आपको अपने परिवर्तनों के बाद, Arduino IDE के साथ USB द्वारा अपने माइक्रोकंट्रोलर को भेजने की आवश्यकता है (यूट्यूब में ट्यूटोरियल हैं)। अनुलग्नकों में:

  • अंतिम वाला
  • एक सिर्फ 2 आरजीबी पैड को 6 रंगों के साथ काम करने के लिए संभव है (आरजीबी + सियान + गुलाब + पीला)।
  • कोड के पुराने हिस्से मैंने डिफरेंशियल सेंसर सीखने के लिए लिखे थे

कुछ अंश मेरे द्वारा लिखे गए हैं।

आपको पैड के लिए Keypad.h की तरह arduino लाइब्रेरी (त्रुटि देखें और "शामिल करें") स्थापित करने की आवश्यकता है।

विभिन्न वर्ग फाइलों के अंत में हैं।

आप नोट कर सकते हैं कि सीरियल की जानकारी भेजने के लिए एक क्लास यहां है।

शून्य MIDImessage (बाइट कमांड, बाइट डेटा 1, बाइट डेटा 2) // --------- आवश्यक, मानक मिडी कमांड के माध्यम से मूल्यों को पास करें

{ सीरियल.राइट (कमांड); सीरियल.राइट (डेटा 1); सीरियल.राइट (डेटा 2); }"

चरण 5: सुधार

सब कुछ काम कर रहा है लेकिन यह एक प्रोटोटाइप है। कुछ प्रश्न या सुधार के बिंदु हैं।

ऊर्जा:

- जब मैंने हर सेंसर के साथ आरजीबी पैड का इस्तेमाल किया तो आरजीबी एलईडी बहुत कम चमकती है। 5v arduino क्या वे मेरे प्रोजेक्ट के लिए बहुत कम हैं? जब मैं केवल उनका उपयोग करता हूं, कोई समस्या नहीं है।

कोड:

- मेरे पास एन्कोडर से सीरियल है लेकिन मुझे नहीं पता कि यह MIDI में कैसे काम करता है। मेरा मतलब है कि वे MIDI आउटपुट में क्या चाहते हैं। यदि आप जानते हैं कि ट्रैक्टर पर स्क्रैच करने के लिए एन्कोडर कैसे सेट करें, तो मुझसे संपर्क करें।

- बटन के लिए मेरे कुछ कोड संगीत एप्लिकेशन के लिए अच्छे नहीं हैं। हमें सबसे तेज़ उत्तरदायित्व की आवश्यकता है और मैंने देखा कि मेरे कुछ बटन कोड ऐसा करने के सर्वोत्तम तरीके से नहीं लिखे गए हैं (अगर मुझे अच्छी तरह याद है तो प्ले बटन)।

सिफारिश की: