Obsah:

Světla z optických vláken na plátně: 5 kroků
Světla z optických vláken na plátně: 5 kroků

Video: Světla z optických vláken na plátně: 5 kroků

Video: Světla z optických vláken na plátně: 5 kroků
Video: Optické konektory, jejich typy a možnosti instalace na vlákno - 2020 2024, Červenec
Anonim
Image
Image
Světla z optických vláken na plátně
Světla z optických vláken na plátně

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č

Pěnová deska, baterie a vypínač
Pěnová deska, baterie a vypínač
Pěnová deska, baterie a vypínač
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

Mikrokontrolér a obvod
Mikrokontrolér a obvod
Mikrokontrolér a obvod
Mikrokontrolér a obvod
Mikrokontrolér a obvod
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

Image
Image
Světla s optickými vlákny
Světla s optickými vlákny
Světla s optickými vlákny
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.

  1. 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ů
  2. Vezměte si kleště s jehlovým nosem a uchopte pramen optických vláken necelý centimetr od konce
  3. Propíchněte pramen optických vláken otvorem, který jste vytvořili jehlou
  4. 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
  5. 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í
  6. 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ě.

  1. Odřízněte prameny svazku přibližně na stejnou délku
  2. Protáhněte sekci smršťovací trubicí
  3. 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

Finální produkt
Finální produkt
Finální produkt
Finální produkt
Finální produkt
Finální 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: