Tartalomjegyzék:

Száloptikai fények vászonnyomtatásban: 5 lépés
Száloptikai fények vászonnyomtatásban: 5 lépés

Videó: Száloptikai fények vászonnyomtatásban: 5 lépés

Videó: Száloptikai fények vászonnyomtatásban: 5 lépés
Videó: Optikai alapismeretek #16: Fresnel Reflexió 2024, Június
Anonim
Image
Image
Száloptikai fények vászonnyomtatásban
Száloptikai fények vászonnyomtatásban

Ez a projekt egyedülálló pörgetést ad a szabványos vászonnyomathoz. 4 különböző világítási módba programoztam, de könnyen hozzáadhat többet. Az üzemmód minden egyes kikapcsoláskor és újra bekapcsoláskor megváltozik, ahelyett, hogy külön gombot használna a keret károsodásának minimalizálása érdekében. Az elemek több mint 50 órányi használatot igényelnek - ebben nem vagyok biztos, de csináltam egy hasonló projektet egy barátomnak, és ötször annyi fényt használt, és több mint 20 órát tartott egyetlen elemkészlettel.

Anyagok

  • Vászonnyomat működőképes hellyel - az enyémet a https://www.easycanvasprints.com webhelyről rendeltem, mert jó árakkal és nyitott háttal rendelkeztek. A vastagabb, 1,5 hüvelykes keret tökéletes volt, és sok helyet adott számomra a száloptikai szálak hajlítására. Ezenkívül olyan képet szeretne, amely 3 "8" -nyi működőképes helyet biztosít az akkumulátor és a mikrovezérlő és a LED -csíkok számára
  • LED szalagfények - címzett WS2812 LED csíkokat használtam. Ne ijedjen meg, nagyon könnyen használhatók a FastLED vagy Neopixel könyvtárakkal! Használhat bármilyen szabványos LED -szalagot is, csak nem fogja tudni külön -külön vezérelni az egyes lámpaszakaszokat sok további vezeték nélkül.
  • Mikrokontroller - Arduino Uno -t használtam, de szinte bármit használhat ehhez a projekthez.
  • Akkumulátor - ezt az eBay -ről rendeltem (Kínából), és a címe "6 x 1,5 V AA 2A CELL akkumulátor -tartó"
  • Száloptikai szálak - ismét megrendelve Kínából az eBay -en - "PMMA műanyag száloptikai kábelvégnövelő LED -es fény DIY dekoráció" vagy "PMMA End Glow Fiber Optic Cable for Star Ceiling Light Kit". 1 mm és 1,5 mm méretet használtam, valójában azt javaslom, hogy ennél kisebbet használjon.
  • Be/Ki kapcsoló - "SPDT On/On 2 Position Miniature Toggle Switch"
  • Huzalszervező klipek - Ezek segítenek a száloptikai szálak szép és rendben tartásában.
  • Hablap, tömör magú csatlakozóhuzal, hőre zsugorodó cső

Eszközök

  • Dremel - a be/ki kapcsoló beágyazására szolgál a képkeretbe. Ezt talán egy fúróval és egy igazán nagy fúróval is el lehet érni, de ezt nem ajánlom.
  • Forrasztópáka - vezetékek rögzítése a LED szalagra
  • Forró ragasztópisztoly - szó szerint a projekt minden lépése
  • Nagy varrótű - lyukak átszúrására a vásznon és a hablapon a lámpákhoz

1. lépés: Hablap, akkumulátor és be/ki kapcsoló

Hablap, akkumulátor és be/ki kapcsoló
Hablap, akkumulátor és be/ki kapcsoló
Hablap, akkumulátor és be/ki kapcsoló
Hablap, akkumulátor és be/ki kapcsoló

Minden más előtt egy darab hablapot kell rögzíteni a vászonnyomat hátoldalához. Ez egy szép, szilárd felületet biztosít, amellyel minden mást rögzíthetünk, és segít a helyén tartani a száloptikai szálakat. Csak egy precíz késsel vagy dobozvágóval vágjon egy darab hablapot a megfelelő méretűre, és sok helyen forró ragasztóval. Javaslom a fekete hablap használatát, hogy ne engedje át a sok fényt.

A dremel fúrót használtam, amely úgy néz ki, mint egy normál fúró, de valójában nagyszerű az anyagok eltávolítására. Ez az egyik olyan darab, amelyet minden dremelhez mellékelni kell. Használjon egy doboz sűrített levegőt, hogy megszabaduljon a dremel fűrészporától.

Forró ragasztó mindent a helyén. Győződjön meg arról, hogy az akkumulátor nagyon jól van rögzítve, mert jó kis erőt igényel az akkumulátor behelyezése/eltávolítása, és nem szeretné, hogy az elemtartó bárhová is menjen.

2. lépés: Mikrokontroller és áramkör

Mikrokontroller és áramkör
Mikrokontroller és áramkör
Mikrokontroller és áramkör
Mikrokontroller és áramkör
Mikrokontroller és áramkör
Mikrokontroller és áramkör

A főkapcsolót az Arduino UNO elé tettem, hogy amikor átkapcsolja a kapcsolót, akkor semmi ne használja az akkumulátorokat. Ez segíthet abban, hogy az elemek a lehető leghosszabb ideig tartsanak, ha a projekt nincs bekapcsolva. Az Arduino táblák köztudottan rosszak az energiagazdálkodásban - sok áramot használnak, ha be vannak kapcsolva, még akkor is, ha nem tesznek semmit.

Csatlakoztassa az akkumulátor pozitív végét a mikrokontroller VIN-jéhez (feszültségbemenet), hogy a vezérlő beépített feszültségszabályozóját használva csökkentse a szükséges 5 V-os feszültséget. Ha több lámpát táplálnánk, szükség lehet saját feszültségszabályozónk használatára, de az UNO -nak képesnek kell lennie 5 LED kezelésére.

Ellenállást használtam az adatkimenet és a LED -szalag között a jel kiegyenlítésére - az ellenállás nélkül véletlenszerűen villoghatnak a képpontok. Az ellenállás mérete nem igazán számít, 50 és 400Ω között kell működnie.

3. lépés: Száloptikai fények

Image
Image
Száloptikai fények
Száloptikai fények
Száloptikai fények
Száloptikai fények

Némi próba és hiba után végül találtam egy jó módot arra, hogy a száloptikai szálakat a vásznon keresztül vigyem.

  1. Használja a legnagyobb varrótűt, amivel lyukat kell szúrnia a vászon és a hablap elejére. Azt javaslom, hogy minden lyukat kezdjen el lyukasztani a legelején, hogy megfordítsa, és lássa, hová tudja/nem tudja elhelyezni a kábelszervező klipeket
  2. Fogjon egy tűhegyes fogót, és fogja meg a száloptikai szálat a végétől kevesebb, mint egy centiméterre
  3. Szúrja át a száloptikai szálat a tűvel készített lyukon
  4. Vezesse át a szálat különböző műanyag csipeszeken keresztül oda, ahol kissé hosszabb, mint szükséges - később levágjuk
  5. Ha a forró ragasztópisztolyát alacsony hőmérsékletre állítja (ha van ilyen lehetősége), tegyen egy csepp forró ragasztót a száloptikai szálra, ahol átbök a hablapon. Alternatívaként használhatod azt a kék tapadós cuccot. A forró ragasztó kissé deformálja a szálat, de úgy tűnik, hogy nem zavarja túlságosan az optikai tulajdonságokat
  6. Vágja le a szálat egy kicsit távol a vászontól drótvágókkal.

A folyamat felgyorsítása érdekében sok szálat átüthet egymás után, mielőtt elkészítené a forró ragasztót. Általában önállóan kell a helyükön maradniuk.

Vigyázzon, nehogy eltörje vagy összeszorítsa az optikai szálakat az asztalon - eltörik, és ha túl rövidre teszi a szálat, akkor szomorú lesz, és újra kell tennie. Használja az akkumulátort ellensúlyként, hogy a képkeret kevesebb, mint a fele legyen az asztalon.

Mivel fekete hab helyett fehér hablapot használtam, sok fény ragyogott át, amikor a LED -ek világítottak. Javításként ragasztottam néhány alumínium fóliát a fények és a vászon közé.

Használjon zsugorcsöveket, hogy az egyes száloptikai szálakat egyben tartsa.

  1. Vágja le a köteg szálait körülbelül azonos hosszúságúra
  2. Vezesse át a részt hőre zsugorodó csövön
  3. Használjon hőpisztolyt vagy forrasztópáka zsugorítását. Ha forrasztópácot használ, hagyja, hogy a vasaló oldala enyhén megérintse a csövet, és összezsugorodik. Nem szabad megolvasztani a csövet, mert kis hőre tervezték.

Végül forró ragasztóval rögzítettem a köteg végét minden LED -lámpához. Sok forró ragasztót használtam, hogy a szálak valóban megvilágítsanak minden piros/zöld/kék diódát a fényben - amikor a szálak valóban közel vannak a fényhez, "fehér" színű (ami valójában piros és zöld és kék) akkor egyes szálak csak pirosak, mások zöldek lesznek, ahelyett, hogy minden fehér lenne. Ez javítható lenne, ha egy darab papírt vagy valami mást használnánk a szóráshoz, de a forró ragasztó elég jól működött számomra.

4. lépés: Programozás

Ennek programozásakor három könyvtárat használtam

FastLED - nagyszerű könyvtár a WS2812 LED szalagok (és sok más címezhető LED szalag) vezérléséhez -

Arduino Low Power - Nem tudom, mennyi energiát spórol ez valójában, de szuper könnyű volt a megvalósítása, és segíthet egy kis energiát megtakarítani a funkción, amely csak fehér fény, majd örökre késik.

EEPROM - A projekt aktuális módjának olvasására/tárolására szolgál. Ez lehetővé teszi a projekt számára, hogy minden egyes kikapcsoláskor és újra bekapcsoláskor növelje a színmódot, így nincs szükség külön gombra a mód megváltoztatásához. Az EEPROM könyvtár az Arduino IDE telepítésekor kerül telepítésre.

Vázlatot is használtam a fények villogására, amelyeket valaki más állított be. Véletlenszerűen megvilágít egy pixelt az alapszínről a csúcsszínre, majd visszafelé. https://gist.github.com/kriegsman/88954aae22b03a66… (a FastLED könyvtárat is használja)

A Visual Studio vMicro bővítményét is használtam - ez az Arduino IDE erősített változata. Rengeteg hasznos automatikus kiegészítési funkcióval rendelkezik, és kiemeli a kód problémáit anélkül, hogy le kellene fordítania. 15 dollárba kerül, de megéri, ha egynél több Arduino projektet készít, és kényszeríteni fogja Önt a Visual Studio megismerésére, amely egy szuper hatékony program.

(Azért csatolom a.ino fájlt is, mert a Github Gist utasításai szerint tárolt tárhely sok fájl üres helyét elpusztítja)

Az Arduino kód 4 színmódot futtat egy Arduino UNO -n néhány WS2812B LED szalagfényhez a FastLED könyvtár használatával

#befoglalni
#befoglalni
#befoglalni
// FastLED beállítás
#defineNUM_LEDS4
#definePIN3 // Adatcsap a LED szalaghoz
CRGB -ledek [NUM_LEDS];
// Twinkle beállítás
#defineBASE_COLORCRGB (2, 2, 2) // Alap háttérszín
#definePEAK_COLORCRGB (255, 255, 255) // Csúcsos szín
// Összeg a szín növeléséhez minden cikluson, ahogy világosodik:
#defineDELTA_COLOR_UPCRGB (4, 4, 4)
// Összeg a szín csökkentéséhez minden ciklusonként, amint halványodik:
#defineDELTA_COLOR_DOWNCRGB (4, 4, 4)
// Esélye annak, hogy minden képpont világosodni kezd.
// 1 vagy 2 = néhány világosító pixel egyszerre.
// 10 = sok képpont világít egyszerre.
#defineCHANCE_OF_TWINKLE2
enum {SteadyDim, GettingBrighter, GettingDimmerAgain};
uint8_t PixelState [NUM_LEDS];
byte runMode;
bájt globalBright = 150;
bájt globalDelay = 20; // Késleltetett sebesség a villogáshoz
bájtcím = 35; // Cím a futási mód tárolására
voidsetup ()
{
FastLED.addLeds (ledek, NUM_LEDS);
FastLED.setCorrection (tipikusLEDStrip);
//FastLED.setMaxPowerInVoltsAndMilliamps(5, maxMilliamps);
FastLED.setBrightness (globalBright);
// Futtassa a módot
runMode = EEPROM.read (cím);
// Növelje a futási módot 1 -gyel
EEPROM.write (cím, runMode + 1);
}
voidloop ()
{
kapcsoló (runMode)
{
// Egyenletes fehér
1. eset: fill_solid (ledek, NUM_LEDS, CRGB:: fehér);
FastLED.show ();
DelayForever ();
szünet;
// Csillogj lassan
eset2: FastLED.setBrightness (255);
globalDelay = 10;
TwinkleMapPixels ();
szünet;
// Gyorsan villog
3. eset: FastLED.setBrightness (150);
globalDelay = 2;
TwinkleMapPixels ();
szünet;
//Szivárvány
eset 4:
RunRainbow ();
szünet;
// Az index a tartományon kívül esik, állítsa vissza 2 -re, majd futtassa az 1 -es módot.
// Amikor az arduino újraindul, a 2. módot fogja futtatni, de egyelőre az 1. módot
alapértelmezett:
EEPROM.write (cím, 2);
runMode = 1;
szünet;
}
}
voidRunRainbow ()
{
bájt *c;
uint16_t i, j;
míg (igaz)
{
for (j = 0; j <256; j ++) {// 1 kerék minden színének ciklusa
for (i = 0; i <NUM_LEDS; i ++) {
c = Kerék ((((i * 256 / NUM_LEDS) + j) & 255);
setPixel (i, *c, *(c + 1), *(c + 2));
}
FastLED.show ();
késleltetés (globalDelay);
}
}
}
byte * Kerék (byte WheelPos) {
statikus bájt c [3];
ha (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;
}
más {
WheelPos -= 170;
c [0] = 0;
c [1] = WheelPos * 3;
c [2] = 255 - WheelPos * 3;
}
visszatérés c;
}
voidTwinkleMapPixels ()
{
InitPixelStates ();
míg (igaz)
{
for (uint16_t i = 0; i <NUM_LEDS; i ++) {
ha (PixelState == SteadyDim) {
// ez a képpont jelenleg: SteadyDim
// ezért véletlenszerűen fontolóra vesszük, hogy egyre világosabb lesz
if (random8 () <CHANCE_OF_TWINKLE) {
PixelState = GettingBrighter;
}
}
elseif (PixelState == GettingBrighter) {
// ez a képpont jelenleg: GettingBrighter
// tehát ha csúcsszíne van, kapcsolja át ismét halványításra
if (ledek > = PEAK_COLOR) {
PixelState = GettingDimmerAgain;
}
más {
// különben csak világosítsd tovább:
ledek += DELTA_COLOR_UP;
}
}
else {// ismét elhalványul
// ez a képpont jelenleg: GettingDimmerAgain
// tehát ha visszaállt az alapszínre, kapcsolja át állandó halványításra
if (ledek <= BASE_COLOR) {
ledek = BASE_COLOR; // visszaállítás a pontos alapszínre, ha túllőjük
PixelState = ÁllandóDim;
}
más {
// egyébként tompítsd le:
ledek -= DELTA_COLOR_DOWN;
}
}
}
FastLED.show ();
FastLED.delay (globalDelay);
}
}
voidInitPixelStates ()
{
memset (PixelState, sizeof (PixelState), SteadyDim); // az összes képpont inicializálása SteadyDim formátumba.
fill_solid (ledek, NUM_LEDS, BASE_COLOR);
}
voidDelayForever ()
{
míg (igaz)
{
késleltetés (100);
LowPower.powerDown (SLEEP_FOREVER, ADC_OFF, BOD_OFF);
}
}
voidshowStrip () {
FastLED.show ();
}
voidsetPixel (int Pixel, bájt piros, bájt zöld, bájt kék) {
// FastLED
ledek [Pixel].r = piros;
ledek [Pixel].g = zöld;
ledek [Pixel].b = kék;
}

Tekintse meg a rawFiberOptic_ClemsonPic.ino webhelyet, amelyet a GitHub ❤ üzemeltet

5. lépés: Végső termék

Végtermék
Végtermék
Végtermék
Végtermék
Végtermék
Végtermék

Ta-da! Remélem, ez az Instructable másokat is inspirál arra, hogy saját hasonló projektet készítsenek. Valóban nem volt nehéz megcsinálni, és meglepődtem, hogy senki sem tette meg, és még alapos utasításokat írt róla.

Ajánlott: