Mündəricat:
- Addım 1: Köpük lövhəsi, Batareya Paketi və Açma/söndürmə açarı
- Addım 2: Mikrokontrolör və Dövrə
- Addım 3: Fiber optik işıqlar
- Addım 4: Proqramlaşdırma
- Addım 5: Son Məhsul
Video: Kətan Fiber Optik İşıqlar: 5 addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:45
Bu layihə, standart bir kətan çapına bənzərsiz bir spin əlavə edir. 4 fərqli işıqlandırma rejimində proqramlaşdırdım, ancaq daha çoxunu əlavə edə bilərsiniz. Çərçivənin zədələnməsini minimuma endirmək üçün ayrı bir düyməyə sahib olmaq əvəzinə hər dəfə söndürüb yenidən açdığınız zaman rejim dəyişdirilir. Batareyalar 50+ saat istifadə etməli - tam əmin deyiləm, amma bir dostum üçün oxşar bir layihə hazırladım və 5 dəfə çox işıq istifadə etdi və tək bir batareyada 20+ saat davam etdi.
Materiallar
- İşlənə bilən sahə ilə kətan çapı - https://www.easycanvasprints.com saytından mənim üçün sifariş verdim, çünki yaxşı qiymətləri və arxası açıq idi. Qalın 1.5 "çərçivə mükəmməl idi və mənə fiber optik telləri əymək üçün çox yer verdi. Əlavə olaraq, batareya paketi və mikrokontrolör və LED şeritləri üçün 3" 8 "işlək yer verən bir şəkil istəyərsiniz.
- LED şerit işıqları - Ünvanlı WS2812 LED şeritlərindən istifadə etdim. Qorxma, FastLED və ya Neopixel kitabxanaları ilə istifadə etmək çox asandır! Hər hansı bir standart LED şeridindən də istifadə edə bilərsiniz, daha çox kabel olmadan hər bir işıq hissəsini ayrı -ayrılıqda idarə edə bilməyəcəksiniz.
- Mikro nəzarətçi - Arduino Uno istifadə etdim, ancaq bu layihə üçün hər şeyi istifadə edə bilərsiniz.
- Batareya paketi - bunu eBay -dan (Çindən) sifariş etdim və "6 x 1.5V AA 2A CELL Batareya Batareyaları Tutucusu" başlıqlı idi.
- Fiber optik tellər - bir daha eBay -də Çindən sifariş verildi - "PMMA Plastik Fiber Optik Kabel Led İşıqlı DIY Dekor Grow" və ya "Ulduz Tavan İşıq Kiti üçün PMMA End Glow Fiber Optik Kabel". 1mm və 1.5mm ölçüləri istifadə etdim, əslində ondan daha kiçik istifadə etməyi məsləhət görürəm.
- Açma/Kapama açarı - "SPDT Açma/Açma 2 Mövqe Miniatür Keçid Açarları"
- Tel təşkil klipləri - Bunlar fiber optik telləri gözəl və səliqəli saxlamağa kömək edir.
- Köpük lövhəsi, möhkəm nüvəli bağlayıcı tel, istilik büzücü borular
Alətlər
- Dremel - açma/söndürmə düyməsini şəkil çərçivəsinə yerləşdirmək üçün istifadə olunur. Bu, bəlkə də bir qazma və çox böyük bir işlə edilə bilər, amma bunu məsləhət görmürəm.
- Lehimləmə dəmiri - telləri LED şeridinə bağlamaq
- İsti yapışqan tabancası - bu layihənin hər bir addımı
- Böyük tikiş iynəsi - kətan və işıqlar üçün köpük lövhəsi vasitəsilə deşik açmaq üçün
Addım 1: Köpük lövhəsi, Batareya Paketi və Açma/söndürmə açarı
Başqa bir şeydən əvvəl, kətan çapının arxasına bir parça köpük taxtası yapışdırmalısınız. Bu bizə hər şeyi yapışdırmaq üçün gözəl bir möhkəm səth verir və fiber optik telləri yerində saxlamağa kömək edir. Bir köpük lövhəsini lazımi ölçüdə kəsmək və bir çox yerə isti yapışdırmaq üçün dəqiq bir bıçaq və ya qutu kəsici istifadə edin. Qara köpük lövhəsindən istifadə etməyi məsləhət görürəm ki, o qədər də işığın axmasına imkan verməsin.
Normal bir matkap ucuna bənzəyən, əslində materialı çıxarmaq üçün əla olan dremel bitindən istifadə etdim. Hər hansı bir dremel ilə gəlməli olan bitlərdən biridir. Dramelin üzərindəki hər hansı bir talaşdan qurtulmaq üçün bir banka sıxılmış hava istifadə edin.
Hər şeyi yerində isti yapışdırın. Batareyanın çox yaxşı bağlandığından əmin olun, çünki batareyanı daxil etmək/çıxarmaq üçün yaxşı güc tələb olunur və batareya tutucusunun heç yerə getməsini istəmirsiniz.
Addım 2: Mikrokontrolör və Dövrə
Güc açarını Arduino UNO -nun qarşısına qoydum ki, açarı dəyişəndə heç bir şey batareya paketindən güc istifadə etmir. Bu, layihə açılmadıqda batareyaların mümkün qədər uzun müddət dayanmasına kömək etməlidir. Arduino lövhələri güc idarəçiliyində çox pisdir - heç bir şey etməsələr də açıldıqda çox cərəyan istifadə edirlər.
Batareya paketinin müsbət ucunu mikrokontrolörün VIN-ə (gərginlik girişi) qoşun ki, gərginliyi lazım olan 5V-a endirmək üçün nəzarətçinin daxili gərginlik tənzimləyicisini istifadə etsin. Daha çox işıq yandırsaydıq, onlar üçün öz gərginlik tənzimləyicimizdən istifadə edə bilərik, amma UNO 5 LED -i idarə edə bilməlidir.
Siqnalı hamarlaşdırmaq üçün məlumat çıxışı ilə LED şeridi arasında bir rezistor istifadə etdim - rezistor olmadan piksellərin təsadüfi yanıb -sönməsini ala bilərsiniz. Rezistorun ölçüsünün heç bir əhəmiyyəti yoxdur, 50Ω ilə 400Ω arasında bir şey işləməlidir.
Addım 3: Fiber optik işıqlar
Bir az sınaq və səhvdən sonra, nəhayət, kətan vasitəsilə fiber optik lifləri almaq üçün yaxşı bir yol tapdım.
- Kətan və köpük lövhəsinin önündən bir deşik açmaq üçün ən böyük tikiş iynəsini istifadə edin. Əvvəldən istədiyiniz hər bir çuxuru vurmağı məsləhət görürəm ki, onu çevirin və kabel təşkilatı kliplərinizi hara yerləşdirə biləcəyinizi görün.
- Bir cüt iynəli kəlbətin götür və ucundan bir santimetrdən az olan fiber optik ipi tut
- Fiber optik ipi iynə ilə düzəltdiyiniz çuxurdan keçirin
- Müxtəlif plastik klipslər vasitəsilə ipi lazım olduğundan bir qədər uzun olduğu yerə aparın - sonra kəsəcəyik
- İsti yapışqan tabancanızı aşağı temperaturda (əgər belə bir seçim varsa) köpük lövhəsindən keçdiyi yerə fiber optik telin üzərinə bir damla isti yapışqan qoyun. Alternativ olaraq mavi yapışqan şeylərdən istifadə edə bilərsiniz. İsti yapışqan ipi bir az deformasiya edir, amma optik keyfiyyətlərlə çox qarışmır
- Tel kəsicilərdən istifadə edərək ipi kətandan bir qədər uzaqlaşdırın.
Prosesi sürətləndirmək üçün, isti yapışqan etmədən əvvəl bir çox lifləri ardıcıl olaraq vura bilərsiniz. Ümumiyyətlə öz yerlərində qalmalıdırlar.
Masanın üzərindəki fiber optik telləri qırmamaq və sıxmamaq üçün diqqətli olun - onlar qırılacaq və ipi çox qısa edərsə, kədərlənəcəksiniz və yenidən düzəltməlisiniz. Batareya paketini əks çəki olaraq istifadə edin ki, masanın üstündə şəkil çərçivəsi yarıdan az olsun.
Qara əvəzinə ağ köpük lövhəsi istifadə etdiyim üçün LED -lər yananda çoxlu işıq saçırdı. Düzəltmək üçün işıqlar və kətan arasında alüminium folqa yapışdırdım.
Hər bir fiber optik telini bir yerdə saxlamaq üçün istilik büzücü borulardan istifadə edin.
- Paket üçün ipləri təxminən eyni uzunluğa kəsin
- Bölməni istilik büzücü borulardan keçirin
- Büzmək üçün bir istilik silahı və ya lehimləmə dəmiri istifadə edin. Bir lehimləmə dəmiri istifadə edirsinizsə, dəmirin yan borusuna yüngülcə toxunmasına icazə verin və o kiçilsin. Boru əriməməlidir, çünki bir az istilik üçün hazırlanmışdır.
Nəhayət, paketin ucunu hər bir LED işığına bağlamaq üçün isti yapışqan istifadə etdim. Çox isti yapışqan istifadə etdim ki, liflər işıqda hər qırmızı/yaşıl/mavi dioddan işıq alsın - liflər işığa həqiqətən yaxın olduqda "ağ" rəngli (əslində qırmızı və yaşıl və mavi) sonra bəzi liflər ağ olmaq əvəzinə qırmızı, bəziləri isə yaşıl olacaq. Bunu yaymaq üçün bir kağız parçası və ya başqa bir şey istifadə edərək yaxşılaşdırıla bilər, amma isti yapışqan mənim üçün kifayət qədər yaxşı işləyirdi.
Addım 4: Proqramlaşdırma
Proqramlaşdırmada üç kitabxanadan istifadə etdim
FastLED - WS2812 LED şeridlərini (və bir çox digər ünvanlı LED şeridlərini) idarə etmək üçün əla kitabxana -
Arduino Düşük Güc - Bunun nə qədər gücə qənaət etdiyini bilmirəm, amma həyata keçirmək çox asandır və yalnız ağ işıqlar olan funksiyaya kiçik bir gücün qənaət edilməsinə kömək etməli və sonra sonsuza qədər gecikdirməlidir.
EEPROM - Layihənin hazırkı rejimini oxumaq/saxlamaq üçün istifadə olunur. Bu, layihəni hər dəfə söndürüb yenidən açanda rəng rejimini artırmağa imkan verir ki, bu da rejimi dəyişdirmək üçün ayrı bir düyməyə ehtiyac duymur. Arduino IDE -ni yüklədiyiniz zaman EEPROM kitabxanası quraşdırılır.
Başqasının qurduğu işıqların parıldaması üçün də eskizdən istifadə etdim. Təsadüfi olaraq bir pikseli əsas rəngdən ən yüksək rəngə qədər işıqlandırır və sonra geri çəkilir. https://gist.github.com/kriegsman/88954aae22b03a66… (FastLED kitabxanasından da istifadə edir)
Visual Studio üçün vMicro plaginindən də istifadə etdim - bu Arduino IDE -nin gücləndirilmiş versiyasıdır. Bir çox faydalı avtomatik tamamlama funksiyasına malikdir və kodunuzdakı problemləri tərtib etmədən vurğulayır. 15 dollara başa gəlir, ancaq birdən çox Arduino layihəsi hazırlayacaqsınızsa və buna görə sizi super güclü bir proqram olan Visual Studio haqqında öyrənməyə məcbur edəcək.
(Mən də.ino faylını əlavə edirəm, çünki Github Gist -in Instructable hostinqi fayldakı bir çox boş yerləri məhv edir)
FastLED kitabxanasından istifadə edərək bəzi WS2812B LED şerit işıqları üçün Arduino UNO -da 4 rəngli rejimdə işləyən Arduino kodu
#daxil edin |
#daxil edin |
#daxil edin |
// FastLED qurulması |
#defineNUM_LEDS4 |
#definePIN3 // LED şeridi üçün məlumat pin |
CRGB ledləri [NUM_LEDS]; |
// Parıltı qurulması |
#defineBASE_COLORCRGB (2, 2, 2) // Əsas fon rəngi |
#definePEAK_COLORCRGB (255, 255, 255) // Ən yüksək rəng |
// Parlaqlaşdıqca hər bir döngə ilə rəngi artırmaq üçün məbləğ: |
#deDelta_COLOR_UPCRGB (4, 4, 4) |
// Rəng azaldıqca hər bir döngə ilə azaldılması üçün məbləğ: |
#deDelta_COLOR_DOWNCRGB (4, 4, 4) |
// Hər pikselin parlaqlaşmağa başlama şansı. |
// 1 və ya 2 = bir anda bir neçə işıqlandırıcı piksel. |
// 10 = bir anda çox parlaq piksel. |
#müəyyən etmək ŞANSI_TWINKLE2 |
{SteadyDim, GettingBrighter, GettingDimmerAgain} qeyd edin; |
uint8_t PixelState [NUM_LEDS]; |
bayt runMode; |
bayt globalBright = 150; |
bayt globalDelay = 20; // Göz qırpmaq üçün gecikmə sürəti |
bayt ünvanı = 35; // İşləmə rejimini saxlamaq üçün ünvan |
voidsetup () |
{ |
FastLED.addLeds (ledlər, NUM_LEDS); |
FastLED.setCorrection (TypicalLEDStrip); |
//FastLED.setMaxPowerInVoltsAndMilliamps (5, maxMilliamps); |
FastLED.setBrightness (globalBright); |
// Çalışmaq üçün rejimi əldə edin |
runMode = EEPROM.read (ünvan); |
// İş rejimini 1 artırın |
EEPROM.write (ünvan, runMode + 1); |
} |
boşluq () |
{ |
keçid (runMode) |
{ |
// Qatı ağ |
case1: fill_solid (ledlər, NUM_LEDS, CRGB:: Ağ); |
FastLED.show (); |
DelayForever (); |
fasilə; |
// Yavaş -yavaş yanıb -sönür |
case2: FastLED.setBrightness (255); |
globalDelay = 10; |
TwinkleMapPixels (); |
fasilə; |
// Tez parıldayın |
case3: FastLED.setBrightness (150); |
globalDelay = 2; |
TwinkleMapPixels (); |
fasilə; |
// Göy qurşağı |
dava 4: |
RunRainbow (); |
fasilə; |
// İndeks diapazon xaricində, onu 2 -yə qaytarın və sonra 1 -ci rejimi işə salın. |
// Arduino yenidən başladıqda 2 -ci rejimdə işləyəcək, amma hələlik 1 -ci rejimdə işləyəcək |
defolt: |
EEPROM.write (ünvan, 2); |
runMode = 1; |
fasilə; |
} |
} |
voidRunRainbow () |
{ |
bayt *c; |
uint16_t i, j; |
halbuki (doğru) |
{ |
for (j = 0; j <256; j ++) {// təkərdəki bütün rənglərin 1 dövrü |
üçün (i = 0; i <NUM_LEDS; i ++) { |
c = Təkər (((i * 256 / NUM_LEDS) + j) & 255); |
setPixel (i, *c, *(c + 1), *(c + 2)); |
} |
FastLED.show (); |
gecikmə (globalDelay); |
} |
} |
} |
bayt * Təkər (WheelPos baytı) { |
statik bayt c [3]; |
əgər (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; |
} |
başqa { |
WheelPos -= 170; |
c [0] = 0; |
c [1] = WheelPos * 3; |
c [2] = 255 - WheelPos * 3; |
} |
qayıt c; |
} |
voidTwinkleMapPixels () |
{ |
InitPixelStates (); |
halbuki (doğru) |
{ |
üçün (uint16_t i = 0; i <NUM_LEDS; i ++) { |
əgər (PixelState == SteadyDim) { |
// bu piksel hazırda: SteadyDim |
// buna görə təsadüfi olaraq daha parlaq olmağa başlamağı düşünürük |
əgər (təsadüfi8 () <CHANCE_OF_TWINKLE) { |
PixelState = GettingBrighter; |
} |
} |
elseif (PixelState == GettingBrighter) { |
// bu piksel hazırda: GettingBrighter |
// buna görə də ən yüksək rəngdədirsə, yenidən qaralmağa keçin |
əgər (led > = PEAK_COLOR) { |
PixelState = GettingDimmerAgain; |
} |
başqa { |
// əks halda, onu parlaqlaşdırmağa davam edin: |
led += DELTA_COLOR_UP; |
} |
} |
başqa {// yenidən qaralmaq |
// bu piksel hazırda: GettingDimmerAgain |
// buna görə də əsas rəngə qayıdırsa, onu sabit tutqunlaşdırın |
əgər (led <= BASE_COLOR) { |
led = BASE_COLOR; // aşa bilsək, tam əsas rəngə sıfırlayın |
PixelState = SteadyDim; |
} |
başqa { |
// əks halda, sadəcə qaralmağa davam edin: |
led -= DELTA_COLOR_DOWN; |
} |
} |
} |
FastLED.show (); |
FastLED.delay (globalDelay); |
} |
} |
voidInitPixelStates () |
{ |
Memset (PixelState, ölçüsü (PixelState), SteadyDim); // bütün pikselləri SteadyDim -ə işə salın. |
fill_solid (ledlər, NUM_LEDS, BASE_COLOR); |
} |
voidDelayForever () |
{ |
halbuki (doğru) |
{ |
gecikmə (100); |
LowPower.powerDown (SLEEP_FOREVER, ADC_OFF, BOD_OFF); |
} |
} |
voidshowStrip () { |
FastLED.show (); |
} |
voidsetPixel (int Pixel, bayt qırmızı, bayt yaşıl, mavi bayt) { |
// FastLED |
led [Piksel].r = qırmızı; |
led [Piksel].g = yaşıl; |
led [Piksel]. b = mavi; |
} |
GitHub tərəfindən ❤ ilə evlənən rawFiberOptic_ClemsonPic.inoya baxın
Addım 5: Son Məhsul
Ta-da! Ümid edirəm ki, bu Təlimat başqasına bənzər bir layihə etmək üçün ilham verir. Həqiqətən də bunu etmək çətin deyildi və heç kimin bunu etməməsinə və hələ bu barədə ətraflı təlimat yazmasına təəccübləndim.
Tövsiyə:
Musiqi Reaktiv Fiber Optik Ulduz Tavan Quraşdırması: 11 Addım (Şəkillərlə)
Musiqi Reaktiv Fiber Optik Ulduz Tavan Quraşdırması: Evinizdə bir qalaktika parçası istəyirsiniz? Aşağıda necə edildiyini öyrənin! İllərdir xəyalımdakı layihə idi və nəhayət bitdi. Tamamlanması çox uzun çəkdi, amma nəticə o qədər məmnun idi ki, buna dəyər olduğuna əminəm
Dünyanın İlk Fiber Optik Mum Saatı: 14 Addım (Şəkillərlə birlikdə)
Dünyanın İlk Fiber Optik Mum Saatı: Həyat yoldaşımı hədiyyə etmək qərarına gəldim və orijinal bir fikir ortaya çıxarmaq istədim. Hərəkətli bir heykəl ideyasını bəyəndim və çox düşündükdən sonra kristallardan, şamlardan və parıldayanlardan parlayan və parlayan mexaniki bir saat anlayışı ilə gəldim
"Fiber Optik" LED Matrix: 9 Addım (Şəkillərlə birlikdə)
"Fiber Optik" LED Matrix: Bu layihədə bir " fiber optik " WS2801 LED şeridi və yapışqan çubuqlardan istifadə edərək LED matris. İşıq displeyləri oxşar LED kublarından fərqli bir görünüşə və bir neçə üstünlükə malikdir. Birincisi, ekranda əsl LEDləri görə bilməzsiniz, çünki
Fiber Optik Lazer Fanlar: 9 Addım (Şəkillərlə birlikdə)
Fiber Optik Lazer Fanlar: Sərin nə var? Fiber optik. Daha sərin nədir? Lazerlər. Möhtəşəm nədir? Yanğın pərəstişkarları. Bu təlimat qismən od pərəstişkarlarından, qismən də bionik balerinadan ilham aldı. Hər bir fan əyilmə sensoru ilə qırmızı və ya qəhvəyi rəngdə işıqlandırılan beş fiber optik çubuqdan hazırlanmışdır
Makey Makey ilə Musiqili Rəsm Kətan: 9 Addım (Şəkillərlə)
Makey Makey ilə Musiqili Rəsm Kətanı: Salam, bu Təlimat kitabında Musiqili Rəsm Kətanını necə edəcəyimizi öyrənəcəyik, yəni hər rəngli bir fırça ilə rənglədikdə fərqli bir mahnı səslənir. Bu çox əyləncəlidir və kiçik uşaqlarda rəsm çəkməyi təşviq etmək və ya xüsusi bir xüsusiyyət vermək üçün işləyir