Parallellporten baserade VU-Meter (2 / 6 steg)

Steg 2: Programvara Beskrivning



Programvaran för projektet har utformats i Visual Basic 6.0 som är en snabb tillämpning utvecklingsverktyg från Microsoft används för att syntetisera program för windows-operativsystemet. Audio fånga och bearbeta avsnitt för programmet är uppbyggt kring Windows Multimedia (winmm) biblioteket. "winmm" är en modul för Windows Multimedia API, som innehåller ljud lågnivåfunktioner som kan användas för att få tillgång till realtid ljud data strömmas via datorns ljud drivrutin. För att komma åt funktioner i "winmm" biblioteket, en visual basic-modul skrivs "WaveAudio.bas" som förklarar alla variabler och funktioner som används för att bearbeta realtidsdatan.

Nästa avsnitt i programmet är huvudformuläret modulen själv som innehar all kod som krävs för att hantera användargränssnittet i programvaran. För att komma åt skrivarporten på datorn, har en funktion "Ut" deklarerats som kallas från input-output-biblioteket (inpout32.dll). Vi använder denna funktion för att mata ut data till parallellporten. Funktioner för att läsa den parallella porten finns emellertid också inom samma bibliotek, men vi har inte sådana krav i vårt projekt. Funktionen "Ut" är ganska enkelt att distribuera och använder endast två argument för att arbeta. En är den parallella porten fysisk adress själv som vanligtvis är 378(hexadecimal) på de flesta datorer, och andra är 8-bitars data själv som behövs för att skickas.

På upp till höger i programmet, har det tagits en inställningar ram som innehar ljudenhet urval combobox, parallellport urval combobox och vänster eller höger kanal urval alternativknappar. Ljudenhet urval combobox kan användas för att välja en av ljudmaskinvara drivrutiner på datorn som du vill ta prov audiosignalen från. Parallellporten urval combobox kan användas att välja den parallella port fysiska adressen på din dator. Och som 8 lysdioder/lamporna på parallellporten kan endast visa en vänster eller höger kanal bara, så alternativet Exempelknappar kanal kan du välja från antingen vänster eller höger kanal på din audio signal till prov från.
Till mitten av vänster på GUI, har det dragits två LED mätare komponenter som används för att Visa samplade ljud intensiteten från vänster och höger kanaler av ljudsignalen. Detta ledde-mätare del härstammar från "LedMeter.ocx" ActiveX-objektet. På mitten av rätten av GUI, har åtta runda former tagits som imiterar status för de åtta LED-lampor/belysning ansluten till parallellporten. På botten av GUI, fyra knappar heter "START", låter "STOP", "RESET" och "Avsluta" dig starta/stoppa VU-meter, återställa utgångarna och avsluta programmet.

Andra viktiga funktioner som används i modulen viktigaste är "EnumDevices" och "Capture". "EnumDevices" funktioner kallas i händelsen belastning för modulen. Det används i princip att få listan över tillgängliga fysiska audio hårdvaruenheter på datorn där användaren kan välja en som standardkanalen för provtagning. Funktionen genererar listan och uppdaterar den på ljudenheter urval combobox på inställningar ram. "Fånga" är funktionen där alla provtagning och beslutsfattande sker. Här en 512 byte buffert är dimensionerad som innehar proverna för vänster och höger kanaler på ens och udda platser respektive. "waveInPrepareHeader" och "waveInAddBuffer" kallas därefter för att börja fånga processen från "winmm.dll" och frågar drivrutinen att fylla bufferten med ljud prover. När bufferten är full, stoppas processen. Provtagning standardinställningarna i programvaran är inställd på "WAVE_FORMAT_PCM" format, 2 kanaler, 8-bitars provtagning på 22.05 KHz, som användaren kan ändra efter hans behov. Nu läsningen av bufferten startar för höger och vänster kanal följaktligen och för varje prov, det ger dig ett nummer mellan 0 och 255 ge intensiteten av ljudsignalen för viss kanal. Är det att märkas att prov värdet returneras är 127 när inget spelas upp och den går till 0 max för negativt kommer signal övergångar och till 255 max för positivt kommer signal övergångar. Så när inget spelas, ett värde 127 eller nära återlämnas och komponenten LedMeter på programvaran kommer att vara precis i mitten. Emellertid i projektet vi använde skalan mellan 127 till 255 att slå på belysningen genom att först konvertera den till en skala från 0 till 100 och sedan dela den i 8 lika stora delar för nivå utlöser varje av de åtta bitarna på parallellporten. Således är 8 former på programvaran GUI uppdateras därför och "Ut"-funktionen används för att slå på motsvarande lysdioder/belysning ansluten till parallellporten. Användaren kan välja för att prova antingen vänster eller höger kanal enligt hans behov under körningsmiljön som detta kontrolleras varje gång efter det fånga ägt rum.

Se Steg
Relaterade Ämnen

LM3914 baserad LED VU-METER av Victor Das

LM3914 baserade LED VU mätare dess mycket enkel och effektiv. Ser bra ut när i aktion. Den går från 9v med 12v strömförsörjning. Så som mina alla andra projekt det är inte bara en idé eller diagram dess testade på alla sätt fungerar alldeles utmärkt....

Hemmabyggd (DIY) CNC router - baserade Arduino (GRBL)

Redan för några var månader eller år, jag planerar att bygga mitt eget CNC fräsmaskin. Nu bestämde jag mig för det var tid att göra det! Jag läser mycket om andra DIY projekt och till slut jag gillade designen från Arduino CNC intstructable som jag h...

Weasley-o-Meter

god jul alla! :)Detta projekt var inspirerad av klockan i Weasley huset som sett i den andra Harry Potter-filmen (tack jordy.vlassembrouck för spotting mitt misstag ursprungligen säga den första filmen) och föraktade i skapandet av en gnista Core bui...

Web baserad vatten mätning med ioBridge

efter realtid power meter projekt jag gjorde i januari, nästa logiska steg verkade vara en ioBridge baserade vattenmätaren. Kan möta det, energisparfunktioner inte kommer att rädda planeten på egen hand. Det finns gott om resurser förutom elkraft att...

Mobiltelefon-baserade Remote Controller för vattenpump

Besvär i växling på en pump installerad i en avlägset liggande lantgård är ett vanligt problem för många. En hel del kretsar har utvecklats för att lösa detta problem. De flesta av dem är dyra och mikrokontroller-baserade. Här presenterar vi en mobil...

Excitement(stress) Meter - galvanisk hud svar med IPhone

Galvanisk hud svar eller Electrodermal aktivitet har använts sedan 1920-talet i polisen lögndetektor och nyligen har haft lite mer i rampljuset som en upphetsning och stress mätare. Vissa awesome folk vid MIT: s affektiva Lab har gjort verktyg att hj...

$5 power Meter

låter bygga en $5 webbaserad wattmetern och bryta öppet vår behandling till dem med lösningar till våra föråldrade rutnät och livsstilar.Detta är en bra start = > Real-time Web baserade hushåll Power användning MonitorOch här är en ledande kommersiel...

Ski Resort skrivbord Snow Meter (Snowbird)

När min snowboard resa närmar sig, finner jag mig kontrollera Utah Snowbird snowcam (http://www.snowbird.com/snowcam.html) några gånger om dagen, önskar sig mer snö ansamlas på min favorit skidort.Så som en rolig mini projektet beslöt jag att skapa m...

Groovin' Grover: En mikrokontroller-baserade marionett

Groovin' Grover är en marionett som manipuleras av fyra hobby servon och en Pololu Maestro mikrokontroller-baserade servo controller. Du kan styra var och en av GroVers lemmar självständigt och göra honom promenad, våg och mest underhållande - göra h...

Real-Time Web baserade hushållens makt användning Monitor

detta Instructable Detaljer en real-time web baserade hushållens makt användning monitor. Slutresultatet är ett levande diagram i en webbsida som uppdateras var 10 sekunder med Momentan effekt användning för min hela huset. Den elektriska strömmen mä...

Prisvärd öppen hårdvara Arduino-baserad teknik för blinda

I denna artikel vill jag berätta om en Ultraljuds nyckelring enheten för blinda som bidra till att upptäcka hinder på en högre nivå som en enkel vit käpp inte kan varna användarna om. Dessa hinder kan vara Högbyggda bilar, gate korsningar, höga stake...

HyperDuino-baserade CubeSat

Mitt intresse för utforskning av rymden började i oktober 1957 med lanseringen av Sputnik. 1961 gjorde jag ett science fair projekt baserat på ett instrument för jag utformade, byggda och skickade väders med en väderballong.Idag, uppgiften är mycket...

8051 mikrokontroller baserade dubbelriktad besöksräknare

detta är en enkel kopplingsschemat för dubbelriktad besöksräknare använda 8051 mikrokontroller som hjälper till att räkna antalet människor som kommer till eller lämnar ett rum och visar den totala räkningen på styrelsen. Det är till stor hjälp i vår...

LinkIt en SMS-baserade Home Automation

Nu igen kom jag med ny variant av hemautomation med linkit baserad på GSM SMS-tjänst. Nu kan du styra enheten från någon var i världen. Jag är så upphetsad att förklara du dess mitt bästa projekt av mitt liv eftersom dess meddelande på sms service so...

CNC Laser för utskrift av bilder och gravyr - Shapeoko 2 baserade

Om du äger eller planerar att bygga en Shapeoko 2 CNC-maskinen, kommer att detta Instructable gå igenom stegen för att lägga till en 2 watt laser kan skriva ut gråskala bilder på många ytor. Du hittar också Detaljer om hur man gravera på full effekt....

ChalKaat (förstärkt verklighet baserad laserskärare)

Nutid CNC/Lasercutters har ett indirekt gränssnitt med externa datorer. För att förklara detta låt mig ge er ett exempel, kan tänka mig vill du klippa läderarmband för din arm. För att göra detta med nuvarande laserklingor måste du först ta mätning a...

Luftfräschare baserade mekaniska laser slutaren

jag har konstruerat ett kostnadseffektivt mekaniska lasersystem slutare för våra 1064 IR-laser. Systemet innehåller en mekanisk slutare, en reglerbox och en strömförsörjning. Det finns många slutaren system kommersiellt; mekanisk, semi mekaniska, ele...

Hur man använder en 500 watt CO2 laser power meter sond

denna video visar hur du använder Mahoney CO2 laser power sonden. CO2 laser power sonden är en vanligt förekommande och nödvändiga enhet till:1. åtgärd laser uteffekt för laser inställningar över tiden. Om du äger en RF (Radio Frequency) powered lase...

Lätt Raspberry Pi baserad skärmsläckare/bildspel för utställningar/butik Front

På utställningar vill du ofta Visa upp ditt arbete i hopp om att locka potentiella kunder. Den här också arbeten för Fönstren av butiker att marknadsföra produkter som säljs inom. De flesta kommer helt enkelt skapa en stor fast bild affisch till stor...