Indholdsfortegnelse:

Wearable Tech Final Project - DJ -hjelm: 6 trin
Wearable Tech Final Project - DJ -hjelm: 6 trin

Video: Wearable Tech Final Project - DJ -hjelm: 6 trin

Video: Wearable Tech Final Project - DJ -hjelm: 6 trin
Video: Battery Powering Your Wearable Electronics 2024, Juli
Anonim
Wearable Tech Final Project - DJ -hjelm
Wearable Tech Final Project - DJ -hjelm

Målet med dette projekt er at gøre en DJ -hjelm med LED'er reaktive på musik til show og wow -faktor. Vi bruger en adresserbar LED -strip fra Amazon.com samt en motorcykelhjelm, en Arduino uno og wire.

Forbrugsvarer

Materialer inkluderer:

  • Adresserbar LED -strimmel
  • Motorcykelhjelm
  • Arduino Uno
  • Tråde og loddejern

Trin 1: Få lysdioder til at reagere på lyd

I det første trin skal vi teste LED -strimlen for at reagere på lyd, vi bruger lydkortet fra Sparkfun og forbinder det med Arduino ved hjælp af et brødbræt og en ledning. Ved at teste med Arduino -softwaren får vi to aflæsninger, vi kan bruge. Amplituden af lyden, der kommer fra "Envelope" -porten og den binære 1 /0 -aflæsning fra "gate" -porten. Brug disse variabler til at kortlægge til den adresserbare ledstrimmel, så er "gate" på én, LED'erne viser en bestemt farve, når konvolutten er over et bestemt niveau, viser en bestemt farve. Den fulde kode vil blive leveret.

Trin 2: Skær og lodd LED'er til form på hjelmen

Skære og lodde LED'er til form på hjelmen
Skære og lodde LED'er til form på hjelmen
Skær og lodde LED'er til form på hjelmen
Skær og lodde LED'er til form på hjelmen
Skære og lodde LED'er til form på hjelmen
Skære og lodde LED'er til form på hjelmen

På mit projekt besluttede jeg at tilføje lysdioderne til hjelmen på en X -måde med ekstra trekanter på ydersiden, jeg planlægger at få det design til at fungere bedre med den måde, musikken spiller på. Så dette trin handler om at skære LED -strimlerne i de ønskede længder og lodde dem sammen på snitmærkerne for at lave hjørner. Jeg var nødt til at gøre dette cirka 10 gange, og det er meget tidskrævende, især når det drejer sig om små ledninger. Dette er fremskridtet på dette trin

Trin 3: Tråd og test lysdioderne på hjelmen

Tråd og test lysdioderne på hjelmen
Tråd og test lysdioderne på hjelmen
Tråd og test lysdioderne på hjelmen
Tråd og test lysdioderne på hjelmen

I dette trin ledte og testede jeg LED'erne til arduinoen, lydkortet og de afskårne LED'er for at sikre, at udskæringer og lodning fungerede korrekt

Trin 4: Gratis elektronik fra brødbræt

Gratis elektronik fra brødbræt
Gratis elektronik fra brødbræt
Gratis elektronik fra brødbræt
Gratis elektronik fra brødbræt
Gratis elektronik fra brødbræt
Gratis elektronik fra brødbræt

I dette trin fokuserede jeg på at få al elektronikken væk fra brødbrættet. Jeg lodde alle de tråde, der skulle loddes, og forlængede hjelmtrådene til at være lange, så du kan bære hjelmen, der er knyttet til Arduino. Det vigtigste, jeg ikke kunne finde ud af, var ekstern strøm, jeg prøvede batterier i forskellige konfigurationer, men intet ville give mig det resultat, jeg havde brug for, nogle ville få lysene til at gå amok, og nogle ville få dem til at være i forskellige farver. Desværre kan dette skyldes min viden om kredsløb, men jeg valgte at lade strømmen til Arduino komme fra pc -kortet. Lydkortet drives af et batteri, og det fungerer fint

Trin 5: Endelig konfiguration

Endelig konfiguration
Endelig konfiguration

for dette sidste trin læste jeg de værdier, der kom fra lydkortet og ændrede koden, så den matchede de nye værdier, der ændrede en, alt blev taget af brødbrættet. Jeg limede LED -strimlerne til hjelmen, hvor de før var blevet tapet ned, og til sidst testede jeg igen.

Trin 6: Kode (Arduino)

// NeoPixel Ring enkel skitse (c) 2013 Shae Erisson

// Udgivet under GPLv3 -licensen for at matche resten af

// Adafruit NeoPixel bibliotek

#omfatte

#ifdef _AVR_ #include // Påkrævet til 16 MHz Adafruit Trinket #endif

// Hvilken pin på Arduino er forbundet til NeoPixels?

#define PIN 3 // På Trinket eller Gemma foreslår du at ændre dette til 1

// Hvor mange NeoPixels er knyttet til Arduino?

#define NUMPIXELS 166 // Populær NeoPixel ringstørrelse

Adafruit_NeoPixel pixels (NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);

#define DELAYVAL 500 // Tid (i millisekunder) til pause mellem pixels

ugyldig opsætning () {

#if defineret (_ AVR_ATtiny85_) && (F_CPU == 16000000)

clock_prescale_set (clock_div_1); #endif // END for Trinket-specifik kode.

pixels.begin (); // INITIALISER NeoPixel -strimmelobjekt (påkrævet)

Serial.begin (9600); }

void loop () {

int sensorValue = analogRead (A1);

int sensorValue2 = digitalRead (7); Serial.println (sensorValue); // forsinkelse (5); //pixels.clear (); // Indstil alle pixelfarver til 'off'

hvis (sensorValue2 == 1) {

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

}

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

}

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

}

for (int i = 148; i <166; i ++) {pixels.setPixelColor (i, 15, 0, 50); }} ////////////////////////////////// andre {for (int i = 0; i <28; i ++) {pixels.setPixelColor (i, 0, 0, 0);

}

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

}

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

}

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

}

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

}

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

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

}

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

}

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

}

pixels.show (); } andet {for (int i = 29; i <47; i ++) {pixels.setPixelColor (i, 0, 0, 0);

}

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

}

for (int i = 130; i <148; i ++) {pixels.setPixelColor (i, 0, 0, 0);} pixels.show (); }}

Anbefalede: