Съдържание:

Ukelele тунер, използващ LabView и NI USB-6008: 5 стъпки
Ukelele тунер, използващ LabView и NI USB-6008: 5 стъпки

Видео: Ukelele тунер, използващ LabView и NI USB-6008: 5 стъпки

Видео: Ukelele тунер, използващ LabView и NI USB-6008: 5 стъпки
Видео: Best Online Ukulele Tuner - Standard Tuning (g C E A) Island Tuning 2024, Юли
Anonim
Ukelele тунер, използващ LabView и NI USB-6008
Ukelele тунер, използващ LabView и NI USB-6008
Ukelele тунер, използващ LabView и NI USB-6008
Ukelele тунер, използващ LabView и NI USB-6008

Като проект за учене, базиран на проблеми за моя курс LabVIEW & Instrumentation в Humber College (Технология за инженерство по електроника), създадох тунер за укулеле, който ще вземе аналогов вход (тон на струна на укулеле), ще намери основната честота, ще реши коя нота се опитва за настройване и кажете на потребителя дали низът трябва да бъде настроен нагоре или надолу. Устройството, което използвах за превод на аналоговия вход в цифров вход, беше National Instruments USB-6008 DAQ (устройство за събиране на данни), а потребителският интерфейс беше реализиран с LabVIEW.

Стъпка 1: Стандартна настройка на Ukelele

Стандартна настройка на Ukelele
Стандартна настройка на Ukelele
Стандартна настройка на Ukelele
Стандартна настройка на Ukelele

Първата стъпка беше да се установят основните честоти на музикалните ноти и какъв диапазон обикновено са настроени струните на укулеле. Използвах тези две диаграми и реших, че ще направя тонален диапазон между 262 Hz (C) и 494Hz (High B). Всичко по -малко от 252 Hz ще се счита за твърде ниско, за да може програмата да дешифрира коя нота се опитва да свири, а всичко по -голямо от 500 Hz ще се счита за твърде високо. Програмата обаче все още казва на потребителя колко Hz са далеч от най -близката дешифрируема бележка и дали низът трябва да бъде настроен нагоре (бележка твърде ниско) или надолу (бележка твърде високо), за да достигне до налична бележка.

Освен това създадох диапазони за всяка нота, а не само за една честота, така че да бъде по -лесно за програмата да намери коя нота се свири. Например, програмата ще каже на потребителя, че се играе C, ако нотата има основна честота между 252 Hz (наполовина до B) и 269Hz (наполовина до C#), но за да реши дали трябва да се настрои или надолу, той все пак би сравнил нотата, която се свири, с основната честота на C, която е 262Hz.

Стъпка 2: Създаване на чисто цифров теоретичен модел

Създаване на чисто цифров теоретичен модел
Създаване на чисто цифров теоретичен модел
Създаване на чисто цифров теоретичен модел
Създаване на чисто цифров теоретичен модел

Преди да се потопя в аналоговата страна на проекта, исках да видя дали мога да създам програма LabVIEW, която поне да извърши основната обработка на звукова проба, като четене на аудио.wav проба, намиране на основната честота и създаване необходимите сравнения с честотната диаграма, за да се установи дали звукът трябва да бъде настроен нагоре или надолу.

Използвах SoundFileSimpleRead. VI, наличен в LabVIEW, за да прочета.wav файл от посочен от мен път, поставих сигнала в индексиран масив и подадох този сигнал в HarmonicDistortionAnalyzer. VI, за да намеря основната честота. Също така взех сигнала от SoundFileSimpleRead. VI и го свързах директно в индикатор за диаграма на формата на вълната, така че потребителят да може да види формата на вълната на файла на предния панел.

Създадох 2 структури на случая: едната за анализ на нотата, която се свири, а другата за определяне дали низът трябва да се обърне нагоре или надолу. За първия случай създадох диапазони за всяка нота и ако основният честотен сигнал от HarmonicDistortionAnalyzer. VI беше в този диапазон, той щеше да каже на потребителя каква нота се изпълнява. След като нотата е определена, стойността на свирената нота се изважда от действителната основна честота на нотата, а след това резултатът се премества във втория случай, който определя следното: ако резултатът е над нулата, тогава струната трябва да бъде настроена; ако резултатът е невярен (не над нула), тогава случаят проверява дали стойността е равна на нула, а ако е вярно, тогава програмата ще уведоми потребителя, че нотата е в тон; ако стойността не е равна на нула, това означава, че тя трябва да бъде по -малка от нула и че низът трябва да бъде настроен. Взех абсолютната стойност на резултата, за да покажа на потребителя колко Hz са далеч от истинската нота.

Реших, че индикаторът на измервателния уред ще бъде най -добрият, за да покаже визуално на потребителя какво трябва да се направи, за да се направи мелодията в тон.

Стъпка 3: След това аналоговата верига

След това аналоговата схема
След това аналоговата схема
След това аналоговата схема
След това аналоговата схема
След това аналоговата схема
След това аналоговата схема

Микрофонът, който използвах за този проект, е кондензаторен електронен микрофон CMA-6542PF. Информационният лист за този микрофон е по -долу. За разлика от повечето кондензаторни микрофони от този тип, не трябваше да се притеснявам за полярността. Информационният лист показва, че работното напрежение за този микрофон е 4.5 - 10V, но се препоръчва 4.5 V, а консумацията му по ток е 0.5mA max, така че трябва да се внимава при проектирането на схема за предусилвател за него. Работната честота е 20Hz до 20kHz, което е идеално за аудио.

Реализирах прост дизайн на схема на предусилвател на макета и коригирах входното напрежение, като се уверих, че в микрофона няма не повече от 0,5 mA. Кондензаторът се използва за филтриране на постоянния шум, който може да бъде свързан заедно с електрическите сигнали (изход), а кондензаторът има полярност, така че не забравяйте да свържете положителния край към изхода на микрофона.

След като веригата завърши, свързах изхода на веригата към първия аналогов входен щифт (AI0, пин 2) на USB-6008 и свързах земята на макетната платка към аналоговия заземителен щифт (GND, пин 1). Свързах USB-6008 към компютъра с USB и беше време да направя корекции в програмата LabVIEW, за да приема действителен аналогов сигнал.

Стъпка 4: Четене на аналогови сигнали с DAQ Assistant

Четене на аналогови сигнали с DAQ Assistant
Четене на аналогови сигнали с DAQ Assistant
Четене на аналогови сигнали с DAQ Assistant
Четене на аналогови сигнали с DAQ Assistant

Вместо да използвам SoundFileSimpleRead. VI и HarmonicDistortionAnalyzer. VI, използвах DAQ Assistant. VI и ToneMeasurements. VI за справяне с аналоговия вход. Настройката на DAQ Assistant е доста проста и самият VI ще ви преведе през стъпките. ToneMeasurements. VI има много изходи за избор (амплитуда, честота, фаза), затова използвах честотния изход, който дава основната честота на входния тон (от DAQ Assistant. VI). Изходът на ToneMeasurements. VI трябваше да бъде преобразуван и поставен в масив, преди да може да се използва в структурите на случая, но останалата част от програмирането/индикаторите на LabVIEW останаха същите.

Стъпка 5: Заключение

Заключение
Заключение

Проектът беше успешен, но определено имаше много недостатъци. Когато работех с тунера в шумна класна стая, за програмата беше много трудно да определи какво е шум и какъв тон се изпълнява. Това вероятно се дължи на това, че схемата на предусилвателя е много основна и микрофонът е много евтин. Когато беше тихо обаче, програмата работеше с добра надеждност, за да определи нотата, която се опитваше да свири. Поради ограничения във времето не направих никакви допълнителни промени, но ако повторя проекта, щях да закупя по -добър микрофон и да прекарам повече време в схемата на предусилвателя.

Препоръчано: