Mündəricat:

Wearable Tech Final Project - DJ Helmet: 6 Addım
Wearable Tech Final Project - DJ Helmet: 6 Addım

Video: Wearable Tech Final Project - DJ Helmet: 6 Addım

Video: Wearable Tech Final Project - DJ Helmet: 6 Addım
Video: 3D Hangouts – счастливого Хэллоуина! 2024, Noyabr
Anonim
Wearable Tech Final Layihəsi - DJ Helmet
Wearable Tech Final Layihəsi - DJ Helmet

Bu layihənin məqsədi, şou və vay faktoru üçün musiqiyə reaktiv LEDləri olan bir DJ dəbilqəsi hazırlamaqdır. Amazon.com -dan ünvanlı bir LED şeridi, motosiklet dəbilqəsi, Arduino uno və tel istifadə edirik.

Təchizat

Materiallar daxildir:

  • Ünvanlı LED şeridi
  • Motosiklet Dəbilqəsi
  • Arduino Uno
  • Tellər və lehimləmə dəmiri

Addım 1: LED -lərin səsə reaksiya verməsi

Səsə reaksiya vermək üçün LED şeridini sınayacağımız ilk addım üçün Sparkfun səs kartını istifadə edirik və çörək taxtası və tel istifadə edərək Arduino -ya bağlayırıq. Arduino proqramı ilə sınayaraq istifadə edə biləcəyimiz iki oxu əldə edirik. "Zarf" limanından gələn səsin amplitudası və "qapı" limanından ikili 1 /0 oxunuşu. Bu dəyişənləri ünvanlı led şeridi ilə müqayisə etmək üçün istifadə edin, sonra "qapı" birdir, LEDlər müəyyən bir rəng göstərir, zərf müəyyən bir səviyyədən yuxarı olduqda müəyyən bir rəng göstərir. Tam kod veriləcək.

Addım 2: Dəbilqəni formalaşdırmaq üçün LEDləri kəsin və lehimləyin

Dəbilqəni formalaşdırmaq üçün LEDləri kəsin və lehimləyin
Dəbilqəni formalaşdırmaq üçün LEDləri kəsin və lehimləyin
Dəbilqəni formalaşdırmaq üçün LEDləri kəsin və lehimləyin
Dəbilqəni formalaşdırmaq üçün LEDləri kəsin və lehimləyin
Dəbilqəni formalaşdırmaq üçün LEDləri kəsin və lehimləyin
Dəbilqəni formalaşdırmaq üçün LEDləri kəsin və lehimləyin

Layihəmdə, LEDləri dəbilqəni xaricdən əlavə üçbucaqlı X üslubunda əlavə etmək qərarına gəldim və bu dizaynın musiqinin çalma tərzi ilə daha yaxşı işləməsini planlaşdırıram. Beləliklə, bu addım, LED şeritlərini istədiyiniz uzunluğa kəsmək və küncləri düzəltmək üçün kəsik işarələrində bir -birinə lehimləməkdir. Bunu təxminən 10 dəfə etmək məcburiyyətində qaldım və xüsusilə kiçik tellərlə işləyərkən çox vaxt aparır. Bu addımdakı irəliləyiş budur

Addım 3: Dəbilqədəki LEDləri bağlayın və sınayın

Dəbilqədəki LEDləri bağlayın və sınayın
Dəbilqədəki LEDləri bağlayın və sınayın
Dəbilqədəki LEDləri bağlayın və sınayın
Dəbilqədəki LEDləri bağlayın və sınayın

Bu addımda kəsiklərin və lehimlərin düzgün işlədiyinə əmin olmaq üçün LED -ləri arduino, səs lövhəsi və kəsilmiş LED -lərə bağladım və sınadım.

Addım 4: Breadboard -dan Pulsuz Elektronika

Çörək lövhəsindən pulsuz elektronika
Çörək lövhəsindən pulsuz elektronika
Çörək lövhəsindən pulsuz elektronika
Çörək lövhəsindən pulsuz elektronika
Çörək lövhəsindən pulsuz elektronika
Çörək lövhəsindən pulsuz elektronika

Bu addımda bütün elektronikanı çörək taxtasından çıxarmağa diqqət etdim. Lehimlənməli olan bütün telləri lehimlədim və dəbilqə tellərini uzun müddət uzatdım ki, Arduino -ya bağlı olan dəbilqə çubuğunu geyə biləsiniz. Anlaya bilmədiyim ən vacib şey xarici güc idi, batareyaları fərqli konfiqurasiyalarda sınadım amma heç bir şey mənə lazım olan nəticəni verməzdi, bəziləri işıqları dəli edər, bəziləri isə fərqli rəngdə edərdi. Təəssüf ki, bu, dövrələr haqqında biliklərimdən qaynaqlana bilər, amma Arduinonun gücünü kompüter lövhəsindən almağa qərar verdim. Səs lövhəsi bir batareya dəsti ilə təchiz edilmişdir və yaxşı işləyir

Addım 5: Son Konfiqurasiya

Son Konfiqurasiya
Son Konfiqurasiya

Bu son addım üçün, səs kartından gələn dəyərləri oxudum və hər şeyi çörək taxtasından çıxarılan birini dəyişdirən yeni dəyərlərə uyğun olaraq kodu dəyişdirdim. LED şeridlərini kaskaya yapışdırdım ki, lentə alınmazdan əvvəl yenidən sınaqdan keçirim.

Addım 6: Kod (Arduino)

// NeoPixel Ring sadə eskiz (c) 2013 Shae Erisson

// GPLv3 lisenziyası altında digərləri ilə uyğun olaraq buraxılmışdır

// Adafruit NeoPixel kitabxanası

#daxil edin

#ifdef _AVR_ #include // 16 MHz Adafruit Biblo üçün tələb olunur #endif

// Arduino -da hansı pin NeoPixel -ə bağlıdır?

#define PIN 3 // Trinket və ya Gemma -da bunu 1 -ə dəyişməyi təklif edin

// Arduino -ya neçə NeoPixel qoşulub?

#define NUMPIXELS 166 // Populyar NeoPixel üzük ölçüsü

Adafruit_NeoPixel pikselləri (NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);

#define DELAYVAL 500 // Piksellər arasında fasilə müddəti (milisaniyələrdə)

boş quraşdırma () {

#if müəyyən edildikdə (_ AVR_ATtiny85_) && (F_CPU == 16000000)

clock_prescale_set (clock_div_1); #endif // Trinket-ə məxsus kodun SONU.

piksel.begin (); // NeoPixel zolaq obyektini İNTİTİAL EDİN (TƏLƏBLİ)

Serial.begin (9600); }

boşluq döngəsi () {

int sensorValue = analogRead (A1);

int sensorValue2 = digitalRead (7); Serial.println (sensorValue); // gecikmə (5); //piksellər.arıq (); // Bütün piksel rənglərini 'off' olaraq təyin edin

əgər (sensorValue2 == 1) {

for (int i = 0; i <28; i ++) {piksel.setPixelColor (i, 15, 0, 50);

}

for (int i = 48; i <81; i ++) {piksel.setPixelColor (i, 15, 0, 50);

}

for (int i = 102; i <129; i ++) {piksel.setPixelColor (i, 15, 0, 50);

}

for (int i = 148; i <166; i ++) {piksel.setPixelColor (i, 15, 0, 50); }} ////////////////////////////// başqa {üçün (int i = 0; i <28; i ++) {piksel.setPixelColor (i, 0, 0, 0);

}

for (int i = 48; i <81; i ++) {piksel.setPixelColor (i, 0, 0, 0);

}

for (int i = 102; i <129; i ++) {piksel.setPixelColor (i, 0, 0, 0);

}

for (int i = 148; i <166; i ++) {piksel.setPixelColor (i, 0, 0, 0); }} ///////////////////////////// (sensValue == 3 || sensorValue == 2) {for (int i = 29; i <47; i ++) {piksel.setPixelColor (i, 255, 0, 0);

}

for (int i = 82; i <101; i ++) {piksel.setPixelColor (i, 255, 0, 0);

}

for (int i = 130; i <148; i ++) {piksel.setPixelColor (i, 255, 0, 0);

} piksel.show (); } if (sensorValue> 3) {for (int i = 29; i <47; i ++) {piksel.setPixelColor (i, 0, 155, 155);

}

for (int i = 82; i <101; i ++) {piksel.setPixelColor (i, 0, 155, 155);

}

for (int i = 130; i <148; i ++) {piksel.setPixelColor (i, 0, 155, 155);

}

piksel.show (); } başqa {üçün (int i = 29; i <47; i ++) {piksel.setPixelColor (i, 0, 0, 0);

}

for (int i = 82; i <101; i ++) {piksel.setPixelColor (i, 0, 0, 0);

}

for (int i = 130; i <148; i ++) {piksel.setPixelColor (i, 0, 0, 0);} piksel.şou (); }}

Tövsiyə: