Inhoudsopgave:

Hoe maak je een frequentie-audiovisualizer voor een kostuum (Arduino-project) - Ajarnpa
Hoe maak je een frequentie-audiovisualizer voor een kostuum (Arduino-project) - Ajarnpa

Video: Hoe maak je een frequentie-audiovisualizer voor een kostuum (Arduino-project) - Ajarnpa

Video: Hoe maak je een frequentie-audiovisualizer voor een kostuum (Arduino-project) - Ajarnpa
Video: Nenad Rakocevic Recode talk 2024, November
Anonim
Image
Image
Materialen en prijzen
Materialen en prijzen

In deze Instuctable zal ik tips, plannen en codes geven om een opwindende audiovisualizer te maken die is ingebouwd in een pak van glasvezelschuim. Onderweg zal ik handige stappen en extra codes delen die sommigen die arduino FFT-bibliotheken in hun projecten willen implementeren, waardevol kunnen vinden.

Stap 1: Materialen en prijzen

Voordat ik het schuimpak maakte, maakte ik eerst een array om te leren hoe ik de FFT-bibliotheek kon laten werken. De benodigde materialen zijn:

  1. 2x 30 neopixel WS2812B-strips………………………………………………………….$ 3,22 per strip
  2. Arduino uno (gebruikt Chinees)…………………………………………………………………… Reeds in bezit
  3. Sluit draden aan……………………………………………………………………………………. Reeds in bezit
  4. Externe voeding…………………………………………………………………………. Reeds in bezit
  5. Montageoppervlak (gebruikt karton)………………………………………………………… Reeds in bezit
  6. LM386 Audioversterkermodule…………………………………………………………..$8,98 voor 5 eenheden
  7. 3,5 mm stereo audio mannelijk naar AV 3-schroefs aansluiting vrouwelijke connector …… $ 6,50 voor 5 eenheden
  8. 3,5 mm stereo jack vrouwelijk naar vrouwelijk………………………………………………..$ 5,99 voor 6 eenheden
  9. Breadboard………………………………………………………………………………………… Reeds in bezit

Om uiteindelijk de setup voor een pak met microfoon over te nemen, is het volgende nodig:

  1. 19 neopixelstrip………………………………………………………………………… Knip uit 5 m van 300 LED's voor $ 26,67
  2. 5 neopixelstrips………………………………………………………………………….. Gesneden uit dezelfde rol
  3. Arduino nano (gebruikt Chinees)…………………………………………………………. $ 3,00 (5 voor $ 15)
  4. Sluit draden aan………………………………………………………………………………. Reeds in bezit
  5. Talentcell Oplaadbare 6000mAh Li-Ion Batterij………………………….$29.99
  6. 3,5 mm stereo audio mannelijk naar AV 3-schroefs terminal vrouwelijke connector ….. $ 6,50 voor 5 eenheden
  7. 3,5 mm stereo-aansluiting vrouwelijk naar vrouwelijk…………………………………………..$ 5,99 voor 6 eenheden
  8. Schakelaars……………………………………………………………………………………. Uit kapotte auto getrokken
  9. Een kostuum……………………………………………………………………………………. $ 50 voor diverse items

Stap 2: Montage en bedrading

Montage en bedrading
Montage en bedrading
Montage en bedrading
Montage en bedrading
Montage en bedrading
Montage en bedrading

Begin met twee strips van 30 WS2812 LED-strips en knip ze langs de snijlijnen tot 5 LED-lengtes strips. Lijm deze strips op een vlakke ondergrond. In mijn voorbeeld heb ik karton gebruikt. Sluit vervolgens de componenten aan zoals afgebeeld. Zorg ervoor dat er voldoende tijd wordt genomen om goede soldeerpunten te verzekeren. Om er zeker van te zijn dat ze allemaal correct werken, gebruik je de voorbeelden in de Neopixel-bibliotheek van Adafruit (het "Straintest"-voorbeeld werkt prima).

Stap 3: Arduino-code

Arduino-code
Arduino-code

Voor dit project zijn slechts twee bibliotheken nodig.

Voor de FFT gebruikte ik ArduinoFFT van Open Music Lab https://wiki.openmusiclabs.com/wiki/ArduinoFFT. Zorg ervoor dat u hun installatie-instructies precies volgt, anders werkt het niet. Nadat ik het correct had geïnstalleerd, kreeg ik nog steeds foutmeldingen over een "ongeldige bibliotheek", maar alles werkte nog steeds voor mij. Reageer als je herkent wat ik heb gemist. Voor de neopixels heb ik de NeoPixel-bibliotheek van Adafruit gebruikt (zoals eerder vermeld). Ik raad aan om de Library Manager in de arduino-software te gebruiken om te installeren.

Het SuitFFT-bestand is de code die op de Suit draait met alle extra invoer van mijn controller. LightShowFFT is voor de aux-ingang 60 LED-array.

Beide codes kunnen sneller worden uitgevoerd door N te verminderen. N in mijn voorbeelden is 256 en vond dat het meer dan geschikt is voor mijn projecten. Ik ontdekte experimenteel dat het volledige audiospectrum ver voorbij 9 kHz werkte, zoals te zien was in de volgende stap!

Stap 4: Wat de FFT doet?

Image
Image
Wat de FFT doet?
Wat de FFT doet?

Een FFT of Fast Fourier Transform neemt een signaal en zet het om in het frequentiedomein. Wat elk van de lampjes laat zien, is een frequentiebak. Aangezien de FFT een wiskundig complexe berekening is, kan men de code sneller laten lopen door het aantal steekproeven te beperken. De frequentieresolutie zal er echter onder lijden. Bij gebrek aan woorden is de FFT in de Arduino een evenwichtsoefening tussen: samplefrequentie, aantal samples, looptijd en meer. Ik moedig anderen aan om met de instellingen te spelen om te ontdekken wat het beste werkt voor hun eigen project.

Nu tijd om het pak te maken.

Stap 5: Kostuumtips

Kostuumtips
Kostuumtips
Kostuumtips
Kostuumtips
Kostuumtips
Kostuumtips

Mijn kostuum was gemaakt van schuim waar veel andere gepubliceerde Instrucatables het onderwerp beter hebben behandeld. Het verschil met de mijne was dat ik extra stappen nam voor bondo, glasvezel en verf. Tips daarvoor zijn als volgt.

  • Doe geweldig voorbereidend werk (afplakken, maskeren, enz.), want het maakt later een enorm tijdsverschil
  • Meng bondo en glasvezel altijd in kleine hoeveelheden
  • Gebruik Bondo om leegtes op te vullen
  • Gebruik glasvezelhars om af te dichten en te versterken
  • Gebruik glasvezeldoek om zwakke punten beter te verstevigen
  • Neem de tijd en wees geduldig met je werk
  • Voor schuren

    • 40-100 grit tot verwijderingsmateriaal
    • 100-400 korrel voor primervoorbereiding
    • 400-1000 korrel voor schuurprimer
    • 1000-3000 korrel voor het schuren van verf

Om de neopixel-strips te monteren, heb ik hete lijm gebruikt om de strips op hun plaats te bevestigen. Een paar uitdagingen zijn nu om het via een batterij te laten werken, microfoondetectie, bediening met een controller en meer.

Stap 6: Een controller maken of kiezen, deze aansluiten en coderen

Een controller maken of kiezen, deze aansluiten en coderen
Een controller maken of kiezen, deze aansluiten en coderen
Een controller maken of kiezen, deze aansluiten en coderen
Een controller maken of kiezen, deze aansluiten en coderen
Een controller maken of kiezen, deze aansluiten en coderen
Een controller maken of kiezen, deze aansluiten en coderen
Een controller maken of kiezen, deze aansluiten en coderen
Een controller maken of kiezen, deze aansluiten en coderen

Elke schakelaar of schakelaars kunnen worden gebruikt. Voor mijn project vond ik dat de raambediening van een 96 Honda Prelude prima werkte. Nadat ik de schakelaars uit hun behuizing had gehaald, gebruikte ik een multimeter die op continuïteitsmodus was ingesteld om te bepalen welke draad wat deed, zodra de schakelaars waren ingedrukt (merk op dat schakelaars soms de continuïteit verbreken). Ik besloot om het geschakelde venster te vergrendelen, de bedieningselementen te vergrendelen tegen onbedoelde klappen, het raam omhoog en omlaag voor helderheidsregelingen en de laatste schakelaar voor 'lichtstanden'.

Om de schakelaars goed te laten werken, zijn pull-down-weerstanden nodig. Normaal gesproken zullen weerstanden van 50-100 kΩ werken, maar een paar schakelaars moesten een veel lagere weerstand gebruiken (sommige rond de 300 Ω) om de spanning voldoende te veranderen zodat de Arduino de digitale ingang correct kon onderbreken (ongeveer minder dan 0,3 * Vcc voor laag en hoger dan 0,6*Vcc voor hoog). Iedereen die dit doet, moet schakelaar voor schakelaar gaan, bij voorkeur eerst met een breadboard om ervoor te zorgen dat de controller goed werkt.

Na het uitzoeken van de schakelaar, heb ik de componenten aan elkaar gesoldeerd met behulp van het getoonde diagram. Gebruik een printplaat om de componenten beter te fixeren. Raadpleeg de afbeelding voor een gedetailleerde look. De 19 LED-array gaat langs de ruggengraat van mijn pak en de andere aan de voorkant als een indicator van wat er aan de hand is.

Om de controller aan het pak te bevestigen, heb ik hete lijm gebruikt om het te plaatsen. Daarna heb ik kleinere schuimwiggen gemaakt en deze ook warm gelijmd om de controller te ondersteunen.

Stap 7: laatste hand

Laatste puntjes op de i
Laatste puntjes op de i
Laatste puntjes op de i
Laatste puntjes op de i
Laatste puntjes op de i
Laatste puntjes op de i

Snijd tot slot spleten in het schuim om de draad door te laten lopen. Zet de draden vast met hete lijm. Voor extraatjes kocht ik ook een paar extra items om "de deal te bezegelen". Ik dacht… als je er belachelijk uit wilt gaan zien in een licht pak, doe dan een extra stap!

Stap 8: Dat is het! (Plus tips voor het oplossen van problemen)

Dat is het! (Plus tips voor het oplossen van problemen)
Dat is het! (Plus tips voor het oplossen van problemen)

Bedankt voor het bezoeken van mijn instuctable en veel plezier, doe-het-zelvers!

Tips voor het oplossen van problemen uit projectervaring:

  • Als lichten raar doen (flikkerend licht, niet allemaal goed werkend, ongebruikelijke kleuren)

    • Slechte stroomtoevoer naar lampen

      • Meerdere voedingen
      • Rijg niet, dus neopixels kunnen samen
      • Leg extra hoogspanningsleidingen naar strips
    • Code probleem

      • Controleer of het aantal lampjes correct is
      • Controleer of de code de lichten en frequentiebakken correct weergeeft
    • Slechte voeding naar Arduino

      Verhoog de voeding

    • Spanning van Arduino naar neopixels uit

      Gebruik dezelfde voeding om beide van stroom te voorzien

  • Lichten aan maar geen FFT

    • Controleer de draad van de versterker en het versterkervermogen, de massa en de ingang
    • Verhogen/verlagen versterkerversterking
    • Slechte stroom naar lichten

Aanbevolen: