Sadržaj:

Optičko svjetlo u ispisu na platnu: 5 koraka
Optičko svjetlo u ispisu na platnu: 5 koraka

Video: Optičko svjetlo u ispisu na platnu: 5 koraka

Video: Optičko svjetlo u ispisu na platnu: 5 koraka
Video: postavljanje krova 2024, Srpanj
Anonim
Image
Image
Optičko svjetlo u ispisu na platnu
Optičko svjetlo u ispisu na platnu

Ovaj projekt dodaje jedinstveni spin standardnom ispisu na platnu. Programirao sam u 4 različita načina osvjetljenja, ali možete jednostavno dodati još. Način se mijenja svaki put kada ga isključite i ponovo uključite umjesto da imate zasebnu tipku za smanjenje oštećenja okvira. Baterije bi trebale izdržati više od 50 sati korištenja - nisam baš siguran, ali napravio sam sličan projekt za prijatelja koji je koristio 5x više svjetala i trajao je 20+ sati na jednom kompletu baterija.

Materijali

  • Tisak na platnu s radnim prostorom - ja sam svoj naručio sa https://www.easycanvasprints.com jer su imale dobre cijene i otvorena leđa. Deblji okvir od 1,5 "bio je savršen i dao mi je puno prostora za savijanje niti optičkih vlakana. Osim toga, želite sliku koja vam daje 3" po 8 "radnog prostora za bateriju, mikrokontroler i LED trake
  • Svjetla sa LED trakama - Koristio sam adresabilne LED trake WS2812. Nemojte se plašiti, stvarno su jednostavni za korištenje s knjižnicama FastLED ili Neopixel! Također možete koristiti bilo koju standardnu LED traku, jednostavno nećete moći kontrolirati svaki dio svjetla zasebno bez puno više ožičenja.
  • Mikrokontroler - Koristio sam Arduino Uno, ali za ovaj projekt možete koristiti gotovo sve.
  • Baterija - ovo sam naručio s eBay -a (iz Kine) i naslovio se "Držač baterija za baterije 6 x 1,5 V AA 2A CELL"
  • Optički vlakni - još jednom, naručeno iz Kine na eBayu - "PMMA plastični kabel od optičkih vlakana koji raste uz LED rasvjetu" ili "PMMA završni svjetlovodni kabel za komplet stropnih svjetiljki". Koristio sam veličine 1 mm i 1,5 mm, zapravo preporučujem da koristite manje od toga.
  • Prekidač za uključivanje/isključivanje - "Minijaturni prekidači za uključivanje/isključivanje 2 položaja SPDT"
  • Kvačice za organizaciju žice - Oni pomažu da vlakna optičkih vlakana budu lijepa i uredna.
  • Pjenasta ploča, žica za spajanje pune jezgre, toplinski skupljajuće cijevi

Alati

  • Dremel - koristi se za umetanje prekidača za uključivanje/isključivanje u okvir za sliku. To bi se možda moglo postići bušilicom i jako velikim komadom, ali to ne preporučujem.
  • Lemilica - pričvršćivanje žica na LED traku
  • Pištolj za vruće ljepilo - doslovno svaki korak ovog projekta
  • Velika igla za šivanje - za probijanje rupa kroz platno i pjenu za svjetla

Korak 1: Pjenasta ploča, baterija i prekidač za uključivanje/isključivanje

Pjenasta ploča, baterija i prekidač za uključivanje/isključivanje
Pjenasta ploča, baterija i prekidač za uključivanje/isključivanje
Pjenasta ploča, baterija i prekidač za uključivanje/isključivanje
Pjenasta ploča, baterija i prekidač za uključivanje/isključivanje

Prije svega, trebate pričvrstiti komad pjenaste ploče na stražnju stranu platna. To nam daje lijepu čvrstu površinu za pričvršćivanje svega ostalog i pomaže u držanju niti optičkih vlakana na mjestu. Samo upotrijebite egzaktni nož ili rezač kutija da izrežete komad pjenaste ploče odgovarajuće veličine i vruće ga zalijepite na mnogo mjesta. Preporučujem korištenje ploče od crne pjene tako da ne dopušta prodor toliko svjetlosti.

Koristio sam dremel bit koji izgleda kao normalna bušilica, ali je zapravo odličan za uklanjanje materijala. To je jedan od dijelova koji bi trebao doći s bilo kojim dremelom. Pomoću limenke komprimiranog zraka uklonite svu piljevinu iz dremela.

Vruće ljepilo sve na mjestu. Uvjerite se da je baterija dobro pričvršćena jer za umetanje/vađenje baterije potrebna je dobra snaga, a ne želite da držač baterije ide bilo gdje.

Korak 2: Mikrokontroler i krug

Mikrokontroler i sklop
Mikrokontroler i sklop
Mikrokontroler i sklop
Mikrokontroler i sklop
Mikrokontroler i sklop
Mikrokontroler i sklop

Prekidač za napajanje postavio sam ispred Arduino UNO -a tako da kada prebacite prekidač ništa ne troši energiju iz baterija. To bi trebalo pomoći da baterije traju što je dulje moguće ako projekt nije uključen. Arduino ploče notorno loše upravljaju napajanjem - troše puno struje ako su uključene čak i ako ne rade ništa aktivno.

Priključite pozitivni kraj baterije u VIN (ulaz napona) mikrokontrolera tako da koristi ugrađeni regulator napona kontrolera kako bi smanjio napon na 5V koji mu je potreban. Da smo napajali više svjetala, možda bismo za njih trebali koristiti vlastiti regulator napona, ali UNO bi trebao moći rukovati s 5 LED dioda.

Koristio sam otpornik između izlaza podataka i LED trake za uglađivanje signala - bez otpornika biste mogli dobiti slučajno bljeskanje piksela. Veličina otpornika zapravo nije bitna, trebalo bi raditi između 50Ω i 400Ω.

Korak 3: Svjetla od optičkih vlakana

Image
Image
Svjetla od optičkih vlakana
Svjetla od optičkih vlakana
Svjetla od optičkih vlakana
Svjetla od optičkih vlakana

Nakon pokušaja i pogrešaka, na kraju sam pronašao dobar način da provučem vlaknasta vlakna kroz platno.

  1. Upotrijebite najveću iglu za šivanje koju morate probiti kroz prednju stranu platna i pjenu. Preporučujem da na samom početku probušite svaku rupu koju želite kako biste je mogli preokrenuti i vidjeti gdje možete/ne možete staviti isječke za kabelsku organizaciju
  2. Uzmite par kliješta s iglastim nosem i uhvatite vlakno optičke niti manje od centimetra od kraja
  3. Provucite vlakno optičkog vlakna kroz rupu koju ste napravili iglom
  4. Provucite pramen kroz razne plastične kopče tamo gdje je nešto dulji nego što je potrebno - kasnije ćemo ga izrezati
  5. S vašim pištoljem za vruće ljepilo na NISKOJ postavci temperature (ako ima tu mogućnost) stavite kapljicu vrućeg ljepila na vlakno od optičkih vlakana gdje probija kroz ploču od pjene. Alternativno, možete koristiti te plave ljepljive stvari. Vruće ljepilo pomalo deformira niti, ali čini se da se ne petlja previše u optičke kvalitete
  6. Odrežite pramen malo dalje od platna pomoću rezača žice.

Da biste ubrzali proces, možete probadati kroz mnoga vlakna uzastopno prije nego što napravite vruće ljepilo. Općenito bi trebali sami ostati na mjestu.

Pazite da ne slomite niti zgnječite niti optičkih vlakana na stolu - oni će se slomiti, a ako žicu učini prekratkom, bit ćete tužni i morat ćete je ponoviti. Koristite bateriju kao protutežu kako biste okvir slike imali manje od polovice na stolu.

Budući da sam koristio bijelu pjenastu ploču umjesto crne, puno je svjetla sijalo dok su LED diode bile uključene. Kao popravak zalijepio sam aluminijsku foliju između svjetala i platna.

Upotrijebite termoskupljajuće cijevi da svaki snop optičkih vlakana držite zajedno.

  1. Izrežite niti za snop na približno istu duljinu
  2. Provucite dio kroz termoskupljajuće cijevi
  3. Za skupljanje upotrijebite toplinski pištolj ili lemilicu. Ako koristite lemilicu, samo dopustite da strana glačala lagano dodirne cijev i ona će se smanjiti. Cijev se ne bi trebala otopiti jer je dizajnirana za malo topline.

Na kraju sam vrućim ljepilom pričvrstila kraj snopa na svako LED svjetlo. Koristio sam puno vrućeg ljepila tako da su vlakna zapravo dobila svjetlost od svake crvene/zelene/plave diode na svjetlu - kada su vlakna jako blizu svjetlosti, "bijele" boje (koja je zapravo crvena, zelena i plava) tada će neka vlakna biti samo crvena, a neka zelena, umjesto da su sva bijela. To bi se moglo poboljšati korištenjem papira ili nečeg drugog za njegovo širenje, ali vruće ljepilo mi je djelovalo dovoljno dobro.

Korak 4: Programiranje

U programiranju sam koristio tri biblioteke

FastLED - izvrsna biblioteka za upravljanje LED trakama WS2812 (i mnogim drugim adresabilnim LED trakama) -

Arduino Low Power - Ne znam koliko se time zapravo štedi, ali bilo je super jednostavno za implementaciju i trebalo bi pomoći uštedjeti mali dio energije na funkciji koja je samo bijela svjetla, a zatim zauvijek odgađa.

EEPROM - koristi se za čitanje/pohranjivanje trenutnog načina rada projekta. To omogućuje projektu da poveća način rada u boji svaki put kada ga isključite i ponovo uključite, što eliminira potrebu za posebnim gumbom za promjenu načina rada. Knjižnica EEPROM instalira se kad god instalirate Arduino IDE.

Također sam koristio skicu za treperenje svjetla koja je netko drugi postavio. Nasumično osvjetljava piksel od osnovne boje do boje vrha, a zatim se vraća prema dolje. https://gist.github.com/kriegsman/88954aae22b03a66… (koristi i biblioteku FastLED)

Također sam koristio dodatak vMicro za Visual Studio - ovo je pojačana verzija Arduino IDE -a. Ima hrpu korisnih funkcija automatskog dovršavanja i ističe probleme u vašem kodu bez potrebe za njegovim sastavljanjem. Košta 15 USD, ali vrijedi ako ćete napraviti više od jednog Arduino projekta, a to će vas natjerati da naučite o Visual Studiju koji je super moćan program.

(Prilažem i kôd.ino datoteku jer Instructable hosting Github Gista uništava mnogo praznih mjesta u datoteci)

Arduino kôd koji pokreće 4 načina rada u boji na Arduino UNO -u za neka LED svjetla WS2812B pomoću FastLED knjižnice

#uključi
#uključi
#uključi
// FastLED postavljanje
#defineNUM_LEDS4
#definePIN3 // Podatkovni pin za LED traku
CRGB LED diode [NUM_LEDS];
// Twinkle postavljanje
#defineBASE_COLORCRGB (2, 2, 2) // Osnovna boja pozadine
#definePEAK_COLORCRGB (255, 255, 255) // Vrhunska boja do svjetlucanja do
// Iznos za povećanje boje za svaku petlju kako postaje svjetlija:
#defineDELTA_COLOR_UPCRGB (4, 4, 4)
// Iznos za smanjenje boje za svaku petlju kako postaje tamnija:
#defineDELTA_COLOR_DOWNCRGB (4, 4, 4)
// Šansa da se svaki piksel počne svijetliti.
// 1 ili 2 = nekoliko piksela za posvjetljivanje odjednom.
// 10 = puno piksela koji se posvjetljuju odjednom.
#defineCHANCE_OF_TWINKLE2
enum {SteadyDim, GettingBrighter, GettingDimmerAgain};
uint8_t PixelState [NUM_LEDS];
bajt runMode;
bajt globalBright = 150;
bajt globalDelay = 20; // Brzina odgode za treperenje
adresa bajta = 35; // Adresa za spremanje načina rada
voidsetup ()
{
FastLED.addLeds (LED diode, NUM_LEDS);
FastLED.setCorrection (TypicalLEDStrip);
//FastLED.setMaxPowerInVoltsAndMilliamps(5, maxMilliamps);
FastLED.setBrightness (globalBright);
// Pokretanje načina rada
runMode = EEPROM.čitano (adresa);
// Povećajte način rada za 1
EEPROM.write (adresa, način rada + 1);
}
voidloop ()
{
prekidač (runMode)
{
// Čvrsta bijela
case1: fill_solid (LED diode, NUM_LEDS, CRGB:: Bijelo);
FastLED.show ();
DelayForever ();
pauza;
// Svijetliti nekako sporo
case2: FastLED.setBrightness (255);
globalDelay = 10;
TwinkleMapPixels ();
pauza;
// Brzo svjetluca
case3: FastLED.setBrightness (150);
globalDelay = 2;
TwinkleMapPixels ();
pauza;
//Duga
slučaj 4:
RunRainbow ();
pauza;
// Indeks je izvan raspona, vratite ga na 2, a zatim pokrenite način 1.
// Kad se arduino ponovno pokrene, pokrenut će način 2, ali za sada pokrenuti način 1
zadano:
EEPROM.write (adresa, 2);
runMode = 1;
pauza;
}
}
voidRunRainbow ()
{
bajt *c;
uint16_t i, j;
dok (istina)
{
za (j = 0; j <256; j ++) {// 1 ciklus svih boja na kotaču
za (i = 0; i <NUM_LEDS; i ++) {
c = Kotač (((i * 256 / NUM_LEDS) + j) & 255);
setPixel (i, *c, *(c + 1), *(c + 2));
}
FastLED.show ();
kašnjenje (globalDelay);
}
}
}
byte * Kotač (byte WheelPos) {
statički bajt c [3];
if (WheelPos <85) {
c [0] = WheelPos * 3;
c [1] = 255 - Kotači * 3;
c [2] = 0;
}
elseif (Kotači <170) {
WheelPos -= 85;
c [0] = 255 - Kotači * 3;
c [1] = 0;
c [2] = WheelPos * 3;
}
drugo {
WheelPos -= 170;
c [0] = 0;
c [1] = WheelPos * 3;
c [2] = 255 - Kotači * 3;
}
return c;
}
voidTwinkleMapPixels ()
{
InitPixelStates ();
dok (istina)
{
za (uint16_t i = 0; i <NUM_LEDS; i ++) {
if (PixelState == SteadyDim) {
// ovi pikseli su trenutno: SteadyDim
// pa nasumično razmatramo da postane svjetliji
if (random8 () <CHANCE_OF_TWINKLE) {
PixelState = GettingBrighter;
}
}
elseif (PixelState == GettingBrighter) {
// ovi pikseli su trenutno: GettingBrighter
// pa ako ima najveću boju, ponovno ga prebacite u prigušivanje
if (LED diode > = PEAK_COLOR) {
PixelState = GettingDimmerAgain;
}
drugo {
// u suprotnom, samo ga pojačavajte:
LED diode += DELTA_COLOR_UP;
}
}
else {// ponovno postaje slabiji
// ovi pikseli su trenutno: GettingDimmerAgain
// pa ako se vrati na osnovnu boju, prebacite je na stalnu zatamnjenost
if (LED diode <= BASE_COLOR) {
LED diode = BASE_COLOR; // resetiramo na točnu osnovnu boju, u slučaju da smo pretjerali
PixelState = SteadyDim;
}
drugo {
// u suprotnom, samo nastavite smanjivati:
LED diode -= DELTA_COLOR_DOWN;
}
}
}
FastLED.show ();
FastLED.delay (globalDelay);
}
}
voidInitPixelStates ()
{
memset (PixelState, sizeof (PixelState), SteadyDim); // inicijalizira sve piksele u SteadyDim.
fill_solid (LED diode, NUM_LEDS, BASE_COLOR);
}
voidDelayForever ()
{
dok (istina)
{
kašnjenje (100);
LowPower.powerDown (SLEEP_FOREVER, ADC_OFF, BOD_OFF);
}
}
voidshowStrip () {
FastLED.show ();
}
voidsetPixel (int Pixel, byte red, byte green, byte blue) {
// FastLED
LED diode [Pixel].r = crveno;
LED diode [Pixel].g = zelena;
LED diode [Pixel].b = plava;
}

pogledajte rawFiberOptic_ClemsonPic.ino hosted with ❤ by GitHub

Korak 5: Završni proizvod

Finalni proizvod
Finalni proizvod
Finalni proizvod
Finalni proizvod
Finalni proizvod
Finalni proizvod

Ta-da! Nadam se da će ovaj Instructable inspirirati nekoga drugog da napravi svoj vlastiti sličan projekt. To doista nije bilo teško učiniti i bio sam iznenađen što to nitko nije učinio i napisao je temeljite upute o tome.

Preporučeni: