Indholdsfortegnelse:
- Trin 1: Skumplade, batteripakke og tænd/sluk -kontakt
- Trin 2: Mikrocontroller og kredsløb
- Trin 3: Fiberoptiske lys
- Trin 4: Programmering
- Trin 5: Slutprodukt
Video: Fiberoptiske lamper i lærredstryk: 5 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:27
Dette projekt tilføjer et unikt spin på et standard lærredstryk. Jeg programmerede i 4 forskellige belysningstilstande, men du kan nemt tilføje flere. Tilstanden ændres, hver gang du slukker og tænder den i stedet for at have en separat knap for at minimere skader på rammen. Batterierne skal holde i mere end 50 timers brug - jeg er ikke rigtig sikker, men jeg lavede et lignende projekt til en ven, og den brugte 5x så mange lamper og har varet 20+ timer på et enkelt sæt batterier.
Materialer
- Lærredstryk med brugbar plads - jeg bestilte mit fra https://www.easycanvasprints.com, fordi de havde gode priser og en åben ryg. Den tykkere 1,5 "ramme var perfekt og gav mig meget plads til at bøje de fiberoptiske tråde. Derudover vil du have et billede, der giver dig 3" x 8 "brugbar plads til batteripakken og mikrokontroller og LED -strips
- LED strip lys - jeg brugte adresserbare WS2812 LED strips. Bliv ikke skræmt, de er virkelig nemme at bruge med FastLED- eller Neopixel -bibliotekerne! Du kan også bruge en hvilken som helst standard LED -strimmel, du vil bare ikke kunne styre hvert lysafsnit individuelt uden meget mere ledninger.
- Mikrocontroller - Jeg brugte en Arduino Uno, men du kan bruge næsten alt til dette projekt.
- Batteripakke - jeg bestilte denne fra eBay (fra Kina), og den havde titlen "6 x 1,5V AA 2A CELL Batteriholder"
- Fiberoptiske tråde - endnu en gang bestilt fra Kina på eBay - "PMMA Plastic Fiber Optic Cable End Grow Grow Light DIY DIY Decor" eller "PMMA End Glow Fiber Optic Cable for Star Ceiling Light Kit". Jeg brugte størrelser 1 mm og 1,5 mm, jeg anbefaler faktisk at bruge mindre end det.
- Tænd/sluk -switch - "SPDT On/On 2 Position Miniature Toggle Switches"
- Trådorganisationsklip - Disse hjælper med at holde de fiberoptiske tråde pæne og ryddelige.
- Skumplade, solid core konnektortråd, varmekrympeslange
Værktøjer
- Dremel - bruges til at rede tænd/sluk -kontakten i billedrammen. Dette kan måske opnås med en boremaskine og en virkelig stor smule, men jeg anbefaler det ikke.
- Loddejern - fastgørelse af ledninger til LED -strimlen
- Varm limpistol - bogstaveligt talt hvert trin i dette projekt
- Stor synål - til at stikke huller gennem lærredet og skumbræt til lysene
Trin 1: Skumplade, batteripakke og tænd/sluk -kontakt
Før alt andet skal du vedhæfte et stykke skumplade på bagsiden af lærredstrykket. Dette giver os en flot solid overflade at fastgøre alt andet til og hjælper med at holde de fiberoptiske tråde på plads. Brug bare en exacto -kniv eller kassefræser til at skære et stykke skumbræt i den rigtige størrelse og varmlim det ind mange steder. Jeg anbefaler at bruge sort skumplade, så det ikke tillader så meget lys at bløde igennem.
Jeg brugte dremel -boret, der ligner et normalt bor, men som faktisk er fantastisk til at fjerne materiale. Det er en af de bits, der bør komme med enhver dremel. Brug en dåse trykluft til at slippe af med savsmuld fra dremel.
Varm lim alt på plads. Sørg for, at batteripakken er fastgjort meget godt, fordi det kræver en god del kraft at isætte/fjerne et batteri, og du ikke vil have, at batteriholderen skal gå nogen steder.
Trin 2: Mikrocontroller og kredsløb
Jeg satte afbryderen foran Arduino UNO, så når du skifter kontakten, bruger ingenting strøm fra batteripakkerne. Dette skal hjælpe batterierne med at holde så længe som muligt, når projektet ikke er tændt. Arduino -tavler er notorisk dårlige til strømstyring - de bruger meget strøm, hvis de er tændt, selvom de ikke aktivt gør noget.
Tilslut den positive ende af batteripakken til VIN (spændingsindgang) på mikrokontrolleren, så den bruger controllerens indbyggede spændingsregulator til at få spændingen ned til den 5V, den har brug for. Hvis vi drev flere lys, skulle vi muligvis bruge vores egen spændingsregulator til dem, men UNO burde kunne håndtere 5 lysdioder.
Jeg brugte en modstand mellem dataudgangen og LED -strimlen til at udjævne signalet - uden modstanden kan du få tilfældige blinkende pixels. Modstandens størrelse betyder ikke rigtig noget, noget mellem 50Ω og 400Ω burde fungere.
Trin 3: Fiberoptiske lys
Efter nogle forsøg og fejl fandt jeg til sidst en god måde at få de fiberoptiske tråde gennem lærredet.
- Brug den største synål, du har til at stikke et hul gennem forsiden af lærredet og skumpladen. Jeg anbefaler at stikke hvert hul, du vil i starten, så du kan vende det om og se, hvor du kan/ikke kan placere dine kabelorganisationsklip
- Tag en nåletang og tag fat i den fiberoptiske streng mindre end en centimeter fra enden
- Stik den fiberoptiske streng gennem hullet, du lavede med en nål
- Før tråden gennem forskellige plastikclips, hvor den er lidt længere end nødvendigt - vi klipper den senere
- Med din varme limpistol på indstillingen LAV temperatur (hvis den har denne mulighed), skal du lægge en dråbe varm lim på den fiberoptiske streng, hvor den stikker gennem skumpladen. Alternativt kan du bruge de blå klæbrige ting. Den varme lim deformerer strengen en lille smule, men det ser ikke ud til at rode med de optiske kvaliteter for meget
- Skær tråden lidt væk fra lærredet ved hjælp af trådskærere.
For at fremskynde processen kan du stikke igennem mange fibre i træk, før du laver den varme lim. De bør generelt forblive på plads alene.
Vær forsigtig med ikke at bryde eller klemme de fiberoptiske tråde på bordet - de går i stykker, og hvis det gør tråden for kort, bliver du ked af det og skal gøre det igen. Brug batteripakken som en modvægt, så du kan have billedrammen mindre end halvdelen på skrivebordet.
Fordi jeg brugte hvidt skumplade i stedet for sort, var der meget lys, der skinner igennem, når lysdioderne var tændt. Som en løsning tapede jeg lidt aluminiumsfolie ind mellem lysene og lærredet.
Brug varmekrympeslange til at holde hvert bundt af fiberoptiske tråde sammen.
- Klip trådene til bundtet til omtrent samme længde
- Sæt sektionen gennem varmekrympeslange
- Brug en varmepistol eller loddejern til at krympe den. Hvis du bruger et loddejern, skal du bare lade siden af strygejernet let røre ved slangen, så krymper det. Det bør ikke smelte slangen, fordi den er designet til lidt varme.
Til sidst brugte jeg varm lim til at fastgøre enden af bundtet til hvert LED -lys. Jeg brugte meget varm lim, så fibrene faktisk fik lys fra hver rød/grøn/blå diode i lyset - når fibrene er virkelig tæt på lyset en "hvid" farve (som faktisk er rød og grøn og blå) så vil nogle fibre bare være røde, og nogle vil være grønne, i stedet for at alle er hvide. Dette kunne forbedres ved at bruge et stykke papir eller noget andet til at sprede det, men varm lim fungerede godt nok for mig.
Trin 4: Programmering
I programmeringen brugte jeg tre biblioteker
FastLED - et fantastisk bibliotek til styring af WS2812 LED -strips (og mange andre adresserbare LED -strips) -
Arduino Low Power - Jeg ved ikke, hvor meget strøm dette faktisk sparer, men det var super let at implementere og skulle hjælpe med at spare en lille smule strøm på funktionen, der bare er hvidt lys og derefter forsinkes for evigt.
EEPROM - Bruges til at læse/gemme projektets aktuelle tilstand. Dette gør det muligt for projektet at øge farvetilstanden hver gang du slukker og tænder det igen, hvilket eliminerer behovet for en separat knap for at ændre tilstanden. EEPROM -biblioteket installeres, når du installerer Arduino IDE.
Jeg brugte også en skitse til at blinke lysene, som en anden satte op. Det lyser tilfældigt op en pixel fra en basisfarve til en spidsfarve og derefter ned igen. https://gist.github.com/kriegsman/88954aae22b03a66… (den bruger også FastLED -biblioteket)
Jeg brugte også vMicro -plugin til Visual Studio - dette er en forstærket version af Arduino IDE. Den har masser af nyttige autofuldførelsesfunktioner og fremhæver problemer i din kode uden at skulle kompilere den. Det koster $ 15, men det er det hele værd, hvis du skal lave mere end et Arduino -projekt, og det tvinger dig til at lære om Visual Studio, som er et super kraftfuldt program.
(Jeg vedhæfter også koden.ino -fil, fordi Instructable hosting af en Github Gist ødelægger mange af de tomme mellemrum i filen)
Arduino -koden kører 4 farvetilstande på en Arduino UNO til nogle WS2812B LED -striplys ved hjælp af FastLED -biblioteket
#omfatte |
#omfatte |
#omfatte |
// FastLED -opsætning |
#definereNUM_LEDS4 |
#definePIN3 // Datapind til LED -strip |
CRGB -lysdioder [NUM_LEDS]; |
// Twinkle opsætning |
#defineBASE_COLORCRGB (2, 2, 2) // Grundlæggende baggrundsfarve |
#definePEAK_COLORCRGB (255, 255, 255) // Spidsfarve til at blinke op til |
// Beløb for at øge farven med hver sløjfe, når den bliver lysere: |
#defineDELTA_COLOR_UPCRGB (4, 4, 4) |
// Beløb for at reducere farven med hver sløjfe, når den bliver svagere: |
#defineDELTA_COLOR_DOWNCRGB (4, 4, 4) |
// Mulighed for at hver pixel begynder at lyse op. |
// 1 eller 2 = et par lysende pixels ad gangen. |
// 10 = masser af pixels, der lysner ad gangen. |
#definereCHANCE_OF_TWINKLE2 |
enum {SteadyDim, GettingBrighter, GettingDimmerAgain}; |
uint8_t PixelState [NUM_LEDS]; |
byte runMode; |
byte globalBright = 150; |
byte globalDelay = 20; // Forsinkelseshastighed for blinkende |
byte adresse = 35; // Adresse til lagring af kørselstilstand |
voidsetup () |
{ |
FastLED.addLeds (leds, NUM_LEDS); |
FastLED.setCorrection (TypicalLEDStrip); |
//FastLED.setMaxPowerInVoltsAndMilliamps(5, maxMilliamps); |
FastLED.setBrightness (globalBright); |
// Få tilstanden til at køre |
runMode = EEPROM.read (adresse); |
// Forøg runmode med 1 |
EEPROM.write (adresse, runMode + 1); |
} |
voidloop () |
{ |
switch (runMode) |
{ |
// Solid hvid |
case1: fill_solid (leds, NUM_LEDS, CRGB:: White); |
FastLED.show (); |
DelayForever (); |
pause; |
// Twinkle lidt langsomt |
case2: FastLED.setBrightness (255); |
globalDelay = 10; |
TwinkleMapPixels (); |
pause; |
// Glitrer hurtigt |
case3: FastLED.setBrightness (150); |
globalDelay = 2; |
TwinkleMapPixels (); |
pause; |
//Regnbue |
case4: |
RunRainbow (); |
pause; |
// Indeksér uden for område, nulstil det til 2, og kør derefter tilstand 1. |
// Når arduino genstarter, kører den tilstand 2, men i øjeblikket kører tilstand 1 |
Standard: |
EEPROM.write (adresse, 2); |
runMode = 1; |
pause; |
} |
} |
voidRunRainbow () |
{ |
byte *c; |
uint16_t i, j; |
mens (sandt) |
{ |
for (j = 0; j <256; j ++) {// 1 cyklus med alle farver på hjulet |
for (i = 0; i <NUM_LEDS; i ++) { |
c = Hjul (((i * 256 / NUM_LEDS) + j) & 255); |
setPixel (i, *c, *(c + 1), *(c + 2)); |
} |
FastLED.show (); |
forsinkelse (globalDelay); |
} |
} |
} |
byte * Wheel (byte WheelPos) { |
statisk byte c [3]; |
hvis (WheelPos <85) { |
c [0] = WheelPos * 3; |
c [1] = 255 - WheelPos * 3; |
c [2] = 0; |
} |
elseif (WheelPos <170) { |
WheelPos -= 85; |
c [0] = 255 - WheelPos * 3; |
c [1] = 0; |
c [2] = WheelPos * 3; |
} |
andet { |
WheelPos -= 170; |
c [0] = 0; |
c [1] = WheelPos * 3; |
c [2] = 255 - WheelPos * 3; |
} |
returnere c; |
} |
voidTwinkleMapPixels () |
{ |
InitPixelStates (); |
mens (sandt) |
{ |
for (uint16_t i = 0; i <NUM_LEDS; i ++) { |
hvis (PixelState == SteadyDim) { |
// denne pixel er i øjeblikket: SteadyDim |
// så vi overvejer tilfældigt at få det til at blive lysere |
hvis (random8 () <CHANCE_OF_TWINKLE) { |
PixelState = GettingBrighter; |
} |
} |
elseif (PixelState == GettingBrighter) { |
// denne pixel er i øjeblikket: GettingBrighter |
// så hvis det er i topfarve, skal du skifte til at blive svagere igen |
hvis (leds > = PEAK_COLOR) { |
PixelState = GettingDimmerAgain; |
} |
andet { |
// ellers skal du bare blive ved med at gøre det lysere: |
leds += DELTA_COLOR_UP; |
} |
} |
ellers {// bliver svagere igen |
// denne pixel er i øjeblikket: GettingDimmerAgain |
// så hvis det er tilbage til grundfarven, skal du skifte til konstant dæmpning |
hvis (leds <= BASE_COLOR) { |
leds = BASE_COLOR; // nulstil til nøjagtig grundfarve, hvis vi overskred |
PixelState = SteadyDim; |
} |
andet { |
// ellers skal du bare blive ved med at dæmpe det: |
leds -= DELTA_COLOR_DOWN; |
} |
} |
} |
FastLED.show (); |
FastLED.delay (globalDelay); |
} |
} |
voidInitPixelStates () |
{ |
memset (PixelState, sizeof (PixelState), SteadyDim); // initialiser alle pixels til SteadyDim. |
fill_solid (leds, NUM_LEDS, BASE_COLOR); |
} |
voidDelayForever () |
{ |
mens (sandt) |
{ |
forsinkelse (100); |
LowPower.powerDown (SLEEP_FOREVER, ADC_OFF, BOD_OFF); |
} |
} |
voidshowStrip () { |
FastLED.show (); |
} |
voidsetPixel (int Pixel, byte rød, byte grøn, byte blå) { |
// FastLED |
leds [Pixel].r = rød; |
lysdioder [Pixel].g = grøn; |
lysdioder [Pixel].b = blå; |
} |
se rawFiberOptic_ClemsonPic.ino hostet af ❤ af GitHub
Trin 5: Slutprodukt
Ta-da! Jeg håber, at denne instruktør inspirerer en anden til at lave deres eget lignende projekt. Det var virkelig ikke svært at gøre, og jeg var overrasket over, at ingen havde gjort det og skrevet en grundig instruerbar om det endnu.
Anbefalede:
Verdens første fiberoptiske lysur: 14 trin (med billeder)
Verdens første fiberoptiske stearinlys: Jeg besluttede at give min kone en gave og ville komme med en original idé. Jeg kunne godt lide tanken om en bevægelig skulptur og kom efter megen overvejelse frem til konceptet om et mekanisk ur, der blinkede og blinkede ved hjælp af krystaller, stearinlys og
Enkle LED Strip Lamper (Opgrader dine LED Strips): 4 trin (med billeder)
Enkle LED Strip Lamper (Opgrader dine LED Strips): Jeg har brugt LED strips i et stykke tid nu og har altid elsket enkelheden af dem. Du skærer bare et stykke af en rolle, lodder nogle ledninger til det, tilslutter en strømforsyning, og du har dig en lyskilde. Gennem årene har jeg fundet en c
DIY hjælpende hånd med LED -lamper og jernholder: 3 trin
DIY Helping Hand With LED Lights and Iron Holder: En normal 3,5x hjælpende hånd koster omkring 1000 Rs (6-7 dollars) her i Pakistan og studerende som mig har ikke råd til det let, så jeg havde plader, møtrikker og skruer med metalskrot, nogle klip, usb -kabel, lysdioder osv., så jeg lavede min ene. Jeg kunne også tilføje magn
Fiberoptiske laserblæsere: 9 trin (med billeder)
Fiberoptiske laserventilatorer: Hvad er fedt? Fiberoptik. Hvad er sejere? Lasere. Hvad er fantastisk? Brand fans. Denne instruktør blev inspireret dels af ildfans og dels af den bioniske ballerina. Hver blæser er lavet af fem fiberoptiske stænger, oplyst af vippesensoren for at være rød eller yello
Fiberoptiske vinger: 24 trin (med billeder)
Fiber Optic Wings: Det er et stykke tid siden, jeg gravede mig ind i et kødfuldt projekt, så da Joel fra Ants on a Melon bad mig om at lave et kostumestykke til lanceringen af hans nye fiberoptiske produkter, tog jeg gladeligt imod. Jeg brugte hans tidligere generations lommelygte til min fiberoptiske d