Съдържание:

Оптични светлини в печат на платно: 5 стъпки
Оптични светлини в печат на платно: 5 стъпки

Видео: Оптични светлини в печат на платно: 5 стъпки

Видео: Оптични светлини в печат на платно: 5 стъпки
Видео: Курорты БОЛГАРИЯ 🇧🇬 Отдых в Болгарии. Солнечный берег, Несебр, Созополь, Поморие. Лучшие пляжи 2024, Юли
Anonim
Image
Image
Оптични светлини в печат на платно
Оптични светлини в печат на платно

Този проект добавя уникално завъртане на стандартен печат на платно. Програмирах в 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: Оптични светлини

Image
Image
Оптични светлини
Оптични светлини
Оптични светлини
Оптични светлини

След някои опити и грешки в крайна сметка намерих добър начин да прокарам нишките от оптични влакна през платното.

  1. Използвайте най -голямата игла за шиене, която имате, за да пробиете дупка през предната част на платното и дъската от пяна. Препоръчвам да пробиете всяка дупка, която искате, в самото начало, за да можете да я обърнете и да видите къде можете/не можете да поставите вашите клипове за кабелна организация
  2. Вземете чифт клещи с иглени носове и вземете оптичната нишка на по-малко от сантиметър от края
  3. Прокарайте нишката от оптични влакна през отвора, който сте направили с игла
  4. Насочете нишката през различни пластмасови скоби до мястото, където тя е малко по -дълга от необходимото - ще я отрежем по -късно
  5. С вашия пистолет за горещо лепило на ниска настройка на температурата (ако има такава опция) поставете капка горещо лепило върху влакното от оптични влакна, където то прониква през плочата от пяна. Алтернативно бихте могли да използвате тези сини лепкави неща. Горещото лепило наистина деформира нишката малко, но изглежда не пречи твърде много на оптичните качества
  6. Изрежете нишката малко далеч от платното с помощта на ножове за тел.

За да ускорите процеса, можете да пробиете през много влакна последователно, преди да направите горещото лепило. Те обикновено трябва да останат на място сами.

Внимавайте да не счупите или смачкате нишките от оптичните влакна на масата - те ще се счупят и ако това направи нишката твърде къса, тогава ще бъдете тъжни и ще трябва да я преработите. Използвайте батерията като противотежест, за да имате рамката на картината по -малко от половината на бюрото.

Тъй като използвах бяла дъска от пяна вместо черна, имаше много светлина, която светеше, когато светодиодите бяха включени. Като поправка залепих в алуминиево фолио между светлините и платното.

Използвайте термосвиваеми тръби, за да държите всеки сноп влакна от оптични влакна заедно.

  1. Изрежете нишките за снопа на приблизително еднаква дължина
  2. Поставете секцията през термосвиваеми тръби
  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 вдъхновява някой друг да направи свой собствен подобен проект. Наистина не беше трудно да се направи и бях изненадан, че никой не го е направил и все още написа подробни инструкции за това.

Препоръчано: