Съдържание:
- Стъпка 1: Дъска от пяна, батерия и превключвател за включване/изключване
- Стъпка 2: Микроконтролер и схема
- Стъпка 3: Оптични светлини
- Стъпка 4: Програмиране
- Стъпка 5: Краен продукт
Видео: Оптични светлини в печат на платно: 5 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:51
Този проект добавя уникално завъртане на стандартен печат на платно. Програмирах в 4 различни режима на осветление, но лесно можете да добавите още. Режимът се променя всеки път, когато го изключите и включите отново, вместо да имате отделен бутон, за да сведете до минимум повредата на рамката. Батериите трябва да издържат над 50 часа употреба - не съм много сигурен, но направих подобен проект за приятел и той използва 5 пъти повече светлини и издържа 20+ часа на един комплект батерии.
Материали
- Печат на платно с работещо пространство - поръчах моето от https://www.easycanvasprints.com, защото имаха добри цени и отворен гръб. По -дебелата 1,5 "рамка беше перфектна и ми даде много място за огъване на нишките от оптични влакна. Освен това искате картина, която ви дава 3" на 8 "работно пространство за батерията и микроконтролера и LED ленти
- LED ленти - използвах адресируеми WS2812 LED ленти. Не се плашете, те са наистина лесни за използване с библиотеките FastLED или Neopixel! Можете също така да използвате всяка стандартна LED лента, просто няма да можете да контролирате всяка светлинна секция поотделно без много повече окабеляване.
- Микроконтролер - Използвах Arduino Uno, но можете да използвате почти всичко за този проект.
- Батерия - Поръчах тази от eBay (от Китай) и беше озаглавена "6 x 1.5V AA 2A CELL Battery Batteries Holder"
- Оптични нишки - за пореден път, поръчани от Китай в eBay - „PMMA пластмасов оптичен кабел с краен ръст на осветена светлина DIY декор“или „PMMA край Glow оптичен кабел за комплект таванна лампа Star“. Използвах размери 1 мм и 1,5 мм, всъщност препоръчвам да използвате по -малки от това.
- Превключвател за включване/изключване - "SPDT Вкл./Вкл. 2 позиционни миниатюрни превключватели за превключване"
- Щипки за телена организация - Те помагат за поддържане на нишките от оптични влакна хубави и подредени.
- Дъска от пяна, съединителен проводник с твърдо ядро, термосвиваеми тръби
Инструменти
- Dremel - използва се за поставяне на превключвателя за включване/изключване в рамката на картината. Това може би може да бъде постигнато с тренировка и много голяма работа, но не препоръчвам това.
- Поялник - закрепване на проводници към LED лентата
- Пистолет за горещо лепило - буквално всяка стъпка от този проект
- Голяма игла за шиене - за пробиване на дупки през платното и дъска от пяна за светлините
Стъпка 1: Дъска от пяна, батерия и превключвател за включване/изключване
Преди всичко друго трябва да прикрепите парче пенопласт към гърба на отпечатаното платно. Това ни дава хубава плътна повърхност, към която да прикрепяме всичко останало, и помага за задържането на влакната от оптични влакна на място. Просто използвайте точен нож или резачка за кутии, за да изрежете парче дъска от пяна до правилния размер и да го залепите горещо на много места. Препоръчвам да използвате черна дъска от пяна, така че да не пропуска толкова много светлина.
Използвах бита dremel, която прилича на обикновена свредло, но всъщност е чудесна за отстраняване на материал. Това е един от битовете, които трябва да дойдат с всеки дремел. Използвайте кутия сгъстен въздух, за да премахнете дървени стърготини от дремела.
Горещо залепете всичко на място. Уверете се, че батерията е прикрепена много добре, тъй като тя изисква добра сила за поставяне/изваждане на батерията и не искате държачът на батерията да отиде никъде.
Стъпка 2: Микроконтролер и схема
Поставих превключвателя за захранване пред Arduino UNO, така че когато превключвате превключвателя, нищо не използва енергия от батериите. Това би трябвало да помогне на батериите да издържат възможно най -дълго, когато проектът не е включен. Платките на Arduino са известни с лошо управление на захранването - те използват много ток, ако са включени, дори ако не правят нищо активно.
Включете положителния край на батерията във VIN (вход на напрежение) на микроконтролера, така че да използва вградения регулатор на напрежението на контролера, за да понижи напрежението до 5V, от което се нуждае. Ако захранвахме повече светлини, може да се наложи да използваме собствен регулатор на напрежението за тях, но UNO би трябвало да може да се справи с 5 светодиода.
Използвах резистор между изхода на данни и LED лентата, за да изгладя сигнала - без резистора може да получите случайно мигане на пиксели. Размерът на резистора всъщност няма значение, всичко между 50Ω и 400Ω трябва да работи.
Стъпка 3: Оптични светлини
След някои опити и грешки в крайна сметка намерих добър начин да прокарам нишките от оптични влакна през платното.
- Използвайте най -голямата игла за шиене, която имате, за да пробиете дупка през предната част на платното и дъската от пяна. Препоръчвам да пробиете всяка дупка, която искате, в самото начало, за да можете да я обърнете и да видите къде можете/не можете да поставите вашите клипове за кабелна организация
- Вземете чифт клещи с иглени носове и вземете оптичната нишка на по-малко от сантиметър от края
- Прокарайте нишката от оптични влакна през отвора, който сте направили с игла
- Насочете нишката през различни пластмасови скоби до мястото, където тя е малко по -дълга от необходимото - ще я отрежем по -късно
- С вашия пистолет за горещо лепило на ниска настройка на температурата (ако има такава опция) поставете капка горещо лепило върху влакното от оптични влакна, където то прониква през плочата от пяна. Алтернативно бихте могли да използвате тези сини лепкави неща. Горещото лепило наистина деформира нишката малко, но изглежда не пречи твърде много на оптичните качества
- Изрежете нишката малко далеч от платното с помощта на ножове за тел.
За да ускорите процеса, можете да пробиете през много влакна последователно, преди да направите горещото лепило. Те обикновено трябва да останат на място сами.
Внимавайте да не счупите или смачкате нишките от оптичните влакна на масата - те ще се счупят и ако това направи нишката твърде къса, тогава ще бъдете тъжни и ще трябва да я преработите. Използвайте батерията като противотежест, за да имате рамката на картината по -малко от половината на бюрото.
Тъй като използвах бяла дъска от пяна вместо черна, имаше много светлина, която светеше, когато светодиодите бяха включени. Като поправка залепих в алуминиево фолио между светлините и платното.
Използвайте термосвиваеми тръби, за да държите всеки сноп влакна от оптични влакна заедно.
- Изрежете нишките за снопа на приблизително еднаква дължина
- Поставете секцията през термосвиваеми тръби
- Използвайте термопистолет или поялник, за да го свиете. Ако използвате поялник, просто оставете страничната част на ютията леко да докосне тръбата и тя ще се свие. Не трябва да разтопява тръбата, защото е предназначена за малко топлина.
В крайна сметка използвах горещо лепило, за да прикрепя края на снопа към всяка LED светлина. Използвах много горещо лепило, така че влакната действително получават светлина от всеки червен/зелен/син диод в светлината - когато влакната са наистина близо до светлината, има "бял" цвят (който всъщност е червен, зелен и син) тогава някои влакна ще бъдат просто червени, а някои ще бъдат зелени, вместо всички да са бели. Това би могло да се подобри, като се използва лист хартия или нещо друго, за да се разпръсне, но горещото лепило ми действа достатъчно добре.
Стъпка 4: Програмиране
При програмирането на това използвах три библиотеки
FastLED - страхотна библиотека за управление на LED ленти WS2812 (и много други адресируеми LED ленти) -
Arduino Low Power - Не знам колко енергия всъщност спестява, но беше супер лесно за изпълнение и би трябвало да помогне за спестяване на малко енергия на функцията, която е само бели светлини и след това забавяне завинаги.
EEPROM - Използва се за четене/съхраняване на текущия режим на проекта. Това позволява на проекта да увеличава цветовия режим всеки път, когато го изключите и включите отново, което елиминира необходимостта от отделен бутон за промяна на режима. Библиотеката EEPROM се инсталира всеки път, когато инсталирате Arduino IDE.
Използвах и скица за мигане на светлините, които някой друг е настроил. Той произволно осветява пиксел от основен цвят до пиков цвят и след това обратно. https://gist.github.com/kriegsman/88954aae22b03a66… (използва и библиотеката FastLED)
Използвах и приставката vMicro за Visual Studio - това е усъвършенствана версия на Arduino IDE. Той има много полезни функции за автоматично довършване и подчертава проблемите във вашия код, без да се налага да го компилирате. Струва $ 15, но си заслужава, ако ще правите повече от един проект на Arduino и ще ви принуди да научите за Visual Studio, която е супер мощна програма.
(Прилагам и кода.ino файл, защото инструктирането на хостинг на Github Gist унищожава много празни пространства във файла)
Кодът на Arduino, изпълняващ 4 цветови режима на Arduino UNO за някои светлини с LED ленти WS2812B, използвайки библиотеката FastLED
#включва |
#включва |
#включва |
// FastLED настройка |
#defineNUM_LEDS4 |
#definePIN3 // ПИН за данни за LED лента |
CRGB светодиоди [NUM_LEDS]; |
// Twinkle настройка |
#defineBASE_COLORCRGB (2, 2, 2) // Основен цвят на фона |
#definePEAK_COLORCRGB (255, 255, 255) // Пиков цвят, за да премигне до |
// Сума за увеличаване на цвета с всеки цикъл, когато става по -ярък: |
#defineDELTA_COLOR_UPCRGB (4, 4, 4) |
// Сума за намаляване на цвета от всеки цикъл, когато стане по -тъмен: |
#defineDELTA_COLOR_DOWNCRGB (4, 4, 4) |
// Шанс всеки пиксел да започне да се прояснява. |
// 1 или 2 = няколко осветяващи пиксела наведнъж. |
// 10 = много пиксели, изсветляващи наведнъж. |
#defineCHANCE_OF_TWINKLE2 |
enum {SteadyDim, GettingBrighter, GettingDimmerAgain}; |
uint8_t PixelState [NUM_LEDS]; |
байт runMode; |
байт globalBright = 150; |
байт globalDelay = 20; // Забавяне на скоростта за мигане |
байт адрес = 35; // Адрес за съхраняване на режима на изпълнение |
voidsetup () |
{ |
FastLED.addLeds (светодиоди, NUM_LEDS); |
FastLED.setCorrection (TypicalLEDStrip); |
//FastLED.setMaxPowerInVoltsAndMilliamps (5, maxMilliamps); |
FastLED.setBrightness (globalBright); |
// Вземете режима за изпълнение |
runMode = EEPROM.read (адрес); |
// Увеличете режима на изпълнение с 1 |
EEPROM.write (адрес, runMode + 1); |
} |
voidloop () |
{ |
превключвател (runMode) |
{ |
// Плътно бяло |
case1: fill_solid (светодиоди, NUM_LEDS, CRGB:: Бял); |
FastLED.show (); |
DelayForever (); |
прекъсване; |
// Мига някак бавно |
case2: FastLED.setBrightness (255); |
globalDelay = 10; |
TwinkleMapPixels (); |
прекъсване; |
// Мига бързо |
case3: FastLED.setBrightness (150); |
globalDelay = 2; |
TwinkleMapPixels (); |
прекъсване; |
//Дъга |
случай 4: |
RunRainbow (); |
прекъсване; |
// Индекс извън обхвата, нулирайте го на 2 и след това стартирайте режим 1. |
// Когато arduino се рестартира, той ще стартира режим 2, но засега стартира режим 1 |
по подразбиране: |
EEPROM.write (адрес, 2); |
runMode = 1; |
прекъсване; |
} |
} |
voidRunRainbow () |
{ |
байт *c; |
uint16_t i, j; |
докато (вярно) |
{ |
за (j = 0; j <256; j ++) {// 1 цикъл на всички цветове на колелото |
за (i = 0; i <NUM_LEDS; i ++) { |
c = колело (((i * 256 / NUM_LEDS) + j) & 255); |
setPixel (i, *c, *(c + 1), *(c + 2)); |
} |
FastLED.show (); |
забавяне (globalDelay); |
} |
} |
} |
байт * колело (байт WheelPos) { |
статичен байт c [3]; |
if (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; |
} |
иначе { |
WheelPos -= 170; |
c [0] = 0; |
c [1] = WheelPos * 3; |
c [2] = 255 - WheelPos * 3; |
} |
връщане c; |
} |
voidTwinkleMap Пиксели () |
{ |
InitPixelStates (); |
докато (вярно) |
{ |
за (uint16_t i = 0; i <NUM_LEDS; i ++) { |
if (PixelState == SteadyDim) { |
// тези пиксели в момента са: SteadyDim |
// затова на случаен принцип обмисляме как да започне да става по -ярка |
if (random8 () <CHANCE_OF_TWINKLE) { |
PixelState = GettingBrighter; |
} |
} |
elseif (PixelState == GettingBrighter) { |
// тези пиксели в момента са: GettingBrighter |
// така че, ако е в пиков цвят, превключете го отново на по -тъмен |
if (светодиоди > = PEAK_COLOR) { |
PixelState = GettingDimmerAgain; |
} |
иначе { |
// в противен случай просто го озарявайте: |
светодиоди += DELTA_COLOR_UP; |
} |
} |
else {// отново потъмнява |
// тези пиксели в момента са: GettingDimmerAgain |
// така че ако се върне към основния цвят, превключете го на постоянен дим |
if (светодиоди <= BASE_COLOR) { |
светодиоди = BASE_COLOR; // нулиране на точен основен цвят, в случай че прескочим |
PixelState = SteadyDim; |
} |
иначе { |
// в противен случай просто продължете да го затъмнявате: |
светодиоди -= DELTA_COLOR_DOWN; |
} |
} |
} |
FastLED.show (); |
FastLED.delay (globalDelay); |
} |
} |
voidInitPixelStates () |
{ |
memset (PixelState, sizeof (PixelState), SteadyDim); // инициализираме всички пиксели в SteadyDim. |
fill_solid (светодиоди, NUM_LEDS, BASE_COLOR); |
} |
voidDelayForever () |
{ |
докато (вярно) |
{ |
забавяне (100); |
LowPower.powerDown (SLEEP_FOREVER, ADC_OFF, BOD_OFF); |
} |
} |
voidshowStrip () { |
FastLED.show (); |
} |
voidsetPixel (int Pixel, байт червен, байт зелен, байт син) { |
// FastLED |
светодиоди [Pixel].r = червено; |
светодиоди [пиксел].g = зелен; |
светодиоди [Pixel].b = синьо; |
} |
вижте rawFiberOptic_ClemsonPic.ino, хоствано с ❤ от GitHub
Стъпка 5: Краен продукт
Та-да! Надявам се, че този Instructable вдъхновява някой друг да направи свой собствен подобен проект. Наистина не беше трудно да се направи и бях изненадан, че никой не го е направил и все още написа подробни инструкции за това.
Препоръчано:
Английски пъб светлини чрез огъване на оптични влакна, осветени със светодиод: 4 стъпки
Английски пъб светлини чрез огъване на оптични влакна, осветени със светодиод: И така, да речем, че искате да направите влакното да отговаря на формата на къща, за да поставите коледни светлини върху него. Или може би искате да излезете на външна стена и да имате огъване под прав ъгъл към влакното. Е, можете да направите това много лесно
Проверка на печат без специален софтуер или принтер с MS Excel (печат на банкови чекове): 6 стъпки
Печат на чекове без специален софтуер или принтер с MS Excel (Печат на банкови чекове): Това е проста работна книга на Excel, която ще бъде много полезна за всеки бизнес да пише много банкови чекове В допълнение към техните доставчици. Не се нуждаете от специален принтер или софтуер, имате нужда само от компютър с MS Excel и нормален принтер. Да, сега можете да
Музикално платно за рисуване с Makey Makey: 9 стъпки (със снимки)
Платно за музикално рисуване с Makey Makey: Здравейте, в тази инструкция ще се научим как да правим Canvas за музикално рисуване, тоест различна песен звучи всеки път, когато оцветяваме с четка от всеки цвят. Това е много забавно и работи за насърчаване на рисуването при малки деца или също така за даване на специфичен
Интерактивни светлини за двора, светлини за пътеки: 3 стъпки
Интерактивни светлини за двора, светлини за пътеки: Исках да построя някакъв вид интерактивни дворни светлини за задния си двор. Идеята беше, че когато някой вървеше в една посока, това щеше да предизвика анимация в посоката, в която вървите. Започнах със Dollar General $ 1.00 слънчеви светлини
LED светлини за тъмни светлини: 7 стъпки
LED светлини за тъмни светлини: Светодиодът светва не само при подаване на захранване, но и генерира малко напрежение, когато се прилага светлина. Микроконтролер PICAXE може да се използва за наблюдение на това напрежение. Ще ви покажа как да направите електронна свещ, която да трепти светодиод, когато