Turinys:
- 1 žingsnis: putų plokštė, akumuliatorius ir įjungimo/išjungimo jungiklis
- 2 žingsnis: mikrovaldiklis ir grandinė
- 3 žingsnis: šviesolaidinės šviesos
- 4 žingsnis: programavimas
- 5 žingsnis: galutinis produktas
Video: Šviesolaidiniai šviestuvai drobėje: 5 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:46
Š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
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ė
Į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
Po tam tikrų bandymų ir klaidų galiausiai radau gerą būdą, kaip per drobę perkelti šviesolaidines siūles.
- 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ų
- Paimkite porą replių su adatomis ir patraukite optinio pluošto sruogą mažiau nei centimetro atstumu nuo galo
- Iškiškite optinio pluošto sruogą per adatą padarytą skylę
- Nuvalykite sruogą per įvairius plastikinius spaustukus ten, kur ji yra šiek tiek ilgesnė nei būtina - mes ją nukirpsime vėliau
- 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
- 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.
- Nupjaukite ryšulio siūlus maždaug tokio paties ilgio
- Padėkite sekciją per termiškai susitraukiantį vamzdelį
- 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
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:
„Arduino“automobilių atbulinės eigos įspėjimo sistema - Žingsniai po žingsnio: 4 žingsniai
„Arduino“automobilių atbulinės eigos įspėjimo sistema | Žingsniai po žingsnio: Šiame projekte aš suprojektuosiu paprastą „Arduino“automobilio atbulinės eigos stovėjimo jutiklio grandinę, naudodamas „Arduino UNO“ir ultragarsinį jutiklį „HC-SR04“. Ši „Arduino“pagrįsta automobilio atbulinės eigos įspėjimo sistema gali būti naudojama autonominei navigacijai, robotų diapazonui ir kitiems diapazonams
„Arduino Halloween Edition“- „Zombies“iššokantis ekranas (žingsniai su nuotraukomis): 6 žingsniai
„Arduino Halloween Edition“- „Zombies“iššokantis ekranas (žingsniai su paveikslėliais): norite Helovino metu išgąsdinti savo draugus ir sukelti riksmą? O gal tiesiog norite padaryti gerą išdaigą? Šis iššokantis „Zombies“ekranas gali tai padaryti! Šioje instrukcijoje aš išmokysiu jus, kaip lengvai padaryti iššokančius zombius naudojant „Arduino“. HC-SR0
Akustinė levitacija naudojant „Arduino Uno“žingsnis po žingsnio (8 žingsniai): 8 žingsniai
Akustinė levitacija naudojant „Arduino Uno“žingsnis po žingsnio (8 žingsniai): ultragarsiniai garso keitikliai L298N nuolatinės srovės adapterio maitinimo šaltinis su vyrišku nuolatinės srovės kaiščiu „Arduino UNOBreadboard“Kaip tai veikia: pirmiausia įkelkite kodą į „Arduino Uno“(tai yra mikrovaldiklis su skaitmeniniu ir analoginiai prievadai kodui konvertuoti (C ++)
„Pixel Kit“, kuriame veikia „MicroPython“: pirmieji žingsniai: 7 žingsniai
„Pixel Kit“, kuriame veikia „MicroPython“: pirmieji žingsniai: Kelionė, skirta visam „Kano Pixel“potencialui išnaudoti, prasideda gamyklos programinės įrangos pakeitimu „MicroPython“, tačiau tai tik pradžia. Norėdami koduoti „Pixel Kit“, turime prie jo prijungti savo kompiuterius. Ši pamoka paaiškins, kas
Šviesolaidiniai lazeriniai ventiliatoriai: 9 žingsniai (su nuotraukomis)
Šviesolaidžio lazerio ventiliatoriai: kas šaunu? Skaidulinė optika. Kas vėsiau? Lazeriai. Kas yra nuostabu? Ugnies gerbėjai. Šį nurodymą iš dalies įkvėpė ugnies gerbėjai, o iš dalies - bioninė balerina. Kiekvienas ventiliatorius pagamintas iš penkių šviesolaidžių strypų, apšviestų pakreipimo jutikliu, kad būtų raudonas arba geltonas