Raspberry Pi spektrumanalysator med RGB LED Strip och Python (3 / 3 steg)

Steg 3: Redigera defaults.cfg och köra anpassade synchronized_lights_LED_strip.py



jag gjorde följande ändringar till /config/defaults.cfg:

gpio_pins = 7,0,1,2,3

Jag har bara 5 kolumner, så jag bara trunkeras listan över utgångar till 5 nummer.

Om du vill använda spellistan, ändra playlist_path

Jag ändrade också följande

min_frequency = 50
max_frequency = 150000

kommentera ut custom_channel_frequencies. Jag vill bara dela min och max frekvenser jämnt.

Slutligen kör anpassade skript:

sudo py/synchronized_lights.py--fil /home/pi/some_random_music_file.mp3

För felsökning, överväga att lägga till - v 2--readcache 0

Jag kunde avkoda mp3s och spela upp dem samtidigt med bara några buggar precis i början av låten. Tarvlig koden har en funktion där den skriver ut alla nivåer till en cachefil så när den spelar låten igen det behöver inte köra den FFTs. readcache 0 inaktiverar detta om du inte vill ta bort .gz cachen genereras varje gång.

--------------------
Några höjdpunkter i de ändringar jag gjort till ursprungliga
--------------------

De viktigaste förändringarna består av strippning ut GPIO koden och ersätta den med koden sända nivåer till RGB LED strip. Ett bättre sätt att göra detta vore att ändra filen hardware_controller.py, men oavsett vilka några förändringar till ursprungliga skulle behövas eftersom jag inte bara använder på/av signaler längre.

Jag tillbringade större delen av min tid att försöka optimera hastigheten på funktionen calculate_levels(). Jag fick reda på att linjen

data = np.array (data, dtype = "h")

, som skapar helt enkelt en numpy matris från en python array, tog 10 MS, vilket är lika mycket som alla FFT behandling! Detta var kraftigt påskyndas genom att ersätta den med en funktion som läser in en binär minnesmatrisen direkt:

np.frombuffer (data...

Resten av mina ändringar påverkas egentligen bara saker när jag gjorde tester med pure sine vågor (se bifogade testfiler). De dynamiska justeringarna på den ursprungliga koden gjorde det fungera väl trots allt nedan. Ganska bra!

Eftersom ljud är stereo, kasta jag ut jämna nummer eftersom de utgör den högra kanalen. Den ursprungliga koden var analysera stereo signalen som om det vore mono, som förmodligen lagt lite energi till det lägsta frekvensbandet.

data [:] = data_stereo [:: 2]

FFTEN var också körs på en icke-windowed bit av ljud. När du kör en FFT på en bit av audio snidade i mitten av en låt, kanter som kommer att se ut som brant droppar för FFT-algoritm. Detta lägger en massa energi över alla band. Lösningen är att gå ner varje bit, eller "fönster". Du kan se en bild av detta bifogas denna sida av före och efter fönstersystem en audio bit.

fönster = np.hanning(len(data))
data = data * fönster

Slutligen, när strömmen av ljud går med en faktor på 10, vi hör det som en fördubbling, jag summera alla lagerplatser i varje frekvensband och ta log10 dem så lysdioderna studsa dubbelt så hög när vi hör dubbelt så bra.

För att testa saker ut, prova att köra de bifogade ljudfilerna. Skärt brus filen bör rapportera samma totala makt per frekvensband. Detta är intressant, eftersom man endast 5 eller så lagerplatser i första bandet, och hundratals i sist, men om du lägger upp alla energier, de bör vara samma, trots skillnaden i antal lagerplatser. Skärt brus låter som det är samma ljudstyrka över hela spektrumet. Skärt brus sopa filen har ett bandpassfilter som sopas från låg till hög och du kan se denna demo i videon.

Se Steg
Relaterade Ämnen

PEX rör hexagoner med RGB LED Strip

Byggd för en scen tillbaka droppe har detta projekt vissa hexagon figurer gjorda av 3/4" PEX rör, liknar en LED hula hoop, några 12 Volt RGB LED strip och en NLED 30 kanal hög nuvarande LED-Controller. PEX hexagoner är nästan Sömlös söker med hjälp a...

Smart telefon kontrollerade julgran med RGB LED Strip

eftersom julen är här, vi dekorerade denna julgran med RGB LED Strip för vår julfest, och gjorde det en smart telefon kontrollerade träd. XD. It kommer att säker presentera en "sista minuten" magi för Xmas showen. Julen kommer men fastnat räkna...

RGB - Led Strip 12 V kontrolleras av en ATtiny85 med en 125Khz RFID modul

Den grundläggande idén gav mig denna sida RGB-RFID-lampa. Men eftersom jag har en hel del ATtiny85 jag kommer använda denna mikro-controller. För att göra det lättare för mig, testade jag alla del först på en Arduino Uno.Material:1 x RGB – Led strip...

RGB LED Strip krets med Arduino

Detta Instructable omfattar montering av en krets kan PWM-ning (puls bredd modulerande) en 9-12v RGB LED strip och programmering en Arduino att cykla genom en rad olika färger. Jag kommer att diskutera hur man montera en transistor till en kylfläns &...

WiFi kontrollerad RGB LED Strip

De IR-fjärrkontroller som används för att styra RGB LED strips kan ibland bli irriterande på grund av deras begränsade räckvidd och jakt på fjärrkontrollen när du inte hittar den. Detta enkla, men effektiva projekt kan lösa ett problem genom att kont...

ARDUINO kontrollerade 12v RGB LED STRIP

Ungefär ett år sedan upptäckte jag RGB LED strips på Amazon. Att vara strax före starten av musik festivalen säsongen, gick jag naturligtvis direkt att arbeta att göra crazy ljusa blinkande festival leksaker. Icke-adresserbara remsorna är mestadels P...

Färgskiftande box hyllor med LED-strips och Arduino

Obs: detta instructable är en del av en tävling fram till 7 juli. Om du gillar det verkligen, kan du rösta på det övre högra hörnet.Detta började som jag behövde en extra lagringsutrymme nästa och över ett skrivbord, men jag ville ge det några specie...

RC kontrollerad rgb led strip

Skapa din egen rc kontrollerad led-strip för enskilda rum belysning!De flesta rgb-led-strips styrs av en infraröd fjärrkontroll. För att aktivera det eller inaktivera eller ändra färg, måste du stanna framför mottagaren. Detta är tråkigt och inte rik...

Arduino kontrollerad RGB LED strip för vardagsrummet

Tanken bakom denna lilla projekt var att ha lite ganska indirekta humör ljus i vardagsrummet. Den styrs av openHAB servern (det projektet är fortfarande på listan som ska läggas till denna webbplats) installerat på en Raspberry Pi. Naturligtvis, kan...

Hur man styr en RGB LED Strip - Arduino handledning

I denna tutorial använder vi en remsa med 8 RGB lysdioder med Arduino uno styrelsen. Vi kommer använda den Adafruit NeoPixel bibliotek för att ändra färg på varje ledde.Låt oss komma igång!Steg 1: Vad du behöverFör detta projekt behöver du:Arduino un...

RGB LED Strip Controller

Detta är en fjärrstyrd flerfärgad LED-Strip controller låda jag gjort för en vän. Vi planerade att installera subtil belysning inuti bilen som vi fick en liten controller låda + fjärrkontroll med flerfärgad LED Strips. Olyckligtvis, vi kunde inte öpp...

ArduDroid: En enkel 2-sätt Bluetooth-baserade Android Controller för Arduino RGB led strip

INTRODUKTIONFÅ det på google PLAY "ardudroid" appARDUDROID (tidigare Andruino) är en enkel Android app som hjälper dig att kontrollera stiften i Arduino Uno (eller klon) från din Android-telefon trådlöst. Det är både en Android app och en Arduin...

RGB LED strips

i detta instructable, jag ville visa er min RGB (röd, grön, blå) LED strips. Varje strip har 36 röda lysdioder, 36 gröna lysdioder och 36 blå lysdioder. Övergripande är remsorna 47 inches lång utom den som avbildas i längst till vänster, det är lite...

Everymans enkel WS2801 RGB LED Strip Controller

Syftet med detta instructable är man gör vanliga människor kunna ta kontroll över WS2801 RGB led strips för hem eller butik dekoration med minimal ansträngning. WS2801 ledde remsorna har ett litet chip i varje led och gör att du kan ange varje LED fä...

IKEA RGB Led Strip 2 WiFi Hack

följande projektet beskriver hur till hacka en IKEA DIODER RGB Led Strip för att lägga till en WiFi-anslutning och tillgång till en intern webbserver för att konfigurera färger med låg budget lösningar! Hacket utnyttjar en openPicus Flyport WiFi modu...

RGB LED STRIP färg orgel (utan MIKROKONTROLLER)

Det är en RGB LED STRIP ORGAN och inte använt några mikrokontroller. dess baserad N-kanal mosfet.Steg 1: delar HejDess en RGB LED STRIP färg orgel utan MIKROKONTROLLERoch här är listan del.1) 3,5 mm ljud socket-1ps2) 12V, 2AMP power adapter-1ps3) 5 m...

RGB LED Strip Disco Ball

Hej, detta är Brandon Neustadter en av elementärt LED kommersiella Account Managers. Jag ville skapa en LED-ljus show som skulle synka till min musik. Generellt detta tar timmar om inte dagar eller veckor, men med den Apollo Jammer det tar några minu...

Arduino RGB LED Strip Controller

Jag var nyfiken på använda RGB LED Strip, så jag fick en och beslöt att göra en liten kontroller för att se vad jag kan göra med den... så här är det.Om du har några frågor, kommentarer, konstruktiv kritik... tveka inte att skriva :)Om du gillar min...

Glödande möbler: RGB LED strip + IKEA sida Tabell Hack

IKEA-möbler är cool. Gör det coolare med detta snabbt, lätt och billig DIY uppgradering som gör dina möbler glöd!Här är vad du behöver:• IKEA bord (eller skrivbord, valfri storlek) - $7,99 - saknar sidobord• 3528 LED Light Strip komplett Kit - $19,99...