İçindekiler:
- Adım 1: Köpük Pano, Pil Takımı ve Açma/Kapama Anahtarı
- Adım 2: Mikrodenetleyici ve Devre
- Adım 3: Fiber Optik Işıklar
- Adım 4: Programlama
- Adım 5: Nihai Ürün
Video: Kanvas Baskıda Fiber Optik Işıklar: 5 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:18
Bu proje, standart bir kanvas baskıya benzersiz bir dönüş katıyor. 4 farklı aydınlatma modunda programladım ama siz kolayca daha fazlasını ekleyebilirsiniz. Çerçeveye verilen zararı en aza indirmek için ayrı bir düğmeye sahip olmak yerine, modu her kapatıp açtığınızda değişir. Piller 50+ saat kullanım için dayanmalıdır - Tam olarak emin değilim, ancak bir arkadaşım için benzer bir proje yaptım ve 5 kat daha fazla ışık kullandı ve tek bir pil setinde 20+ saat sürdü.
Malzemeler
- Çalışılabilir alana sahip kanvas baskı - Benimkini https://www.easycanvasprints.com adresinden sipariş ettim çünkü fiyatları iyi ve arkası açıktı. Daha kalın olan 1,5" çerçeve mükemmeldi ve bana fiber optik şeritleri bükmek için çok yer verdi. Ek olarak, pil takımı, mikro denetleyici ve LED şeritler için size 3" x 8" çalışma alanı sağlayan bir resim istiyorsunuz.
- LED şerit ışıkları - Adreslenebilir WS2812 LED şeritleri kullandım. Korkmayın, FastLED veya Neopixel kitaplıklarıyla kullanımı gerçekten çok kolay! Herhangi bir standart LED şeridi de kullanabilirsiniz, çok daha fazla kablolama olmadan her bir ışık bölümünü ayrı ayrı kontrol edemezsiniz.
- Mikrodenetleyici - Bir Arduino Uno kullandım ama bu proje için hemen hemen her şeyi kullanabilirsiniz.
- Pil takımı - Bunu eBay'den (Çin'den) sipariş ettim ve başlığı "6 x 1.5V AA 2A HÜCRE Pil Pil Tutucusu" idi.
- Fiber optik teller - bir kez daha eBay'de Çin'den sipariş edildi - "PMMA Plastik Fiber Optik Kablo Ucu Grow Led Işık DIY Dekor" veya "Yıldız Tavan Işık Kiti için PMMA End Glow Fiber Optik Kablo". 1mm ve 1.5mm boyutları kullandım, aslında bundan daha küçüğünü kullanmanızı tavsiye ederim.
- Açma/Kapama anahtarı - "SPDT Açık/Açık 2 Konumlu Minyatür Geçiş Anahtarları"
- Tel düzenleme klipsleri - Bunlar, fiber optik şeritlerin güzel ve düzenli kalmasına yardımcı olur.
- Köpük levha, katı çekirdek bağlantı teli, ısıyla daralan makaron
Aletler
- Dremel - açma/kapama düğmesini resim çerçevesine yerleştirmek için kullanılır. Bu belki bir matkapla ve gerçekten büyük bir parçayla başarılabilir, ancak bunu tavsiye etmiyorum.
- Havya - kabloları LED şeride takmak
- Sıcak tutkal tabancası - kelimenin tam anlamıyla bu projenin her adımı
- Büyük dikiş iğnesi - ışıklar için kanvas ve köpük levhada delikler açmak için
Adım 1: Köpük Pano, Pil Takımı ve Açma/Kapama Anahtarı
Her şeyden önce, kanvas baskının arkasına bir parça köpük tahta yapıştırmanız gerekir. Bu bize diğer her şeyi tutturmak için güzel bir katı yüzey sağlar ve fiber optik şeritleri yerinde tutmaya yardımcı olur. Bir parça köpük levhayı doğru boyutta kesmek için bir exacto bıçağı veya kutu kesici kullanın ve birçok yerde sıcak tutkalla yapıştırın. Çok fazla ışığın sızmasına izin vermemek için siyah köpük tahta kullanmanızı öneririm.
Normal bir matkap ucuna benzeyen ama aslında malzemeyi çıkarmak için harika olan dremel ucunu kullandım. Herhangi bir dremel ile gelmesi gereken parçalardan biridir. Dremel'deki talaşlardan kurtulmak için bir kutu basınçlı hava kullanın.
Her şeyi yerine sıcak tutkalla yapıştırın. Pil takımının çok iyi takıldığından emin olun çünkü pili takmak/çıkarmak için biraz güç gerekir ve pil tutucunun herhangi bir yere gitmesini istemezsiniz.
Adım 2: Mikrodenetleyici ve Devre
Güç anahtarını Arduino UNO'nun önüne koydum, böylece anahtarı değiştirdiğinizde pil paketlerinden hiçbir şey güç kullanmaz. Bu, proje açılmadığında pillerin mümkün olduğunca uzun süre dayanmasına yardımcı olacaktır. Arduino kartları güç yönetiminde kötüdür - aktif olarak hiçbir şey yapmasalar bile açıksa çok fazla akım kullanırlar.
Pil takımının pozitif ucunu mikro denetleyicinin VIN'ine (voltaj girişi) takın, böylece voltajı ihtiyaç duyduğu 5V'a düşürmek için denetleyicinin yerleşik voltaj regülatörünü kullanır. Daha fazla ışığa güç veriyor olsaydık, onlar için kendi voltaj regülatörümüzü kullanmamız gerekebilir, ancak UNO 5 LED'i işleyebilmelidir.
Sinyali yumuşatmak için veri çıkışı ile LED şerit arasında bir direnç kullandım - direnç olmadan piksellerin rastgele yanıp sönmesini sağlayabilirsiniz. Direncin boyutu gerçekten önemli değil, 50Ω ile 400Ω arasındaki herhangi bir şey çalışmalıdır.
Adım 3: Fiber Optik Işıklar
Bazı deneme yanılmalardan sonra, sonunda fiber optik telleri tuvalden geçirmenin iyi bir yolunu buldum.
- Tuvalin ve köpük levhanın önünden bir delik açmanız gereken en büyük dikiş iğnesini kullanın. İstediğiniz her deliği en baştan açmanızı tavsiye ederim, böylece ters çevirebilir ve kablo düzenleme klipslerinizi nereye koyabileceğinizi / koyamayacağınızı görebilirsiniz.
- Bir pense alın ve fiber optik ipliği uçtan bir santimetreden daha kısa mesafede tutun
- Fiber optik ipliği iğne ile yaptığınız delikten geçirin.
- İpi, gerekenden biraz daha uzun olan çeşitli plastik klipslerden geçirin - daha sonra keseceğiz
- Sıcak tutkal tabancanız DÜŞÜK sıcaklık ayarındayken (eğer bu seçeneğe sahipse), köpük levhanın içinden geçtiği fiber optik şeridin üzerine bir damla sıcak tutkal koyun. Alternatif olarak, o mavi yapışkan şeyi kullanabilirsin. Sıcak tutkal ipliği biraz deforme ediyor ama optik nitelikleri çok fazla bozmuyor
- Tel kesiciler kullanarak ipliği tuvalden biraz uzağa kesin.
İşlemi hızlandırmak için, sıcak tutkalı yapmadan önce birçok elyafı arka arkaya dürtebilirsiniz. Genellikle kendi başınıza yerinde kalmalıdırlar.
Masanın üzerindeki fiber optik kabloları kırmamaya veya ezmemeye dikkat edin - kırılırlar ve eğer kablo çok kısa olursa üzülür ve yeniden yapmanız gerekir. Pil takımını karşı ağırlık olarak kullanın, böylece resim çerçevesinin yarısından daha azını masanın üzerinde tutabilirsiniz.
Siyah yerine beyaz köpük tahta kullandığım için LED'ler açıkken çok fazla ışık parlıyordu. Bir düzeltme olarak, ışıklar ve tuval arasına bir miktar alüminyum folyo bantladım.
Her bir fiber optik şerit demetini bir arada tutmak için ısıyla daralan makaron kullanın.
- Demet için telleri yaklaşık olarak aynı uzunlukta kesin
- Bölümü ısıyla daralan makaron içinden geçirin
- Küçültmek için bir ısı tabancası veya havya kullanın. Bir havya kullanıyorsanız, ütünün kenarının boruya hafifçe dokunmasına izin verin, büzüşecektir. Biraz ısı için tasarlandığından boruyu eritmemelidir.
Sonunda, demetin ucunu her bir LED ışığına tutturmak için sıcak tutkal kullandım. Liflerin ışıktaki her kırmızı/yeşil/mavi diyottan ışık alması için çok fazla sıcak tutkal kullandım - lifler ışığa gerçekten yakın olduğunda bir "beyaz" renk (aslında kırmızı, yeşil ve mavidir) o zaman bazı lifler tamamen beyaz olmak yerine sadece kırmızı ve bazıları yeşil olacaktır. Bu, dağıtmak için bir kağıt parçası veya başka bir şey kullanılarak geliştirilebilir, ancak sıcak tutkal benim için yeterince iyi çalıştı.
Adım 4: Programlama
Bunu programlamada üç kitaplık kullandım
FastLED - WS2812 LED şeritlerini (ve diğer birçok adreslenebilir LED şeritlerini) kontrol etmek için harika bir kitaplık -
Arduino Low Power - Bunun gerçekte ne kadar güç tasarrufu sağladığını bilmiyorum, ancak uygulanması çok kolaydı ve sadece beyaz ışıklar olan ve ardından sonsuza kadar geciktiren işlevde küçük bir miktar güç tasarrufuna yardımcı olmalıdır. https://github.com/rocketscream/Düşük Güç
EEPROM - Projenin mevcut modunu okumak/saklamak için kullanılır. Bu, projenin renk modunu her kapatıp açtığınızda artırmasını sağlar, bu da modu değiştirmek için ayrı bir düğme ihtiyacını ortadan kaldırır. Arduino IDE'yi her kurduğunuzda EEPROM kütüphanesi kurulur.
Ayrıca başka birinin ayarladığı ışıkları yakmak için bir eskiz kullandım. Temel renkten en yüksek renge kadar bir pikseli rastgele aydınlatır ve sonra tekrar kapatır. https://Gist.github.com/kriegsman/88954aae22b03a66… (FastLED kitaplığını da kullanır)
Ayrıca Visual Studio için vMicro eklentisini kullandım - bu Arduino IDE'nin güçlendirilmiş bir versiyonudur. Bir sürü yardımcı otomatik tamamlama işlevine sahiptir ve kodunuzdaki sorunları derlemek zorunda kalmadan vurgular. 15$'a mal oluyor ama birden fazla Arduino projesi yapacaksanız buna değer ve sizi süper güçlü bir program olan Visual Studio'yu öğrenmeye zorlayacak.
(Ayrıca.ino dosyasını ekliyorum çünkü Github Gist'in Eğitilebilir barındırması dosyadaki birçok boş alanı yok ediyor)
FastLED kitaplığını kullanan bazı WS2812B LED şerit ışıkları için Arduino UNO'da 4 renk modu çalıştıran Arduino kodu
#Dahil etmek |
#Dahil etmek |
#Dahil etmek |
//Hızlı LED kurulumu |
#defineNUM_LEDS4 |
#definePIN3//LED şerit için veri pini |
CRGB led'leri[NUM_LEDS]; |
// Parıltı kurulumu |
#defineBASE_COLORCRGB(2, 2, 2) //Temel arka plan rengi |
#definePEAK_COLORCRGB(255, 255, 255) //Parıldamak için en yüksek renk |
// Parlaklaştıkça her döngüde rengi artırma miktarı: |
#defineDELTA_COLOR_UPCRGB(4, 4, 4) |
// Renk azaldıkça her döngüde rengi azaltacak miktar: |
#defineDELTA_COLOR_DOWNCRGB(4, 4, 4) |
// Her pikselin parlamaya başlama şansı. |
// 1 veya 2 = bir seferde birkaç parlak piksel. |
// 10 = bir seferde çok sayıda piksel parlıyor. |
#defineCHANCE_OF_TWINKLE2 |
enum { SteadyDim, GettingBrighter, GettingDimmerAgain }; |
uint8_t PixelState[NUM_LEDS]; |
bayt runMode; |
bayt globalBright = 150; |
bayt globalGecikme = 20; // Pırıltı için gecikme hızı |
bayt adresi = 35; //Çalışma modunun saklanacağı adres |
geçersiz kurulum() |
{ |
FastLED.addLed'ler(led'ler, NUM_LEDS); |
FastLED.setDüzeltme(TipikLEDStrip); |
//FastLED.setMaxPowerInVoltsAndMilliamps(5, maxMilliamps); |
FastLED.setBrightness(globalBright); |
// Çalıştırılacak modu alın |
runMode = EEPROM.read(adres); |
//Çalışma modunu 1 artır |
EEPROM.write(adres, runMode + 1); |
} |
boşluk döngüsü() |
{ |
geçiş (runMode) |
{ |
//Katı beyaz |
case1: fill_solid(led'ler, NUM_LEDS, CRGB::Beyaz); |
FastLED.show(); |
DelayForever(); |
kırmak; |
// Yavaşça parılda |
case2: FastLED.setBrightness(255); |
küreselGecikme = 10; |
TwinkleMapPixels(); |
kırmak; |
// Hızlıca parılda |
case3: FastLED.setBrightness(150); |
küreselGecikme = 2; |
TwinkleMapPixels(); |
kırmak; |
//Gökkuşağı |
durum4: |
RunRainbow(); |
kırmak; |
//İndeks aralık dışı, 2'ye sıfırlayın ve ardından mod 1'i çalıştırın. |
//Arduino yeniden başladığında mod 2'yi çalıştıracak, ancak şimdilik mod 1'i çalıştıracak |
varsayılan: |
EEPROM.write(adres, 2); |
runMode = 1; |
kırmak; |
} |
} |
voidRunRainbow() |
{ |
bayt *c; |
uint16_t ben, j; |
süre (doğru) |
{ |
for (j = 0; j < 256; j++) { // çarkta tüm renklerin 1 döngüsü |
for (i = 0; i < NUM_LEDS; i++) { |
c = Tekerlek(((i * 256 / NUM_LEDS) + j) & 255); |
setPixel(i, *c, *(c + 1), *(c + 2)); |
} |
FastLED.show(); |
gecikme (genelGecikme); |
} |
} |
} |
bayt * Tekerlek(bayt WheelPos) { |
statik bayt c[3]; |
if (WheelPos < 85) { |
c[0] = WheelPos * 3; |
c[1] = 255 - WheelPos * 3; |
c[2] = 0; |
} |
elseif (WheelPos < 170) { |
TekerlekPos -= 85; |
c[0] = 255 - WheelPos * 3; |
c[1] = 0; |
c[2] = WheelPos * 3; |
} |
Başka { |
TekerlekPos -= 170; |
c[0] = 0; |
c[1] = WheelPos * 3; |
c[2] = 255 - WheelPos * 3; |
} |
dönüş c; |
} |
voidTwinkleMapPixels() |
{ |
InitPixelStates(); |
süre (doğru) |
{ |
for (uint16_t i = 0; i < NUM_LEDS; i++) { |
if (PixelState == SteadyDim) { |
// bu piksel şu anda: SteadyDim |
// bu yüzden rastgele olarak daha parlak hale gelmesini sağlamayı düşünüyoruz |
if (random8() <CHANCE_OF_TWINKLE) { |
PixelState = Daha Parlak; |
} |
} |
elseif (PixelState == Daha Parlaklaşıyor) { |
// bu piksel şu anda: GettingBrighter |
// yani, en yüksek renkteyse, tekrar kararmaya çevirin |
if (ledler >= PEAK_COLOR) { |
PixelState = AlmaDimmerAgain; |
} |
Başka { |
// aksi takdirde, onu aydınlatmaya devam edin: |
ledler += DELTA_COLOR_UP; |
} |
} |
else { // tekrar kararıyor |
// bu piksel şu anda: BaşlarkenDimmerAgain |
// yani, temel renge geri dönerse, onu sabit olarak loş hale getirin |
if (led'ler <= BASE_COLOR) { |
ledler = BASE_COLOR; // aşmamız durumunda tam temel renge sıfırla |
PixelState = SteadyDim; |
} |
Başka { |
// aksi takdirde, karartmaya devam edin: |
ledler -= DELTA_COLOR_DOWN; |
} |
} |
} |
FastLED.show(); |
FastLED.delay(globalDelay); |
} |
} |
voidInitPixelStates() |
{ |
memset(PixelState, sizeof(PixelState), SteadyDim); // tüm pikselleri SteadyDim'e başlat. |
fill_solid(ledler, NUM_LEDS, BASE_COLOR); |
} |
voidDelayForever() |
{ |
süre (doğru) |
{ |
gecikme(100); |
LowPower.powerDown(SLEEP_FOREVER, ADC_OFF, BOD_OFF); |
} |
} |
voidshowStrip() { |
FastLED.show(); |
} |
voidsetPixel(int Piksel, bayt kırmızı, bayt yeşil, bayt mavi) { |
// HızlıLED |
ledler[Piksel].r = kırmızı; |
ledler[Piksel].g = yeşil; |
ledler[Piksel].b = mavi; |
} |
GitHub tarafından ❤ ile barındırılan rawFiberOptic_ClemsonPic.ino'yu görüntüleyin
Adım 5: Nihai Ürün
Ta-da! Umarım bu Eğitilebilirlik, başka birine kendi benzer projesini yapması için ilham verir. Bunu yapmak gerçekten zor değildi ve henüz kimsenin yapmadığına ve bu konuda kapsamlı bir talimat yazmadığına şaşırdım.
Önerilen:
Fiber Optik Bükülerek İngiliz Pub Işıkları, LED İle Yanan: 4 Adım
Fiber Optikleri Bükerek İngiliz Pub Işıkları, LED İle Yaktı: Diyelim ki, Noel ışıklarını yakmak için bir evin şekline uygun bir fiber yapmak istiyorsunuz. Ya da belki bir dış duvara çıkıp elyafa dik açıyla eğilmek istersiniz. Peki bunu çok kolay yapabilirsin
Müzik Reaktif Fiber Optik Yıldız Tavan Montajı: 11 Adım (Resimli)
Müzik Reaktif Fiber Optik Yıldız Tavan Montajı: Evinizde galaksiden bir parça ister misiniz? Nasıl yapıldığını aşağıdan öğrenebilirsiniz! Yıllardır hayalimdeki projeydi ve sonunda bitti. Tamamlaması epey zaman aldı ama sonuç o kadar tatmin ediciydi ki buna değdiğine eminim. Birazcık
Dünyanın İlk Fiber Optik Mum Saati: 14 Adım (Resimlerle)
Dünyanın İlk Fiber Optik Mum Saati: Eşime hediye almaya karar verdim ve orijinal bir fikir ortaya atmak istedim. Hareketli bir heykel fikrini beğendim ve çok düşündükten sonra kristaller, mumlar ve mumlar kullanarak parıldayan ve parıldayan mekanik bir saat konsepti ortaya çıktı
"Fiber Optik" LED Matrisi: 9 Adım (Resimlerle)
"Fiber Optik" LED Matrisi: Bu projede bir "fiber optik" oluşturdum. WS2801 LED şerit ve tutkal çubukları kullanan LED matrisi. Işık göstergeleri, benzer LED küplerden farklı bir görünüme ve birkaç avantaja sahiptir. İlk olarak, ekranda gerçek LED'leri göremezsiniz çünkü
Fiber Optik Lazer Fanlar: 9 Adım (Resimli)
Fiber Optik Lazer Hayranları: Ne güzel? Fiber optik. Daha havalı ne var? Lazerler. Ne harika? Ateş hayranları. Bu talimat, kısmen itfaiyecilerden, kısmen de biyonik balerinlerden ilham almıştır. Her fan, eğim sensörü tarafından kırmızı veya sarı olacak şekilde aydınlatılan beş fiber optik çubuktan yapılmıştır