فهرست مطالب:

تنظیم کننده Ukelele با استفاده از LabView و NI USB-6008: 5 مرحله
تنظیم کننده Ukelele با استفاده از LabView و NI USB-6008: 5 مرحله

تصویری: تنظیم کننده Ukelele با استفاده از LabView و NI USB-6008: 5 مرحله

تصویری: تنظیم کننده Ukelele با استفاده از LabView و NI USB-6008: 5 مرحله
تصویری: چگونه اسپرینگ بوت کار می کند و پیکربندی خودکار چیست. جادو؟ 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

به عنوان یک پروژه یادگیری مبتنی بر مشکل برای دوره LabVIEW & Instrumentation من در کالج هامبر (فناوری مهندسی الکترونیک) ، من یک تنظیم کننده ukulele ایجاد کردم که یک ورودی آنالوگ (صدای رشته ukulele) را می گرفت ، فرکانس اساسی را پیدا می کرد ، تصمیم می گرفت که چه نت را امتحان کند تنظیم شود و به کاربر بگویید آیا رشته باید بالا یا پایین تنظیم شود. دستگاهی که برای ترجمه ورودی آنالوگ به ورودی دیجیتال استفاده کردم ، National Instruments USB-6008 DAQ (دستگاه جمع آوری داده) بود و رابط کاربری با LabVIEW پیاده سازی شد.

مرحله 1: تنظیم استاندارد Ukelele

تنظیم استاندارد Ukelele
تنظیم استاندارد Ukelele
تنظیم استاندارد Ukelele
تنظیم استاندارد Ukelele

اولین قدم یافتن فرکانس های اساسی نت های موسیقی بود و اینکه سیم های یوکولله معمولاً در چه محدوده ای تنظیم می شوند. من از این دو نمودار استفاده کردم و تصمیم گرفتم که محدوده آهنگ خود را بین 262 هرتز (C) و 494 هرتز (زیاد B) ایجاد کنم. هر چیزی که کمتر از 252 هرتز باشد بسیار کم تلقی می شود تا برنامه بتواند نت مورد نظر خود را رمزگشایی کند و هر چیزی که بیشتر از 500 هرتز باشد بسیار زیاد تلقی می شود. با این حال ، این برنامه هنوز به کاربر می گوید که چند هرتز از نزدیکترین نت قابل رمزگشایی فاصله دارند و آیا رشته باید به بالا تنظیم شود (توجه داشته باشید خیلی کم است) یا پایین (توجه داشته باشید خیلی زیاد) تا به یک نت قابل دسترسی برسید.

علاوه بر این ، من برای هر نت محدوده ایجاد کردم ، نه فقط یک فرکانس واحد ، به طوری که پیدا کردن کدام نت در حال پخش برای برنامه راحت تر باشد. به عنوان مثال ، برنامه به کاربر می گوید که C در حال پخش است اگر فرکانس اصلی نت بین 252 هرتز (در نیمه راه تا B) و 269 هرتز (در نیمه راه تا C#) باشد ، اما به منظور تصمیم گیری در مورد تنظیم مجدد آن یا پایین ، همچنان نت پخش شده را با فرکانس اصلی C که 262 هرتز است مقایسه می کند.

مرحله 2: ایجاد یک مدل نظری کاملاً دیجیتالی

ایجاد یک مدل نظری کاملاً دیجیتالی
ایجاد یک مدل نظری کاملاً دیجیتالی
ایجاد یک مدل نظری کاملاً دیجیتالی
ایجاد یک مدل نظری کاملاً دیجیتالی

قبل از وارد شدن به قسمت آنالوگ پروژه ، می خواستم ببینم آیا می توانم یک برنامه LabVIEW ایجاد کنم که حداقل پردازش اصلی یک نمونه صدا را انجام دهد ، مانند خواندن نمونه صوتی.wav ، یافتن فرکانس اساسی و ساخت مقایسه های مورد نیاز با نمودار فرکانس به منظور پیدا کردن اینکه آیا صدا باید بالا یا پایین تنظیم شود.

من از SoundFileSimpleRead. VI موجود در LabVIEW برای خواندن یک فایل.wav از مسیری که تعیین کرده بودم استفاده کردم ، سیگنال را در یک آرایه فهرست بندی شده قرار دادم و آن سیگنال را در HarmonicDistortionAnalyzer. VI قرار دادم تا فرکانس اساسی را پیدا کنم. من همچنین سیگنال را از SoundFileSimpleRead. VI گرفتم و آن را مستقیماً به نشانگر نمودار شکل موج وصل کردم تا کاربر بتواند شکل موج فایل را در پنل جلویی مشاهده کند.

من 2 ساختار موردی ایجاد کردم: یکی برای تجزیه و تحلیل نوت در حال پخش ، و دیگری برای تعیین اینکه آیا سیم باید بالا یا پایین باشد. برای مورد اول ، من برای هر نت محدوده ایجاد کردم و اگر سیگنال فرکانس اساسی HarmonicDistortionAnalyzer. VI در این محدوده باشد ، به کاربر می گوید که چه نت هایی در حال پخش است. پس از مشخص شدن نت ، مقدار نت نواخته شده با فرکانس اصلی واقعی نت ضبط می شود و سپس نتیجه به حالت دوم منتقل می شود که موارد زیر را مشخص می کند: اگر نتیجه بالای صفر است ، پس رشته باید تنظیم شود. اگر نتیجه کاذب باشد (نه بالای صفر) ، در این صورت مورد بررسی می شود که آیا مقدار برابر با صفر است و اگر درست است ، برنامه به کاربر اطلاع می دهد که یادداشت هماهنگ است. اگر مقدار برابر با صفر نباشد ، به این معنی است که باید کمتر از صفر باشد و رشته باید تنظیم شود. من مقدار مطلق نتیجه را در نظر گرفتم تا به کاربر نشان دهم که چند هرتز از یادداشت واقعی فاصله دارند.

من تصمیم گرفتم که یک نشانگر متر برای نشان دادن بصری به کاربر بهترین کار را داشته باشد که باید برای هماهنگ سازی یادداشت انجام شود.

مرحله 3: بعد ، مدار آنالوگ

بعد ، مدار آنالوگ
بعد ، مدار آنالوگ
بعد ، مدار آنالوگ
بعد ، مدار آنالوگ
بعد ، مدار آنالوگ
بعد ، مدار آنالوگ

میکروفونی که برای این پروژه استفاده کردم میکروفون الکترود کندانسور CMA-6542PF است. برگه داده این میکروفون در زیر آمده است. برخلاف اکثر میکروفون های کندانسور از این نوع ، من مجبور نبودم نگران قطبیت باشم. برگه داده نشان می دهد که ولتاژ کار برای این میکروفن 4.5 - 10V است ، اما 4.5 ولت توصیه می شود ، و مصرف فعلی آن حداکثر 0.5 میلی آمپر است ، بنابراین هنگام طراحی مدار پیش تقویت کننده برای آن باید به آن احتیاط کرد. فرکانس کار 20Hz تا 20kHz است که برای صدا بسیار مناسب است.

من یک طرح ساده مدار پیش تقویت کننده را روی تخته نانداختم و ولتاژ ورودی را تنظیم کردم ، مطمئن شدم بیش از 0.5 میلی آمپر در سراسر میکروفن وجود نداشت. از خازن برای فیلتر کردن نویز DC که ممکن است همراه با سیگنال های الکتریکی (خروجی) استفاده شود ، استفاده می شود و خازن دارای قطبیت است ، بنابراین مطمئن شوید که انتهای مثبت را به پین خروجی میکروفون وصل کنید.

پس از اتمام مدار ، خروجی مدار را به اولین پین ورودی آنالوگ (AI0 ، پین 2) USB-6008 متصل کردم ، و سطح تخته نان را به پایه پایه آنالوگ (GND ، پین 1) وصل کردم. من USB-6008 را با USB به رایانه متصل کردم و وقت آن رسیده بود که برنامه LabVIEW را برای دریافت سیگنال آنالوگ واقعی تنظیماتی انجام دهم.

مرحله 4: خواندن سیگنال های آنالوگ با دستیار DAQ

خواندن سیگنال های آنالوگ با دستیار DAQ
خواندن سیگنال های آنالوگ با دستیار DAQ
خواندن سیگنال های آنالوگ با دستیار DAQ
خواندن سیگنال های آنالوگ با دستیار DAQ

به جای استفاده از SoundFileSimpleRead. VI و HarmonicDistortionAnalyzer. VI ، از DAQ Assistant. VI و ToneMeasurements. VI برای مقابله با ورودی آنالوگ استفاده کردم. راه اندازی DAQ Assistant بسیار ساده است و VI خود شما را از طریق مراحل راهنمایی می کند. ToneMeasurements. VI دارای خروجی های زیادی برای انتخاب است (دامنه ، فرکانس ، فاز) ، بنابراین من از فرکانس خروجی که فرکانس اساسی صدای ورودی را ارائه می دهد (از DAQ Assistant. VI) استفاده کردم. خروجی ToneMeasurements. VI قبل از اینکه بتواند در ساختارهای مورد استفاده شود ، باید تبدیل و در یک آرایه قرار داده شود ، اما بقیه برنامه نویسی/شاخص های LabVIEW ثابت ماند.

مرحله 5: نتیجه گیری

نتیجه
نتیجه

این پروژه موفقیت آمیز بود ، اما قطعاً اشکالات زیادی وجود داشت. هنگامی که من در یک کلاس درس پر سر و صدا تیونر را کار می کردم ، تشخیص اینکه سر و صدا چیست و چه لحنی در حال پخش است برای برنامه بسیار سخت بود. این به احتمال زیاد به دلیل اصلی بودن مدار پیش تقویت کننده و ارزان بودن میکروفون است. با این حال ، هنگامی که آرام بود ، برنامه با قابلیت اطمینان خوبی برای تعیین نت مورد تلاش خود کار کرد. به دلیل محدودیت زمانی ، هیچ تغییر اضافی انجام ندادم ، اما اگر بخواهم پروژه را تکرار کنم ، میکروفون بهتری خریداری می کنم و زمان بیشتری را در مدار پیش تقویت کننده صرف می کنم.

توصیه شده: