Obsah:
- Krok 1: Pěnová deska, baterie a vypínač
- Krok 2: Mikrokontrolér a obvod
- Krok 3: Světla s optickými vlákny
- Krok 4: Programování
- Krok 5: Konečný produkt
Video: Světla z optických vláken na plátně: 5 kroků
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:21
Tento projekt přidává jedinečné otočení na standardní tisk na plátno. Programoval jsem ve 4 různých režimech osvětlení, ale můžete snadno přidat další. Režim se změní pokaždé, když jej vypnete a znovu zapnete místo samostatného tlačítka, které minimalizuje poškození rámu. Baterie by měly vydržet více než 50 hodin používání - tím si nejsem jistý, ale udělal jsem podobný projekt pro přítele, který použil 5krát více světel a na jednu sadu baterií vydržel 20 a více hodin.
Materiály
- Tisk na plátno s funkčním prostorem - ten svůj jsem objednal z https://www.easycanvasprints.com, protože měli dobré ceny a otevřená záda. Tlustší 1,5 "rám byl perfektní a poskytl mi spoustu prostoru pro ohnutí vláken z optických vláken. Kromě toho chcete obrázek, který vám poskytne funkční 3" x 8 "prostor pro baterii a mikrokontrolér a LED pásky
- LED pásková světla - použil jsem adresovatelné LED pásky WS2812. Nenechte se zastrašit, jejich použití s knihovnami FastLED nebo Neopixel je opravdu snadné! Můžete také použít jakýkoli standardní LED pásek, jen nebudete moci ovládat každou světelnou sekci samostatně bez mnohem většího zapojení.
- Mikrokontrolér - Použil jsem Arduino Uno, ale pro tento projekt můžete použít téměř cokoli.
- Sada baterií - tento jsem si objednal z eBay (z Číny) a nesl název „Držák baterií 6 x 1,5 V AA 2A CELL“
- Vlákna z optických vláken - opět objednáno z Číny na eBay - „PMMA plastový kabel s optickými vlákny s koncovkou Grow LED Light DIY Decor“nebo „PMMA End Glow Fiber Optic Cable for Star Ceiling Light Kit“. Použil jsem velikosti 1 mm a 1,5 mm, ve skutečnosti doporučuji použít menší než to.
- Přepínač Zapnuto/Vypnuto - „SPDT Zapnuto/Zapnuto 2polohové miniaturní páčkové přepínače“
- Organizační spony - pomáhají udržovat vlákna a optické vlákna pěkné a uklizené.
- Pěnová deska, drát s pevným jádrem, smršťovací bužírka
Nástroje
- Dremel - slouží k vnoření vypínače do rámečku obrázku. Toho by mohlo být dosaženo pomocí vrtačky a opravdu velkého kousku, ale nedoporučuji to.
- Páječka - připevnění vodičů k LED pásku
- Horká lepicí pistole - doslova každý krok tohoto projektu
- Velká šicí jehla - pro propichování otvorů přes plátno a pěnová deska pro světla
Krok 1: Pěnová deska, baterie a vypínač
Než cokoli jiného, musíte na zadní stranu plátna připevnit kus pěnové desky. To nám dává pěkný pevný povrch, na který lze připevnit vše ostatní, a pomáhá udržet vlákna optických vláken na svém místě. Stačí použít nůž nebo krabicovou řezačku na řezání kousku pěnové desky na správnou velikost a za horka ji přilepit na spoustu míst. Doporučuji použít desku z černé pěny, aby nepropouštěla tolik světla.
Použil jsem dremel bit, který vypadá jako normální vrták, ale ve skutečnosti je skvělý pro odstraňování materiálu. Je to jeden z kousků, které by měly přijít s jakýmkoli dremelem. Pomocí plechovky stlačeného vzduchu se zbavte všech pilin z dremelu.
Horké lepidlo vše na svém místě. Ujistěte se, že je baterie velmi dobře připevněna, protože pro vložení/vyjmutí baterie vyžaduje velkou sílu a nechcete, aby držák baterie kamkoli šel.
Krok 2: Mikrokontrolér a obvod
Přepínač napájení jsem umístil před Arduino UNO, takže když přepínač přepnete, nic nebude využívat energii z bateriových zdrojů. To by mělo bateriím pomoci vydržet co nejdéle, když není projekt zapnutý. Desky Arduino jsou notoricky špatné ve správě napájení - používají hodně proudu, pokud jsou zapnuté, i když nic aktivně nedělají.
Zapojte kladný konec baterie do VIN (napěťového vstupu) mikrokontroléru, aby pomocí vestavěného regulátoru napětí regulátoru dostal napětí na 5 V, které potřebuje. Pokud bychom napájili více světel, možná bychom pro ně museli použít vlastní regulátor napětí, ale UNO by měl zvládnout 5 LED.
K vyhlazení signálu jsem použil odpor mezi datovým výstupem a LED páskem - bez rezistoru by mohlo dojít k náhodnému blikání pixelů. Na velikosti rezistoru vlastně nezáleží, mělo by fungovat cokoli mezi 50Ω a 400Ω.
Krok 3: Světla s optickými vlákny
Po nějakém pokusu a omylu jsem nakonec našel dobrý způsob, jak dostat vlákna z optických vláken přes plátno.
- Použijte největší šicí jehlu, kterou musíte, a propíchněte otvor v přední části plátna a pěnové desky. Doporučuji na začátku propíchnout každou požadovanou díru, abyste ji mohli převrátit a zjistit, kam můžete/nemůžete umístit klipy organizace kabelů
- Vezměte si kleště s jehlovým nosem a uchopte pramen optických vláken necelý centimetr od konce
- Propíchněte pramen optických vláken otvorem, který jste vytvořili jehlou
- Veďte pramen různými plastovými sponami tam, kde je o něco delší, než je nutné - přestřihneme jej později
- S horkou lepicí pistolí na nastavení NÍZKÉ teploty (pokud má tuto možnost) naneste kapku horkého lepidla na vlákno z optických vláken, kde se protáhne pěnovou deskou. Alternativně můžete použít ty modré nevkusné věci. Horké lepidlo pramen trochu deformuje, ale nezdá se, že by příliš zasahovalo do optických vlastností
- Odřízněte pramen kousek od plátna pomocí řezaček drátu.
Chcete -li proces urychlit, můžete před horkým lepidlem prostrčit mnoho vláken za sebou. Obecně by měli zůstat na místě sami.
Dávejte pozor, abyste vlákna optických vláken na stole nepřetrhli nebo nezměnili - zlomí se, a pokud bude pramen příliš krátký, budete smutní a budete ho muset předělat. Jako protizávaží použijte baterii, abyste mohli mít rámeček obrazu na stole méně než polovinu.
Protože jsem místo bílé použil desku z bílé pěny, svítilo LED, když svítilo hodně světla. Jako opravu jsem zalepil nějakou hliníkovou fólii mezi světla a plátno.
Pomocí smršťovacích hadiček držte každý svazek vláken optických vláken pohromadě.
- Odřízněte prameny svazku přibližně na stejnou délku
- Protáhněte sekci smršťovací trubicí
- Ke zmenšení použijte horkovzdušnou pistoli nebo páječku. Pokud používáte páječku, nechte stranu žehličky lehce se dotknout hadičky a ta se zmenší. Nemělo by roztavit hadičky, protože je navrženo pro malé teplo.
Nakonec jsem pomocí horkého lepidla připevnil konec svazku ke každému LED světlu. Použil jsem hodně horkého lepidla, aby vlákna skutečně získala světlo z každé červené/zelené/modré diody ve světle - když jsou vlákna opravdu blízko světla, „bílá“barva (což je ve skutečnosti červená a zelená a modrá) pak budou některá vlákna jen červená a některá zelená, místo aby byla všechna bílá. To lze zlepšit použitím kusu papíru nebo něčeho jiného k jeho rozptýlení, ale horké lepidlo mi fungovalo dost dobře.
Krok 4: Programování
Při programování jsem použil tři knihovny
FastLED - skvělá knihovna pro ovládání LED pásků WS2812 (a mnoha dalších adresovatelných LED pásků) -
Arduino Low Power - Nevím, kolik energie to ve skutečnosti šetří, ale implementace byla velmi snadná a měla by pomoci ušetřit trochu energie na funkci, která je jen bílá světla a pak navždy zdržení.
EEPROM - slouží ke čtení/ukládání aktuálního režimu projektu. To umožňuje projektu zvýšit barevný režim při každém vypnutí a opětovném zapnutí, což eliminuje potřebu samostatného tlačítka pro změnu režimu. Knihovna EEPROM je nainstalována při každé instalaci Arduino IDE.
Také jsem použil skicu pro blikání světel, které někdo jiný nastavil. Náhodně rozsvítí pixel ze základní barvy na špičkovou barvu a poté zpět dolů. https://gist.github.com/kriegsman/88954aae22b03a66… (používá také knihovnu FastLED)
Také jsem použil vMicro plugin pro Visual Studio - to je zesílená verze Arduino IDE. Má spoustu užitečných funkcí automatického doplňování a upozorňuje na problémy ve vašem kódu, aniž byste jej museli kompilovat. Stojí to 15 dolarů, ale stojí to za to, pokud se chystáte vytvořit více než jeden projekt Arduino, a donutí vás to seznámit se s Visual Studio, což je super výkonný program.
(Připojuji také soubor.ino kódu, protože Instructable hosting Github Gist zničí mnoho prázdných míst v souboru)
Kód Arduino se 4 barevnými režimy na Arduino UNO u některých LED pásků WS2812B využívajících knihovnu FastLED
#zahrnout |
#zahrnout |
#zahrnout |
// Nastavení FastLED |
#defineNUM_LEDS4 |
#definePIN3 // Datový pin pro LED pásek |
LED diody CRGB [NUM_LEDS]; |
// Nastavení Twinkle |
#defineBASE_COLORCRGB (2, 2, 2) // Základní barva pozadí |
#definePEAK_COLORCRGB (255, 255, 255) // Špičková barva pro záblesky až |
// Částka pro zvýšení barvy každou smyčkou, jak se rozjasní: |
#defineDELTA_COLOR_UPCRGB (4, 4, 4) |
// Částka ke snížení barvy každou smyčkou, jak se stmívá: |
#defineDELTA_COLOR_DOWNCRGB (4, 4, 4) |
// Šance, že se každý pixel začne rozjasňovat. |
// 1 nebo 2 = několik rozjasňujících pixelů najednou. |
// 10 = spousta pixelů se najednou rozjasní. |
#defineCHANCE_OF_TWINKLE2 |
enum {SteadyDim, GettingBrighter, GettingDimmerAgain}; |
uint8_t PixelState [NUM_LEDS]; |
byte runMode; |
byte globalBright = 150; |
byte globalDelay = 20; // Rychlost zpoždění pro mrknutí |
adresa bytu = 35; // Adresa pro uložení provozního režimu |
voidsetup () |
{ |
FastLED.addLeds (leds, NUM_LEDS); |
FastLED.setCorrection (TypicalLEDStrip); |
//FastLED.setMaxPowerInVoltsAndMilliamps(5, maxMilliamps); |
FastLED.setBrightness (globalBright); |
// Získejte režim ke spuštění |
runMode = EEPROM.read (adresa); |
// Zvýšení runmode o 1 |
EEPROM.write (adresa, runMode + 1); |
} |
voidloop () |
{ |
přepínač (runMode) |
{ |
// Plně bílá |
case1: fill_solid (leds, NUM_LEDS, CRGB:: White); |
FastLED.show (); |
DelayForever (); |
přestávka; |
// Pomalu blikejte |
případ2: FastLED.setBrightness (255); |
globalDelay = 10; |
TwinkleMapPixels (); |
přestávka; |
// Rychle zablikejte |
případ3: FastLED.setBrightness (150); |
globalDelay = 2; |
TwinkleMapPixels (); |
přestávka; |
//Duha |
případ 4: |
RunRainbow (); |
přestávka; |
// Index mimo rozsah, resetujte jej na 2 a poté spusťte režim 1. |
// Když se arduino restartuje, spustí režim 2, ale prozatím spusťte režim 1 |
výchozí: |
EEPROM.write (adresa, 2); |
runMode = 1; |
přestávka; |
} |
} |
voidRunRainbow () |
{ |
byte *c; |
uint16_t i, j; |
zatímco (pravda) |
{ |
for (j = 0; j <256; j ++) {// 1 cyklus všech barev na kolečku |
pro (i = 0; i <NUM_LEDS; i ++) { |
c = Kolo ((((i * 256 / NUM_LEDS) + j) & 255); |
setPixel (i, *c, *(c + 1), *(c + 2)); |
} |
FastLED.show (); |
zpoždění (globalDelay); |
} |
} |
} |
byte * Wheel (byte WheelPos) { |
statický bajt c [3]; |
if (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; |
} |
jinak { |
WheelPos -= 170; |
c [0] = 0; |
c [1] = WheelPos * 3; |
c [2] = 255 - WheelPos * 3; |
} |
návrat c; |
} |
voidTwinkleMapPixels () |
{ |
InitPixelStates (); |
zatímco (pravda) |
{ |
pro (uint16_t i = 0; i <NUM_LEDS; i ++) { |
if (PixelState == SteadyDim) { |
// tento pixel je aktuálně: SteadyDim |
// takže náhodně zvažujeme, že začne být jasnější |
if (random8 () <CHANCE_OF_TWINKLE) { |
PixelState = GettingBrighter; |
} |
} |
elseif (PixelState == GettingBrighter) { |
// tento pixel je aktuálně: GettingBrighter |
// takže pokud je ve špičkové barvě, přepněte jej znovu na ztlumení |
if (leds > = PEAK_COLOR) { |
PixelState = GettingDimmerAgain; |
} |
jinak { |
// jinak to pořád rozjasňujte: |
LED += DELTA_COLOR_UP; |
} |
} |
else {// opět ztlumení |
// tento pixel je aktuálně: GettingDimmerAgain |
// pokud je tedy zpět na základní barvu, přepněte ji na stálé ztlumení |
if (leds <= BASE_COLOR) { |
leds = BASE_COLOR; // reset na přesnou základní barvu pro případ, že bychom přestřelili |
PixelState = SteadyDim; |
} |
jinak { |
// jinak to prostě ztlumte: |
LED -= DELTA_COLOR_DOWN; |
} |
} |
} |
FastLED.show (); |
FastLED.delay (globalDelay); |
} |
} |
voidInitPixelStates () |
{ |
memset (PixelState, sizeof (PixelState), SteadyDim); // inicializace všech pixelů na SteadyDim. |
fill_solid (leds, NUM_LEDS, BASE_COLOR); |
} |
voidDelayForever () |
{ |
zatímco (pravda) |
{ |
zpoždění (100); |
LowPower.powerDown (SLEEP_FOREVER, ADC_OFF, BOD_OFF); |
} |
} |
voidshowStrip () { |
FastLED.show (); |
} |
voidsetPixel (int Pixel, byte red, byte green, byte blue) { |
// FastLED |
LED [Pixel].r = červená; |
LED [Pixel].g = zelená; |
LED [Pixel].b = modrá; |
} |
zobrazit rawFiberOptic_ClemsonPic.ino hostované s ❤ od GitHub
Krok 5: Konečný produkt
Ta-da! Doufám, že tento Instructable inspiruje někoho jiného k vytvoření vlastního podobného projektu. Opravdu to nebylo těžké udělat a byl jsem překvapen, že to ještě nikdo neudělal a napsal o tom důkladný návod.
Doporučuje:
Anglická hospodská světla ohýbáním optických vláken, osvětlená LED: 4 kroky
Anglická hospodská světla ohýbáním optických vláken, osvětlená pomocí LED: Řekněme, že chcete, aby vlákno odpovídalo tvaru domu a rozsvítilo se na něj vánoční osvětlení. Nebo možná chcete přijít na vnější stěnu a mít kolmý úhel na vlákno. Můžete to udělat velmi snadno
Křídla z optických vláken: 24 kroků (s obrázky)
Křídla z optických vláken: Už je to nějaký čas, co jsem kopal do masitého projektu, takže když mě Joel z Mravenců na melounu požádal, abych vyrobil kostým pro uvedení jeho nových produktů z optických vláken, s radostí jsem to přijal. Použil jsem jeho baterku předchozí generace pro svůj optický d
Lampa pro dekoraci optických vláken: 11 kroků
Dekorační lampa s optickými vlákny: vyrobila jsem tuto dekorativní lampu z nějakého optického vlákna, které jsem před časem koupil na ebay pro možné budoucí projekty, takže se mi konečně podařilo něco z toho udělat
Tkanina z optických vláken měnící barvu: 10 kroků (s obrázky)
Tkanina s optickými vlákny měnící barvu: Asi 150 dolarů za yard a se spoustou omezení při řezání není tkanina z optických vláken na trhu nejdostupnějším materiálem. Ale s vlastním vláknem z optických vláken, tylem a LED diodami si můžete vytvořit vlastní v jakémkoli tvaru za zlomek ceny
Sukně medúzy z optických vláken: 16 kroků (s obrázky)
Sukně medúzy z optických vláken: Protože účinek vláknové optiky je tak fascinující, přemýšlel jsem o výrobě oblečení s vláknovou optikou a RGB LED diodami. Trvalo mi nějaký čas, než jsem přišel s návrhem a přišel na to, jak připevnit vlákna na LED pásek. Nakonec jsem