विषयसूची:

लैब व्यू और एनआई यूएसबी -6008 का उपयोग कर यूकेलेल ट्यूनर: 5 कदम
लैब व्यू और एनआई यूएसबी -6008 का उपयोग कर यूकेलेल ट्यूनर: 5 कदम

वीडियो: लैब व्यू और एनआई यूएसबी -6008 का उपयोग कर यूकेलेल ट्यूनर: 5 कदम

वीडियो: लैब व्यू और एनआई यूएसबी -6008 का उपयोग कर यूकेलेल ट्यूनर: 5 कदम
वीडियो: पेनड्राइव का उपयोग कैसे करें? 2024, नवंबर
Anonim
लैबव्यू और एनआई यूएसबी-६००८ का उपयोग करते हुए यूकेलेल ट्यूनर
लैबव्यू और एनआई यूएसबी-६००८ का उपयोग करते हुए यूकेलेल ट्यूनर
लैबव्यू और एनआई यूएसबी-६००८ का उपयोग करते हुए यूकेलेल ट्यूनर
लैबव्यू और एनआई यूएसबी-६००८ का उपयोग करते हुए यूकेलेल ट्यूनर

हंबर कॉलेज (इलेक्ट्रॉनिक्स इंजीनियरिंग टेक्नोलॉजी) में मेरे लैबव्यू और इंस्ट्रुमेंटेशन कोर्स के लिए एक समस्या-आधारित-लर्निंग प्रोजेक्ट के रूप में, मैंने एक यूकेलेल ट्यूनर बनाया जो एक एनालॉग इनपुट (यूकुले स्ट्रिंग टोन) लेगा, मौलिक आवृत्ति ढूंढें, तय करें कि कौन सा नोट कोशिश कर रहा था ट्यून करने के लिए, और उपयोगकर्ता को बताएं कि क्या स्ट्रिंग को ऊपर या नीचे ट्यून करने की आवश्यकता है। एनालॉग इनपुट को डिजिटल इनपुट में अनुवाद करने के लिए मैं जिस डिवाइस का उपयोग करता था, वह नेशनल इंस्ट्रूमेंट्स USB-6008 DAQ (डेटा एक्विजिशन डिवाइस) था, और यूजर इंटरफेस को LabVIEW के साथ लागू किया गया था।

चरण 1: मानक उकेले ट्यूनिंग

मानक उकेले ट्यूनिंग
मानक उकेले ट्यूनिंग
मानक उकेले ट्यूनिंग
मानक उकेले ट्यूनिंग

पहला कदम संगीत नोट्स की मौलिक आवृत्तियों का पता लगाना था, और गिटार के तार आमतौर पर किस सीमा पर ट्यून किए जाते हैं। मैंने इन दो चार्टों का इस्तेमाल किया, और फैसला किया कि मैं अपनी टोन रेंज 262 हर्ट्ज (सी) और 494 हर्ट्ज (हाई बी) के बीच बनाऊंगा। 252 हर्ट्ज से कम कुछ भी प्रोग्राम के लिए बहुत कम माना जाएगा कि कौन सा नोट चलाने की कोशिश कर रहा था, और 500 हर्ट्ज से अधिक कुछ भी बहुत अधिक माना जाएगा। कार्यक्रम, हालांकि, अभी भी उपयोगकर्ता को बताता है कि वे निकटतम गूढ़ नोट से कितने हर्ट्ज दूर हैं, और यदि उपलब्ध नोट तक पहुंचने के लिए स्ट्रिंग को ट्यून किया जाना चाहिए (नोट बहुत कम) या नीचे (नोट बहुत अधिक)।

इसके अतिरिक्त, मैंने केवल एक आवृत्ति के बजाय प्रत्येक नोट के लिए श्रेणियां बनाईं, ताकि प्रोग्राम के लिए यह पता लगाना आसान हो जाए कि कौन सा नोट चलाया जा रहा था। उदाहरण के लिए, प्रोग्राम उपयोगकर्ता को बताएगा कि एक सी खेला जा रहा है यदि नोट में 252 हर्ट्ज (आधे रास्ते से बी) और 269 हर्ट्ज (आधा रास्ते सी #) के बीच एक मौलिक आवृत्ति थी, लेकिन यह तय करने के लिए कि इसे ट्यून करने की आवश्यकता है या नहीं। या नीचे, यह अभी भी खेले जा रहे नोट की तुलना C की मौलिक आवृत्ति से करेगा जो कि 262Hz है।

चरण 2: विशुद्ध रूप से डिजिटल सैद्धांतिक मॉडल बनाना

विशुद्ध रूप से डिजिटल सैद्धांतिक मॉडल बनाना
विशुद्ध रूप से डिजिटल सैद्धांतिक मॉडल बनाना
विशुद्ध रूप से डिजिटल सैद्धांतिक मॉडल बनाना
विशुद्ध रूप से डिजिटल सैद्धांतिक मॉडल बनाना

परियोजना के अनुरूप पक्ष में गोता लगाने से पहले, मैं यह देखना चाहता था कि क्या मैं एक लैबव्यू प्रोग्राम बना सकता हूं जो कम से कम ध्वनि नमूने की मुख्य प्रसंस्करण करेगा, जैसे कि ऑडियो.wav नमूना पढ़ना, मौलिक आवृत्ति ढूंढना, और बनाना ध्वनि को ऊपर या नीचे ट्यून किया जाना चाहिए या नहीं यह पता लगाने के लिए आवृत्ति चार्ट की आवश्यक तुलना।

मैंने लैबव्यू में उपलब्ध SoundFileSimpleRead. VI का उपयोग उस पथ से.wav फ़ाइल पढ़ने के लिए किया जिसे मैंने निर्दिष्ट किया था, सिग्नल को अनुक्रमित सरणी में रखा था, और मौलिक आवृत्ति को खोजने के लिए उस सिग्नल को HarmonicDistortionAnalyzer. VI में फीड किया था। मैंने SoundFileSimpleRead. VI से सिग्नल भी लिया और इसे सीधे एक वेवफॉर्म चार्ट इंडिकेटर में जोड़ा ताकि उपयोगकर्ता फ्रंट पैनल पर फ़ाइल के तरंग को देख सके।

मैंने 2 केस स्ट्रक्चर बनाए: एक यह विश्लेषण करने के लिए कि कौन सा नोट खेला जा रहा था, और दूसरा यह निर्धारित करने के लिए कि स्ट्रिंग को ऊपर या नीचे करने की आवश्यकता है या नहीं। पहले मामले के लिए, मैंने प्रत्येक नोट के लिए श्रेणियां बनाईं, और यदि HarmonicDistortionAnalyzer. VI से मौलिक आवृत्ति संकेत उस सीमा में था तो यह उपयोगकर्ता को बताएगा कि कौन सा नोट खेला जा रहा था। एक बार नोट का निर्धारण हो जाने के बाद, प्ले किए गए नोट के मूल्य को नोट की वास्तविक मौलिक आवृत्ति से घटा दिया गया, और फिर परिणाम को दूसरे मामले में स्थानांतरित कर दिया गया, जिसने निम्नलिखित निर्धारित किया: यदि परिणाम शून्य से ऊपर है, तो स्ट्रिंग को नीचे ट्यून करने की आवश्यकता है; यदि परिणाम गलत है (शून्य से ऊपर नहीं), तो मामला जांचता है कि क्या मान शून्य के बराबर है, और यदि सत्य है, तो प्रोग्राम उपयोगकर्ता को सूचित करेगा कि नोट धुन में है; यदि मान शून्य के बराबर नहीं है, तो इसका मतलब है कि यह शून्य से कम होना चाहिए और स्ट्रिंग को ट्यून करने की आवश्यकता है। मैंने उपयोगकर्ता को यह दिखाने के लिए परिणाम का निरपेक्ष मूल्य लिया कि वे सच्चे नोट से कितने हर्ट्ज दूर हैं।

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

चरण 3: अगला, एनालॉग सर्किट

अगला, एनालॉग सर्किट
अगला, एनालॉग सर्किट
अगला, एनालॉग सर्किट
अगला, एनालॉग सर्किट
अगला, एनालॉग सर्किट
अगला, एनालॉग सर्किट

इस प्रोजेक्ट के लिए मैंने जो माइक्रोफ़ोन इस्तेमाल किया वह CMA-6542PF कंडेनसर इलेक्ट्रेट माइक है। इस माइक के लिए डेटाशीट नीचे है। इस प्रकार के अधिकांश कंडेनसर माइक्रोफोनों के विपरीत, मुझे ध्रुवीयता के बारे में चिंता करने की आवश्यकता नहीं थी। डेटाशीट से पता चलता है कि इस माइक के लिए ऑपरेटिंग वोल्टेज ४.५ - १० वी है, लेकिन ४.५ वी की सिफारिश की जाती है, और इसकी वर्तमान खपत ०.५ एमए अधिकतम है, इसलिए इसके लिए प्रीएम्प सर्किट डिजाइन करते समय सावधान रहना चाहिए। ऑपरेटिंग आवृत्ति 20Hz से 20kHz है जो ऑडियो के लिए एकदम सही है।

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

सर्किट पूरा होने के बाद, मैंने सर्किट के आउटपुट को USB-6008 के पहले एनालॉग इनपुट पिन (AI0, पिन 2) से जोड़ा, और ब्रेडबोर्ड के ग्राउंड को एनालॉग ग्राउंड पिन (GND, पिन 1) से जोड़ा। मैंने USB-6008 को USB के साथ PC से कनेक्ट किया और यह वास्तविक एनालॉग सिग्नल लेने के लिए LabVIEW प्रोग्राम में समायोजन करने का समय था।

चरण 4: DAQ सहायक के साथ एनालॉग सिग्नल पढ़ना

DAQ सहायक के साथ एनालॉग सिग्नल पढ़ना
DAQ सहायक के साथ एनालॉग सिग्नल पढ़ना
DAQ सहायक के साथ एनालॉग सिग्नल पढ़ना
DAQ सहायक के साथ एनालॉग सिग्नल पढ़ना

SoundFileSimpleRead. VI और HarmonicDistortionAnalyzer. VI का उपयोग करने के बजाय, मैंने एनालॉग इनपुट से निपटने के लिए DAQ Assistant. VI और ToneMeasurements. VI का उपयोग किया। DAQ सहायक सेटअप काफी सीधा है, और VI स्वयं आपको चरणों के माध्यम से ले जाता है। ToneMeasurements. VI में (आयाम, आवृत्ति, चरण) से चुनने के लिए कई आउटपुट हैं, इसलिए मैंने आवृत्ति आउटपुट का उपयोग किया जो इनपुट टोन की मौलिक आवृत्ति देता है (DAQ Assistant. VI से)। ToneMeasurements. VI के आउटपुट को केस स्ट्रक्चर में इस्तेमाल करने से पहले परिवर्तित और एक सरणी में रखा जाना था, लेकिन बाकी लैबव्यू प्रोग्रामिंग/इंडिकेटर वही रहे।

चरण 5: निष्कर्ष

निष्कर्ष
निष्कर्ष

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

सिफारिश की: