Analyseur de spectre Pi framboise avec RGB LED Strip et Python (3 / 3 étapes)

Étape 3: Modifier defaults.cfg et exécutez synchronized_lights_LED_strip.py personnalisé

j’ai apporté les modifications suivantes à /config/defaults.cfg :

gpio_pins = 7,0,1,2,3

J’ai seulement 5 colonnes, donc j’ai juste tronqué de la liste des sorties à 5 numéros.

Si vous souhaitez utiliser la liste de lecture, changer la playlist_path

J’ai aussi changé le texte suivant

min_frequency = 50
max_frequency = 150000

Commentaire custom_channel_frequencies. Je veux juste réparti les min et max.

Enfin, exécutez le script personnalisé :

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

Pour le débogage, envisagez d’ajouter -v 2--readcache 0

J’ai été en mesure de décoder les mp3s et les jouer en même temps avec seulement quelques problèmes au début de la chanson. Le code de base possède une fonction où il écrit à tous les niveaux dans un fichier cache donc quand il joue la chanson encore une fois, qu'il n’a pas à courir à que la FFT. readcache 0 cela s’éteint si vous ne voulez pas avoir à supprimer le cache .gz il génère chaque fois.

--------------------
Quelques temps forts dans les changements que j’ai fait à l’original
--------------------

Les principales modifications consistent de décapage le code GPIO et son remplacement par code pour envoyer des niveaux à la bande de LED RVB. La meilleure façon de le faire serait de modifier le fichier hardware_controller.py, mais peu importe ce que certains changements à l’original serait nécessaire depuis que je suis non seulement sur marche/arrêt des signaux plus.

J’ai passé la plupart de mon temps à essayer d’optimiser la vitesse de la fonction calculate_levels(). J’ai découvert que la ligne

données = np.array (data, dtype = « h »)

, qui crée simplement un tableau numpy partir d’un tableau de python, a pris de 10ms, ce qui est autant que tout le traitement de la FFT ! Cela a été grandement accéléré en la remplaçant par une fonction qui charge un tableau binaire mémoire directement :

NP.frombuffer (données...

Le reste de mes changements seulement vraiment affecté les choses quand je faisais des tests avec pures sinusoïdes (voir fichiers de test ci-joint). Les ajustements dynamiques sur le code original fait le travail bien malgré tout en dessous. Assez grande !

Étant donné que le son est stéréo, j’ai jeter les nombres étant donné que ceux qui représentent le canal droit. Le code original analysait le signal stéréo comme si elle était mono, qui probablement ajouté un peu d’énergie à la bande de fréquence plus basse.

données [:] = data_stereo [:: 2]

La fft courait aussi sur un segment non-fenêtré d’audio. Lorsque vous exécutez une FFT sur un morceau d’audio creusé au milieu d’une chanson, les bords des qui ressemblera à gouttes raides à l’algorithme FFT. Cette opération ajoute un tas d’énergie dans l’ensemble de toutes les bandes. La solution consiste à effiler vers le bas de chaque morceau, ou « window » il. Vous pouvez voir qu'une photo de ce joint à cette page d’avant et après fenêtrage un morceau audio.

fenêtre = np.hanning(len(data))
données = données * fenêtre

Enfin, quand la puissance du son augmente d’un facteur 10, que nous entendons que comme un doublement, donc j’ai la somme de tous les emplacements dans chaque bande de fréquences et prendre le log10 de ceux donc les LEDs rebondissent deux fois plus élevé quand on entend le son double.

Pour tester les choses, essayez d’exécuter les fichiers audio ci-joint. Le fichier de bruit rose devrait faire rapport à la même puissance totale par bande de fréquences. C’est intéressant, parce qu’il y aura seulement les bacs 5 ou plus dans les premières bandes et des centaines dans le dernier, mais si l'on additionne toutes les énergies, ils devraient être les mêmes, malgré la différence dans plusieurs emplacements. Bruit rose sonne comme si c’était le même volume dans toute la gamme. Le fichier de balayage de bruit rose possède un filtre passe-bande être balayé de faible à élevé, et vous pouvez voir cette démonstration dans la vidéo.

Articles Liés

Smart Phone contrôlé l’arbre de Noël avec RGB LED Strip

Smart Phone contrôlé l’arbre de Noël avec RGB LED Strip

Noël puisque c'est ici, nous avons décoré cet arbre de Noël avec RGB LED Strip pour notre fête de Noël et rend un arbre téléphone intelligent contrôlé. XD. It présentera bien sûr une magie de « dernière minute » pour le spectacle de Noël. Noël approc
RGB - Led Strip 12 V contrôlée par un ATtiny85 avec un Module RFID 125kHz

RGB - Led Strip 12 V contrôlée par un ATtiny85 avec un Module RFID 125kHz

L'idée de base m'a donné ce côté RGB-RFID-lampe. Mais depuis que j'ai beaucoup ATtiny85 je vais utiliser ce microcontrôleur. Pour le rendre plus facile pour moi, j'ai testé toutes les partie tout d'abord sur un Arduino Uno.Matériel :1 x RGB – bande L
WiFi sous contrôle RGB LED Strip

WiFi sous contrôle RGB LED Strip

Ces télécommandes IR utilisés pour contrôler les bandes LED RGB peuvent parfois devenir irritant en raison de leur aire de répartition limitée et la chasse pour la télécommande lorsque vous ne le trouvez pas. Ce projet simple, mais efficace peut réso
IKEA RGB Led Strip 2 WiFi Hack

IKEA RGB Led Strip 2 WiFi Hack

le projet suivant décrit comment faire pour pirater un IKEA DIODER RGB Led Strip pour ajouter une connectivité WiFi et l'accès à un serveur Web interne pour la configuration de couleurs à l'aide de solutions de petit budget ! Le hack utilise une open
RGB LED Strip Disco Ball

RGB LED Strip Disco Ball

Salut, c'est Brandon Neustadter un des directeurs de comptes commerciaux élémentaire de la LED.  J'ai voulu créer un spectacle de lumière LED qui se synchronise à ma musique.  Généralement cela prend des heures voire jours ou semaines, mais avec le b
ARDUINO contrôlée 12v RGB LED STRIP

ARDUINO contrôlée 12v RGB LED STRIP

Il y a un an j'ai découvert que les bandes de LED RVB sur Amazon. Être juste avant le début de la saison des festivals musique, j'ai naturellement alla droit à travailler à rendre fous lumineux clignotants festivals jouets. Les bandes non adressable
RGB LED STRIP couleur orgue (sans micro)

RGB LED STRIP couleur orgue (sans micro)

C'est un organe de STRIP LED RGB et ne pas utiliser n'importe quel microcontrôleur. sa base mosfet à canal N.Étape 1: pièces SalutSes un organe de couleur RGB LED STRIP sans microcontrôleuret voici la liste des pièces.1) 3. 5 mm audio prise-1ps2) 12V
Analyseur de spectre de ATtiny85 avec fix_FFT

Analyseur de spectre de ATtiny85 avec fix_FFT

Analyseur de spectre de ATtiny85 pour la musique de LED RVB avec FFTExcité par la nouvelle de la découverte de la bibliothèque FHT. Vôtre tiens vraiment absolument à faire un essai sur un ATtiny85. Après des heures de masser le code pour le faire fon
Arduino contrôlée RGB LED strip pour le salon

Arduino contrôlée RGB LED strip pour le salon

L'idée derrière ce petit projet était d'avoir une lumière d'ambiance assez indirecte dans le salon. Elle est contrôlée par le serveur openHAB (ce projet est toujours sur la liste à ajouter à ce site) installé sur une facture pro forma de framboise. B
Décoloration Rgb Led Strip sur un caboteur de coupe deux

Décoloration Rgb Led Strip sur un caboteur de coupe deux

ce coaster deux tasses est 10 "x 3 « x 2 5/16 ». Il a une bande de RVB led qui change de forme bleu au vert.Étape 1 :Etape 2: Construction du boîtier The drill bit is about 3".Etape 3: Peindre et mettre des feux sur le logement Peindre un logeme
À l’aide de la chipKIT base i/o Shield avec Analog RGB LED Strip

À l’aide de la chipKIT base i/o Shield avec Analog RGB LED Strip

Il y a quelques mois j'ai écrit un blog sur le chipKIT base i/o Shield et bandes de RBG analogique utilisé pour démontrer les FETs drain ouvert.Ce poste est de donner des détails sur la façon de brancher vers le haut de la bande de LED sur le bouclie
DC12V 72w RGB LED Strips Kits

DC12V 72w RGB LED Strips Kits

kits de strip LED RGB DC12V 72W, ech kit comprend les bandes de LED de 5 mètres, 1 pcs LED controller et 1pcs LED alimentation.
RGB-Led Clock avec puce Bluetooth

RGB-Led Clock avec puce Bluetooth

Cette instructable vous montre comment utiliser un cyprès-BLE-Devkit pour construire une RGB-LED-horloge.Vous devez seulement très peu choses :RGB-LED-Strip de 30 ou 60 WS2812b-LEDs.une carte de circuit imprimé style grillecertaines broches broche-en
Hexagones de tuyau PEX avec bande LED RGB

Hexagones de tuyau PEX avec bande LED RGB

Construit pour une goutte d'eau arrière scène ce projet comporte certaines formes d'hexagone de 3/4 po tuyau PEX, semblable à un cerceau de LED, quelques 12 volts RGB LED strip et un NLED 30 Channel High Current LED Controller. Les hexagones PEX sont