Innehållsförteckning:
- Steg 1: Standard Ukelele Tuning
- Steg 2: Skapa en rent digital teoretisk modell
- Steg 3: Därefter den analoga kretsen
- Steg 4: Läsa analoga signaler med DAQ Assistant
- Steg 5: Slutsats
Video: Ukelele-tuner med LabView och NI USB-6008: 5 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:45
Som ett problembaserat inlärningsprojekt för min LabVIEW & Instrumentation-kurs på Humber College (Electronics Engineering Technology) skapade jag en ukulele-tuner som skulle ta en analog ingång (ukulele strängton), hitta grundfrekvensen, bestämma vilken ton som försökte att ställa in, och berätta för användaren om strängen behövde ställas in eller ned. Enheten jag använde för att översätta den analoga ingången till digital ingång var National Instruments USB-6008 DAQ (datainsamlingsenhet) och användargränssnittet implementerades med LabVIEW.
Steg 1: Standard Ukelele Tuning
Det första steget var att ta reda på de grundläggande frekvenserna för musiknoter, och vilket intervall ukulelesträngarna vanligtvis är inställda på. Jag använde dessa två sjökort och bestämde mig för att göra mitt tonintervall mellan 262 Hz (C) och 494 Hz (högt B). Allt mindre än 252 Hz skulle anses vara för lågt för att programmet ska kunna dechiffrera vilken ton som försökte spelas, och allt större än 500 Hz skulle anses vara för högt. Programmet berättar dock fortfarande för användaren hur många Hz de är borta från den närmaste avkodningsbara noten, och om strängen ska ställas in (ton för låg) eller ned (ton för hög) för att nå en tillgänglig ton.
Dessutom skapade jag intervall för varje ton, snarare än bara en enda frekvens, så att det skulle bli lättare för programmet att hitta vilken ton som spelades. Till exempel skulle programmet berätta för användaren att en C spelas om noten hade en grundfrekvens mellan 252 Hz (halvvägs till B) och 269Hz (halvvägs till C#), men för att avgöra om den behövde ställas in eller nedåt, skulle det fortfarande jämföra noten som spelas med grundfrekvensen för C som är 262Hz.
Steg 2: Skapa en rent digital teoretisk modell
Innan jag gick in på den analoga sidan av projektet ville jag se om jag kunde skapa ett LabVIEW -program som åtminstone skulle göra huvudbehandlingen av ett ljudprov, till exempel att läsa ett ljud.wav -sampel, hitta grundfrekvensen och göra nödvändiga jämförelser med frekvensdiagrammet för att ta reda på om ljudet ska stämmas upp eller ner.
Jag använde SoundFileSimpleRead. VI som finns i LabVIEW för att läsa en.wav -fil från en sökväg som jag angav, placera signalen i en indexerad array och mata den signalen till HarmonicDistortionAnalyzer. VI för att hitta grundfrekvensen. Jag tog också signalen från SoundFileSimpleRead. VI och kopplade den direkt till en vågformsindikator så att användaren kan se vågformen för filen på frontpanelen.
Jag skapade två fallstrukturer: en för att analysera vilken ton som spelades och den andra för att avgöra om strängen behövde vridas upp eller ner. För det första fallet skapade jag intervall för varje ton, och om grundfrekvenssignalen från HarmonicDistortionAnalyzer. VI var i det intervallet skulle det berätta för användaren vilken ton som spelades. När noten var bestämd, subtraherades det spelade notvärdet med notens faktiska grundfrekvens, och sedan flyttades resultatet till det andra fallet som bestämde följande: om resultatet är över noll måste strängen justeras ner; om resultatet är falskt (inte över noll), kontrollerar fallet om värdet är lika med noll, och om det är sant, meddelar programmet användaren att noten är i samklang; om värdet inte är lika med noll betyder det att det måste vara mindre än noll och att strängen måste justeras. Jag tog det absoluta värdet av resultatet för att visa användaren hur många Hz de är borta från den sanna noten.
Jag bestämde mig för att en mätarindikator skulle vara det bästa för att visuellt visa användaren vad som behöver göras för att göra noten i samklang.
Steg 3: Därefter den analoga kretsen
Mikrofonen jag använde för detta projekt är CMA-6542PF kondensatorelektretmikrofon. Databladet för denna mikrofon finns nedan. Till skillnad från de flesta kondensatormikrofoner av denna typ behövde jag inte oroa mig för polaritet. Databladet visar att arbetsspänningen för denna mikrofon är 4,5 - 10V, men 4,5 V rekommenderas, och dess strömförbrukning är max 0,5mA så det är något att vara försiktig med när man utformar en förförstärkarkrets för den. Driftsfrekvensen är 20Hz till 20kHz vilket är perfekt för ljud.
Jag implementerade en enkel förförstärkarkretsdesign på brödbrädan och justerade ingångsspänningen och såg till att det inte var mer än 0,5mA över mikrofonen. Kondensatorn används för att filtrera DC -bruset som kan kopplas ihop med de elektriska signalerna (utgång), och kondensatorn har polaritet, så var noga med att ansluta den positiva änden till mikrofonutgångsstiften.
Efter att kretsen var klar kopplade jag ut kretsens utgång till den första analoga ingångsstiftet (AI0, stift 2) på USB-6008 och kopplade marken på brödbrädan till den analoga jordstiftet (GND, stift 1). Jag kopplade USB-6008 till datorn med en USB och det var dags att göra justeringar i LabVIEW-programmet för att ta in en verklig analog signal.
Steg 4: Läsa analoga signaler med DAQ Assistant
Istället för att använda SoundFileSimpleRead. VI och HarmonicDistortionAnalyzer. VI använde jag DAQ Assistant. VI och ToneMeasurements. VI för att hantera den analoga ingången. DAQ Assistant-inställningen är ganska rak, och själva VI tar dig igenom stegen. ToneMeasurements. VI har många utgångar att välja mellan (amplitud, frekvens, fas), så jag använde frekvensutgången som ger ingångstonens grundfrekvens (från DAQ Assistant. VI). Utgången från ToneMeasurements. VI måste konverteras och sättas in i en array innan den kunde användas i fallstrukturerna, men resten av LabVIEW -programmeringen/indikatorerna förblev densamma.
Steg 5: Slutsats
Projektet var en framgång men det fanns definitivt många brister. När jag använde tunern i ett bullrigt klassrum var det väldigt svårt för programmet att avgöra vad som var brus och vilken ton som spelades. Detta beror troligen på att förförstärkarkretsen är väldigt grundläggande och att mikrofonen är väldigt billig. När det var tyst fungerade programmet dock med god tillförlitlighet för att bestämma noten som försökte spelas. På grund av tidsbrist gjorde jag inga ytterligare ändringar, men om jag skulle upprepa projektet skulle jag köpa en bättre mikrofon och spendera mer tid på förförstärkarkretsen.
Rekommenderad:
Hur man skapar och infogar en tabell och lägger till ytterligare kolumner och/eller rader till den tabellen i Microsoft Office Word 2007: 11 steg
Hur man skapar och infogar en tabell och lägger till ytterligare kolumner och/eller rader till den tabellen i Microsoft Office Word 2007: Har du någonsin haft mycket data du arbetar med och tänkt för dig själv … " hur kan jag göra allt av dessa data ser bättre ut och blir lättare att förstå? " Om så är fallet kan en tabell i Microsoft Office Word 2007 vara ditt svar
Arduino -robot med avstånd, riktning och rotationsgrad (öst, väst, norr, söder) som styrs med röst med hjälp av Bluetooth -modul och autonom robotrörelse .: 6 steg
Arduino -robot med avstånd, riktning och rotationsgrad (öst, väst, norr, söder) som styrs med röst med hjälp av Bluetooth -modul och autonom robotrörelse.: Denna instruktion förklarar hur man gör Arduino -robot som kan flyttas i önskad riktning (framåt, bakåt , Vänster, höger, öst, väst, norr, syd) krävs Distans i centimeter med röstkommando. Roboten kan också flyttas autonomt
8 Reläkontroll med NodeMCU och IR -mottagare med WiFi och IR -fjärrkontroll och Android -app: 5 steg (med bilder)
8 Reläkontroll med NodeMCU och IR -mottagare med WiFi och IR -fjärrkontroll och Android -app: Styrning av 8 reläväxlar med nodemcu och IR -mottagare via wifi och IR -fjärrkontroll och Android -app. Fjärrkontrollen fungerar oberoende av wifi -anslutning. HÄR ÄR EN UPPDATERAD VERSIONKLICK HÄR
RIKTNING OCH HASTIGHETSKONTROLL AV DC -MOTOR MED ANVÄNDNING AV LABVIEW (PWM) OCH ARDUINO: 5 steg
RIKTNING OCH HASTIGHETSKONTROLL AV DC -MOTOR ANVÄNDNING AV LABVIEW (PWM) OCH ARDUINO: Hej killar först och främst förlåt för min roliga engelska. I denna instruerbara ska jag visa dig hur du styr en hastighet på en likströmsmotor med hjälp av labview Låt oss komma igång
Temperatur och fuktighet Display och datainsamling med Arduino och bearbetning: 13 steg (med bilder)
Temperatur- och luftfuktighetsvisning och datainsamling med Arduino och bearbetning: Intro: Detta är ett projekt som använder ett Arduino -kort, en sensor (DHT11), en Windows -dator och ett bearbetningsprogram (ett gratis nedladdningsbart) för att visa temperatur, luftfuktighetsdata i digital och stapeldiagramform, visa tid och datum och kör en räkningstid