Inhoudsopgave:

Muziekinteractieve flessenstandaard met verstelbare verlichting - Ajarnpa
Muziekinteractieve flessenstandaard met verstelbare verlichting - Ajarnpa

Video: Muziekinteractieve flessenstandaard met verstelbare verlichting - Ajarnpa

Video: Muziekinteractieve flessenstandaard met verstelbare verlichting - Ajarnpa
Video: Inmu Relax - Interactieve en meditatieve muziek 2024, Juli-
Anonim
Image
Image
Muziekinteractieve flessenstandaard met verstelbare verlichting
Muziekinteractieve flessenstandaard met verstelbare verlichting
Muziekinteractieve flessenstandaard met verstelbare verlichting
Muziekinteractieve flessenstandaard met verstelbare verlichting

Enige tijd geleden bestelde een vriend van mij een 16 Bit LED-ring om mee te knutselen, en daarbij kwam hij op het idee om er een flesje op te plaatsen. Toen ik het zag, was ik gefascineerd door het uiterlijk van het licht dat de fles verlichtte en herinnerde ik me het geweldige project "Mc Lighting" van de Hackaday-gebruiker Tobias Blum:

hackaday.io/project/122568-mc-lighting

Een aspect van zijn project was het aansturen van WS2812 LED's via een zelfgeschreven webinterface zonder het gebruik van een externe dienst. Geïnspireerd door zijn benadering van het besturen van een LED-ring, besloot ik om die twee ideeën te combineren en naar een hoger niveau te tillen. In mijn gedachten had ik een flessenstandaard voor maximaal drie flessen, bestuurbaar via een lokale webpagina, met verschillende verlichting modi, waaronder modi die interageren met ambient-muziek. Om een draagbaar apparaat te maken, wordt het aangedreven door een Li-Ion-batterijcel.

In deze instructable ga ik door het bouwproces en leer je over de onderliggende functie. Daarna zou je in staat moeten zijn om je eigen versie te bouwen en een idee te hebben over hoe je webcontrol aan een project kunt toevoegen zonder een externe dienst te gebruiken.

Stap 1: Bouwopties

Als het gaat om de elektronica van dit project, kun je een NodeMCU-bord gebruiken, dat gemakkelijk te gebruiken en vrij goedkoop is, of je kunt je eigen bord bouwen zoals ik. Dit heeft geen bijzonder voordeel, ik had net een ESP8226-12E-chip liggen en besloot deze te gebruiken, zodat ik het NodeMCU-bord kon houden voor snelle prototyping. Er is alleen een groot verschil: je hebt een 3.3V USB naar Serial board nodig om het zelfgemaakte controller board te programmeren. Ondanks dat maakt het niet uit welk type je kiest, houd er wel rekening mee als het gaat om de benodigde onderdelen.

Er is echter een optie die het verschil maakt: de muziekmodus. Als u besluit om het op te nemen, kan de flessenstandaard worden gebruikt als een VU-meter en kan bovendien de kleur van de LED's veranderen wanneer de bas van de muziek een bepaalde drempel bereikt. Dit vereist wel wat extra hardware. Je moet een versterker bouwen die de output van een condensatormicrofooncapsule en een laagdoorlaatfilter voor de basfrequenties versterkt. Hoewel dit misschien moeilijk klinkt, is het dat echt niet. Het vereist geen speciale onderdelen en ik raad ten zeerste aan om dit circuit op te nemen, omdat het het apparaat behoorlijk verbetert.

Stap 2: Benodigde onderdelen en materialen

Benodigde onderdelen en materialen
Benodigde onderdelen en materialen

De zaak:

Misschien is het moeilijkste deel van dit project het geval. Omdat ik iets nieuws wilde proberen, besloot ik MDF-platen met een dikte van 18 mm te gebruiken en deze te schilderen. In vergelijking met andere houtsoorten/materialen heeft MDF het voordeel dat het oppervlak bijzonder glad kan worden geschuurd en dat de lak er daardoor extreem glanzend uit kan zien. Daarnaast heb je wat plexiglas nodig met een dikte van 4 mm als afdekking van de LED-ringen.

De kast heeft een lengte van 33 cm en een breedte van 9 cm, dus ik raad een bord aan met de volgende afmetingen:

MDF-plaat 400 x 250 x 18 mm

De LED-ringafdekkingen hebben een diameter van ongeveer 70 mm, dus uw plaat van plexiglas moet minimaal de volgende afmetingen hebben:

Acrylplaat 250 x 100 x 4 mm

Om het te schilderen heb ik zelf 125 ml witte acrylverf en 125 ml glanzende blanke lak. Verder raad ik je aan om een schuimroller te gebruiken, omdat je hierdoor de verf gelijkmatiger kunt aanbrengen. Voor het schuurgedeelte heb ik een vel schuurpapier gebruikt met een korrel van 180, een met 320 en een met 600.

Elektronica:

Voor de elektronica heb je drie 16 Bit WS2812 LED-ringen nodig. Wees voorzichtig, want ik heb twee soorten 16-bits LED-ringen gevonden, je hebt degene nodig met de grotere diameter (ongeveer 70 mm), en dus de grotere opening tussen de LED's.

Voor de stroomvoorziening heb je een Li-Ion batterijcel nodig, een bijbehorende oplader en een schakelaar. Daarnaast heb je een 3,3 V spanningsregelaar met lage uitvalspanning (LDO) en twee condensatoren nodig om de microcontroller van stroom te voorzien. Bij stap 7 leg ik uit waarom je de LDO-regelaar nodig hebt.

Als je besluit om de optionele muziekversterker en filterschakeling te bouwen, heb je een Op-Amp en enkele passieve componenten nodig. En als je ervoor kiest om je eigen besturingseenheid te maken, heb je de ESP-chip, een breakout-bord, enkele weerstanden, een knop en enkele pinnen nodig.

En ik raad ten zeerste een stuk perfboard aan om alles erop te solderen.

LED-ring

3.7V Li-Ion-cel (ik heb een van het type TW18650 uit een ongebruikt batterijpakket gered)

Li-Ion-oplader

Switch (Niets bijzonders, ik heb een oude gebruikt die ik heb gered van een kapotte set luidsprekers)

LDO spanningsregelaar (daarnaast de condensatoren genoemd in datasheet: 2 x 1uF keramische condensator)

perfboard

Muziekcircuit (optioneel):

Volgens schema

Microcontroller:

KnooppuntMCU

ESP8266 12E (adapterplaat, knop, weerstanden en pinnen volgens schema)

USB naar serieel (vereist om zelfgemaakte controllerkaart te programmeren, als je er al een hebt, hoef je geen andere te kopen)

Stap 3: Frezen van de zaak

De zaak frezen
De zaak frezen
De zaak frezen
De zaak frezen
De zaak frezen
De zaak frezen

Een vriend van mij bouwde zelf een MP-CNC en was zo vriendelijk om de twee MDF-onderdelen en de drie acrylringen voor mij te frezen. De houten delen zijn de boven- en onderkant van een pilvormige doos. Bovenop de doos zijn er drie plaatsen voor de LED-ringen en hun acrylafdekkingen. Omdat deze verdiepingen zijn ontworpen om slechts een fractie groter te zijn dan de PCB's, passen ze en zitten ze op hun plaats zonder lijm of schroeven. Hetzelfde geldt voor de acryl covers. Omdat ze een grotere diameter hebben dan de LED-ringen, worden ze op een rand boven de LED's geplaatst (zie afbeelding).

Stap 4: Voltooi de zaak

Voltooi de zaak
Voltooi de zaak
Voltooi de zaak
Voltooi de zaak
Voltooi de zaak
Voltooi de zaak
Voltooi de zaak
Voltooi de zaak

Je hebt misschien gemerkt dat er op dit moment verschillende dingen ontbreken in de gefreesde koffer. Dingen zoals gaten voor de kabels van de ring, een gat voor de USB-aansluiting en een zak voor de batterij. Bovendien, als je ervoor kiest om het muziekcircuit op te nemen, is er ook een gat voor de microfoon nodig. Daarnaast raad ik je aan om gaten onder de LED-ringen te boren, zodat je ze uit de behuizing kunt duwen. Ik heb een roterend slijpgereedschap gebruikt om de hierboven beschreven gaten toe te voegen.

Op de derde foto ziet u het "onderhoud" en de kabelgaten voor de ring. Zoals je misschien al gemerkt hebt, heb ik twee kabelgaten gemaakt. Dit was niet met opzet. Dit was in een vroeg stadium waar ik dacht dat de hoeken van de ringen onbelangrijk zouden zijn, maar dat is niet zo. Monteer ze alle drie met hun kabels aan dezelfde kant. Uiteindelijk heb ik ze aan de voorkant gemonteerd.

Belangrijk: Draag altijd een stofmasker bij het zagen, boren of frezen in MDF. Hetzelfde geldt voor het schuren ervan.

Stap 5: De zaak afronden

De zaak afronden
De zaak afronden
De zaak afronden
De zaak afronden
De zaak afronden
De zaak afronden

Nu wordt de zaak geverfd. Voordat je dit doet, raad ik je aan een tutorial hierover te bekijken of te lezen, omdat dit moeilijker bleek te zijn dan ik dacht dat het was. Deze bevat alles wat u moet weten over het onderwerp.

Schuur eerst de buitenkant van de MDF-delen grondig. Ik heb hiervoor papier korrel 160 gebruikt. Daarna raden veel tutorials aan om het oppervlak, vooral aan de randen, af te dichten met een speciale MDF-primer. Ik heb dit deel overgeslagen omdat de primer vrij duur is en hoewel het resultaat niet zo goed is als het had kunnen zijn, zou ik het opnieuw doen.

Daarna kunt u beginnen met het schilderen van het oppervlak in de door u gewenste kleur. Ik besloot de mijne in helder wit te schilderen. Wacht tot de kleur droog is, schuur hem dan met fijn schuurpapier (ik gebruikte korrel 320), stof hem af en breng de volgende laag kleur aan. Herhaal dit proces totdat u tevreden bent met de dekking van de kleuring. Ik heb vier lagen kleur aangebracht.

Schuur na de laatste kleurlaag met een nog fijner schuurpapier dan voorheen (in mijn geval de korrel 600) en verwijder al het stof dat op het oppervlak achterblijft. Daarna kunt u de eerste laag van de glanzende blanke lak aanbrengen. Breng net als bij de kleur zoveel lagen aan als nodig zijn om je tevreden te stellen. Ik gebruikte er drie voor de bovenkant en de zijkanten, en twee voor de onderkant. Het resultaat zie je op een van de foto's. Hoewel het oppervlak gladder zou kunnen (meer schuren en MDF-primer), ben ik blij met het bereikte glanseffect.

Stap 6: De ringen voorbereiden

De ringen voorbereiden
De ringen voorbereiden
De ringen voorbereiden
De ringen voorbereiden

Parallel aan het droogproces van de eerste kleurlaag kun je de acrylglas ringen schuren. Daarna verspreiden deze ringen het door de LED-Rings uitgestraalde licht. Nu we het er toch over hebben, ik heb ervaren dat de PCB's van deze ringen een aantal ongewenste randen hebben van het productieproces, dus je moet ze misschien ontbramen. Anders passen ze niet in de kast.

Daarna moeten er wat draden aan de ringen worden gesoldeerd. Ik raad je aan om flexibele draad te gebruiken. Ik gebruikte een stijve en had het probleem dat ze de twee delen van de behuizing uit elkaar duwden, wat een lelijke buiging vereiste. Bovendien is de kans groter dat stijve draad breekt, wat resulteert in een vervelend soldeerproces, omdat je de bijbehorende ring en het controllerbord uit de behuizing moet halen.

Stap 7: Voeding

Stroomvoorziening
Stroomvoorziening

Een enkele Li-Ion-batterijcel wordt gebruikt als stroombron. Het wordt opgeladen via het laadcircuit. Dit circuit heeft een overontlading en overstroombeveiliging. Om het apparaat uit te schakelen is er een schakelaar ingebouwd die de positieve uitgang van het laadbord onderbreekt.

Omdat de maximale spanning van de batterijcel 4,2 V is, kan de ESP8266 niet rechtstreeks worden gevoed. De spanning is te hoog voor de 3,3V-microcontroller omdat deze alleen spanningen overleeft tussen 3,0V - 3,6V. Een low dropout (LDO) spanningsregelaar is een spanningsregelaar die zelfs werkt wanneer de ingangsspanning dicht bij de gespecificeerde uitgangsspanning ligt. Dus een uitvalspanning van 200 mV voor een 3,3V LDO betekent dat hij 3,3V levert zolang de ingangsspanning hoger is dan 3,5V. Wanneer het deze waarde onderschrijdt, begint de uitgangsspanning af te nemen. Omdat de ESP8266 werkt met spanningen tot 3,0 V, werkt hij ook totdat de ingangsspanning van de LDO daalt tot ongeveer 3,3 V (de daling is niet lineair). Hierdoor kunnen we de controller via de batterijcel van stroom voorzien totdat deze volledig is ontladen.

Stap 8: Microcontrollerkaart

Microcontrollerkaart
Microcontrollerkaart

Als je een NodeMCU-bord gebruikt, is deze stap vrij eenvoudig. Sluit gewoon de 3.3V-uitgang en de aarde van de voeding aan op een van de 3V- en G-pinnen van de borden. Verder raad ik aan om het bord op een stuk perfboard te solderen, dit maakt het makkelijker om alles aan te sluiten.

Als je besluit om je eigen controllerkaart te bouwen, is de eerste stap om de ESP-chip op de adapterplaat te solderen. Voeg daarna alle componenten en verbindingen toe zoals weergegeven in het schema. De twee knoppen zijn nodig om de controller te resetten en te laten knipperen. Op de volgende foto's zie je misschien dat ik maar één knop gebruik. De reden daarvoor is dat ik er net een gevonden heb, dus in plaats van de knop voor GPIO0 gebruik ik twee pinnen en een jumper.

Je kunt mijn voltooide circuit zien bij de volgende stap.

Stap 9: Muziekcircuit (optioneel)

Muziekcircuit (optioneel)
Muziekcircuit (optioneel)
Muziekcircuit (optioneel)
Muziekcircuit (optioneel)
Muziekcircuit (optioneel)
Muziekcircuit (optioneel)

Als ingang voor de muziek wordt een eenvoudige condensatormicrofooncapsule gebruikt. Het wordt gevoed via een stroombegrenzende weerstand die is aangesloten op de 3,3V-stroomrail. In een notendop, de capsule werkt als een condensator, dus wanneer geluidsgolven het diafragma raken, verandert de capaciteit en analoog daaraan de spanning. Deze spanning is zo laag dat we hem met de ESP's analoog naar digitaal converter (ADC) nauwelijks kunnen meten. Om hier verandering in te brengen, versterken we het signaal met een Op-Amp. De versterkte uitgangsspanning wordt vervolgens gefilterd door een passief laagdoorlaatfilter van de eerste orde met een afsnijfrequentie van ongeveer 70 Hz.

Als u besluit een NodeMCU-board te gebruiken, kunt u de uitgang van de hierboven beschreven schakeling aansluiten op de A0-pin van het bord. Als u uw eigen controllerkaart wilt bouwen, moet u een spanningsdeler aan het circuit toevoegen. De reden daarvoor zijn de ESP's aan boord van ADC die een maximale ingangsspanning van 1V hebben. De NodeMCU heeft deze spanningsdeler al ingebouwd, dus om de code en de versterker op beide borden te laten functioneren, heeft de zelfgemaakte deze ook nodig.

Stap 10: Voltooi en monteer de elektronica

Voltooi en monteer de elektronica
Voltooi en monteer de elektronica
Voltooi en monteer de elektronica
Voltooi en monteer de elektronica
Voltooi en monteer de elektronica
Voltooi en monteer de elektronica

Plaats eerst de LED-ringen in de daarvoor bestemde verdiepingen aan de bovenzijde van de behuizing. Sluit daarna de voeding, de microcontroller, de ringen en, als je het hebt gebouwd, het versterkercircuit volgens het schema aan.

Waarschuwing: Controleer voordat u dit doet nogmaals of u de stroom met de schakelaar hebt uitgeschakeld. Ik vergat dit en bakte tijdens het solderen een LDO-regelaar. Daarna ben je klaar om de elektronica in de behuizing te monteren.

Ik begon met het bevestigen van de batterijcel aan de behuizing met wat hete lijm. Daarna heb ik het laadcircuit gepositioneerd en gecontroleerd of ik een USB-kabel kon aansluiten of niet. Omdat ik hete lijm niet vertrouwde om de kracht van het meerdere keren induwen van de kabel te weerstaan, hamerde ik voorzichtig dunne spijkers door de soldeerpads van de lader voor de ingangsspanning. Na de oplader heb ik de microfooncapsule op zijn plaats gelijmd.

Daarna heb ik wat gebogen draadpinnen gebruikt om de microcontroller te repareren. Met deze methode kan ik de controller uit de behuizing halen voor reparaties wanneer dat nodig is, zonder dat ik door hete lijm hoef te snijden en de MDF verpest.

Nu heb ik wat kabelbinders en gebogen draadpinnen gebruikt om de draden te monteren. Het laatste wat je moet doen, is het plaatsen van de acryl afdekringen. Wees voorzichtig terwijl u dit doet, zodat u de lak niet beschadigt, aangezien dit een vrij strakke pasvorm is. Mogelijk moet u zelfs de binnen- en/of buitendiameter van de acrylringen verkleinen, omdat de MDF-plaat wat verf heeft geabsorbeerd en de verdieping dus wat kleiner is geworden.

Stap 11: De microcontroller knipperen

De microcontroller knipperen
De microcontroller knipperen

Na het voltooien van de hardware-build, is het enige dat overblijft het flashen van de software. Ik heb daarvoor de Arduino IDE gebruikt. Maar voordat u de controller kunt programmeren, moet u enkele bibliotheken toevoegen en het juiste bord selecteren.

Bibliotheken

U kunt de IDEs Library Manager gebruiken (Sketch -> Include Libraries -> Mange Libraries) om ze toe te voegen, of u downloadt en verplaatst ze naar uw IDEs-bibliotheekmap. Ik raad de manager aan omdat het handiger is en je daar alle benodigde bibliotheken kunt vinden.

DNSServer van Kristijan Novoselic (nodig voor WiFiManager)

WiFiManager van tzapu en tablatronix (opent een AP waar u de inloggegevens van uw lokale WiFi kunt invoeren)

WebSockets van Markus Sattler (noodzakelijk voor de communicatie tussen gebruikersapparaat en flessenstandaard)

Adafruit NeoPixel van Adafruit (nodig voor het aansturen van de LED-ringen)

Bord

Het maakt niet uit welk type controllerkaart u wilt gebruiken, onder Tools -> Board selecteert u NodeMCU 1.0 (ESP-12E Module). Zorg ervoor dat de flitsgrootte is ingesteld op 4M (1M SPIFFS) en de uploadsnelheid op 115200.

Knipperend

Om het NodeMCU-bord te flashen, sluit je het gewoon aan op je computer, selecteer je de juiste poort en upload je het programma. Het flashen van het zelfgemaakte controllerbord is iets ingewikkelder. Sluit uw USB-naar-serieel-converter aan op de drie pinnen van het bord. Sluit GND en GND, RX en TX, en TX en RX aan. Om in de flitsmodus van de controller te komen, herstart deze met de RST-knop en houd daarbij de GPIO0-knop ingedrukt. Zorg er daarna voor dat uw converterbord is ingesteld op 3.3V. Voltooi het proces door het programma te uploaden.

Belangrijk: Schakel uw apparaat in voordat u gaat knipperen.

Stap 12: Upload de webpagina

Upload de webpagina
Upload de webpagina
Upload de webpagina
Upload de webpagina
Upload de webpagina
Upload de webpagina

De bestanden die nodig zijn voor de webpagina worden opgeslagen in het flashgeheugen van de microcontrollers. Voor het eerste gebruik moet je ze handmatig uploaden. Om dit te doen, moet u het apparaat van stroom voorzien (misschien moet u het eerst opladen). De LED's moeten rood branden (vanwege mijn camera lijkt dit op de foto oranje), wat betekent dat de flessenstandaard niet is aangesloten op een netwerk. Na korte tijd zou een WiFi-toegangspunt met de naam "bottleStandAP" moeten openen. Het standaardwachtwoord is "12345678", u kunt dit wijzigen in het ino-bestand. Verbind je smartphone/tablet/laptop ermee. Er zou een melding moeten verschijnen die u doorstuurt naar een webpagina. Als zoiets niet gebeurt, opent u gewoon uw browser en typt u 192.168.4.1. Klik op deze pagina op Wifi configureren en voer uw netwerkreferenties in. Daarna moet het toegangspunt sluiten en veranderen de LED's van kleur naar lichtblauw. Dit betekent dat het apparaat met succes verbinding heeft gemaakt met uw netwerk.

Nu moet u het IP-adres van het apparaat bepalen. Om dit te doen, kunt u het op uw computer aansluiten, de seriële monitor van de Arduino IDE openen (baudrate is 115200) en het apparaat opnieuw opstarten. U kunt ook de webpagina van uw wifi-router openen. Nadat u het IP-adres van het apparaat weet, opent u uw browser en typt u xxx.xxx.xxx.xxx/upload (waar de xs staat voor de bottlestands IP). Pak de bestanden uit de.rar en upload ze allemaal. Typ daarna gewoon het IP-adres van uw apparaat en de bedieningspagina zou moeten openen. En daarmee ben je klaar met het bouwen van je eigen flessenstandaard. Gefeliciteerd!

Stap 13: De webpagina

De webpagina
De webpagina
De webpagina
De webpagina

Op de webpagina kunt u uw flessenstandaard bedienen. Wanneer u de hoofdpagina opent, ziet u midden bovenaan drie blauwe cirkels. Hiermee kunt u selecteren welke ringinstellingen u wilt wijzigen. Het kleurenwiel verandert de kleur van de geselecteerde ringen wanneer u erop klikt. In het onderstaande veld ziet u de kleur die u hebt geselecteerd. Door op de willekeurige knop te drukken, worden de geselecteerde ringen in de willekeurige kleurmodus gezet. Dit betekent dat de kleur verandert wanneer een cyclus van de ademmodus voorbij is.

Op de tweede pagina kunt u de verschillende modi selecteren. Vaste kleur en vaste helderheid doen precies wat hun naam aangeeft. De ademmodus creëert een "adem"-effect, wat betekent dat de helderheid van de ringen gedurende een aangepaste tijd tot het maximum toeneemt en vervolgens tot het minimum afneemt. De cyclusmodus brandt slechts één LED voor een bepaalde tijd, dan licht de volgende op, dan de volgende enzovoort. De muziekdrempelmodus verandert de kleur wanneer de microfoon een signaal detecteert dat hoger is dan een op maat ingestelde drempel. Niet alleen muziek kan dit triggeren, bijvoorbeeld klappen ook. In de VU-metermodus is het aantal LED's dat oplicht afhankelijk van het volume van de bas van de muziek.

Opmerking: u kunt de linialen gebruiken zonder de bijbehorende modi te activeren. Bijvoorbeeld: als u de cyclusmodus gebruikt en de helderheid wijzigt via de liniaal van vaste helderheid, blijven de ringen in de cyclusmodus, maar veranderen ze hun helderheid overeenkomstig wat u instelt.

Stap 14: Hoe werkt dit allemaal?

Het functionele principe is vrij eenvoudig te begrijpen. Telkens wanneer u de webpagina opent, stuurt de ESP8266 de webbestanden naar uw apparaat. Wanneer u vervolgens iets op de pagina wijzigt, wordt een speciaal teken, meestal gevolgd door een geheel getal, via een websocket-verbinding naar de microcontroller gestuurd. De controller verwerkt deze gegevens vervolgens en past de verlichting dienovereenkomstig aan.

Het webgedeelte is geschreven in html, css en javascript. Om deze taak gemakkelijker te maken, heb ik het Materialise CSS-framework en jQuery gebruikt. Als je het uiterlijk van de website wilt veranderen, bekijk dan de documentatie van het framework. Als alternatief kunt u eenvoudig uw eigen pagina schrijven en deze uploaden. U hoeft alleen de websocket-verbinding tot stand te brengen en dezelfde gegevens te verzenden.

Aanbevolen: