VU-mètre LoL Shield Audio Spectrum : 4 étapes (avec photos)
VU-mètre LoL Shield Audio Spectrum : 4 étapes (avec photos)
Anonim
VU-mètre de spectre audio LoL Shield
VU-mètre de spectre audio LoL Shield

Il s'agit d'un VU-mètre de spectre audio utilisant le LoL Shield pour Arduino. Le LoL Shield est une matrice LED 14 x 9 qui s'adapte à l'Arduino en tant que bouclier et est contrôlé par une méthode efficace connue sous le nom de Charlieplexing. Il a été conçu par Jimmie P. Rodgers. Ce projet utilise une bibliothèque Fast Fourier Transform pour Arduino pour analyser un signal audio, le diviser en bandes de fréquences et afficher ces informations sur le LoL Shield. Le microcontrôleur Arduino est suffisamment rapide pour calculer une transformation de Fourier rapide. Il porte bien son nom et est étonnamment rapide et précis. Étant donné que tout le travail est effectué par le microcontrôleur, ce projet est complètement portable si vous utilisez des piles. La page Web de ce projet se trouve à l'adresse https://andydoro.com/vulol/ & amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;br /& amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt; Pièces requises:

  • Bouclier LoL
  • Arduino (Diavolino recommandé)
  • prise audio (j'ai utilisé une prise téléphonique mono mâle 1/8")
  • Code Arduino
  • alimentation (alimentation CC, câble USB, pile 9V, etc.)

Étape 1: Assembler le bouclier LoL

Assembler le bouclier LoL
Assembler le bouclier LoL

Suivez les instructions pour assembler le LoL Shield ici. Tu vois, ça n'a pas pris longtemps !

Étape 2: souder les fils à la prise audio

Fils à souder à la prise audio
Fils à souder à la prise audio

J'utilise une prise téléphonique mâle mono 1/8 , comme on l'appelle chez Radioshack, mais vous pouvez utiliser n'importe quel câble audio approprié à la configuration de votre système audio. Vous pouvez utiliser un microphone si vous le souhaitez. Pour ce type de prise, J'ai soudé deux fils. J'ai utilisé du rouge et du noir. Le LoL Shield laisse les broches analogiques 4 et 5 libres pour les entrées. Mon code utilise la broche 5. Vous pouvez attacher le fil rouge à la broche analogique 5 du LoL Shield et le fil noir à GND Vous n'avez pas besoin de le souder, je viens de passer le fil et de le plier.

Étape 3: programmer Arduino

Programme Arduino
Programme Arduino

Nous devons maintenant programmer l'Arduino pour contrôler le LoL Shield.

Il est recommandé d'utiliser le Diavolino pour contrôler le LoL Shield afin d'éviter les effets "fantômes" sur les LED en raison de la LED verte à montage en surface connectée à la broche 13 de l'Arduino standard, mais un Arduino standard fonctionnera bien.

Cela nécessite deux bibliothèques Arduino: - la bibliothèque FFT trouvée sur le forum Arduino - la bibliothèque Charlieplexing pour le LoL Shield

L'installation de bibliothèques pour Arduino peut être un peu intimidante si vous ne l'avez pas déjà fait, mais vous vous en sortirez très bien !

Suivez les instructions sur l'installation des bibliothèques Arduino ici:

www.arduino.cc/en/guide/libraries

La bibliothèque FFT décompose le signal audio en 64 bandes de fréquences. Le bouclier LoL est de 14 x 9 LED. Nous faisons la moyenne des 64 bandes de fréquences ensemble en 14 bandes de fréquences. Nous jetons des données parce que 14 ne se divise pas en 64 uniformément, mais peu importe. La valeur de chaque plage de fréquence est remappée de 0 à 9.

Vous pouvez copier le code Arduino ci-dessous, obtenir le code depuis GitHub (recommandé) ou télécharger le fichier. ZIP, qui comprend les bibliothèques et le code Arduino.

Voici le lien GitHub:

github.com/andydoro/LoLShield-FFT

Ci-dessous le code Arduino:

/* FFT pour LoL Shield v0.9 par Andy Doro https://andydoro.com/basé sur la bibliothèque FFT et le code des forums Arduino et de la bibliothèque Charlieplexing pour LoL Shield. */

#include "Charliplexing.h"

#include "fix_fft.h"

#define AUDIOPIN 5 char im[128], data[128]; char data_avgs[14];

int i=0, val;

void setup() { LedSign::Init(); //Initilise le LoL Shield }

boucle vide() {

pour (i=0; i < 128; i++){ val = analogRead(AUDIOPIN); données = val; im = 0; };

fix_fft(données, im, 7, 0);

pour (i=0; i< 64;i++){ data = sqrt(data * data + im * im); // cela obtient la valeur absolue des valeurs du tableau, nous ne traitons donc que des nombres positifs };

// moyenne des barres ensemble pour (i=0; i<14; i++) { data_avgs = data[i*4] + data[i*4 + 1] + data[i*4 + 2] + data[i*4 + 3]; // moyenne ensemble data_avgs = map(data_avgs, 0, 30, 0, 9); // remapper les valeurs pour LoL }

// définit LoLShield

for (int x=0; x < 14; x++) { for (int y=0; y < 9; y++) { if (y < data_avgs[13-x]) { // 13-x inverse les barres si basses aux hautes fréquences sont représentés de gauche à droite. LedSign::Set(x, y, 1); // allume la LED } else { LedSign::Set(x, y, 0); // éteint la LED } } }

}

Étape 4: Profitez

Prendre plaisir!!
Prendre plaisir!!

&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;br&amp;amp;amp; amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt; Branchez la prise audio sur votre chaîne stéréo, iPod, ordinateur, etc. Alimentez l'Arduino avec une alimentation CC, USB à partir de votre ordinateur ou de batteries - c'est complètement portable. Vous pouvez le mettre dans un chapeau ou une boucle de ceinture. Les LED blanches sont si lumineuses qu'il est difficile de les capturer en vidéo. On dirait qu'il y a une flamme violette qui en sort ! Asseyez-vous et profitez-en!

Concours de microcontrôleurs
Concours de microcontrôleurs
Concours de microcontrôleurs
Concours de microcontrôleurs

Finaliste du Concours Microcontrôleur

Conseillé: