Turinys:

Šviesolaidiniai šviestuvai drobėje: 5 žingsniai
Šviesolaidiniai šviestuvai drobėje: 5 žingsniai

Video: Šviesolaidiniai šviestuvai drobėje: 5 žingsniai

Video: Šviesolaidiniai šviestuvai drobėje: 5 žingsniai
Video: IŠPUOSELĖTAS IR ITIN KOKYBIŠKAI ĮRENGTAS NAMAS NAUJAJAME ANTAKALNYJE 2024, Lapkritis
Anonim
Image
Image
Šviesolaidiniai žibintai drobės spaudoje
Šviesolaidiniai žibintai drobės spaudoje

Šis projektas prideda unikalų sukimąsi ant standartinio drobės spaudinio. Aš užprogramavau 4 skirtingus apšvietimo režimus, bet jūs galite lengvai pridėti daugiau. Režimas keičiamas kiekvieną kartą, kai jį išjungiate ir vėl įjungiate, o ne atskirą mygtuką, kad sumažintumėte rėmo pažeidimus. Baterijos turėtų tarnauti daugiau nei 50 valandų - aš nesu tikras, bet aš padariau panašų projektą draugui ir jis sunaudojo 5 kartus daugiau lempučių ir truko daugiau nei 20 valandų su vienu baterijų rinkiniu.

Medžiagos

  • Drobės spausdinimas su veikiančia erdve - aš užsisakiau savo iš https://www.easycanvasprints.com, nes jie turėjo geras kainas ir atvirą nugarą. Storesnis 1,5 colio rėmas buvo tobulas ir suteikė man daug erdvės sulenkti šviesolaidžio pluoštus. Be to, norite, kad vaizdas suteiks jums 3 x 8 colių laisvos vietos akumuliatoriui ir mikrovaldikliui bei LED juostoms
  • LED juostos žibintai - naudojau adresuojamas WS2812 LED juosteles. Neišsigąskite, juos tikrai lengva naudoti su „FastLED“ar „Neopixel“bibliotekomis! Taip pat galite naudoti bet kokią standartinę šviesos diodų juostą, tiesiog negalėsite valdyti kiekvienos šviesos sekcijos atskirai be daug daugiau laidų.
  • Mikrokontroleris - naudojau „Arduino Uno“, bet šiam projektui galite naudoti beveik viską.
  • Akumuliatorius - aš jį užsisakiau iš „eBay“(iš Kinijos) ir jis buvo pavadintas „6 x 1,5 V AA 2A CELL baterijų laikiklis“
  • Šviesolaidinės sruogos - dar kartą užsakytos iš Kinijos „eBay“- „PMMA Plastic Fiber Optic Cable End Grow Led Light DIY Decor“arba „PMMA End Glow Fiber Optic Cable for Star Ceiling Light Kit“. Aš naudoju 1 mm ir 1,5 mm dydžius, aš iš tikrųjų rekomenduoju naudoti mažesnius.
  • Įjungimo/išjungimo jungiklis - „SPDT įjungimo/įjungimo 2 padėties miniatiūriniai jungikliai“
  • Vielos organizavimo spaustukai - tai padeda išlaikyti šviesolaidžio pluoštus gražius ir tvarkingus.
  • Putplasčio plokštė, tvirtos šerdies jungties viela, termiškai susitraukiantis vamzdelis

Įrankiai

  • „Dremel“- naudojamas įjungimo/išjungimo jungikliui įterpti į nuotraukų rėmelį. Galbūt tai būtų galima padaryti gręžtuvu ir tikrai dideliu gabalu, bet aš to nerekomenduoju.
  • Lituoklis - laidų tvirtinimas prie LED juostos
  • Karštas klijų pistoletas - pažodžiui kiekvienas šio projekto žingsnis
  • Didelė siuvimo adata - skylių pramušimui per drobę ir putų plokštę žibintams

1 žingsnis: putų plokštė, akumuliatorius ir įjungimo/išjungimo jungiklis

Putų plokštė, akumuliatorius ir įjungimo/išjungimo jungiklis
Putų plokštė, akumuliatorius ir įjungimo/išjungimo jungiklis
Putplasčio plokštė, akumuliatorius ir įjungimo/išjungimo jungiklis
Putplasčio plokštė, akumuliatorius ir įjungimo/išjungimo jungiklis

Prieš ką nors kitą turite pritvirtinti porolono plokštės gabalą prie drobės atspaudo. Tai suteikia mums gražų tvirtą paviršių, prie kurio galime pritvirtinti visa kita, ir padeda išlaikyti optinio pluošto sruogas. Tiesiog naudokite tiksliai peilį arba dėžutės pjaustytuvą, kad supjaustytumėte reikiamo dydžio putplasčio plokštės gabalėlį ir daug kur karštai priklijuotumėte. Aš rekomenduoju naudoti juodos putos plokštę, kad ji nepraleistų tiek šviesos.

Aš naudojau „dremel“antgalį, kuris atrodo kaip įprastas grąžtas, bet iš tikrųjų puikiai tinka medžiagai pašalinti. Tai vienas iš elementų, kurie turėtų būti su bet kuriuo „dremel“. Naudokite suspausto oro skardinę, kad pašalintumėte visas dremelio pjuvenas.

Karštai klijuokite viską vietoje. Įsitikinkite, kad akumuliatorius labai gerai pritvirtintas, nes norint įdėti/išimti akumuliatorių reikia daug jėgos ir nenorite, kad akumuliatoriaus laikiklis niekur nedingtų.

2 žingsnis: mikrovaldiklis ir grandinė

Mikrokontroleris ir grandinė
Mikrokontroleris ir grandinė
Mikrokontroleris ir grandinė
Mikrokontroleris ir grandinė
Mikrokontroleris ir grandinė
Mikrokontroleris ir grandinė

Įdėjau maitinimo jungiklį prieš „Arduino UNO“, kad kai perjungtumėte jungiklį, niekas nenaudotų akumuliatorių energijos. Tai turėtų padėti baterijoms išsilaikyti kuo ilgiau, kai projektas neįjungtas. „Arduino“plokštės yra žinomos blogai valdant energiją - jos naudoja daug srovės, jei yra įjungtos, net jei nieko nedaro.

Prijunkite teigiamą akumuliatoriaus bloko galą prie mikrovaldiklio VIN (įtampos įvesties), kad jis naudotų valdiklyje įmontuotą įtampos reguliatorių, kad įtampa sumažėtų iki 5 V. Jei maitintume daugiau žibintų, jiems gali tekti naudoti savo įtampos reguliatorių, tačiau UNO turėtų sugebėti valdyti 5 šviesos diodus.

Signalui išlyginti naudojau rezistorių tarp duomenų išvesties ir LED juostos - be rezistoriaus galite atsitiktinai mirksėti taškais. Rezistoriaus dydis tikrai nesvarbus, viskas, kas yra nuo 50 iki 400Ω, turėtų veikti.

3 žingsnis: šviesolaidinės šviesos

Image
Image
Šviesolaidiniai šviestuvai
Šviesolaidiniai šviestuvai
Šviesolaidiniai šviestuvai
Šviesolaidiniai šviestuvai

Po tam tikrų bandymų ir klaidų galiausiai radau gerą būdą, kaip per drobę perkelti šviesolaidines siūles.

  1. Naudokite didžiausią siuvimo adatą, kurią turite padaryti skylę per drobės ir putplasčio plokštės priekį. Rekomenduoju pačioje pradžioje išgręžti kiekvieną norimą skylę, kad galėtumėte ją apversti ir pamatyti, kur galite/negalite įdėti kabelių organizavimo klipų
  2. Paimkite porą replių su adatomis ir patraukite optinio pluošto sruogą mažiau nei centimetro atstumu nuo galo
  3. Iškiškite optinio pluošto sruogą per adatą padarytą skylę
  4. Nuvalykite sruogą per įvairius plastikinius spaustukus ten, kur ji yra šiek tiek ilgesnė nei būtina - mes ją nukirpsime vėliau
  5. Kai karštų klijų pistoletas yra žemos temperatūros nustatyme (jei yra tokia galimybė), įlašinkite lašą karšto klijų ant šviesolaidžio pluošto, kur jis kiša per putplasčio plokštę. Arba galite naudoti tą mėlyną lipnią medžiagą. Karšti klijai šiek tiek deformuoja sruogą, tačiau neatrodo, kad per daug sugadintų optines savybes
  6. Nupjaukite sruogą šiek tiek toliau nuo drobės, naudodami vielos pjaustytuvus.

Norėdami pagreitinti procesą, prieš darydami karštus klijus, galite išbraukti daugybę pluoštų iš eilės. Paprastai jie turėtų likti vietoje patys.

Būkite atsargūs, kad nesulaužytumėte ir nesusiglamžytumėte ant stalo esančių šviesolaidžių sruogų - jos sulaužys ir, jei sruoga bus per trumpa, jums bus liūdna ir turėsite tai padaryti iš naujo. Naudokite akumuliatorių kaip atsvarą, kad paveikslėlio rėmas būtų mažiau nei pusė ant stalo.

Kadangi aš naudoju baltą putplasčio plokštę, o ne juodą, įjungus šviesos diodus, sklido daug šviesos. Kaip pataisą, aš užklijavau aliuminio foliją tarp šviesų ir drobės.

Naudokite termiškai susitraukiančius vamzdelius, kad kiekvienas pluošto pluošto pluoštas būtų kartu.

  1. Nupjaukite ryšulio siūlus maždaug tokio paties ilgio
  2. Padėkite sekciją per termiškai susitraukiantį vamzdelį
  3. Norėdami jį sutraukti, naudokite šilumos pistoletą arba lituoklį. Jei naudojate lituoklį, leiskite lygintuvo šonui lengvai liesti vamzdelį ir jis susitrauks. Jis neturėtų ištirpinti vamzdžio, nes jis skirtas mažai karščiui.

Galų gale aš naudoju karštus klijus, kad ryšulio galą pritvirtinčiau prie kiekvienos LED lemputės. Aš naudojau daug karštų klijų, kad pluoštai iš tikrųjų gautų šviesą iš kiekvieno raudono/žalio/mėlyno diodo, esant šviesai - kai pluoštai yra tikrai arti šviesos, „balta“spalva (kuri iš tikrųjų yra raudona, žalia ir mėlyna) tada kai kurie pluoštai bus tik raudoni, o kiti - žali, o ne visi balti. Tai būtų galima pagerinti naudojant popieriaus lapą ar ką nors kitą, kad jį išsklaidytų, tačiau karšti klijai man pasirodė pakankamai geri.

4 žingsnis: programavimas

Programuodamas tai naudoju tris bibliotekas

„FastLED“- puiki biblioteka, skirta valdyti WS2812 LED juosteles (ir daugelį kitų adresuojamų LED juostų) -

„Arduino Low Power“- aš nežinau, kiek energijos tai sutaupo, tačiau tai buvo labai lengva įdiegti ir tai turėtų padėti sutaupyti šiek tiek energijos naudojant funkciją, kuri yra tik baltos lemputės ir tada vėluoja amžinai.

EEPROM - naudojamas dabartiniam projekto režimui skaityti/saugoti. Tai leidžia projektui padidinti spalvų režimą kiekvieną kartą, kai jį išjungiate ir vėl įjungiate, o tai reiškia, kad nereikia keisti atskiro mygtuko. EEPROM biblioteka yra įdiegta kiekvieną kartą, kai įdiegiate „Arduino IDE“.

Aš taip pat panaudojau eskizą, kad mirgėtų kažkas kitas. Jis atsitiktinai užsidega pikseliu nuo pagrindinės spalvos iki didžiausios spalvos, o tada grįžta žemyn. https://gist.github.com/kriegsman/88954aae22b03a66… (taip pat naudojama „FastLED“biblioteka)

Aš taip pat naudojau „Visual Studio“„vMicro“papildinį - tai yra sustiprinta „Arduino IDE“versija. Jis turi daugybę naudingų automatinio užbaigimo funkcijų ir pabrėžia jūsų kodo problemas, jo nekompiliuodamas. Tai kainuoja 15 USD, bet tai verta, jei ketinate sukurti daugiau nei vieną „Arduino“projektą, ir tai privers jus sužinoti apie „Visual Studio“, kuri yra itin galinga programa.

(Aš taip pat pridedu kodą.ino, nes nurodomas „Github Gist“priegloba sunaikina daug tuščių failo vietų)

„Arduino“kodas, kuriame veikia 4 spalvų režimai „Arduino UNO“, kai kurioms WS2812B LED juostoms, naudojant „FastLED“biblioteką

#įtraukti
#įtraukti
#įtraukti
// „FastLED“sąranka
#defineNUM_LEDS4
#definePIN3 // LED juostelės duomenų kaištis
CRGB šviesos diodai [NUM_LEDS];
// „Twinkle“sąranka
#defineBASE_COLORCRGB (2, 2, 2) // Pagrindinė fono spalva
#definePEAK_COLORCRGB (255, 255, 255) // Didžiausia spalva iki žvilgesio
// Kiekis, norint padidinti spalvą kiekviena kilpa, kai ji tampa ryškesnė:
#defineDELTA_COLOR_UPCRGB (4, 4, 4)
// Kiekis kiekvienai kilpai sumažinti, kai jis tampa blankesnis:
#defineDELTA_COLOR_DOWNCRGB (4, 4, 4)
// Tikimybė, kad kiekvienas taškas pradės ryškėti.
// 1 arba 2 = keli ryškūs pikseliai vienu metu.
// 10 = daug pikselių ryškėja vienu metu.
#defineCHANCE_OF_TWINKLE2
enum {SteadyDim, GettingBrighter, GettingDimmerAgain};
uint8_t „PixelState“[NUM_LEDS];
baitas runMode;
baitas globalBright = 150;
baitas globalDelay = 20; // Mirksėjimo atidėjimo greitis
baitų adresas = 35; // Adresas, kuriame saugomas veikimo režimas
voidsetup ()
{
FastLED.addLeds (šviesos diodai, NUM_LEDS);
„FastLED.setCorrection“(„TypicalLEDStrip“);
//FastLED.setMaxPowerInVoltsAndMilliamps(5, maxMilliamps);
FastLED.setBrightness (globalBright);
// Gaukite režimą paleisti
runMode = EEPROM.read (adresas);
// Padidinkite veikimo režimą 1
EEPROM.write (adresas, runMode + 1);
}
voidloop ()
{
jungiklis („RunMode“)
{
// Visai balta
case1: fill_solid (šviesos diodai, NUM_LEDS, CRGB:: balta);
FastLED.show ();
DelayForever ();
pertrauka;
// Mirksi šiek tiek lėtai
atvejis2: „FastLED.setBrightness“(255);
globalDelay = 10;
„TwinkleMapPixels“();
pertrauka;
// Greitai mirksi
atvejis3: „FastLED.setBrightness“(150);
globalDelay = 2;
„TwinkleMapPixels“();
pertrauka;
// Vaivorykštė
4 atvejis:
„RunRainbow“();
pertrauka;
// Indeksas nepatenka į diapazoną, iš naujo nustatykite jį į 2 ir paleiskite 1 režimą.
// Kai „arduino“paleidžiamas iš naujo, jis veiks 2 režimu, bet kol kas paleiskite 1 režimą
numatytas:
EEPROM.write (adresas, 2);
runMode = 1;
pertrauka;
}
}
voidRunRainbow ()
{
baitas *c;
uint16_t i, j;
kol (tiesa)
{
(j = 0; j <256; j ++) {// 1 visų rato spalvų ciklas
(i = 0; i <NUM_LEDS; i ++) {
c = ratas (((i * 256 / NUM_LEDS) + j) ir 255);
setPixel (i, *c, *(c + 1), *(c + 2));
}
FastLED.show ();
uždelsimas (globalDelay);
}
}
}
baitas * ratas (baitas „WheelPos“) {
statinis baitas c [3];
jei („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;
}
Kitas {
„WheelPos“-= 170;
c [0] = 0;
c [1] = „WheelPos“* 3;
c [2] = 255 - „WheelPos“* 3;
}
grįžti c;
}
voidTwinkleMapPixels ()
{
InitPixelStates ();
kol (tiesa)
{
už (uint16_t i = 0; i <NUM_LEDS; i ++) {
jei („PixelState = = SteadyDim“)
// šiuo metu šie pikseliai yra: SteadyDim
// todėl atsitiktinai apsvarstome galimybę pradėti šviesėti
jei (atsitiktinis8 () <CHANCE_OF_TWINKLE) {
„PixelState“ = „GettingBrighter“;
}
}
elseif („PixelState == GettingBrighter“) {
// šiuo metu šie pikseliai yra: „GettingBrighter“
// taigi, jei jos spalva yra didžiausia, vėl ją perjunkite į šviesesnę
if (šviesos diodai > = PEAK_COLOR) {
PixelState = GettingDimmerAgain;
}
Kitas {
// Priešingu atveju, tiesiog šviesinkite:
šviesos diodai += DELTA_COLOR_UP;
}
}
kitaip {// vėl tampa silpnesnis
// šiuo metu šie pikseliai yra: GettingDimmerAgain
// taigi, jei grįžo prie pagrindinės spalvos, perjunkite ją į pastovų pritemdymą
jei (šviesos diodai <= BASE_COLOR) {
šviesos diodai = BASE_COLOR; // iš naujo nustatyti tikslią pagrindinę spalvą, jei mes perpildysime
„PixelState“ = PastovusDim;
}
Kitas {
// priešingu atveju, tiesiog pritemdykite:
šviesos diodai -= DELTA_COLOR_DOWN;
}
}
}
FastLED.show ();
FastLED.delay (globalDelay);
}
}
voidInitPixelStates ()
{
memset („PixelState“, sizeof („PixelState“), „SteadyDim“); // inicijuoti visus taškus į „SteadyDim“.
fill_solid (šviesos diodai, NUM_LEDS, BASE_COLOR);
}
voidDelayForever ()
{
kol (tiesa)
{
vėlavimas (100);
LowPower.powerDown (SLEEP_FOREVER, ADC_OFF, BOD_OFF);
}
}
voidshowStrip () {
FastLED.show ();
}
voidsetPixel (int Pixel, baitas raudonas, baitas žalias, baitas mėlynas) {
// FastLED
šviesos diodai [Pixel].r = raudona;
šviesos diodai [Pixel].g = žalia;
šviesos diodai [Pixel].b = mėlyna;
}

peržiūrėti rawFiberOptic_ClemsonPic.ino, kurį su „❤“priglobia „GitHub“

5 žingsnis: galutinis produktas

Galutinis produktas
Galutinis produktas
Galutinis produktas
Galutinis produktas
Galutinis produktas
Galutinis produktas

Ta-da! Tikiuosi, kad ši instrukcija įkvėps ką nors kitą sukurti savo panašų projektą. Tai tikrai nebuvo sunku padaryti ir nustebau, kad niekas to nepadarė ir dar neparašė išsamių instrukcijų apie tai.

Rekomenduojamas: