Raspberry Pi Spectrum-Analyzer met RGB LED-Strip en Python (3 / 3 stap)

Stap 3: Bewerken van defaults.cfg en uitvoeren van aangepaste synchronized_lights_LED_strip.py


ik /config/defaults.cfg de volgende wijzigingen aangebracht:

gpio_pins = 7,0,1,2,3

Ik heb alleen 5 kolommen, dus ik gewoon de lijst van uitgangen naar 5 nummers afgekapt.

Als u de afspeellijst gebruiken, wijzigt u de playlist_path wilt

Ik veranderde ook de volgende

min_frequency = 50
max_frequency = 150000

commentaar uit de custom_channel_frequencies. Ik wil alleen de min en max frequenties gelijkmatig verdeeld.

Tot slot, het aangepaste script uitvoeren:

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

Voor foutopsporing, kunt u overwegen - v 2--readcache 0

Ik kon decoderen mp3s en spelen ze op hetzelfde moment met slechts een paar glitches helemaal aan het begin van het nummer. De basiscode is een functie waar het schrijft uit alle niveaus naar een cachebestand, zodat wanneer het speelt het liedje weer dat het hoeft niet te lopen dat de readcache FFTs. 0 wordt dit uitgeschakeld als u niet wilt moet verwijderen van de cache .gz elke keer genereert.

--------------------
Enkele hoogtepunten in de wijzigingen aan het origineel
--------------------

De belangrijkste wijzigingen bestaan uit strippen van de GPIO code en vervangen door de code te sturen niveaus aan de RGB LED strip. De betere manier om dit te doen zou zijn om de hardware_controller.py bestand te wijzigen, maar ongeacht wat enkele wijzigingen aan het origineel nodig zou zijn aangezien ik ben niet alleen met behulp van aan/uit signalen meer.

Ik bracht het grootste deel van mijn tijd proberen voor het optimaliseren van de snelheid van de calculate_levels() functie. Ik ontdekte dat de lijn

gegevens = np.array (data, dtype = 'h')

, die gewoon creëert een numpy matrix uit een array van python, nam 10ms, die zo veel als alle de FFT processing is! Dit was zeer versneld door het te vervangen met een functie die wordt geladen een array van binaire geheugen direct:

NP.frombuffer (gegevens...

De rest van mijn wijzigingen beïnvloed pas echt dingen als ik was bezig met het testen met zuivere sinus golven (zie bijgevoegde testbestanden). De dynamische aanpassingen op de oorspronkelijke code maakte het werk goed ondanks alles hieronder. Mooie grote!

Aangezien de audio stereo, gooi ik uit de even nummers omdat die het rechterkanaal vertegenwoordigen. De originele code was het analyseren van de stereo signaal alsof het mono, die waarschijnlijk een beetje energie aan de laagste frequentieband toegevoegd.

gegevens [:] = data_stereo [:: 2]

De fft draaide ook op een niet-windowed stuk van audio. Wanneer u een FFT uitvoert op een stuk van audio gesneden uit het midden van een lied, de randen van die steile druppels het FFT-algoritme eruit. Dit voegt een heleboel energie over alle banden. De oplossing is om het onderaan elk stuk, of "venster"-conus. Ziet u dat een beeld van aangesloten op deze pagina van voor en na windowing een audio Brok.

venster = np.hanning(len(data))
gegevens = data * venster

Tot slot, wanneer de kracht van geluid met een factor 10, horen we dat als een verdubbeling stijgt, dus ik som van alle opslaglocaties in elke frequentieband en neem de log10 van degenen zodat de LEDs tweemaal zo hoog stuiteren als we het geluid dubbele horen.

Als u wilt dingen uit te testen, probeer de gekoppelde geluidsbestanden. Het roze ruis-bestand moet dezelfde totale vermogen per frequentieband verslag. Dit is interessant, want er alleen 5 of zo opslaglocaties in de eerste band, en in de laatste honderden zullen, maar als je alle de energieën optelt, zij dezelfde, ondanks het verschil in aantal opslaglocaties moeten. Roze ruis klinkt zoals het is het zelfde volume over het gehele spectrum. Het roze ruis sweep-bestand heeft een bandfilter filter geveegd van laag naar hoog, en u kunt deze manifestatie in de video zien.

Gerelateerde Artikelen

Slimme telefoon kerstboom gecontroleerd met RGB LED-Strip

Slimme telefoon kerstboom gecontroleerd met RGB LED-Strip

sinds Kerstmis is hier, we deze kerstboom met RGB LED-Strip ingericht voor onze kerstfeest, en maakte het een slimme telefoon gecontroleerd boom. XD. It zal zeker een "last-minute" magie voor de show Xmas presenteren. Kerstmis komt eraan maar va
PEX Pipe zeshoeken met RGB LED-Strip

PEX Pipe zeshoeken met RGB LED-Strip

Dit project beschikt gebouwd voor een fase terug druppel over sommige shapes van de zeshoek gemaakt van 3/4" PEX pijp, vergelijkbaar met een LED-hoelahoep, sommige 12 Volt RGB LED-strip en een NLED 30 kanaal hoge huidige LED Controller. De zeshoeken
RGB LED STRIP kleur orgel (zonder MICROCONTROLLER)

RGB LED STRIP kleur orgel (zonder MICROCONTROLLER)

het is een RGB LED STRIP orgaan en een microcontroller niet gebruikt. zijn gebaseerd N-kanaal mosfet.Stap 1: onderdelen HalloHaar een RGB LED STRIP kleur orgel zonder MICROCONTROLLERen hier is de lijst.1) 3,5 mm audio-aansluiting-1ps2) 12V, 2AMP powe
RGB - Led Strip 12 V gecontroleerd door een ATtiny85 met een 125Khz RFID-Module

RGB - Led Strip 12 V gecontroleerd door een ATtiny85 met een 125Khz RFID-Module

Het basisidee gaf me deze kant van de RGB-RFID-Lamp. Maar daar heb ik veel ATtiny85 ik zal gebruik maken van deze micro-controller. Om het gemakkelijker voor mij, testte ik alle deel eerst op een Arduino Uno.Materiaal:1 x RGB – 12 V Led-strip1 x ATti
RGB LED Strip Circuit met Arduino

RGB LED Strip Circuit met Arduino

Dit Instructable heeft betrekking op de vergadering van een circuit PWM-ing (pulse breedte modulerende) staat een 9-12v RGB LED-strip en programmeren van een Arduino aan cyclus door een scala aan kleuren. Ik zal bespreken hoe te monteren een transist
ATtiny85 Spectrum-Analyzer met fix_FFT

ATtiny85 Spectrum-Analyzer met fix_FFT

ATtiny85 spectrum analyzer voor muziek naar RGB LED met FFTEnthousiast over de nieuwe ontdekking van FHT bibliotheek. Jou echt zeker wilt probeer het op een ATtiny85. Na uren masseren van de code om het te laten werken, helaas komen geen aan function
Arduino controlled RGB LED-strip in de woonkamer

Arduino controlled RGB LED-strip in de woonkamer

Het idee achter dit kleine project was dat sommige vrij indirecte stemming licht in de woonkamer. Het wordt beheerd door de server openHAB (dat project is nog steeds op de lijst moet worden toegevoegd aan deze site) geïnstalleerd op een Raspberry Pi.
RC gecontroleerde rgb led strip

RC gecontroleerde rgb led strip

Maak uw eigen rc gecontroleerde led-strip voor individuele kamer verlichting!Meeste rgb-led-strips worden gecontroleerd door een infrarood afstandsbediening. Om te schakelen of uitschakelen of wijzigen van de kleur, die je moet blijven voor de ontvan
WiFi Controlled RGB LED-Strip

WiFi Controlled RGB LED-Strip

Soms kunnen die IR-afstandsbedieningen gebruikt om te bepalen van de RGB LED strips worden irriterend als gevolg van hun beperkt bereik en jacht voor de afstandsbediening wanneer u kan niet het vinden. Dit eenvoudige, maar effectieve project kan een
Rgb Led Strip op een twee Cup Coaster fading

Rgb Led Strip op een twee Cup Coaster fading

deze twee cup coaster is 10 "x 3" x 2 5/16". Het heeft een Rgb led strip die verandert van vorm blauw in groen.Stap 1:Stap 2: Bouw van de behuizing The drill bit is about 3".Stap 3: Schilderen en lichten te zetten van de behuizing Behu
DIY gekleurde verlichting met RGB LED's

DIY gekleurde verlichting met RGB LED's

ik was op zoek naar enkele unieke verlichting en verfraaiend ideeën voor mijn kamer ooit sinds ik verhuisd naar mijn nieuwe plek (vier gewone witte muren krijgen nogal saai, vrij snel). Ik had gedaan over alle ik kon met de muren maar was nog steeds
RGB LED Strip Controller

RGB LED Strip Controller

Dit is een afstand bestuurbare meerkleurige LED-Strip controller doos die ik heb voor een vriend gemaakt. We gepland om het installeren van subtiele verlichting binnen zijn auto waarvoor we een kleine controller box + afstandsbediening met de meerkle
IKEA RGB Led Strip 2 Wi-Fi Hack

IKEA RGB Led Strip 2 Wi-Fi Hack

het volgende project beschrijft hoe hack een IKEA DIODER RGB Led Strip om toe te voegen een WiFi-connectiviteit en toegang naar een interne webserver voor het configureren van de kleuren met behulp van lage begroting oplossingen! De hack maakt gebrui
Hoe u kunt besturen een RGB LED Strip - Arduino tutorial Arduino Tutorial

Hoe u kunt besturen een RGB LED Strip - Arduino tutorial Arduino Tutorial

In deze tutorial zullen we een strip gebruiken met 8 RGB-LEDs met de Arduino uno board. Wij zullen van de Adafruit NeoPixel library gebruiken om de kleur van elk geleid.Laten we beginnen!Stap 1: Wat moet jeVoor dit project zal u het volgende nodig:Ar