İçindekiler:
- Adım 1: Standart Ukelele Ayarlama
- 2. Adım: Tamamen Dijital Bir Teorik Model Oluşturma
- Adım 3: Sonraki, Analog Devre
- Adım 4: DAQ Assistant ile Analog Sinyalleri Okuma
- Adım 5: Sonuç
Video: LabView ve NI USB-6008 Kullanan Ukelele Tuner: 5 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:19
Humber College'daki (Elektronik Mühendisliği Teknolojisi) LabVIEW ve Enstrümantasyon kursum için probleme dayalı bir öğrenme projesi olarak, bir analog giriş (ukulele tel tonu) alacak, temel frekansı bulabilecek, hangi notanın denediğine karar verecek bir ukulele tuner oluşturdum Ayarlanacak ve kullanıcıya dizenin yukarı veya aşağı ayarlanması gerekip gerekmediğini söyleyin. Analog girişi dijital girişe çevirmek için kullandığım cihaz National Instruments USB-6008 DAQ (veri toplama cihazı) idi ve kullanıcı arayüzü LabVIEW ile uygulandı.
Adım 1: Standart Ukelele Ayarlama
İlk adım, müzik notalarının temel frekanslarını ve ukulele tellerinin tipik olarak hangi aralıkta akort edildiğini bulmaktı. Bu iki grafiği kullandım ve ton aralığımı 262 Hz (C) ile 494Hz (Yüksek B) arasında yapmaya karar verdim. 252 Hz'den düşük herhangi bir şey, programın hangi notanın çalınmaya çalışıldığını deşifre etmesi için çok düşük olarak kabul edilecek ve 500 Hz'den büyük herhangi bir şey çok yüksek olarak kabul edilecektir. Ancak program, yine de kullanıcıya, en yakın deşifre edilebilir notadan kaç Hz uzakta olduğunu ve uygun bir nota ulaşmak için dizenin akort (not çok düşük) veya aşağı (not çok yüksek) olup olmadığını söyler.
Ek olarak, programın hangi notanın çalındığını bulmasını kolaylaştırmak için tek bir frekans yerine her nota için aralıklar oluşturdum. Örneğin, nota 252 Hz (B'nin yarısı) ve 269Hz (C#'nin yarısı) arasında bir temel frekansa sahipse, program kullanıcıya bir C'nin çalındığını söyler, ancak bunun ayarlanması gerekip gerekmediğine karar vermek için veya aşağı, hala çalınan notayı 262Hz olan C'nin temel frekansıyla karşılaştıracaktır.
2. Adım: Tamamen Dijital Bir Teorik Model Oluşturma
Projenin analog tarafına dalmadan önce, en azından bir ses.wav örneğini okumak, temel frekansı bulmak ve ses oluşturmak gibi bir ses örneğinin ana işlemlerini yapacak bir LabVIEW programı oluşturup oluşturamayacağımı görmek istedim. sesin yukarı mı yoksa aşağı mı ayarlanması gerektiğini bulmak için frekans tablosuyla gerekli karşılaştırmalar.
Belirlediğim bir yoldan bir.wav dosyasını okumak için LabVIEW'de bulunan SoundFileSimpleRead. VI'yı kullandım, sinyali indekslenmiş bir diziye koydum ve temel frekansı bulmak için bu sinyali HarmonicDistortionAnalyzer. VI'ya besledim. Ayrıca SoundFileSimpleRead. VI'dan sinyali aldım ve kullanıcının dosyanın dalga biçimini ön panelde görebilmesi için doğrudan bir dalga biçimi grafiği göstergesine bağladım.
2 durum yapısı oluşturdum: biri hangi notanın çalındığını analiz etmek için, diğeri ise dizenin yukarı veya aşağı açılması gerekip gerekmediğini belirlemek için. İlk durumda, her nota için aralıklar oluşturdum ve HarmonicDistortionAnalyzer. VI'dan gelen temel frekans sinyali bu aralıktaysa, kullanıcıya hangi notanın çalındığını söylerdi. Nota belirlendikten sonra, çalınan nota değeri notanın gerçek temel frekansından çıkarıldı ve ardından sonuç, aşağıdakileri belirleyen ikinci duruma taşındı: sonuç sıfırın üzerindeyse, o zaman dizenin ayarlanması gerekir; sonuç yanlışsa (sıfırın üzerinde değilse), durum, değerin sıfıra eşit olup olmadığını kontrol eder ve doğruysa, program kullanıcıya notanın akortlu olduğunu bildirir; değer sıfıra eşit değilse, bu, sıfırdan küçük olması gerektiği ve dizenin ayarlanması gerektiği anlamına gelir. Gerçek notadan kaç Hz uzakta olduğunu kullanıcıya göstermek için sonucun mutlak değerini aldım.
Notu uyumlu hale getirmek için ne yapılması gerektiğini kullanıcıya görsel olarak göstermek için bir sayaç göstergesinin en iyisi olacağına karar verdim.
Adım 3: Sonraki, Analog Devre
Bu proje için kullandığım mikrofon CMA-6542PF kondenser elektret mikrofondur. Bu mikrofonun veri sayfası aşağıdadır. Bu türdeki çoğu kondansatörlü mikrofonun aksine, polarite konusunda endişelenmeme gerek yoktu. Veri sayfası, bu mikrofon için çalışma voltajının 4,5 - 10V olduğunu, ancak 4,5 V'nin tavsiye edildiğini ve akım tüketiminin maksimum 0,5mA olduğunu gösteriyor, bu nedenle bunun için bir preamp devresi tasarlarken dikkatli olunması gereken bir şey. Çalışma frekansı, ses için mükemmel olan 20Hz ila 20kHz'dir.
Breadboard'a basit bir preamp devre tasarımı uyguladım ve mikrofonda 0,5mA'dan fazla olmadığından emin olarak giriş voltajını ayarladım. Kondansatör, elektrik sinyalleriyle (çıkış) birlikte bağlanabilecek DC gürültüsünü filtrelemek için kullanılır ve kapasitörün polaritesi vardır, bu nedenle pozitif ucu mikrofon çıkış pimine bağladığınızdan emin olun.
Devre tamamlandıktan sonra devrenin çıkışını USB-6008'in ilk analog giriş pinine (AI0, pin 2) bağladım ve breadboard'un topraklamasını analog topraklama pinine (GND, pin 1) bağladım. USB-6008'i bir USB ile PC'ye bağladım ve gerçek bir analog sinyali almak için LabVIEW programında ayarlamalar yapmanın zamanı gelmişti.
Adım 4: DAQ Assistant ile Analog Sinyalleri Okuma
SoundFileSimpleRead. VI ve HarmonicDistortionAnalyzer. VI kullanmak yerine, analog girişle uğraşmak için DAQ Assistant. VI ve ToneMeasurements. VI'yı kullandım. DAQ Assistant kurulumu oldukça basittir ve VI'nın kendisi sizi adımlardan geçirir. ToneMeasurements. VI'nın seçilebilecek birçok çıkışı vardır (genlik, frekans, faz), bu yüzden giriş tonunun temel frekansını veren frekans çıkışını kullandım (DAQ Assistant. VI'dan). ToneMeasurements. VI çıktısının durum yapılarında kullanılmadan önce dönüştürülmesi ve bir diziye yerleştirilmesi gerekiyordu, ancak LabVIEW programlamasının/göstergelerinin geri kalanı aynı kaldı.
Adım 5: Sonuç
Proje başarılıydı ama kesinlikle birçok kusur vardı. Gürültülü bir sınıfta radyoyu çalıştırırken, programın neyin gürültü ve çalınan tonun ne olduğunu belirlemesi çok zordu. Bunun nedeni muhtemelen ön amfi devresinin çok basit olması ve mikrofonun çok ucuz olmasıdır. Ancak ortam sessizken, program çalınmaya çalışılan notayı belirlemek için iyi bir güvenilirlikle çalıştı. Zaman kısıtlaması nedeniyle ek bir değişiklik yapmadım ama projeyi tekrar edecek olsam daha iyi bir mikrofon alır ve preamp devresine daha fazla zaman ayırırdım.
Önerilen:
Arduino Kullanan RC Paletli Robot - Adım Adım: 3 Adım
Arduino Kullanan RC Paletli Robot – Adım Adım: Merhaba arkadaşlar, BangGood'tan başka bir harika Robot kasasıyla geri döndüm. Spinel Crux V1 – Hareket Kontrollü Robot, Spinel Crux L2 – Robotik Kollu Arduino Al ve Yerleştir Robotu ve The Badland Braw
Arduino Gitar Tuner: 3 Adım
Arduino Guitar Tuner: İşte bir Arduino Uno ile yaptığım bir gitar tuner ve etrafta yattığım bazı şeyler. Şu şekilde çalışır: Standart gitar akort EADGBE'de her biri farklı bir nota üretecek 5 düğme vardır. Sadece 5 düğmem olduğu için kod yazdım
Arduino İle 2.4Ghz NRF24L01 Modülünü Kullanan Kablosuz Uzaktan Kumanda - Nrf24l01 Quadcopter için 4 Kanal / 6 Kanal Verici Alıcı - Rc Helikopter - Arduino Kullanan Rc Uçak: 5 Adım (Resimlerle)
Arduino İle 2.4Ghz NRF24L01 Modülünü Kullanan Kablosuz Uzaktan Kumanda | Nrf24l01 Quadcopter için 4 Kanal / 6 Kanal Verici Alıcı | Rc Helikopter | Arduino Kullanan Rc Uçak: Bir Rc araba çalıştırmak için | Quadcopter | dron | RC uçak | RC tekne, her zaman bir alıcı ve vericiye ihtiyacımız var, RC QUADCOPTER için 6 kanallı bir verici ve alıcıya ihtiyacımız olduğunu ve bu tür TX ve RX'in çok maliyetli olduğunu varsayalım, bu yüzden bir tane yapacağız
Ukelele Robotu: 15 Adım
Ukelele Robot: El proyecto en un sistema para tocar melodías en un ukelele introduciendo ya deniz acorde por acorde o la instrucción de tocar alguna de las melodías disponibles (en este caso la melodía se compone por los acordes C, secuenciados).
Eski Bir Radyo Tuner Dizesini Düzeltin: 11 Adım (Resimlerle)
Eski Bir Radyo Ayarlayıcı Dizesini Düzeltin: Eski radyolarla ilgili çok güzel öğreticiler zaten var, ancak belirli bir sorunum vardı: telsiz açılıyor telsiz ses çıkarıyor ve ses seviyesi düğmesiyle daha da yükseliyor ancak ayar düğmesini çevirmek iğneyi hareket ettirmiyor ya da kanal değiştirmiyor