LoL Shield Audio Spectrum VU Meter: 4 βήματα (με εικόνες)
LoL Shield Audio Spectrum VU Meter: 4 βήματα (με εικόνες)
Anonim
LoL Shield Audio Spectrum VU Meter
LoL Shield Audio Spectrum VU Meter

Αυτός είναι ένας μετρητής VU φάσματος ήχου που χρησιμοποιεί το LoL Shield για Arduino. Το LoL Shield είναι μια μήτρα LED 14 x 9 που ταιριάζει στο Arduino ως ασπίδα και ελέγχεται μέσω μιας αποτελεσματικής μεθόδου γνωστής ως Charlieplexing. Σχεδιάστηκε από τον Jimmie P. Rodgers. Αυτό το έργο χρησιμοποιεί μια βιβλιοθήκη Fast Fourier Transform για το Arduino για να αναλύσει ένα ηχητικό σήμα, να το διασπάσει σε ζώνες συχνοτήτων και να εμφανίσει αυτές τις πληροφορίες στο LoL Shield. Ο μικροελεγκτής Arduino είναι αρκετά γρήγορος για να υπολογίσει έναν γρήγορο μετασχηματισμό Fourier. Ανταποκρίνεται στο όνομά του και είναι εκπληκτικά γρήγορο και ακριβές. Δεδομένου ότι όλη η εργασία γίνεται από τον μικροελεγκτή, αυτό το έργο είναι εντελώς φορητό εάν χρησιμοποιείτε μπαταρίες. Η ιστοσελίδα για αυτό το έργο βρίσκεται στη διεύθυνση https://andydoro.com/vulol/ & amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; Απαιτούμενα μέρη:

  • LoL Shield
  • Arduino (συνιστάται το Diavolino)
  • υποδοχή ήχου (χρησιμοποίησα αρσενικό μονό βύσμα τηλεφώνου 1/8 ")
  • Κωδικός Arduino
  • τροφοδοτικό (τροφοδοτικό DC, καλώδιο USB, μπαταρία 9V κ.λπ.)

Βήμα 1: Συναρμολογήστε το LoL Shield

Συναρμολογήστε το LoL Shield
Συναρμολογήστε το LoL Shield

Ακολουθήστε τις οδηγίες για τη συναρμολόγηση του LoL Shield εδώ. Δείτε, αυτό δεν άργησε καθόλου!

Βήμα 2: Συγκολλήστε καλώδια στην υποδοχή ήχου

Συγκόλληση καλωδίων στην υποδοχή ήχου
Συγκόλληση καλωδίων στην υποδοχή ήχου

Χρησιμοποιώ ένα αρσενικό μονό βύσμα τηλεφώνου 1/8 , όπως λέγεται στο Radioshack, αλλά μπορείτε να χρησιμοποιήσετε όποιο καλώδιο ήχου είναι κατάλληλο για τη ρύθμιση του ηχοσυστήματός σας. Εάν θέλετε, μπορείτε να χρησιμοποιήσετε μικρόφωνο. Για αυτόν τον τύπο βύσματος, Συγκόλλησα δύο καλώδια. Χρησιμοποίησα κόκκινο και μαύρο. Το LoL Shield αφήνει τους αναλογικούς ακροδέκτες 4 και 5 δωρεάν για είσοδο. Ο κωδικός μου χρησιμοποιεί τον πείρο 5. Μπορείτε να συνδέσετε το κόκκινο σύρμα στον αναλογικό πείρο 5 του LoL Shield και το μαύρο σύρμα στο GND Δεν χρειάζεται να το κολλήσετε, απλά έβαλα το σύρμα και το έσκυψα.

Βήμα 3: Πρόγραμμα Arduino

Πρόγραμμα Arduino
Πρόγραμμα Arduino

Τώρα πρέπει να προγραμματίσουμε το Arduino να ελέγχει το LoL Shield.

Συνιστάται η χρήση του Diavolino για τον έλεγχο του LoL Shield, προκειμένου να αποφευχθούν τα εφέ "ghosting" στα LED λόγω της πράσινης επιφάνειας LED που συνδέεται με τον ακροδέκτη 13 στο τυπικό Arduino, αλλά ένα τυπικό Arduino θα λειτουργήσει καλά.

Αυτό απαιτεί δύο βιβλιοθήκες Arduino: - τη βιβλιοθήκη FFT που βρίσκεται στο φόρουμ Arduino - τη βιβλιοθήκη Charlieplexing για το LoL Shield

Η εγκατάσταση βιβλιοθηκών για το Arduino μπορεί να είναι λίγο τρομακτική αν δεν το έχετε κάνει στο παρελθόν, αλλά θα τα καταφέρετε!

Ακολουθήστε τις οδηγίες για την εγκατάσταση βιβλιοθηκών Arduino εδώ:

www.arduino.cc/en/guide/libraries

Η βιβλιοθήκη FFT σπάει το ηχητικό σήμα σε 64 ζώνες συχνοτήτων. Το LoL Shield είναι 14 x 9 LED. Υπολογίζουμε το μέσο όρο των 64 ζωνών συχνοτήτων σε 14 ζώνες συχνοτήτων. Πετάμε ορισμένα δεδομένα επειδή το 14 δεν χωρίζεται σε 64 ομοιόμορφα, αλλά whatevs. Η τιμή κάθε εύρους συχνοτήτων επανατοποθετείται από το 0 στο 9.

Μπορείτε να αντιγράψετε τον παρακάτω κώδικα Arduino, να λάβετε τον κωδικό από το GitHub (συνιστάται) ή να κατεβάσετε το αρχείο. ZIP, το οποίο περιλαμβάνει τις βιβλιοθήκες και τον κώδικα Arduino.

Εδώ είναι ο σύνδεσμος GitHub:

github.com/andydoro/LoLShield-FFT

Παρακάτω είναι ο κωδικός Arduino:

/* FFT for LoL Shield v0.9 by Andy Doro https://andydoro.com/ με βάση τη βιβλιοθήκη FFT και τον κώδικα από τα φόρουμ Arduino και τη βιβλιοθήκη Charlieplexing για το 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 (); // Αρχικοποιεί την ασπίδα LoL}

void loop () {

για (i = 0; i <128; i ++) {val = analogRead (AUDIOPIN); δεδομένα = val; im = 0; };

fix_fft (data, im, 7, 0);

για (i = 0; i <64; i ++) {data = sqrt (data * data +im * im ); // αυτό παίρνει την απόλυτη τιμή των τιμών στον πίνακα, οπότε ασχολούμαστε μόνο με θετικούς αριθμούς}?

// μέσες γραμμές μαζί για (i = 0; i <14; i ++) {data_avgs = data [i*4] + data [i*4 + 1] + data [i*4 + 2] + data [i*4 + 3]; // μέσος όρος μαζί data_avgs = χάρτης (data_avgs , 0, 30, 0, 9); // τιμές remap για LoL}

// ορίστε το LoLShield

για (int x = 0; x <14; x ++) {για (int y = 0; y <9; y ++) {if (y <data_avgs [13-x]) {// 13-x αντιστρέφει τις ράβδους τόσο χαμηλά στις υψηλές συχνότητες αναπαρίστανται από αριστερά προς τα δεξιά. LedSign:: Σετ (x, y, 1); // ενεργοποιήστε τη λυχνία LED} else {LedSign:: Set (x, y, 0); // απενεργοποιήστε τη λυχνία LED}}}

}

Βήμα 4: Απολαύστε

Απολαμβάνω!!
Απολαμβάνω!!

& amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; gt; Συνδέστε την υποδοχή ήχου στο στερεοφωνικό, το iPod, τον υπολογιστή σας κλπ. Τροφοδοτήστε το Arduino με τροφοδοτικό DC, USB από τον υπολογιστή ή μπαταρίες- αυτό είναι εντελώς φορητό. Θα μπορούσατε να το βάλετε σε ένα καπέλο ή μια πόρπη ζώνης. Οι λευκές λυχνίες LED είναι τόσο φωτεινές που είναι δύσκολο να καταγραφούν σε βίντεο. Φαίνεται ότι υπάρχει μωβ φλόγα που βγαίνει από αυτά! Καθίστε αναπαυτικά και απολαύστε!

Διαγωνισμός μικροελεγκτών
Διαγωνισμός μικροελεγκτών
Διαγωνισμός μικροελεγκτών
Διαγωνισμός μικροελεγκτών

Τελικός στο Διαγωνισμό Μικροελεγκτών

Συνιστάται: