Font les lumières à réagir à l’Audio (4 / 5 étapes)

Étape 4: Version simplifiée et mise en route

La partie la plus complexe du matériel est à l’étage d’entrée audio. Si vous ne voulez pas utiliser une chaîne stéréo, mais un signal mono, vous pouvez simplement couper l’une des étapes d’entrée. Si vous voulez qu’il est encore plus simple, vous pourriez juste un étage d’entrée très simple, qui a une haute résistance et seulement un filtre. Vous devrez peut-être ajouter un autre étage amplificateur à cela.
Si vous utilisez un Arduino, il n’est pas possible de copier et coller le code source fourni, étant donné que la carte Arduino n’est pas basée sur un contrôleur d’atxmega.

Si vous souhaitez utiliser ce projet avec un autre contrôleur, vous devez adapter le code vous-même. Les étapes suivantes devraient vous donner une idée sur ce qu’il faut faire :

La première chose que vous devez faire, c’est savourer le signal audio. Nous avons besoin de 128 points de données et que vous voulez une fréquence d’échantillonnage de 32kHz. La façon la plus simple de le faire est de faire une boucle, qui lit l’ADC et puis mise en pause pour tout 30µs. Le retard de 30µs en combinaison avec le temps nécessaire pour lire les données devrait donner une fréquence d’échantillonnage à peu près exacte.

L’étape suivante est la FFT. Certains gars sympa, mettez la bibliothèque FFT utilisée dans ce projet dans une bibliothèque commode pour Arduino. Cela vient avec un exemple, qui explique comment l’utiliser. L’exemple utilise le mode de goutte de l’ADC, qui malheureusement ne fonctionne pas à 30kHz. Ce n’est pas nécessairement une mauvaise chose, mais affectera votre bande passante et vos seaux FFT aura une résolution différente. Vous pouvez bien sûr également vérifier le projet officiel de la bibliothèque de la FFT.

Si vous souhaitez mettre en place une détection temps juste jeter un oeil à l’explication donnée dans la partie du logiciel ou le code de mon projet. C’est des maths de base et peut être copier/coller.

Que se passe-t-il une fois que vous imagination. Les méthodes les plus utilisées pour faire des animations douces, décoloration des couleurs ou tout ce que vous voulez faire sont les suivants :

  • valeur cible/réelle : la valeur cible est dérivée des données FFT. La valeur réelle change lentement jusqu'à ce qu’il atteigne la valeur cible.
  • moyenne mobile : vous rappelez la dernière valeurs X. Additionner les valeurs et les diviser par X. Cela vous donne la moyenne mobile
  • pondérée moyenne mobile : c’est un peu comme la moyenne mobile, mais des valeurs plus récents ont une influence plus élevée sur le résultat que les anciennes valeurs. valeur = ((valeur * (n - 1)) + nouvelle_valeur) / NUM NUM. peut être librement choisi ; Plus haut signifie qu'il s’adapte plus lent/lisse

Ces méthodes vous permettent de faire des animations fluides de la recherche. Si vous prenez les données en direct la FFT que vous verrez peut-être des sauts soudains dans votre décoloration des couleurs par exemple. J’utilise le système de valeur réelle/cible et pondéré se déplaçant la plupart du temps moyenne.

Cette ligne de code en est un exemple très simple sur la façon d’utiliser cette formule : color = ((color * 15) + fft_bucket_h_l) / 16 ;
Il calcule une moyenne mobile pondérée du seau FFT avec la valeur la plus élevée sur le canal gauche. Cette valeur peut ensuite être utilisée pour définir la couleur d’une LED RGB. Félicitations ! Vous venez de faire une LED, qui change de couleur selon la fréquence dominante.

Au premier coup de œil tout ce math peut sembler écrasante, mais heureusement tout le travail est déjà fait. Si vous passer du temps pour travailler votre chemin dans ce projet, vous verrez que vous pouvez faire des effets impressionnants avec quelques calculs simples, que vous avez appris à l’école.

Données importantes que vous pouvez utiliser
Les données de la FFT est accessible via la classe fft comme suit :

fft_result_t * fft_left = fft.getLeft() ; pour le canal 1

fft_result_t * fft_right = fft.getRight() ; pour le canal 2

La structure du résultat ressemble à ceci :

typedef struct {}

uint16_t spectre [FFT_N / 2] ;

uint16_t adc_min, adc_max ;

} fft_result_t ;

spectre est un tableau de 64 éléments qui contenir le résultat de la FFT. adc_min et adc_max sont les valeurs minimales et maximales du signal.

Au sein de la animation.cpp, où vous devrez placer votre code de l’animation vous avez accès aux variables globales suivantes

uint16_t bands_l [ANIM_BAND_NUM], bands_r [ANIM_BAND_NUM] ; condensent des tableaux qui contiennent les données des 7

bandes uint16_t amplitude_l, amplitude_r ; amplitude, tiré par les valeurs adc_min et adc_max

uint8_t bat, bpm_h, bpm_m, bpm_l, bpm_all ; bat contient un masque de bits, qui vous permet de vérifier s’il y avait un battement à un groupe spécifique. L’autre variable vous donne les battements par minute pour le high, mid, low et toute une bande (quelconque)

uint8_t fft_bucket_h_l, fft_bucket_h_r, fft_bucket_l_l, fft_bucket_l_r ; nombre (0... 63) de la FFT seau avec la valeur maximale et minimale pour toutes les variables _l désigne le canal gauche et _r vers la droite.

Articles Liés

Synchronisées musicalement les lumières de Noël

Synchronisées musicalement les lumières de Noël

Au cours de la période de Noël, vous êtes tenu de voir les maisons qui sont décorées avec des lumières de Noël qui sont synchronisés à la musique. Vous pensez peut-être que votre maison ne sera jamais en mesure d'avoir des lumières de Noël musicales
Les lumières sous-marines - isolés dans les vieux pots de confiture

Les lumières sous-marines - isolés dans les vieux pots de confiture

Sur le navire de l'art Illutron , nous utilisons souvent des lumières sous l'eau. Pour l'éclairage et la décoration. C'est un bel effet, et il donne une touche de magie aux interprétations ou exécutions sur l'eau.Laisser les lumières pendant quelques
Christine de bâtiment (avec les lumières et le son!)

Christine de bâtiment (avec les lumières et le son!)

L'Halloween sur le thème nous notre parti autour des histoires de Stephen King et nous avons décidé que pleine grandeur Plymouth Fury de « Christine » ferait un excellent point focal. La route facile peut-être impliquer communiquant avec un club de v
Contrôler les lumières fluorescentes avec un pointeur Laser et d’un Arduino

Contrôler les lumières fluorescentes avec un pointeur Laser et d’un Arduino

quelques membres de l' Alpha One Labs Hackerspace n'aime pas la lumière crue, distribuée par les luminaires fluorescents.  Ils voulaient un moyen d'être en mesure de contrôler facilement les différents luminaires, peut-être avec un pointeur laser ?J'
Vélo les lumières directionnelles - Simple, faible coût et Solar Powered

Vélo les lumières directionnelles - Simple, faible coût et Solar Powered

J'utilise mon vélo pour se rendre au travail, et que la saison progresse de chute je me trouve CIRC. maison dans l'obscurité. Tandis que ma moto est équipée de feux (et moi avec une veste réfléchissante) je ne suis pas particulièrement inquiet d'être
Contrôler les lumières dans votre maison avec votre ordinateur

Contrôler les lumières dans votre maison avec votre ordinateur

vous avez jamais voulu régler l'éclairage de votre maison depuis votre ordinateur ? C'est en fait assez abordable pour le faire. Vous pouvez même contrôler les systèmes de gicleurs, stores automatiques, écrans de projection motorisés, etc.. Vous avez
Contrôler les lumières RVB de Android avec Arduino & Bluetooth LE (BLE)

Contrôler les lumières RVB de Android avec Arduino & Bluetooth LE (BLE)

j'ai vu beaucoup de projets de Kickstarter mettant en vedette la nouvelle norme Bluetooth 4.0 Low Energy et clones Arduino à venir sur le marché, a permis un certain nombre de Bluetooth LE (BLE) mais nombre de ces projets semblent encore être quelque
Teinter les lumières de queue Ford Falcon Xr6

Teinter les lumières de queue Ford Falcon Xr6

Voici un guide rapide pour teinter la lumière avec un spray pouvez taper teinte. Il coûte environ 30 $ NZD pour une canette, mais qui ferait au moins 4 jeux de lumières. Aussi, il est illégal d'avoir des modifications comme ça on s'allume dans mon pa
C’est révolutionnaire : Imaginez le déplacement (photovoltaïque) pour absorber les lumières du soleil toute la journée sur chaque bâtiment

C’est révolutionnaire : Imaginez le déplacement (photovoltaïque) pour absorber les lumières du soleil toute la journée sur chaque bâtiment

cette idée est vraiment révolutionnaire en comparant à ce que j'ai publié avant ; il est respectueux de la nature... et économise de l'énergie de soleil tellement... ne savez-vous pas que nous n'utilisons que moins de 10 % de l'énergie de soleils...
Élevez les lumières de tiges de bambou et petites lumières fluorescentes

Élevez les lumières de tiges de bambou et petites lumières fluorescentes

ma daughter(11) et fils (7) et moi avons construit deux 48 pouces par 48 pouces soulevées lits. Nous avons rempli les cases avec la saleté, rempotage sol, vieux légumes pourris, Marc de café (bonne Source d'azote et les limaces n'aiment eux - Merci S
Perruches, contrôler les lumières !

Perruches, contrôler les lumières !

Quand mes perruches debout sur un perchoir, les phares s'allument ! Mais quand ils arrivent au large, les lumières s'éteindre !Vous avez besoin de quelques outils et pièces incluant un contrôleur sans fil et un bouton poussoir SPDT. (Vous avez besoin
Hotte à flux laminaire eau Jet partie 2 - les lumières

Hotte à flux laminaire eau Jet partie 2 - les lumières

Comme je le disais dans mon premier instructable je comptais sur l'ajout de lumières, mais je n'étais pas en mesure d'obtenir les résultats recherchés parce que je n'avais pas accès au plus grand, plus lumineux LED donc j'ai juste utilisé ce que j'av
C’est révolutionnaire : Imaginez passer (photovoltaïque) pour absorber les lumières du soleil toute la journée sur chaque bâtiment

C’est révolutionnaire : Imaginez passer (photovoltaïque) pour absorber les lumières du soleil toute la journée sur chaque bâtiment

c'est révolutionnaire : Imaginez le déplacement (photovoltaïque) pour absorber les lumières du soleil toute la journée sur chaque bâtimentIntro, c'est révolutionnaire : Imaginez le déplacement (photovoltaïque) pour absorber les lumières du soleil tou
Gardez les lumières de Noël

Gardez les lumières de Noël

Ma femme et moi avons un patio extérieur avec un interrupteur manuel pour allumer la lampe, sur et en dehors. Nous avons décidé de joindre les lumières de Noël à lui via une ampoule à l'adaptateur mural et minuterie, ce qui signifie que nous devons g