Mundarija:
- 1 -qadam: ko'pik paneli, batareya to'plami va yoqish/o'chirish tugmasi
- 2 -qadam: Mikrokontroller va elektron
- 3-qadam: optik tolali chiroqlar
- 4 -qadam: dasturlash
- 5 -qadam: Yakuniy mahsulot
Video: Tuvalda optik tolali chiroqlar: 5 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:25
Ushbu loyiha standart tuval nashriga noyob spin qo'shadi. Men 4 xil yoritish rejimida dasturlashtirdim, lekin siz osongina boshqasini qo'shishingiz mumkin. Rejim har safar o'chirilganda va yoqilganda, alohida tugmachaning o'rniga, ramkaga zarar etkazishni kamaytiradi. Batareyalar 50+ soat ishlashga to'g'ri kelishi kerak - ishonchim komil emas, lekin men do'stim uchun shunga o'xshash loyihani ishlab chiqdim va u 5 marta ko'p chiroq ishlatdi va bitta batareyada 20+ soat davom etdi.
Materiallar
- Ish joyi bo'lgan tuval bosib chiqarish - men https://www.easycanvasprints.com saytidan o'zimga buyurtma berdim, chunki ular yaxshi narxga ega va orqa tomoni ochiq. Qalinroq 1,5 dyuymli ramka mukammal edi va menga optik tolali tolalarni burish uchun juda ko'p joy berdi. Bundan tashqari, sizga batareya to'plami va mikrokontroller va LED chiziqlar uchun 3 dyuymdan 8 dyuymgacha bo'sh joy beradigan rasm kerak.
- LED chiziqli chiroqlar - Men manzilli WS2812 LED tasmalaridan foydalanardim. Qo'rqmang, FastLED yoki Neopixel kutubxonalarida ulardan foydalanish juda oson! Siz har qanday standart LED tasmasini ham ishlatishingiz mumkin, siz ko'p yorug'liksiz har bir yorug'lik qismini alohida boshqarolmaysiz.
- Mikrokontroller - Men Arduino Uno -dan foydalandim, lekin siz bu loyiha uchun deyarli hamma narsani ishlatishingiz mumkin.
- Batareya to'plami - Men eBay -dan (Xitoydan) buyurtma berdim va u "6 x 1,5V AA 2A CELL batareyali ushlagich ushlagichi" deb nomlangan.
- Optik tolali tolalar - yana Xitoydan eBay -da buyurtma qilingan - "PMMA plastik tolali optik kabellar LED yorug'lik bilan bezatilgan" yoki "Yulduzli shiftli yorug'lik to'plami uchun PMMA End Glow optik tolali kabel". Men 1 mm va 1,5 mm o'lchamlarini ishlatardim, aslida undan kichikroq foydalanishni tavsiya qilaman.
- Yoqish/o'chirish tugmasi - "SPDT -ni yoqish/yoqish 2 -o'rni miniatyurali o'tish tugmachalari"
- Tel o'tkazgich kliplari - bu optik tolali iplarni chiroyli va tartibli saqlashga yordam beradi.
- Ko'pikli taxta, qattiq yadroli ulagichli sim, issiqlik o'tkazmaydigan quvur
Asboblar
- Dremel - rasm ramkasida yoqish/o'chirish tugmachasini joylashtirish uchun ishlatiladi. Bu, ehtimol, matkap yordamida amalga oshirilishi mumkin, lekin men buni tavsiya qilmayman.
- Lehimlash temir - LED chizig'iga simlarni ulash
- Issiq yopishtiruvchi qurol - bu loyihaning har bir bosqichi
- Katta tikuv ignasi - tuval orqali teshiklarni teshish va chiroqlar uchun ko'pikli taxta
1 -qadam: ko'pik paneli, batareya to'plami va yoqish/o'chirish tugmasi
Boshqa narsadan oldin, tuvalning orqa qismiga ko'pikli taxtaning bir qismini yopishtirish kerak. Bu bizga hamma narsani mahkamlash uchun yaxshi mustahkam sirt beradi va optik tolali iplarni joyida ushlab turishga yordam beradi. Ko'pikli taxtadan kerakli o'lchamdagi pichoqni yoki quti kesgichni ishlatib, ko'p joylarga issiq yopishtiring. Men qora ko'pikli taxtadan foydalanishni maslahat beraman, shunda u ko'p yorug'lik oqishiga yo'l qo'ymaydi.
Men oddiy matkapga o'xshash, lekin materialni olib tashlash uchun juda yaxshi bo'lgan dremel bitini ishlatardim. Bu har qanday dremel bilan birga keladigan bitlardan biri. Drameldan har qanday talaşni olib tashlash uchun siqilgan havo idishini ishlating.
Hammasini joyida issiq elim bilan yopishtiring. Batareya to'plami juda yaxshi biriktirilganligiga ishonch hosil qiling, chunki u batareyani kiritish/chiqarish uchun yaxshi kuch talab qiladi va siz batareya ushlagichining hech qaerga ketishini xohlamaysiz.
2 -qadam: Mikrokontroller va elektron
Men quvvat tugmachasini Arduino UNO oldiga qo'ydim, shunda siz kalitni almashtirsangiz, hech narsa batareya to'plamidan quvvat sarflamaydi. Bu loyiha yoqilmaganda batareyalarning iloji boricha uzoqroq ishlashiga yordam beradi. Arduino platalari quvvatni boshqarishda juda yomon - ular hech narsa qilmasa ham, ular yoqilgan bo'lsa, ular juda ko'p tok sarflaydilar.
Batareya to'plamining ijobiy uchini mikrokontrolderning VIN (kuchlanish kiritish) ga ulang, shunda u voltajni kerakli 5V ga tushirish uchun boshqaruvchining o'rnatilgan voltaj regulyatoridan foydalanadi. Agar biz ko'proq chiroq yoqadigan bo'lsak, ular uchun o'z voltaj regulyatoridan foydalanishimiz kerak bo'ladi, lekin UNO 5 ta LEDni boshqarishi kerak.
Men signalni yumshatish uchun ma'lumot chiqishi va LED chizig'i orasidagi rezistordan foydalandim - rezistorsiz siz piksellarning tasodifiy miltillashi mumkin. Rezistorning o'lchami muhim emas, 50Ω dan 400Ω gacha bo'lgan har qanday narsa ishlashi kerak.
3-qadam: optik tolali chiroqlar
Sinov va xatolardan so'ng, men tolali optik tolalarni tuval orqali olishning yaxshi usulini topdim.
- Tuval va ko'pikli taxtaning old qismini teshik qilish uchun eng katta tikuv ignasidan foydalaning. Men boshida siz xohlagan har bir teshikni teshib qo'yishni maslahat beraman, shunda siz uni ag'darishingiz va kabel uyushtirish kliplarini qaerga qo'yishingiz mumkin/bo'lmasligini ko'rishingiz mumkin.
- Bir juft igna qisqichini oling va optik tolali ipni oxiridan bir santimetrdan kamroq ushlab oling.
- Optik tolali ipni igna bilan qilingan teshikdan o'tkazing
- Ipni turli plastmassa qisqichlar orqali kerak bo'lgandan biroz uzunroqqa yo'naltiring - biz uni keyinroq kesib tashlaymiz
- Issiq yopishtiruvchi qurol bilan past haroratni sozlang (agar u shunday bo'lsa), optik tolali ipga bir tomchi issiq elim qo'ying, u erda ko'pikli taxtadan o'tadi. Shu bilan bir qatorda, siz ko'k rangli yopishqoq narsalarni ishlatishingiz mumkin. Issiq elim ipni biroz deformatsiyaga soladi, lekin u optik fazilatlarni unchalik buzmaydi
- Ipni tuvaldan bir oz uzoqda, tel kesgichlar yordamida kesib oling.
Jarayonni tezlashtirish uchun siz issiq elim yopishtirishdan oldin ketma -ket ko'plab tolalarni kesib o'tishingiz mumkin. Odatda ular o'z joylarida qolishlari kerak.
Stol ustidagi optik tolali tolalarni sindirish yoki siqib qo'yishdan ehtiyot bo'ling - ular uzilib ketadi va agar ipni juda qisqa qilib qo'ysa, xafa bo'lasiz va uni qayta bajarishingiz kerak bo'ladi. Batareya to'plamini qarama -qarshi vazn sifatida ishlating, shunda siz stol ustida rasm ramkasini yarmidan kamroq bo'lishi mumkin.
Men qora o'rniga oq ko'pikli taxtadan foydalanganim uchun, LEDlar yonib turganda juda ko'p yorug'lik porlab turardi. Tuzatish sifatida men chiroqlar va tuval o'rtasida alyumin folga yopishtirdim.
Optik tolali iplarning har bir to'plamini bir joyda ushlab turish uchun issiqlik o'tkazmaydigan quvurlardan foydalaning.
- To'plam uchun iplarni taxminan bir xil uzunlikka kesib oling
- Bo'limni issiqlik o'tkazmaydigan quvurlar orqali joylashtiring
- Uni qisqartirish uchun issiqlik tabancasi yoki lehim temiridan foydalaning. Agar siz lehimlantiruvchi temirdan foydalansangiz, dazmolning yon tomoni trubkaga ozgina tegsa, u qisqaradi. U quvurni eritmasligi kerak, chunki u ozgina issiqlikka mo'ljallangan.
Oxir -oqibat, men har bir LED chiroqqa to'plamning uchini ulash uchun issiq elim ishlatardim. Men juda ko'p issiq elim ishlatardim, shuning uchun tolalar yorug'likdagi har bir qizil/yashil/ko'k dioddan nur olishi uchun - tolalar nurga yaqin bo'lsa, "oq" rang (aslida qizil va yashil va ko'k) keyin ba'zi tolalar qizil bo'ladi, ba'zilari esa yashil bo'ladi. Buni tarqatish uchun qog'oz parchasi yoki boshqa biror narsa yordamida yaxshilash mumkin edi, lekin issiq elim men uchun etarlicha yaxshi ishladi.
4 -qadam: dasturlash
Buni dasturlashda men uchta kutubxonadan foydalandim
FastLED - WS2812 LED tasmalarini boshqarish uchun ajoyib kutubxona (va boshqa ko'plab LED chiziqlar) -
Arduino kam quvvatli - bu qancha quvvatni tejashini bilmayman, lekin uni amalga oshirish juda oson edi va faqat oq chiroqlar vazifasini bajarishda ozgina quvvatni tejashga yordam berishi kerak edi, keyin esa abadiy kechiktirildi.
EEPROM - loyihaning joriy rejimini o'qish/saqlash uchun ishlatiladi. Bu loyihaga rang rejimini har safar o'chirish va qayta yoqish imkoniyatini beradi, bu esa rejimni o'zgartirish uchun alohida tugma kerak bo'lmaydi. EEPROM kutubxonasi Arduino IDE -ni o'rnatganingizda o'rnatiladi.
Men ham boshqa birov o'rnatgan chiroqlarning miltillashi uchun eskizdan foydalandim. U tasodifiy pikselni asosiy rangdan tepalik ranggacha yoritadi va keyin orqaga qaytadi. https://gist.github.com/kriegsman/88954aae22b03a66… (u FastLED kutubxonasidan ham foydalanadi)
Men Visual Studio uchun vMicro plaginini ham ishlatganman - bu Arduino IDE ning kengaytirilgan versiyasi. Bu juda ko'p foydali avtomatik to'ldirish funktsiyalariga ega va uni kompilyatsiya qilmasdan kodingizdagi muammolarni yoritadi. Bu 15 dollar turadi, lekin agar siz bir nechta Arduino loyihasini tayyorlamoqchi bo'lsangiz, bunga arziydi va bu sizni kuchli dastur Visual Studio haqida bilishga majbur qiladi.
(Men ham.ino faylini biriktiryapman, chunki Github Gist -ning instructable hosting fayldagi ko'p bo'sh joylarni yo'q qiladi)
FastLED kutubxonasi yordamida ba'zi WS2812B LED chiziqli chiroqlar uchun Arduino UNO -da 4 xil rang rejimida ishlaydigan Arduino kodi
#qo'shing |
#qo'shing |
#qo'shing |
// FastLED -ni sozlash |
#belgilashNUM_LEDS4 |
#definePIN3 // LED tasmasi uchun ma'lumot pinasi |
CRGB chiroqlari [NUM_LEDS]; |
// Yorqin sozlash |
#defineBASE_COLORCRGB (2, 2, 2) // Asosiy fon rangi |
#definePEAK_COLORCRGB (255, 255, 255) // Yorug'lik uchun eng yuqori rang |
// Yorqinlashganda rangni har bir tsiklga oshirish miqdori: |
#defineDELTA_COLOR_UPCRGB (4, 4, 4) |
// Har bir pastadir rangini pasaytirganda, uning rangi kamayadi: |
#defineDELTA_COLOR_DOWNCRGB (4, 4, 4) |
// Har bir pikselning porlashi ehtimoli. |
// 1 yoki 2 = bir vaqtning o'zida bir nechta yorqin piksellar. |
// 10 = bir vaqtning o'zida juda ko'p piksel yorishadi. |
#aniqlashCHANCE_OF_TWINKLE2 |
Enum {SteadyDim, GettingBrighter, GettingDimmerAgain}; |
uint8_t PixelState [NUM_LEDS]; |
bayt runMode; |
bayt globalBright = 150; |
bayt globalDelay = 20; // miltillovchi uchun kechikish tezligi |
bayt manzili = 35; // Ishlash rejimini saqlash uchun manzil |
voidsetup () |
{ |
FastLED.addLeds (LEDlar, NUM_LEDS); |
FastLED.setCorrection (TypicalLEDStrip); |
//FastLED.setMaxPowerInVoltsAndMilliamps (5, maxMilliamps); |
FastLED.setBrightness (globalBright); |
// Ishlash rejimini oling |
runMode = EEPROM.read (manzil); |
// Ish rejimini 1 ga oshiring |
EEPROM.write (manzil, runMode + 1); |
} |
voidloop () |
{ |
almashtirish (runMode) |
{ |
// Qattiq oq |
case1: fill_solid (LEDlar, NUM_LEDS, CRGB:: Oq); |
FastLED.show (); |
DelayForever (); |
tanaffus; |
// Asta -sekin miltillab turing |
case2: FastLED.setBrightness (255); |
globalDelay = 10; |
TwinkleMapPixels (); |
tanaffus; |
// Tezda miltillash |
case3: FastLED.setBrightness (150); |
globalDelay = 2; |
TwinkleMapPixels (); |
tanaffus; |
// Kamalak |
4 -holat: |
RunRainbow (); |
tanaffus; |
// Indeks diapazondan tashqarida, uni 2 ga qaytaring va keyin 1 rejimini ishga tushiring. |
// Arduino qayta ishga tushganda, u 2 -rejimda ishlaydi, lekin hozircha 1 -rejimda ishlaydi |
standart: |
EEPROM.write (manzil, 2); |
runMode = 1; |
tanaffus; |
} |
} |
voidRunRainbow () |
{ |
bayt *c; |
uint16_t i, j; |
esa (rost) |
{ |
uchun (j = 0; j <256; j ++) {// g'ildirakdagi barcha ranglarning 1 tsikli |
uchun (i = 0; i <NUM_LEDS; i ++) { |
c = G'ildirak (((i * 256 / NUM_LEDS) + j) & 255); |
setPixel (i, *c, *(c + 1), *(c + 2)); |
} |
FastLED.show (); |
kechikish (globalDelay); |
} |
} |
} |
bayt * G'ildirak (bayt WheelPos) { |
statik bayt c [3]; |
agar (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; |
} |
boshqa { |
WheelPos -= 170; |
c [0] = 0; |
c [1] = WheelPos * 3; |
c [2] = 255 - WheelPos * 3; |
} |
qaytish c; |
} |
voidTwinkleMapPixels () |
{ |
InitPixelStates (); |
esa (rost) |
{ |
uchun (uint16_t i = 0; i <NUM_LEDS; i ++) { |
agar (PixelState == SteadyDim) { |
// bu piksel hozirda: SteadyDim |
// shuning uchun biz tasodifan uni yorqinroq qilishni boshlaymiz |
agar (tasodifiy8 () <CHANCE_OF_TWINKLE) { |
PixelState = GettingBrighter; |
} |
} |
elseif (PixelState == GettingBrighter) { |
// bu piksel hozirda: GettingBrighter |
// shuning uchun agar u eng yuqori rangda bo'lsa, uni yana xiralashishga o'tkazing |
agar (leds > = PEAK_COLOR) { |
PixelState = GettingDimmerAgain; |
} |
boshqa { |
// aks holda, uni yoritishda davom eting: |
leds += DELTA_COLOR_UP; |
} |
} |
boshqa {// yana xiralashadi |
// bu piksel hozirda: GettingDimmerAgain |
// agar u asosiy rangga qaytgan bo'lsa, uni doimiy xira qilib o'zgartiring |
agar (LEDlar <= BASE_COLOR) { |
leds = BASE_COLOR; // agar biz haddan oshib ketgan bo'lsak, asosiy rangga qaytamiz |
PixelState = SteadyDim; |
} |
boshqa { |
// aks holda, uni qisqartirishda davom eting: |
leds -= DELTA_COLOR_DOWN; |
} |
} |
} |
FastLED.show (); |
FastLED.delay (globalDelay); |
} |
} |
voidInitPixelStates () |
{ |
Memset (PixelState, hajmi (PixelState), SteadyDim); // barcha piksellarni SteadyDim -ga ishga tushiring. |
to'ldirish_solid (LEDlar, NUM_LEDS, BASE_COLOR); |
} |
voidDelayForever () |
{ |
esa (rost) |
{ |
kechikish (100); |
LowPower.powerDown (SLEEP_FOREVER, ADC_OFF, BOD_OFF); |
} |
} |
voidshowStrip () { |
FastLED.show (); |
} |
voidsetPixel (int Pixel, qizil bayt, yashil bayt, ko'k bayt) { |
// FastLED |
LEDlar [Piksel].r = qizil; |
LEDlar [Piksel].g = yashil; |
LEDlar [Piksel].b = ko'k; |
} |
rawFiberOptic_ClemsonPic.ino ni GitHub tomonidan ❤ bilan joylashtirilganini ko'ring
5 -qadam: Yakuniy mahsulot
Ta-da! Umid qilamanki, bu ko'rsatma boshqa birovni shunga o'xshash loyihani yaratishga ilhomlantiradi. Buni qilish juda qiyin emas edi va men hech kim buni qilmaganiga hayron bo'ldim va hali bu haqda batafsil ko'rsatma yozmaganman.
Tavsiya:
Musiqiy reaktiv optik tolali yulduzli shiftini o'rnatish: 11 qadam (rasmlar bilan)
Musiqiy reaktiv optik tolali yulduzli shiftga o'rnatish: uyingizda galaktikaning bir bo'lagi kerakmi? Buni qanday amalga oshirilganini bilib oling! Yillar davomida bu mening orzularim loyihasi edi va nihoyat tugadi. Tugatish uchun ancha vaqt kerak bo'ldi, lekin yakuniy natija shu qadar qoniqtirdiki, men bunga arzigulik ekaniga amin bo'ldim
Dunyodagi birinchi optik tolali soat: 14 qadam (rasmlar bilan)
Dunyodagi birinchi optik tolali soat: Men xotinimni sovg'a qilishga qaror qildim va o'ziga xos g'oya bilan chiqmoqchi bo'ldim. Menga harakatlanuvchi haykal g'oyasi yoqdi va ko'p o'ylanganidan keyin mexanik soat kontseptsiyasi paydo bo'ldi, u miltillagan, kristallar, shamlar va
"Optik tolali" LED matritsasi: 9 qadam (rasmlar bilan)
"Optik tolali" LED matritsasi: Ushbu loyihada men " optik tolali " LED matritsasi WS2801 LED tasmasi va elim tayoqchalari yordamida. Yorug'lik displeylari o'xshash LED kubiklardan farqli ko'rinishga ega va bir nechta afzalliklarga ega. Birinchidan, siz displeyda haqiqiy LEDlarni ko'ra olmaysiz, chunki
Optik tolali lazer muxlislari: 9 qadam (rasmlar bilan)
Optik tolali lazer muxlislari: nima ajoyib? Optik tolalar. Qaysi salqinroq? Lazerlar. Nima ajoyib? Yong'in muxlislari. Bu ko'rsatma qisman o't o'chiruvchilar va qisman bionik balerinadan ilhomlangan. Har bir fan beshta optik tolali tayoqlardan yasalgan bo'lib, ular nishab sensori bilan qizil yoki yello rangda yoritilgan
Optik tolali qanotlar: 24 qadam (rasmlar bilan)
Optik tolali qanotlar: Men go'shtli loyihani qazib olganimga ancha bo'ldi, shuning uchun qovun chumolilardan Joel mendan yangi optik tolali mahsulotlarini sotish uchun kostyum tikishni so'raganda, men mamnuniyat bilan qabul qildim. Men optik tolali optikasi uchun uning oldingi avlod chiroqlarini ishlatardim