Table of Contents

Audio Spectrum Visualizer

Autor: Vlad-Alexandru Proteasa

Introducere

Proiectul consta in realizarea unui dispozitiv care va prelua inputul audio si va genera un output vizual pe mai multe benzi led. Numarul de leduri si culoarea de pe fiecare banda va depinde de frecventele prezente in semnalul audio receptionat.

Descriere generala

Hardware Design

Lista componente
  1. Arduino UNO
  2. MSGEQ7
  3. Modul microfon
  4. Jack input (CJMCU-TRRS)
  5. 7 Benzi NeoPixel
  6. Rezistori: 1KΩ (6), 10KΩ (6), 56KΩ (3)
  7. Condensatori: 33pF (1), 0.1uF (3)
  8. Breadboard
  9. Fire jumper
  10. Cablu audio jack 3.5mm
Schema Electrica

Software Design

Codul sursa esti disponibil aici: GitHub

Dependinte

Singura dependinta este biblioteca Adafruit_NeoPixel folosita pentru a controla benzile led adresabile folosite in implementarea hardware a proiectului.

Setup initial
Intreruperi

Am configurat o intrerupere pentru butonul din marginea din stanga. Utilizatorul poate sa tina apasate oricare din celelalte patru butoane. Atunci cand butonul asociat intreruperii este apasat input-ul este citit si interpretat. Functia actioneaza asemanator cu un switch case. In functie de combinatia de butoane apasata setarile dispozitivului vor fi modificate asa cum este descris in diagrama de pe acest link.

Functia de generare a culorilor

Pentru reprezentarea culorilor am folosit modelul RGB. Functia primeste doi parametrii: banda led pe care se aplica modificarile si valoarea returnata de circuitul integrat. Daca indexul ledului este mai mic decat al doilea parametru atunci o sa fie calculata valorile pentru rosu, verde si albastru in functie de setarile specificate de utilizator si index. Led-ul care are index-ul egal cu valoarea celui de-al doilea parametru o sa aiba culoarea alba sau o sa fie complet stins. Toate celelalte leduri o sa fie stinse.

Main Loop

Rezultate Obtinute

In urmatoarele doua poze este prezentata implementarea hardware:

asv_hld.jpeg asv_leds.jpeg

Breadboard-ul pe care se afla butoanele pentru setari, mufa jack pentru conectarea cu o sursa de la care se preia inputul audio si circuitul MSGEQ7:

asv_bb.jpeg asv_msgeq7.jpeg

Folosind butoanele de pe breadboard pot fi ajustate urmatoarele setari:

Inregistrari video in care este demonstrata functionalitatea:

Jurnal

Bibliografie/Resurse