İçindekiler:

LoL Shield Audio Spectrum VU Meter: 4 Adım (Resimlerle)
LoL Shield Audio Spectrum VU Meter: 4 Adım (Resimlerle)

Video: LoL Shield Audio Spectrum VU Meter: 4 Adım (Resimlerle)

Video: LoL Shield Audio Spectrum VU Meter: 4 Adım (Resimlerle)
Video: Heated Acetone to Smooth Polycarbonate 2024, Kasım
Anonim
LoL Shield Ses Spektrumu VU Metre
LoL Shield Ses Spektrumu VU Metre

Bu, Arduino için LoL Shield kullanan bir ses spektrumu VU ölçerdir. LoL Shield, Arduino'ya kalkan olarak uyan ve Charlieplexing olarak bilinen verimli bir yöntemle kontrol edilen 14 x 9 LED matrisidir. Jimmie P. Rodgers tarafından tasarlanmıştır. Bu proje, Arduino için bir ses sinyalini analiz etmek, frekans bantlarına bölmek ve bu bilgiyi LoL Shield üzerinde görüntülemek için bir Fast Fourier Transform kütüphanesi kullanır. Arduino mikrodenetleyici, hızlı bir Fourier dönüşümünü hesaplamak için yeterince hızlıdır. Adının hakkını veriyor ve şaşırtıcı derecede hızlı ve doğru. Tüm iş mikrodenetleyici tarafından yapıldığından, pil kullanırsanız bu proje tamamen taşınabilir. Bu projenin web sayfası şu adreste bulunmaktadır: https://andydoro.com/vulol/ & 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;gt; Gerekli parçalar:

  • LoL Kalkanı
  • Arduino (Diavolino önerilir)
  • ses jakı (erkek mono 1/8" telefon fişi kullandım)
  • Arduino kodu
  • güç kaynağı (DC güç kaynağı, USB kablosu, 9V pil, vb.)

1. Adım: LoL Shield'i Birleştirin

LoL Kalkanını Birleştirin
LoL Kalkanını Birleştirin

LoL Shield'i monte etmek için buradaki talimatları izleyin. Bak, bu hiç uzun sürmedi!

2. Adım: Telleri Ses Jakına Lehimleyin

Ses Jakına Lehim Telleri
Ses Jakına Lehim Telleri

Radioshack'te adı verilen bir erkek mono 1/8 telefon fişi kullanıyorum, ancak ses sistemi kurulumunuz için uygun olan herhangi bir ses kablosunu kullanabilirsiniz. İsterseniz bir mikrofon kullanabilirsiniz. Bu tür fiş için, İki kablo lehimledim. Kırmızı ve siyah kullandım. LoL Shield, girişler için analog pin 4 ve 5'i serbest bırakır. Kodum pin 5'i kullanır. Kırmızı kabloyu LoL Shield'in analog pin 5'ine ve siyah kabloyu GND'ye bağlayabilirsiniz. Lehimlemenize gerek yok, sadece teli geçirip büktüm.

Adım 3: Arduino'yu Programlayın

Arduino Programı
Arduino Programı

Şimdi Arduino'yu LoL Shield'i kontrol edecek şekilde programlamamız gerekiyor.

Standart Arduino'da pin 13'e bağlı yeşil yüzey montajlı LED nedeniyle LED'ler üzerinde "gölgelenme" etkilerini önlemek için LoL Shield'i kontrol etmek için Diavolino kullanılması önerilir, ancak standart bir Arduino iyi çalışacaktır.

Bu, iki Arduino kitaplığı gerektirir: - Arduino forumunda bulunan FFT kitaplığı - LoL Shield için Charlieplexing kitaplığı

Arduino için kitaplık kurmak, daha önce yapmadıysanız biraz göz korkutucu olabilir, ancak iyi yapacaksınız!

Arduino kitaplıklarını yükleme talimatlarını buradan takip edin:

www.arduino.cc/en/guide/libraries

FFT kitaplığı, ses sinyalini 64 frekans bandında keser. LoL Shield 14 x 9 LED'dir. 64 frekans bandının ortalamasını 14 frekans bandında toplarız. Bazı verileri atıyoruz çünkü 14, 64'e eşit olarak bölünmez, ama neyse. Her frekans aralığının değeri 0'dan 9'a yeniden eşlenir.

Aşağıdaki Arduino kodunu kopyalayabilir, kodu GitHub'dan alabilir (önerilir) veya kütüphaneleri ve Arduino kodunu içeren. ZIP dosyasını indirebilirsiniz.

İşte GitHub bağlantısı:

github.com/andydoro/LoLShield-FFT

Arduino kodu aşağıdadır:

/* LoL Shield v0.9 için FFT, Andy Doro tarafından https://andydoro.com/FFT kitaplığına ve Arduino forumlarından alınan koda ve LoL Shield için Charlieplexing kitaplığına dayanmaktadır. */

#include "Charliplexing.h"

#include "fix_fft.h"

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

int i=0, değer;

geçersiz kurulum() { LedSign::Init(); //LoL Shield'i başlatır }

boşluk döngüsü () {

for (i=0; i < 128; i++){ val = analogRead(AUDIOPIN); veri = değer; im = 0; };

fix_fft(veri, im, 7, 0);

for (i=0; i< 64;i++){ data = sqrt(data * data + im * im); // bu dizideki değerlerin mutlak değerini alır, yani biz sadece pozitif sayılarla uğraşıyoruz };

// (i=0; i<14; i++) { data_avgs = data[i*4] + data[i*4 + 1] + data[i*4 + 2] + data[için ortalama çubuklar birlikte ben*4 + 3]; // birlikte ortalama data_avgs = map(data_avgs, 0, 30, 0, 9); // LoL için değerleri yeniden eşle }

// LoLShield'ı ayarla

for (int x=0; x < 14; x++) { for (int y=0; y < 9; y++) { if (y < data_avgs[13-x]) { // 13-x çubukları çok düşük tersine çevirir yüksek frekanslar soldan sağa temsil edilir. LedSign::Set(x, y, 1); // LED'i aç } else { LedSign::Set(x, y, 0); // LED'i kapat } } }

}

Adım 4: Keyfini çıkarın!

Eğlence!!
Eğlence!!

&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; Ses jakını stereo cihazınıza, iPod'unuza, bilgisayarınıza vb. takın. Arduino'ya bir DC güç kaynağı, bilgisayarınızdan USB veya pillerle güç verin - bu tamamen taşınabilir. Bir şapkaya veya kemer tokasına koyabilirsiniz. Beyaz LED'ler o kadar parlak ki videoda yakalamak zor. Görünüşe göre onlardan mor alev çıkıyor! Arkanıza yaslanın ve keyfini çıkarın!

Mikrodenetleyici Yarışması
Mikrodenetleyici Yarışması
Mikrodenetleyici Yarışması
Mikrodenetleyici Yarışması

Mikrodenetleyici Yarışmasında Finalist

Önerilen: