Obsah:

Svetlá z optických vlákien na plátne: 5 krokov
Svetlá z optických vlákien na plátne: 5 krokov

Video: Svetlá z optických vlákien na plátne: 5 krokov

Video: Svetlá z optických vlákien na plátne: 5 krokov
Video: Part 5 - Treasure Island Audiobook by Robert Louis Stevenson (Chs 22-27) 2024, Júl
Anonim
Image
Image
Vlákna z optických vlákien na plátne
Vlákna z optických vlákien na plátne

Tento projekt pridáva jedinečné roztočenie na štandardnej tlači na plátno. Programoval som v 4 rôznych režimoch osvetlenia, ale ďalšie by ste mohli pokojne pridať. Režim sa zmení vždy, keď ho vypnete a znova zapnete, namiesto samostatného tlačidla na minimalizáciu poškodenia rámu. Batérie by mali vydržať 50+ hodín používania - nie som si tým istý, ale urobil som podobný projekt pre priateľa a použil 5x viac svetiel a na jednu sadu batérií vydržal 20+ hodín.

Materiály

  • Obraz na plátne s funkčným priestorom - ten svoj som si objednal z https://www.easycanvasprints.com, pretože mali dobré ceny a otvorený chrbát. Hrubší 1,5 "rám bol perfektný a poskytol mi veľa priestoru na ohnutie vlákien z optických vlákien. Okrem toho chcete obrázok, ktorý vám poskytne funkčný priestor 3" x 8 "pre batériu a mikrokontrolér a pásy LED
  • LED pásové svetlá - použil som adresovateľné LED pásy WS2812. Nebojte sa, ich použitie v knižniciach FastLED alebo Neopixel je skutočne jednoduché! Môžete použiť aj akýkoľvek štandardný LED pásik, len nebudete môcť ovládať každú svetelnú sekciu jednotlivo bez oveľa väčšieho zapojenia.
  • Mikrokontrolér - Použil som Arduino Uno, ale na tento projekt môžete použiť takmer čokoľvek.
  • Batéria - tento som si objednal z eBay (z Číny) s názvom „Držiak batérií 6 x 1,5 V AA 2A CELL“
  • Vlákna z optických vlákien - opäť objednané z Číny na eBay - „PMMA plastový kábel s optickým vláknom s rastom LED DIY Decor“alebo „PMMA koncový žiarový optický kábel pre súpravu hviezdnych stropných svetiel“. Použil som veľkosti 1 mm a 1,5 mm, v skutočnosti odporúčam použiť menšie.
  • Vypínač - „SPDT zapnuté/zapnuté 2polohové miniatúrne prepínače“
  • Organizačné spony - pomáhajú udržiavať vlákna a optické vlákna pekné a upratané.
  • Penová doska, drôt konektora s pevným jadrom, zmršťovacia trubica

Nástroje

  • Dremel - slúži na vnorenie vypínača do rámu obrazu. To by sa dalo dosiahnuť vŕtačkou a skutočne veľkým kusom, ale neodporúčam to.
  • Spájkovačka - pripevnenie vodičov k LED pásu
  • Horúca lepiaca pištoľ - doslova každý krok tohto projektu
  • Veľká šijacia ihla - na prepichnutie otvorov cez plátno a penovú dosku pre svetlá

Krok 1: Penová doska, batéria a vypínač

Penová doska, batéria a vypínač
Penová doska, batéria a vypínač
Penová doska, batéria a vypínač
Penová doska, batéria a vypínač

Predtým než čokoľvek iné, musíte na zadnú stranu plátna pripevniť kus penovej dosky. To nám dáva pekný pevný povrch, na ktorý pripevníte všetko ostatné, a pomôže to udržať vlákna optických vlákien na svojom mieste. Stačí použiť presný nôž alebo rezačku na škatule, aby ste narezali kus penovej dosky na správnu veľkosť a zalepili ho za tepla na mnohých miestach. Odporúčam použiť čiernu penovú dosku, aby neprepúšťala toľko svetla.

Použil som dremel bit, ktorý vyzerá ako normálny vrták, ale v skutočnosti je skvelý na odstraňovanie materiálu. Je to jedna z kúskov, ktoré by mali byť súčasťou každého dremelu. Použite plechovku stlačeného vzduchu, aby ste sa zbavili všetkých pilín z dremelu.

Horúce lepidlo všetko na svojom mieste. Uistite sa, že je batéria veľmi dobre pripevnená, pretože na vloženie/vybratie batérie je potrebná značná sila a nechcete, aby držiak batérie kamkoľvek smeroval.

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

Prepínač napájania som umiestnil pred Arduino UNO, aby keď prepnete prepínač, nič nepoužívalo energiu z batérií. To by malo pomôcť batériám vydržať čo najdlhšie, keď projekt nie je zapnutý. Dosky Arduino sú notoricky zlé v oblasti správy napájania - používajú veľa prúdu, ak sú zapnuté, aj keď aktívne nič nerobia.

Zapojte kladný koniec batérie do VIN (napäťový vstup) mikrokontroléra, aby pomocou vstavaného regulátora napätia ovládača dostal napätie až na 5 V, ktoré potrebuje. Ak by sme napájali viac svetiel, možno by sme na ne museli použiť vlastný regulátor napätia, ale UNO by mal zvládnuť 5 LED diód.

Na vyhladenie signálu som použil odpor medzi dátovým výstupom a pásikom LED - bez rezistora by mohlo dôjsť k náhodnému blikaniu pixelov. Na veľkosti rezistora nezáleží, malo by fungovať čokoľvek medzi 50Ω a 400Ω.

Krok 3: Svetlá s optickými vláknami

Image
Image
Svetlá s optickými vláknami
Svetlá s optickými vláknami
Svetlá s optickými vláknami
Svetlá s optickými vláknami

Po niekoľkých pokusoch a omyloch som nakoniec našiel dobrý spôsob, ako dostať vlákna z optických vlákien cez plátno.

  1. Použite najväčšiu šijaciu ihlu, ktorú musíte, a prepichnite dieru v prednej časti plátna a penovej dosky. Odporúčam na začiatku vypichnúť každú dieru, ktorú chcete, aby ste ju mohli prevrátiť a zistiť, kam môžete/nemôžete dávať klipy na organizáciu káblov.
  2. Vezmite si kliešte s ihlou a uchopte prameň optických vlákien necelý centimeter od konca
  3. Prostredníctvom otvoru, ktorý ste urobili, prepichnite prameň optických vlákien ihlou
  4. Prameň veďte rôznymi plastovými sponami tam, kde je o niečo dlhší, ako je potrebné - prestrihneme ho neskôr
  5. S horúcou lepiacou pištoľou na nastavení NÍZKEJ teploty (ak má túto možnosť) naneste kvapku horúceho lepidla na vlákno z optických vlákien, kde bodne cez penovú dosku. Alternatívne môžete použiť tie modré nevkusné veci. Horúce lepidlo prameň trochu zdeformuje, ale nezdá sa, že by príliš zasahovalo do optických vlastností
  6. Prameň trochu odstrihnite od plátna pomocou rezačiek drôtu.

Na urýchlenie procesu môžete pred horúcim lepidlom prepichnúť mnoho vlákien za sebou. Spravidla by mali zostať na mieste sami.

Dávajte pozor, aby ste vlákna optických vlákien na stole nepretrhli alebo nemačkali - zlomia sa a ak bude prameň príliš krátky, budete smutní a budete ho musieť zopakovať. Batériu používajte ako protizávažie, aby ste mohli mať rám obrazu na stole menej ako polovicu.

Pretože som namiesto čiernej použil bielu penovú dosku, keď svietili LED diódy, presvitalo veľa svetla. Ako opravu som medzi svetlami a plátnom zalepil hliníkovou fóliou.

Na zmrštenie každého zväzku vlákien z optických vlákien používajte teplom zmrštiteľné hadičky.

  1. Odrežte pramene pre zväzok približne na rovnakú dĺžku
  2. Sekciu preveďte zmršťovacou trubicou
  3. Na jeho zmenšenie použite tepelnú pištoľ alebo spájkovačku. Ak používate spájkovačku, nechajte stranu žehličky, aby sa zľahka dotýkala hadičky, a tak sa zmenší. Hadica by sa nemala roztaviť, pretože je navrhnutá na malé teplo.

Nakoniec som pomocou horúceho lepidla pripevnil koniec zväzku ku každému LED svetlu. Použil som veľa horúceho lepidla, aby vlákna skutočne dostali svetlo z každej červenej/zelenej/modrej diódy vo svetle - keď sú vlákna skutočne blízko svetla, „biela“farba (ktorá je v skutočnosti červená a zelená a modrá) potom budú niektoré vlákna len červené a niektoré zelené, namiesto toho, aby boli všetky biele. Dalo by sa to zlepšiť použitím kúska papiera alebo niečoho iného na jeho rozptýlenie, ale horúce lepidlo mi fungovalo dosť dobre.

Krok 4: Programovanie

Pri programovaní som použil tri knižnice

FastLED - skvelá knižnica na ovládanie LED pásov WS2812 (a mnohých ďalších adresovateľných LED pásikov) -

Arduino Low Power - Neviem, koľko energie to v skutočnosti šetrí, ale implementácia bola veľmi jednoduchá a mala by pomôcť ušetriť trochu energie na funkcii, ktorá je len bielym svetlom a potom navždy zdržaním.

EEPROM - slúži na čítanie/ukladanie aktuálneho režimu projektu. To umožňuje projektu zvýšiť farebný režim pri každom vypnutí a opätovnom zapnutí, čo eliminuje potrebu samostatného tlačidla na zmenu režimu. Knižnica EEPROM je nainštalovaná vždy, keď inštalujete IDE Arduino.

Použil som aj skicu na mihnutie svetiel, ktoré nastavil niekto iný. Náhodne rozsvieti pixel zo základnej farby na špičkovú farbu a potom opäť klesne. https://gist.github.com/kriegsman/88954aae22b03a66… (používa aj knižnicu FastLED)

Tiež som použil doplnok vMicro pre Visual Studio - toto je zosilnená verzia Arduino IDE. Má veľa užitočných funkcií automatického dopĺňania a upozorňuje na problémy vo vašom kóde bez toho, aby ste ho museli kompilovať. Stojí to 15 dolárov, ale stojí to za to, ak sa chystáte vytvoriť viac ako jeden projekt Arduino, a prinúti vás to zoznámiť sa s Visual Studio, čo je super výkonný program.

(Prikladám aj súbor.ino kódu, pretože inštruovateľný hosting Github Gist zničí veľa prázdnych miest v súbore)

Kód Arduino so 4 farebnými režimami na zariadení Arduino UNO pre niektoré svetelné pásy WS2812B LED pomocou knižnice FastLED

#zahrnúť
#zahrnúť
#zahrnúť
// Nastavenie FastLED
#defineNUM_LEDS4
#definePIN3 // Dátový kolík pre LED pás
LED diódy CRGB [NUM_LEDS];
// Nastavenie Twinkle
#defineBASE_COLORCRGB (2, 2, 2) // Základná farba pozadia
#definePEAK_COLORCRGB (255, 255, 255) // Špičková farba na odlesky až
// Suma na zvýšenie farby každou slučkou, keď bude jasnejšia:
#defineDELTA_COLOR_UPCRGB (4, 4, 4)
// Suma na zníženie farby každou slučkou, keď sa stmavne:
#defineDELTA_COLOR_DOWNCRGB (4, 4, 4)
// Šanca každého pixelu sa začať rozjasňovať.
// 1 alebo 2 = niekoľko rozjasňujúcich pixelov naraz.
// 10 = veľa pixelov zjasňujúcich naraz.
#defineCHANCE_OF_TWINKLE2
enum {SteadyDim, GettingBrighter, GettingDimmerAgain};
uint8_t PixelState [NUM_LEDS];
byte runMode;
byte globalBright = 150;
byte globalDelay = 20; // Rýchlosť meškania pre žmurkanie
adresa bytu = 35; // Adresa na uloženie režimu chodu
voidsetup ()
{
FastLED.addLeds (LED diódy, NUM_LEDS);
FastLED.setCorrection (TypicalLEDStrip);
//FastLED.setMaxPowerInVoltsAndMilliamps(5, maxMilliamps);
FastLED.setBrightness (globalBright);
// Spustite režim
runMode = EEPROM.read (adresa);
// Zvýšte runmode o 1
EEPROM.write (adresa, runMode + 1);
}
voidloop ()
{
prepínač (runMode)
{
// Plne biela
case1: fill_solid (leds, NUM_LEDS, CRGB:: White);
FastLED.show ();
DelayForever ();
prestávka;
// Pomaly sa trblietajte
prípad2: FastLED.setBrightness (255);
globalDelay = 10;
TwinkleMapPixels ();
prestávka;
// Rýchlo sa mihni
prípad3: FastLED.setBrightness (150);
globalDelay = 2;
TwinkleMapPixels ();
prestávka;
// Dúha
prípad 4:
RunRainbow ();
prestávka;
// Index mimo dosahu, resetujte ho na 2 a potom spustite režim 1.
// Keď sa arduino reštartuje, spustí režim 2, ale zatiaľ spustite režim 1
predvolené:
EEPROM.write (adresa, 2);
runMode = 1;
prestávka;
}
}
voidRunRainbow ()
{
bajt *c;
uint16_t i, j;
zatiaľ čo (pravda)
{
pre (j = 0; j <256; j ++) {// 1 cyklus všetkých farieb na kolese
pre (i = 0; i <NUM_LEDS; i ++) {
c = koleso ((((i * 256 / NUM_LEDS) + j) & 255);
setPixel (i, *c, *(c + 1), *(c + 2));
}
FastLED.show ();
oneskorenie (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;
}
inak {
WheelPos -= 170;
c [0] = 0;
c [1] = WheelPos * 3;
c [2] = 255 - WheelPos * 3;
}
návrat c;
}
voidTwinkleMapPixels ()
{
InitPixelStates ();
zatiaľ čo (pravda)
{
pre (uint16_t i = 0; i <NUM_LEDS; i ++) {
if (PixelState == SteadyDim) {
// tento počet pixelov je v súčasnej dobe: SteadyDim
// preto náhodne zvažujeme, že sa začne rozjasňovať
if (random8 () <CHANCE_OF_TWINKLE) {
PixelState = GettingBrighter;
}
}
elseif (PixelState == GettingBrighter) {
// tento počet pixelov je v súčasnej dobe: GettingBrighter
// ak je teda v špičkových farbách, znova ho prepnite na stmievanie
if (leds > = PEAK_COLOR) {
PixelState = GettingDimmerAgain;
}
inak {
// inak to len rozjasnite:
LED += DELTA_COLOR_UP;
}
}
else {// znova stmieva
// tento počet pixelov je v súčasnej dobe: GettingDimmerAgain
// ak je teda späť na základnú farbu, prepnite ju na stlmené
if (leds <= BASE_COLOR) {
leds = BASE_COLOR; // reset na presnú základnú farbu, v prípade, že sme prestrelili
PixelState = SteadyDim;
}
inak {
// inak to len stlmte:
LED -= DELTA_COLOR_DOWN;
}
}
}
FastLED.show ();
FastLED.delay (globalDelay);
}
}
voidInitPixelStates ()
{
memset (PixelState, sizeof (PixelState), SteadyDim); // inicializácia všetkých pixelov na SteadyDim.
fill_solid (leds, NUM_LEDS, BASE_COLOR);
}
voidDelayForever ()
{
zatiaľ čo (pravda)
{
oneskorenie (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á;
}

zobraziť rawFiberOptic_ClemsonPic.ino hostené s ❤ od GitHub

Krok 5: Konečný produkt

Finálny produkt
Finálny produkt
Finálny produkt
Finálny produkt
Finálny produkt
Finálny produkt

Ta-da! Dúfam, že tento Instructable inšpiruje niekoho iného, aby urobil svoj vlastný podobný projekt. Skutočne nebolo ťažké to urobiť a bol som prekvapený, že to ešte nikto neurobil a napísal o tom podrobný návod.

Odporúča: