Sisällysluettelo:

Kuituoptiset valot kankaalle: 5 vaihetta
Kuituoptiset valot kankaalle: 5 vaihetta

Video: Kuituoptiset valot kankaalle: 5 vaihetta

Video: Kuituoptiset valot kankaalle: 5 vaihetta
Video: Töötan rikaste ja kuulsate eramuuseumis. Õudusjutud. Õudus. 2024, Heinäkuu
Anonim
Image
Image
Kuituoptiset valot kankaalla
Kuituoptiset valot kankaalla

Tämä projekti lisää ainutlaatuisen spinin normaalille kankaalle. Ohjelmoin neljään eri valaistustilaan, mutta voit helposti lisätä lisää. Tila vaihtuu aina, kun kytket sen pois päältä ja uudelleen päälle sen sijaan, että sinulla olisi erillinen painike kehyksen vaurioitumisen minimoimiseksi. Paristojen pitäisi kestää yli 50 tuntia käyttöä - en ole aivan varma, mutta tein samanlaisen projektin ystävälleni ja se käytti 5 kertaa enemmän valoja ja on kestänyt yli 20 tuntia yhdellä paristosarjalla.

Materiaalit

  • Kangaskuva, jossa on toimiva tila - tilasin omani osoitteesta https://www.easycanvasprints.com, koska niillä oli hyvät hinnat ja avoin selkä. Paksumpi 1,5 tuuman runko oli täydellinen ja antoi minulle paljon tilaa taivuttaa kuituoptisia säikeitä. Lisäksi haluat kuvan, joka antaa sinulle 3 x 8 tuumaa toimivaa tilaa akulle ja mikro- ja LED -nauhoille
  • LED -nauhat - Käytin osoitettavia WS2812 LED -nauhoja. Älä pelkää, ne ovat todella helppokäyttöisiä FastLED- tai Neopixel -kirjastojen kanssa! Voit myös käyttää mitä tahansa tavallista LED -nauhaa, et vain voi ohjata jokaista valo -osaa erikseen ilman paljon enemmän johdotusta.
  • Mikrokontrolleri - Käytin Arduino Unoa, mutta voit käyttää melkein mitä tahansa tähän projektiin.
  • Akkupaketti - tilasin tämän eBaysta (Kiinasta) ja sen otsikko oli "6 x 1,5 V AA 2A CELL -paristopidike"
  • Kuituoptiset säikeet - jälleen kerran tilattu Kiinasta eBaysta - "PMMA Plastic Fiber Optic Cable End Grow Led Light DIY Decor" tai "PMMA End Glow Fiber Optic Cable for Star Ceiling Light Kit". Käytin kokoja 1 mm ja 1,5 mm, suosittelen käyttämään sitä pienempiä.
  • On/Off -kytkin - "SPDT On/On 2 -asentoiset pienoiskytkimet"
  • Johdon järjestämispidikkeet - Nämä auttavat pitämään kuituoptiset säikeet kauniina ja siistinä.
  • Vaahtolevy, kiinteä ydinliitinjohto, kutisteputki

Työkalut

  • Dremel - käytetään virtakytkimen sijoittamiseen kuvakehykseen. Tämä voidaan ehkä saavuttaa poralla ja todella isolla bitillä, mutta en suosittele sitä.
  • Juotosrauta - johtojen kiinnittäminen LED -nauhaan
  • Kuuma liimapistooli - kirjaimellisesti tämän projektin jokaisessa vaiheessa
  • Suuri ompeluneula - reikien lyömiseen kankaan ja valopöydän läpi

Vaihe 1: Vaahtokortti, akku ja virtakytkin

Vaahtokortti, akku ja virtakytkin
Vaahtokortti, akku ja virtakytkin
Vaahtokortti, akku ja virtakytkin
Vaahtokortti, akku ja virtakytkin

Ennen kaikkea muuta sinun on kiinnitettävä vaahtomuovilevy kangaskuvion takaosaan. Tämä antaa meille mukavan kiinteän pinnan kiinnittää kaikki muu ja auttaa pitämään kuituoptiset säikeet paikallaan. Käytä leikkuuveitsellä tai laatikkoleikkurilla vain leikataksesi vaahtomuovilevyn palan oikeaan kokoon ja liimalla se kuumalla liimalla moniin paikkoihin. Suosittelen mustan vaahtomuovilevyn käyttöä, jotta se ei päästä niin paljon valoa läpi.

Käytin dremel -terää, joka näyttää normaalilta poranterältä, mutta on todella hyvä materiaalin poistamiseen. Se on yksi palasista, jotka pitäisi tulla minkä tahansa dremelin mukana. Käytä paineilmapurkkia päästäksesi eroon dremelin sahanpurusta.

Kuuma liima kaikki paikalleen. Varmista, että akku on kiinnitetty hyvin, koska se vaatii hyvää voimaa akun asettamiseen/poistamiseen etkä halua, että akun pidike menee minnekään.

Vaihe 2: Mikro -ohjain ja piiri

Mikro -ohjain ja piiri
Mikro -ohjain ja piiri
Mikro -ohjain ja piiri
Mikro -ohjain ja piiri
Mikro -ohjain ja piiri
Mikro -ohjain ja piiri

Laitoin virtakytkimen Arduino UNO: n eteen, jotta kun kytket kytkimen, mikään ei käytä akkujen virtaa. Tämän pitäisi auttaa paristoja kestämään mahdollisimman pitkään, kun projektia ei ole kytketty päälle. Arduino -levyt ovat tunnetusti huonoja virranhallinnassa - ne käyttävät paljon virtaa, jos ne on kytketty päälle, vaikka ne eivät tee aktiivisesti mitään.

Liitä akun positiivinen pää mikro-ohjaimen VIN-jännitteeseen (jännitetulo) niin, että se käyttää ohjaimen sisäänrakennettua jännitesäädintä saadakseen tarvittavan 5 V: n jännitteen. Jos saisimme enemmän valoja käyttöön, meidän on ehkä käytettävä omaa jännitesäädintä, mutta UNO: n pitäisi pystyä käsittelemään 5 LEDiä.

Käytin datan ulostulon ja LED -nauhan välistä vastusta tasoittaaksesi signaalin - ilman vastusta saatat satunnaisesti välähtää pikseliä. Vastuksen koolla ei ole oikeastaan väliä, mitään 50Ω ja 400Ω välillä pitäisi toimia.

Vaihe 3: Kuituoptiset valot

Image
Image
Kuituoptiset valot
Kuituoptiset valot
Kuituoptiset valot
Kuituoptiset valot

Yrittämisen ja erehdyksen jälkeen löysin lopulta hyvän tavan saada kuituoptiset säikeet kankaalle.

  1. Käytä suurinta ompeluneulaa, jonka sinun on pistettävä reikä kankaan ja vaahtomuovilevyn eteen. Suosittelen työntämään jokaisen haluamasi reiän heti alussa, jotta voit kääntää sen ympäri ja nähdä, mihin voit/et voi laittaa kaapelijärjestelmän leikkeitä
  2. Ota pari neulakärkistä pihdit ja tartu kuituoptiseen säikeeseen alle senttimetrin päähän
  3. Työnnä valokuitulanka neulan avulla tekemäsi reiän läpi
  4. Vie lanka erilaisten muovikiinnittimien läpi sinne, missä se on hieman pidempi kuin on tarpeen - leikataan se myöhemmin
  5. Kun kuuma liimapistooli on alhaisella lämpötila -asetuksella (jos se on mahdollista), laita tippa kuumaa liimaa kuituoptiseen säikeeseen, jossa se työntyy vaahtolevyn läpi. Vaihtoehtoisesti voit käyttää sinistä tahmeaa tavaraa. Kuuma liima muuttaa muotoa hieman, mutta se ei näytä häiritsevän optisia ominaisuuksia liikaa
  6. Leikkaa lanka hiukan pois kankaasta lankaleikkureilla.

Prosessin nopeuttamiseksi voit työntää monet kuidut peräkkäin ennen kuumaliiman tekemistä. Niiden pitäisi yleensä pysyä paikallaan yksin.

Varo, ettet katkaise tai rypistä kuituoptisia säikeitä pöydällä - ne katkeavat ja jos se tekee säikeestä liian lyhyen, olet surullinen ja joudut tekemään sen uudelleen. Käytä akkua vastapainona, jotta kuvakehys on alle puolet pöydällä.

Koska käytin valkoista vaahtolevyä mustan sijasta, valoa loisti paljon, kun LEDit olivat päällä. Korjaukseksi teipasin alumiinifolion valojen ja kankaan väliin.

Käytä kutisteletkuja pitääksesi kaikki kuituoptiset säikeet yhdessä.

  1. Leikkaa nipun säikeet suunnilleen samanpituisiksi
  2. Vie osa lämpökutistusletkun läpi
  3. Käytä kutistamiseen lämpöpistoolia tai juotosrautaa. Jos käytät juotosrautaa, anna silitysraudan sivun koskettaa kevyesti letkua ja se kutistuu. Sen ei pitäisi sulattaa letkua, koska se on suunniteltu pienelle lämmölle.

Lopulta käytin kuumaliimaa kiinnittämään nipun pään jokaiseen LED -valoon. Käytin paljon kuumaa liimaa niin, että kuidut todella saivat valoa jokaisesta punaisesta/vihreästä/sinisestä diodista valossa - kun kuidut ovat todella lähellä valoa, "valkoinen" väri (joka on itse asiassa punainen ja vihreä ja sininen) sitten jotkut kuidut ovat vain punaisia ja jotkut ovat vihreitä sen sijaan, että kaikki olisivat valkoisia. Tätä voitaisiin parantaa käyttämällä paperia tai jotain muuta sen levittämiseen, mutta kuuma liima toimi minulle tarpeeksi hyvin.

Vaihe 4: Ohjelmointi

Tämän ohjelmoinnissa käytin kolminkertaisia kirjastoja

FastLED - loistava kirjasto WS2812 -LED -nauhojen (ja monien muiden osoitettavien LED -nauhojen) ohjaamiseen -

Arduino Low Power - En tiedä kuinka paljon virtaa tämä todella säästää, mutta se oli erittäin helppo toteuttaa ja sen pitäisi auttaa säästämään vähän virtaa toiminnossa, joka on vain valkoisia valoja ja viivästyttää sitten ikuisesti.

EEPROM - Käytetään projektin nykyisen tilan lukemiseen/tallentamiseen. Tämä antaa projektille mahdollisuuden lisätä väritilaa aina, kun kytket sen pois päältä ja takaisin päälle, mikä poistaa tarpeen käyttää erillistä painiketta tilan vaihtamiseksi. EEPROM -kirjasto asennetaan aina, kun asennat Arduino IDE: n.

Käytin myös luonnosta jonkun muun asettamien valojen välkkymiseen. Se sytyttää satunnaisesti pikselin perusväristä huippuväriksi ja sitten takaisin alas. https://gist.github.com/kriegsman/88954aae22b03a66… (se käyttää myös FastLED -kirjastoa)

Käytin myös Visual Studion vMicro -laajennusta - tämä on Arduino IDE: n vahvistettu versio. Siinä on paljon hyödyllisiä automaattisen täydennyksen toimintoja ja se korostaa koodisi ongelmia ilman, että sinun tarvitsee kääntää sitä. Se maksaa 15 dollaria, mutta on niin sen arvoista, jos aiot tehdä useamman kuin yhden Arduino -projektin, ja se pakottaa sinut oppimaan Visual Studiosta, joka on erittäin tehokas ohjelma.

(Liitän myös koodin.ino -tiedoston, koska Github Gistin opastettava isännöinti tuhoaa paljon tiedoston tyhjiä kohtia)

Arduino -koodi, joka käyttää 4 väritilaa Arduino UNO: ssa joillekin WS2812B -LED -nauhavaloille FastLED -kirjaston avulla

#sisältää
#sisältää
#sisältää
// FastLED -asennus
#defineNUM_LEDS4
#definePIN3 // LED -nauhan datatappi
CRGB -ledit [NUM_LEDS];
// Twinkle -asetukset
#defineBASE_COLORCRGB (2, 2, 2) // Perus taustaväri
#definePEAK_COLORCRGB (255, 255, 255) // Huippuvärit tuikkivat
// Määrä värin lisäämiseksi jokaisella silmukalla kirkkaammaksi:
#defineDELTA_COLOR_UPCRGB (4, 4, 4)
// Vähennä väriä kunkin silmukan mukaan, kun se himmenee:
#defineDELTA_COLOR_DOWNCRGB (4, 4, 4)
// Jokaisen pikselin mahdollisuus alkaa kirkastua.
// 1 tai 2 = muutama kirkastuva pikseli kerrallaan.
// 10 = paljon pikseliä kirkastuu kerrallaan.
#defineCHANCE_OF_TWINKLE2
enum {SteadyDim, GettingBrighter, GettingDimmerAgain};
uint8_t PixelState [NUM_LEDS];
tavu runMode;
tavu globalBright = 150;
tavu globalDelay = 20; // Vilkkumisen viive
tavuosoite = 35; // Käyntitilan tallennusosoite
voidsetup ()
{
FastLED.addLeds (ledit, NUM_LEDS);
FastLED.setCorrection (tyypillinenLEDStrip);
//FastLED.setMaxPowerInVoltsAndMilliamps(5, maxMilliamps);
FastLED.setBrightness (globalBright);
// Hanki tila suoritettavaksi
runMode = EEPROM.read (osoite);
// Lisää käyntitilaa 1
EEPROM.write (osoite, runMode + 1);
}
voidloop ()
{
kytkin (runMode)
{
// Tasainen valkoinen
case1: fill_solid (ledit, NUM_LEDS, CRGB:: valkoinen);
FastLED.show ();
DelayForever ();
tauko;
// Vilkkuu aika hitaasti
tapaus2: FastLED.setBrightness (255);
globalDelay = 10;
TwinkleMapPixels ();
tauko;
// Vilkkuu nopeasti
tapaus3: FastLED.setBrightness (150);
globalDelay = 2;
TwinkleMapPixels ();
tauko;
//Sateenkaari
tapaus 4:
RunSateenkaari ();
tauko;
// Hakemisto alueen ulkopuolella, palauta se arvoon 2 ja suorita sitten tila 1.
// Kun arduino käynnistyy uudelleen, se käyttää tilaa 2, mutta toistaiseksi tilaa 1
oletus:
EEPROM.write (osoite, 2);
runMode = 1;
tauko;
}
}
voidRunRainbow ()
{
tavu *c;
uint16_t i, j;
kun taas (totta)
{
for (j = 0; j <256; j ++) {// 1 pyörän kaikkien värien sykli
(i = 0; i <NUM_LEDS; i ++) {
c = Pyörä ((((i * 256 / NUM_LEDS) + j) & 255);
setPixel (i, *c, *(c + 1), *(c + 2));
}
FastLED.show ();
delay (globalDelay);
}
}
}
tavu * Pyörä (tavu WheelPos) {
staattinen tavu c [3];
jos (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;
}
muu {
WheelPos -= 170;
c [0] = 0;
c [1] = WheelPos * 3;
c [2] = 255 - WheelPos * 3;
}
paluu c;
}
voidTwinkleMapPixels ()
{
InitPixelStates ();
kun taas (totta)
{
for (uint16_t i = 0; i <NUM_LEDS; i ++) {
jos (PixelState == SteadyDim) {
// tämä pikseli on tällä hetkellä: SteadyDim
// joten harkitsemme satunnaisesti sen kirkastumista
jos (satunnainen8 () <CHANCE_OF_TWINKLE) {
PixelState = GettingBrighter;
}
}
elseif (PixelState == GettingBrighter) {
// tämä pikseli on tällä hetkellä: GettingBrighter
// joten jos se on huippuvärissä, vaihda se himmentymään uudelleen
jos (ledit > = PEAK_COLOR) {
PixelState = GimmerDimmerAgain;
}
muu {
// muuten kirkastaa vain:
ledit += DELTA_COLOR_UP;
}
}
muuten {// himmenee jälleen
// tämä pikseli on tällä hetkellä: GettingDimmerAgain
// joten jos se on jälleen perusväri, vaihda se tasaiseen himmeyteen
jos (ledit <= BASE_COLOR) {
ledit = BASE_COLOR; // palauta tarkka perusväri, jos ylitämme
PixelState = VakaaDim;
}
muu {
// muuten himmennä sitä vain:
ledit -= DELTA_COLOR_DOWN;
}
}
}
FastLED.show ();
FastLED.delay (globalDelay);
}
}
voidInitPixelStates ()
{
memset (PixelState, sizeof (PixelState), SteadyDim); // alustaa kaikki pikselit SteadyDim -muotoon.
fill_solid (ledit, NUM_LEDS, BASE_COLOR);
}
voidDelayForever ()
{
kun taas (totta)
{
viive (100);
LowPower.powerDown (SLEEP_FOREVER, ADC_OFF, BOD_OFF);
}
}
voidshowStrip () {
FastLED.show ();
}
voidsetPixel (int Pixel, tavu punainen, tavu vihreä, tavu sininen) {
// FastLED
ledit [Pixel].r = punainen;
ledit [pikseli].g = vihreä;
ledit [Pixel].b = sininen;
}

katso rawFiberOptic_ClemsonPic.ino, jota isännöi GitHub ❤ kanssa

Vaihe 5: Lopputuote

Lopputuote
Lopputuote
Lopputuote
Lopputuote
Lopputuote
Lopputuote

Ta-da! Toivon, että tämä Instructable innostaa jotakuta muuta tekemään samanlaisen projektin. Se ei todellakaan ollut vaikeaa tehdä, ja olin yllättynyt siitä, että kukaan ei ollut tehnyt sitä ja kirjoittanut siitä perusteellisen ohjeen vielä.

Suositeltava: