সুচিপত্র:

Ukelele Tuner LabView এবং NI USB-6008: 5 ধাপ ব্যবহার করে
Ukelele Tuner LabView এবং NI USB-6008: 5 ধাপ ব্যবহার করে

ভিডিও: Ukelele Tuner LabView এবং NI USB-6008: 5 ধাপ ব্যবহার করে

ভিডিও: Ukelele Tuner LabView এবং NI USB-6008: 5 ধাপ ব্যবহার করে
ভিডিও: Ukulele তে সহজেই গান বাজান এবং যেইভাবে টিউন করবেন। || Dipra || 2024, নভেম্বর
Anonim
Ukelele Tuner LabView এবং NI USB-6008 ব্যবহার করে
Ukelele Tuner LabView এবং NI USB-6008 ব্যবহার করে
Ukelele Tuner LabView এবং NI USB-6008 ব্যবহার করে
Ukelele Tuner LabView এবং NI USB-6008 ব্যবহার করে

হামার কলেজ (ইলেকট্রনিক্স ইঞ্জিনিয়ারিং টেকনোলজি) এ আমার ল্যাবভিউ এবং ইন্সট্রুমেন্টেশন কোর্সের জন্য একটি সমস্যা ভিত্তিক লার্নিং প্রকল্প হিসাবে, আমি একটি ইউকুলেল টিউনার তৈরি করেছি যা একটি এনালগ ইনপুট (ইউকুলেল স্ট্রিং টোন) নেবে, মৌলিক ফ্রিকোয়েন্সি খুঁজে পাবে, কোন নোটটি চেষ্টা করছে তা নির্ধারণ করুন টিউন করা, এবং ব্যবহারকারীকে বলুন যদি স্ট্রিংটি টিউন বা ডাউন করা দরকার। যে যন্ত্রটি আমি এনালগ ইনপুটকে ডিজিটাল ইনপুটে অনুবাদ করার জন্য ব্যবহার করতাম সেটি ছিল ন্যাশনাল ইন্সট্রুমেন্টস ইউএসবি -6008 ডিএকিউ (ডেটা অধিগ্রহণ ডিভাইস), এবং ইউজার ইন্টারফেসটি LabVIEW দিয়ে প্রয়োগ করা হয়েছিল।

ধাপ 1: স্ট্যান্ডার্ড Ukelele টিউনিং

স্ট্যান্ডার্ড Ukelele টিউনিং
স্ট্যান্ডার্ড Ukelele টিউনিং
স্ট্যান্ডার্ড Ukelele টিউনিং
স্ট্যান্ডার্ড Ukelele টিউনিং

প্রথম ধাপটি ছিল বাদ্যযন্ত্রের মৌলিক ফ্রিকোয়েন্সিগুলি খুঁজে বের করা, এবং ইউকুলেল স্ট্রিংগুলি সাধারণত কোন পরিসরে টিউন করা হয়। আমি এই দুটি চার্ট ব্যবহার করেছি, এবং সিদ্ধান্ত নিয়েছি যে আমি আমার স্বরের পরিসর 262 Hz (C) এবং 494Hz (High B) এর মধ্যে করব। 252 Hz এর চেয়ে কম যে কোন কিছু প্রোগ্রামকে বোঝাতে খুব কম মনে করা হবে যে কোন নোটটি চালানোর চেষ্টা করা হচ্ছে এবং 500 Hz এর চেয়ে বড় কিছু খুব বেশি বলে বিবেচিত হবে। প্রোগ্রামটি, তবুও, ব্যবহারকারীকে জানায় যে তারা নিকটতম ডিসেফেরযোগ্য নোট থেকে কত Hz দূরে, এবং যদি স্ট্রিংটি টিউন করা উচিত (খুব কম নোট) বা নিচে (খুব বেশি নোট) একটি উপলব্ধ নোট পৌঁছানোর জন্য।

উপরন্তু, আমি প্রতিটি নোটের জন্য মাত্র একক ফ্রিকোয়েন্সি না করে রেঞ্জ তৈরি করেছি, যাতে প্রোগ্রামটির জন্য কোন নোটটি চালানো হচ্ছে তা খুঁজে পাওয়া সহজ হবে। উদাহরণস্বরূপ, প্রোগ্রামটি ব্যবহারকারীকে বলবে যে একটি C বাজানো হচ্ছে যদি নোটটির মৌলিক ফ্রিকোয়েন্সি 252 Hz (B থেকে অর্ধেক) এবং 269Hz (C#থেকে অর্ধেক) এর মধ্যে থাকে, তবে এটি টিউন করার প্রয়োজন আছে কিনা তা নির্ধারণ করার জন্য বা নিচে, এটি এখনও নোটটি সি এর মৌলিক ফ্রিকোয়েন্সি যা 262Hz এর সাথে বাজানো হচ্ছে তুলনা করবে।

ধাপ 2: একটি বিশুদ্ধ ডিজিটাল তাত্ত্বিক মডেল তৈরি করা

একটি বিশুদ্ধ ডিজিটাল তাত্ত্বিক মডেল তৈরি করা
একটি বিশুদ্ধ ডিজিটাল তাত্ত্বিক মডেল তৈরি করা
একটি বিশুদ্ধ ডিজিটাল তাত্ত্বিক মডেল তৈরি করা
একটি বিশুদ্ধ ডিজিটাল তাত্ত্বিক মডেল তৈরি করা

প্রকল্পের এনালগ সাইডে ডাইভ করার আগে, আমি দেখতে চেয়েছিলাম যে আমি একটি ল্যাবভিউ প্রোগ্রাম তৈরি করতে পারি কিনা যা কমপক্ষে একটি শব্দ নমুনার প্রধান প্রক্রিয়াকরণ করবে, যেমন একটি অডিও.wav নমুনা পড়া, মৌলিক ফ্রিকোয়েন্সি খুঁজে বের করা এবং তৈরি করা ফ্রিকোয়েন্সি চার্টের সাথে প্রয়োজনীয় তুলনা যাতে শব্দটি টিউন বা ডাউন করা উচিত কিনা তা খুঁজে পাওয়া যায়।

আমি ল্যাবভিউতে উপলব্ধ SoundFileSimpleRead. VI ব্যবহার করেছি যা আমি নির্ধারিত পথ থেকে একটি.wav ফাইল পড়ার জন্য, একটি সূচীকৃত অ্যারেতে সংকেতটি রেখেছি, এবং মৌলিক ফ্রিকোয়েন্সিটি খুঁজে বের করার জন্য সেই সংকেতটিকে HarmonicDistortionAnalyzer. VI এ খাওয়ানো হয়েছে। আমি SoundFileSimpleRead. VI থেকে সিগন্যালটি নিয়েছিলাম এবং এটি সরাসরি একটি ওয়েভফর্ম চার্ট ইন্ডিকেটরে সংযুক্ত করেছিলাম যাতে ব্যবহারকারী সামনের প্যানেলে ফাইলের তরঙ্গাকৃতি দেখতে পারে।

আমি 2 টি কেস স্ট্রাকচার তৈরি করেছি: একটি নোট কী বাজানো হচ্ছে তা বিশ্লেষণ করতে এবং অন্যটি স্ট্রিংটি চালু বা নিচে করা দরকার কিনা তা নির্ধারণ করতে। প্রথম ক্ষেত্রে, আমি প্রতিটি নোটের জন্য রেঞ্জ তৈরি করেছি, এবং যদি HarmonicDistortionAnalyzer. VI থেকে মৌলিক ফ্রিকোয়েন্সি সংকেত সেই পরিসরে থাকে তবে এটি ব্যবহারকারীকে বলবে কোন নোটটি বাজানো হচ্ছে। একবার নোট নির্ধারিত হয়ে গেলে, বাজানো নোটের মানটি নোটের প্রকৃত মৌলিক ফ্রিকোয়েন্সি দ্বারা বিয়োগ করা হয়, এবং তারপর ফলাফলটি দ্বিতীয় ক্ষেত্রে স্থানান্তরিত হয় যা নিম্নলিখিতটি নির্ধারণ করে: যদি ফলাফলটি শূন্যের উপরে হয়, তাহলে স্ট্রিংটি টিউন করা প্রয়োজন; যদি ফলাফল মিথ্যা হয় (শূন্যের উপরে নয়), তাহলে কেসটি পরীক্ষা করে যে মানটি শূন্যের সমান, এবং যদি সত্য হয়, তাহলে প্রোগ্রামটি ব্যবহারকারীকে জানিয়ে দেবে যে নোটটি সুরে আছে; যদি মান শূন্যের সমান না হয়, তাহলে এর মানে হল এটি অবশ্যই শূন্যের কম হতে হবে এবং স্ট্রিংটি টিউন করতে হবে। আমি ব্যবহারকারীকে দেখানোর জন্য ফলাফলের পরম মান গ্রহণ করেছি যে তারা কতগুলি হার্জ সত্য নোট থেকে দূরে রয়েছে।

আমি সিদ্ধান্ত নিয়েছি যে একটি মিটার সূচকটি ব্যবহারকারীকে চাক্ষুষভাবে দেখানোর জন্য সেরা হবে যে নোটটি সুরের জন্য কী করা দরকার।

ধাপ 3: পরবর্তী, এনালগ সার্কিট

পরবর্তী, এনালগ সার্কিট
পরবর্তী, এনালগ সার্কিট
পরবর্তী, এনালগ সার্কিট
পরবর্তী, এনালগ সার্কিট
পরবর্তী, এনালগ সার্কিট
পরবর্তী, এনালগ সার্কিট

এই প্রকল্পের জন্য আমি যে মাইক্রোফোনটি ব্যবহার করেছি তা হল CMA-6542PF কনডেন্সার ইলেক্ট্রেট মাইক। এই মাইকের জন্য ডেটশীট নিচে দেওয়া হল। এই ধরণের বেশিরভাগ কনডেন্সার মাইক্রোফোন থেকে ভিন্ন, আমাকে পোলারিটি নিয়ে চিন্তা করতে হয়নি। ডেটশীট দেখায় যে এই মাইকের জন্য অপারেটিং ভোল্টেজ 4.5 - 10V, কিন্তু 4.5 V সুপারিশ করা হয়, এবং এটির বর্তমান ব্যবহার 0.5mA সর্বোচ্চ তাই এটির জন্য একটি প্রিম্প সার্কিট ডিজাইন করার সময় সতর্কতা অবলম্বন করা উচিত। অপারেটিং ফ্রিকোয়েন্সি 20Hz থেকে 20kHz যা অডিওর জন্য উপযুক্ত।

আমি ব্রেডবোর্ডে একটি সহজ প্রিম্প সার্কিট ডিজাইন প্রয়োগ করেছি এবং ইনপুট ভোল্টেজ সামঞ্জস্য করেছি, নিশ্চিত করে যে মাইক জুড়ে 0.5mA এর বেশি নেই। ক্যাপাসিটরটি ডিসি শব্দকে ফিল্টার করতে ব্যবহৃত হয় যা বৈদ্যুতিক সংকেত (আউটপুট) এর সাথে মিলিত হতে পারে এবং ক্যাপাসিটরের পোলারিটি থাকে তাই মাইক্রোফোন আউটপুট পিনের সাথে ইতিবাচক প্রান্তটি সংযুক্ত করতে ভুলবেন না।

সার্কিটটি সম্পূর্ণ হওয়ার পরে, আমি সার্কিটের আউটপুটটি USB-6008 এর প্রথম এনালগ ইনপুট পিন (AI0, পিন 2) এর সাথে সংযুক্ত করেছিলাম এবং ব্রেডবোর্ডের স্থলটিকে এনালগ গ্রাউন্ড পিন (GND, পিন 1) এর সাথে সংযুক্ত করেছিলাম। আমি ইউএসবি -6008 কে পিসিতে একটি ইউএসবি দিয়ে সংযুক্ত করেছি এবং এটি একটি বাস্তব এনালগ সংকেত গ্রহণের জন্য ল্যাবভিউ প্রোগ্রামে সমন্বয় করার সময় ছিল।

ধাপ 4: DAQ সহকারীর সাথে এনালগ সিগন্যাল পড়া

DAQ সহকারীর সাথে এনালগ সিগন্যাল পড়া
DAQ সহকারীর সাথে এনালগ সিগন্যাল পড়া
DAQ সহকারীর সাথে এনালগ সিগন্যাল পড়া
DAQ সহকারীর সাথে এনালগ সিগন্যাল পড়া

SoundFileSimpleRead. VI এবং HarmonicDistortionAnalyzer. VI ব্যবহার করার পরিবর্তে, আমি এনএলগ ইনপুট মোকাবেলার জন্য DAQ Assistant. VI এবং ToneMeasurements. VI ব্যবহার করেছি। DAQ সহকারী সেটআপ মোটামুটি সোজা-এগিয়ে, এবং VI নিজেই আপনাকে ধাপগুলির মধ্য দিয়ে নিয়ে যায়। ToneMeasurements. VI এর থেকে অনেক আউটপুট (প্রশস্ততা, ফ্রিকোয়েন্সি, ফেজ) আছে, তাই আমি ফ্রিকোয়েন্সি আউটপুট ব্যবহার করেছি যা ইনপুট টোনের মৌলিক ফ্রিকোয়েন্সি দেয় (DAQ Assistant. VI থেকে)। ToneMeasurements. VI এর আউটপুট কেস স্ট্রাকচারগুলিতে ব্যবহার করার আগে রূপান্তরিত করে একটি অ্যারেতে রাখতে হয়েছিল, কিন্তু বাকি LabVIEW প্রোগ্রামিং/ইনডিকেটর একই ছিল।

ধাপ 5: উপসংহার

উপসংহার
উপসংহার

প্রকল্পটি একটি সাফল্য ছিল কিন্তু অবশ্যই অনেক ত্রুটি ছিল। যখন আমি একটি কোলাহলপূর্ণ ক্লাসরুমে টিউনার পরিচালনা করছিলাম, তখন প্রোগ্রামের জন্য কী গোলমাল ছিল এবং কোন সুরটি বাজানো হচ্ছিল তা নির্ধারণ করা খুব কঠিন ছিল। এটি সম্ভবত preamp সার্কিট খুব মৌলিক, এবং মাইক্রোফোন খুব সস্তা হওয়ার কারণে। যখন এটি শান্ত ছিল, তবে, প্রোগ্রামটি যে নোটটি চালানোর চেষ্টা করছিল তা নির্ধারণ করতে ভাল নির্ভরযোগ্যতার সাথে কাজ করেছিল। সময়ের সীমাবদ্ধতার কারণে আমি কোন অতিরিক্ত পরিবর্তন করিনি, কিন্তু যদি আমি প্রকল্পটি পুনরাবৃত্তি করতাম তবে আমি একটি ভাল মাইক্রোফোন কিনব এবং প্রিম্প সার্কিটে আরও সময় ব্যয় করব।

প্রস্তাবিত: