Inhoudsopgave:

CRAZY L.O.L SPECTRUM ANALYZER - Ajarnpa
CRAZY L.O.L SPECTRUM ANALYZER - Ajarnpa

Video: CRAZY L.O.L SPECTRUM ANALYZER - Ajarnpa

Video: CRAZY L.O.L SPECTRUM ANALYZER - Ajarnpa
Video: CRAZY L.O.L SPECTRUM ANALYZER 2024, November
Anonim
CRAZY L. O. L SPECTRUM ANALYZER
CRAZY L. O. L SPECTRUM ANALYZER
CRAZY L. O. L SPECTRUM ANALYZER
CRAZY L. O. L SPECTRUM ANALYZER

Vandaag wil ik delen hoe je een audiospectrumanalysator maakt - 36 banden door 4 LoL Shields samen te combineren. Dit gekke project gebruikt een FFT-bibliotheek om een stereo-audiosignaal te analyseren, om te zetten naar frequentiebanden en de amplitude van deze frequentiebanden weer te geven op 4 x LoL Shields.

Bekijk de onderstaande video voordat u aan de slag gaat:

Stap 1: DINGEN DIE WE NODIG HEBBEN

De belangrijkste elektronische componenten zijn zoals hieronder:

  • 4 stuks x Arduino Uno R3.
  • 4 stuks x LoLShield-printplaat. PCBWay (Full feature custom PCB prototype service) ondersteunde me met deze LoLShield printplaten.
  • 504st x LED, 3 mm. Elke LoLShield heeft 126 LED's nodig en we kunnen kiezen uit 4 verschillende led-kleuren en -types (diffuus of niet-diffuus).
  • 1 stks x Draagbare Oplader Power Bank Batterij 10000/20000 mAh.
  • 4 stuks x mannelijke kop 40pin 2,54 mm.
  • 2 stuks x USB Type A/B-kabel. Een wordt gebruikt voor Arduino-programmering, de andere is voor het voeden van de Arduino vanaf een powerbank.
  • 1 stks x 3,5 mm vrouwelijke stereo audio-aansluiting.
  • 1 stuks x 3,5 mm 1 mannelijke naar 2 vrouwelijke audiosplitteradapter of multi-hoofdtelefoonaudiosplitter.
  • 1 stuks x 3,5 mm stereo audio-aansluiting mannelijk-mannelijk connectorkabel.
Afbeelding
Afbeelding
  • 1m x 8P Rainbow Ribbon-kabel.
  • 1 m x twee kernen voedingskabel.
  • 1 stuks x helder acryl, maat A4.

Stap 2: SCHEMA

SCHEMATISCH
SCHEMATISCH

De LoLShield is een 9x14 charlieplexing LED-matrix voor de Arduino en dit ontwerp bevat GEEN stroombeperkende weerstanden. De LED's zijn individueel adresseerbaar, dus we kunnen ze gebruiken om informatie weer te geven in een 9×14 led-matrix.

Het LoL Shield laat D0 (Rx), D1 (Tx) en analoge pinnen A0 tot A5 vrij voor andere toepassingen. Onderstaande afbeelding toont het gebruik van Arduino Uno-pinnen voor dit project:

Afbeelding
Afbeelding

Mijn audiospectrumanalyser heeft 4 x (Arduino Uno + LoLShield). De voeding en stereo audio jack 3,5 mm zijn aangesloten zoals onderstaand schema:

Afbeelding
Afbeelding

Stap 3: LOL SHIELD PCB & LED SOLDEREN

1. LoL SHIELD-printplaat

. U kunt naar PCB-ontwerp verwijzen op: https://github.com/jprodgers/LoLshield door Jimmie P. Rodgers.

Afbeelding
Afbeelding

. PCBWay ondersteunde mij deze LoLShield printplaten met snelle levering en hoge kwaliteit PCB.

Afbeelding
Afbeelding

2. LED SOLDEREN:

. Elke LoLShield heeft 126 leds nodig en ik heb verschillende soorten en kleuren gebruikt voor 4x LoLShields als volgt:

  • 1 x LoLShield: diffuus led, kleur rood, 3mm.
  • 1 x LoLShield: diffuus led, kleur groen, 3mm.
  • 2 x LoLShield: niet-diffuus (helder) led, kleur blauw, 3mm.

. LoLShield PCB en LED voorbereiden

Afbeelding
Afbeelding

. Soldeer 126 LED op LoLShield PCB. We moeten de LED's op batterij controleren na het solderen van elke rij - 14 LED's

TOP LoLSHIELD

Afbeelding
Afbeelding

BODEM LoLSHIELD

Afbeelding
Afbeelding

. Een LoLShield afwerken en doorgaan met het solderen van 3 resterende LoLShield.

Afbeelding
Afbeelding

Stap 4: AANSLUITEN EN MONTEREN

. Soldeervoeding en audiosignaal naar 4xLoLShield. Een stereosignaal maakt gebruik van twee audiokanalen: links en rechts die zijn aangesloten op Arduino Uno op analoge pinnen A4 & A5.

  • A4: Linker audiokanaal.
  • A5: Rechter audiokanaal.
Afbeelding
Afbeelding

. Uitlijnen & monteren van 4 x Arduino Uno op de acrylplaat.

Afbeelding
Afbeelding

. 4 x LoLShield aansluiten op 4 x Arduino Uno.

Afbeelding
Afbeelding

. Lijm draagbare oplader powerbank en audio-aansluiting op acrylplaat

Afbeelding
Afbeelding

. Gedaan!

Afbeelding
Afbeelding

Stap 5: PROGRAMMERING

Raadpleeg hoe LoLShield werkt op basis van de Charlieplexing-methode en Fast Fourier Transform (FFT) op:

en.wikipedia.org/wiki/Charlieplexing

github.com/kosme/fix_fft

Voor Charlieplexing letten we op de "drie toestanden" van de Arduino digitale pinnen: "HIGH" (5V), "LOW" (0V) en "INPUT". De "INPUT"-modus zet de Arduino-pin in een toestand met hoge impedantie. Referentie bij:

www.arduino.cc/en/Tutorial/DigitalPins

In mijn project worden de audiofrequentiebanden weergegeven op 4 x LoL Shield en worden ze beschreven zoals hieronder weergegeven:

Afbeelding
Afbeelding

Elke Arduino leest het audiosignaal op het linker/rechterkanaal en voert de FFT uit.

for (i=0; i <64; i++) {Audio_Input= analogRead (RIGHT_CHANNEL); // Lees audiosignaal op rechterkanaal A5 - ARDUINO 1 & 2 //Audio_Input = analogRead (LEFT_CHANNEL); // Lees audiosignaal op linkerkanaal A4 - ARDUINO 3 & 4 Real_Number = Audio_Input; Imaginary_Number = 0; } fix_fft(Real_Number, Imaginary_Number, 6, 0); // Voer een snelle Fourier-transformatie uit met N_WAVE=6 (2^6=64) voor (i=0; i<32;i++) {Real_Number = 2*sqrt(Real_Number * Real_Number + Imaginary_Number * Imaginary_Number); }

. Arduino 1 - Toon amplitudefrequentiebanden 01 ~ 09 van rechterkanaal (A5).

for (int x=0; x < 14; x++) { for (int y=0; y < 9; y++) { if (x < Real_Number [y]) // Toon frequentiebanden 01 tot 09 { LedSign::Set (13-x, 8-y, 1); // LED AAN} else { LedSign::Set(13-x, 8-y, 0); // LED UIT } } }

. Arduino 2 - Toon amplitude frequentiebanden 10 ~ 18 van het rechter kanaal (A5).

for (int x=0; x < 14; x++) { for (int y=0; y < 9; y++) { if (x < Real_Number [9 + y]) // Toon frequentiebanden 10 tot 18 { LedSign::Set(13-x, 8-y, 1); // LED AAN} else { LedSign::Set(13-x, 8-y, 0); // LED UIT } } }

. Arduino 3 - Toon amplitudefrequentiebanden 01 ~ 09 van linkerkanaal (A4).

De code is hetzelfde als Arduino 1 en het linkerkanaal van het audiosignaal wordt aangesloten op Arduino op analoge pin A4.

. Arduino 4 - Toon amplitude frequentiebanden 10 ~ 18 van het linker kanaal.

De code is hetzelfde als Arduino 2 en het linkerkanaal van het audiosignaal wordt aangesloten op Arduino op analoge pin A4.

Stap 6: AFWERKEN

FINISH
FINISH
FINISH
FINISH
FINISH
FINISH
FINISH
FINISH

Deze draagbare spectrumanalysator kan rechtstreeks worden aangesloten op een laptop/desktop, mobiele telefoon, tablet of andere muziekspelers via de 3,5 mm stereo audio-aansluiting. Dit project lijkt gek, ik hoop dat je het leuk vindt!

Bedankt voor het lezen!!!

Aanbevolen: