Mundarija:

Tuvalda optik tolali chiroqlar: 5 qadam
Tuvalda optik tolali chiroqlar: 5 qadam

Video: Tuvalda optik tolali chiroqlar: 5 qadam

Video: Tuvalda optik tolali chiroqlar: 5 qadam
Video: "Кара чүмбөт" Саадатбек Мырзакул уулу | 1-китептин 2-бөлүмү | Криминалдуу детектив | #аудиокитеп 2024, May
Anonim
Image
Image
Tuval bosib chiqarishda optik tolali chiroqlar
Tuval bosib chiqarishda optik tolali chiroqlar

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

Ko'pik taxtasi, batareya to'plami va yoqish/o'chirish tugmasi
Ko'pik taxtasi, batareya to'plami va yoqish/o'chirish tugmasi
Ko'pik paneli, batareya to'plami va yoqish/o'chirish tugmasi
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

Mikrokontroller va elektron
Mikrokontroller va elektron
Mikrokontroller va davr
Mikrokontroller va davr
Mikrokontroller va davr
Mikrokontroller va davr

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

Image
Image
Optik tolali chiroqlar
Optik tolali chiroqlar
Optik tolali chiroqlar
Optik tolali chiroqlar

Sinov va xatolardan so'ng, men tolali optik tolalarni tuval orqali olishning yaxshi usulini topdim.

  1. 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.
  2. Bir juft igna qisqichini oling va optik tolali ipni oxiridan bir santimetrdan kamroq ushlab oling.
  3. Optik tolali ipni igna bilan qilingan teshikdan o'tkazing
  4. Ipni turli plastmassa qisqichlar orqali kerak bo'lgandan biroz uzunroqqa yo'naltiring - biz uni keyinroq kesib tashlaymiz
  5. 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
  6. 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.

  1. To'plam uchun iplarni taxminan bir xil uzunlikka kesib oling
  2. Bo'limni issiqlik o'tkazmaydigan quvurlar orqali joylashtiring
  3. 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

Yakuniy mahsulot
Yakuniy mahsulot
Yakuniy mahsulot
Yakuniy mahsulot
Yakuniy mahsulot
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: