Talaan ng mga Nilalaman:

Mga Fiber-Optic Light sa Canvas Print: 5 Mga Hakbang
Mga Fiber-Optic Light sa Canvas Print: 5 Mga Hakbang

Video: Mga Fiber-Optic Light sa Canvas Print: 5 Mga Hakbang

Video: Mga Fiber-Optic Light sa Canvas Print: 5 Mga Hakbang
Video: Fiber Faults to Fixes: An IT Admin's Guide 2024, Nobyembre
Anonim
Image
Image
Mga Fiber-Optic Light sa Canvas Print
Mga Fiber-Optic Light sa Canvas Print

Ang proyektong ito ay nagdaragdag ng isang natatanging pag-ikot sa isang karaniwang canvas print. Nag-program ako sa 4 na magkakaibang mga mode ng pag-iilaw ngunit madali kang makakapagdagdag ng higit pa. Nabago ang mode sa bawat oras na patayin mo ito at bumalik sa halip na magkaroon ng isang hiwalay na pindutan upang i-minimize ang pinsala sa frame. Ang mga baterya ay dapat tumagal ng 50+ na oras ng paggamit - Hindi talaga ako sigurado, ngunit gumawa ako ng isang katulad na proyekto para sa isang kaibigan at gumamit ito ng 5x ng maraming mga ilaw at tumagal ng 20+ na oras sa isang solong hanay ng mga baterya.

Mga Kagamitan

  • Ang pag-print ng canvas na may magamit na puwang - Inorder ko ang minahan mula sa https://www.easycanvasprints.com dahil mayroon silang magagandang presyo at isang bukas na likod. Ang mas makapal na 1.5 "frame ay perpekto at binigyan ako ng maraming puwang upang yumuko ang mga hibla ng hibla ng optic. Bukod pa rito nais mo ang isang larawan na magbibigay sa iyo ng 3" by 8 "ng magagamit na puwang para sa baterya pack at microcontroller at LED strips
  • Mga ilaw ng LED strip - Gumamit ako ng mga address na WS2812 LED strip. Huwag matakot, talagang madali silang gamitin sa mga aklatan ng FastLED o Neopixel! Maaari mo ring gamitin ang anumang karaniwang LED strip, hindi mo makontrol ang bawat seksyon ng ilaw nang paisa-isa nang walang mas maraming mga kable.
  • Microcontroller - Gumamit ako ng isang Arduino Uno ngunit maaari mong gamitin ang anuman para sa proyektong ito.
  • Battery pack - Inorder ko ang isang ito mula sa eBay (mula sa China) at pinamagatang "6 x 1.5V AA 2A CELL Battery Batteries Holder"
  • Mga hibla ng hibla ng hibla - muli, inorder mula sa Tsina sa eBay - "PMMA Plastic Fiber Optic Cable End Grow Led Light DIY Decor" o "PMMA End Glow Fiber Optic Cable para sa Star Ceiling Light Kit". Gumamit ako ng mga laki ng 1mm at 1.5mm, talagang inirerekumenda kong gumamit ng mas maliit kaysa doon.
  • On / Off switch - "SPDT On / On 2 Position Miniature Toggle Switches"
  • Mga clip ng samahan ng wire - Makakatulong ang mga ito na panatilihing maganda at malinis ang mga hibla ng optic fiber.
  • Ang board ng foam, solidong konektor ng wire, init na pag-urong ng tubo

Mga kasangkapan

  • Dremel - ginamit upang ipagsama ang on / off switch sa frame ng larawan. Maaari itong magawa sa isang drill at talagang malaki, ngunit hindi ko inirerekumenda iyon.
  • Panghinang na bakal - nakakabit ang mga wire sa LED strip
  • Mainit na baril ng pandikit - literal sa bawat hakbang ng proyektong ito
  • Malaking karayom sa pananahi - para sa paglalagay ng butas sa pamamagitan ng canvas at foam board para sa mga ilaw

Hakbang 1: Foam Board, Battery Pack at On / off Switch

Foam Board, Battery Pack at On / off Switch
Foam Board, Battery Pack at On / off Switch
Foam Board, Battery Pack at On / off Switch
Foam Board, Battery Pack at On / off Switch

Bago ang anumang bagay kailangan mong maglakip ng isang piraso ng foam board sa likod ng canvas print. Nagbibigay ito sa amin ng magandang solidong ibabaw upang ikabit ang lahat at makakatulong na hawakan ang mga hibla ng fiber optic sa lugar. Gumamit lamang ng isang exacto kutsilyo o pamutol ng kahon upang i-cut ang isang piraso ng foam board sa tamang sukat at mainit na pandikit ito sa maraming mga lugar. Inirerekumenda ko ang paggamit ng itim na board ng bula upang hindi ito payagan ng maraming ilaw na dumugo.

Ginamit ko ang dremel bit na mukhang isang normal na drill bit ngunit talagang mahusay para sa pag-aalis ng materyal. Ito ay isa sa mga piraso na dapat dumating sa anumang dremel. Gumamit ng isang lata ng naka-compress na hangin upang mapupuksa ang anumang sup mula sa dremel.

Mainit na pandikit ang lahat sa lugar. Siguraduhin na ang baterya pack ay nakakabit nang napakahusay dahil nangangailangan ito ng isang maliit na lakas na ipasok / alisin ang isang baterya at hindi mo nais na ang may hawak ng baterya ay pumunta kahit saan.

Hakbang 2: Microcontroller at Circuit

Microcontroller at Circuit
Microcontroller at Circuit
Microcontroller at Circuit
Microcontroller at Circuit
Microcontroller at Circuit
Microcontroller at Circuit

Inilagay ko ang switch ng kuryente bago ang Arduino UNO upang kapag nagpalipat-lipat ka ng switch pagkatapos ay walang gumagamit ng lakas mula sa mga pack ng baterya. Dapat nitong tulungan ang mga baterya na tumagal hangga't maaari kapag hindi naka-on ang proyekto. Ang mga board ng Arduino ay kilalang masama sa pamamahala ng kuryente - gumagamit sila ng maraming kasalukuyang kung naka-on sila kahit na hindi sila aktibong gumagawa ng kahit ano.

I-plug ang positibong dulo ng pack ng baterya sa VIN (boltahe na input) ng microcontroller upang magamit nito ang built-in na voltage regulator ng controller upang makuha ang boltahe pababa sa 5V na kinakailangan nito. Kung nagpapalakas kami ng higit pang mga ilaw maaaring kailanganin naming gamitin ang aming sariling boltahe regulator para sa kanila, ngunit dapat hawakan ng UNO ang 5 LEDs.

Gumamit ako ng isang risistor sa pagitan ng output ng data at ng LED strip upang makinis ang signal - nang walang risistor maaari kang makakuha ng random flashing ng mga pixel. Ang laki ng risistor ay hindi talaga mahalaga, anuman sa pagitan ng 50Ω at 400Ω ay dapat na gumana.

Hakbang 3: Mga ilaw ng Fiber-optic

Image
Image
Mga Ilaw ng Fiber-optic
Mga Ilaw ng Fiber-optic
Mga Ilaw ng Fiber-optic
Mga Ilaw ng Fiber-optic

Pagkatapos ng ilang pagsubok at error sa kalaunan nakakita ako ng isang mahusay na paraan upang makuha ang mga hibla ng hibla ng mata sa pamamagitan ng canvas.

  1. Gumamit ng pinakamalaking karayom sa pananahi kailangan mong sundutin ang isang butas sa harap ng canvas at foam board. Inirerekumenda kong sundutin ang bawat butas na gusto mo sa simula pa upang maibalik mo ito at makita kung saan mo / hindi mailalagay ang iyong mga clip ng samahan ng cable
  2. Kumuha ng isang pares ng needle na nosed na karayom at kunin ang hibla ng hibla ng optic na mas mababa sa isang sent sentimo mula sa dulo
  3. Isuksok ang hibla ng hibla ng hibla sa butas na ginawa mo gamit ang isang karayom
  4. Ituro ang strand sa pamamagitan ng iba't ibang mga plastic clip sa kung saan ito ay bahagyang mas mahaba kaysa sa kinakailangan - puputulin namin ito sa paglaon
  5. Gamit ang iyong mainit na baril sa pandikit sa setting ng mababang temperatura (kung mayroon itong pagpipiliang iyon) maglagay ng isang patak ng mainit na pandikit sa hibla ng hibla ng mata kung saan ito ay tumusok sa board ng bula. Bilang kahalili maaari mong gamitin ang asul na bagay na bagay. Ang mainit na pandikit ay pinipinsala nang kaunti ang strand ngunit tila hindi ito guluhin sa mga katangian ng salamin sa mata
  6. Gupitin ang strand nang kaunti mula sa canvas gamit ang mga wire cutter.

Upang mapabilis ang proseso maaari kang tumusok sa maraming mga hibla sa isang hilera bago gawin ang mainit na pandikit. Dapat silang pangkalahatang manatili sa lugar nang mag-isa.

Mag-ingat na huwag masira o mabilisan ang mga hibla ng hibla ng hibla sa talahanayan - masisira sila at kung ginagawang masyadong maikli ang strand pagkatapos ay malulungkot ka at kailangang muling gawin ito. Gamitin ang pack ng baterya bilang isang counterweight upang magkaroon ka ng frame ng larawan na mas mababa sa kalahati sa desk.

Dahil gumamit ako ng puting foam board sa halip na itim mayroong maraming ilaw na nagniningning kapag nakabukas ang mga LED. Bilang isang pag-aayos nag-tape ako sa ilang mga aluminyo palara sa pagitan ng mga ilaw at canvas.

Gumamit ng heat shrink tubing upang mapanatili ang bawat bundle ng fiber optic strands na magkasama.

  1. Gupitin ang mga hibla para sa bundle sa humigit-kumulang sa parehong haba
  2. Ilagay ang seksyon sa pamamagitan ng heat shrink tubing
  3. Gumamit ng heat gun o soldering iron upang paliitin ito. Kung gumagamit ka ng isang soldering iron, hayaan mo lang ang gilid ng bakal na bahagyang hawakan ang tubing at ito ay lumiit. Hindi ito dapat matunaw ang tubing sapagkat ito ay dinisenyo para sa isang maliit na init.

Sa paglaon ay gumamit ako ng mainit na pandikit upang ilakip ang dulo ng bundle sa bawat ilaw na LED. Gumamit ako ng maraming mainit na pandikit upang ang mga hibla ay talagang nakuha ang ilaw mula sa bawat pula / berde / asul na diode sa ilaw - kapag ang mga hibla ay talagang malapit sa ilaw ng isang "puting" kulay (na kung saan ay talagang pula at berde at asul) pagkatapos ang ilang mga hibla ay magiging pula lamang at ang ilan ay magiging berde, sa halip na lahat ay maputi. Maaari itong mapabuti sa pamamagitan ng paggamit ng isang piraso ng papel o iba pa upang maikalat ito, ngunit ang mainit na pandikit ay gumana nang sapat para sa akin.

Hakbang 4: Programming

Sa pag-program na ito ginamit ko ang mga threelibrary

FastLED - isang mahusay na silid-aklatan para sa pagkontrol sa mga WS2812 LED strips (at maraming iba pang maaaring matugunan na mga LED strip) -

Mababang Kapangyarihan ng Arduino - Hindi ko alam kung magkano ang lakas na ito ay nakakatipid, ngunit napakadaling ipatupad at dapat makatulong na makatipid ng kaunting lakas sa pagpapaandar na mga puting ilaw lamang at pagkatapos ay maaantala magpakailanman.

EEPROM - Ginamit upang basahin / iimbak ang kasalukuyang mode ng proyekto. Pinapayagan nito ang proyekto na dagdagan ang color mode sa bawat oras na patayin mo ito at bumalik, na inaalis ang pangangailangan ng isang hiwalay na pindutan upang baguhin ang mode. Ang EEPROM library ay naka-install tuwing mai-install mo ang Arduino IDE.

Gumamit din ako ng sketch para sa pagkislap ng mga ilaw na na-set up ng iba. Ito ay random na nag-iilaw ng isang pixel mula sa isang batayang kulay hanggang sa isang pinakamataas na kulay at pagkatapos ay bumalik. https://gist.github.com/kriegsman/88954aae22b03a66… (gumagamit din ito ng FastLED library)

Ginamit ko rin ang vMicro plugin para sa Visual Studio - ito ay isang na-ampli na bersyon ng Arduino IDE. Ito ay may isang toneladang kapaki-pakinabang na autocomplete na pag-andar at nagha-highlight ng mga problema sa iyong code nang hindi kinakailangang isaayos ito. Nagkakahalaga ito ng $ 15 ngunit sulit ito kung makakagawa ka ng higit sa isang proyekto ng Arduino, at pipilitin ka nitong malaman ang tungkol sa Visual Studio na isang napakalakas na programa.

(Ina-attach ko rin ang code.ino file dahil ang Instructable hosting ng isang Github Gist ay sumisira ng maraming mga blangko na file sa file)

Ang Arduino code na nagpapatakbo ng 4 na mga mode ng kulay sa isang Arduino UNO para sa ilang mga WS2812B LED strip light gamit ang FastLED library

# isama
# isama
# isama
// FastLED setup
# tukuyinNUM_LEDS4
# kahuluganPIN3 // Data pin para sa LED strip
Ang mga CRGB ay nagbigay ng [NUM_LEDS];
// Twinkle setup
#defineBASE_COLORCRGB (2, 2, 2) // Kulay ng background sa base
#definePEAK_COLORCRGB (255, 255, 255) // Kulay ng rurok upang makintab hanggang sa
// Halaga upang madagdagan ang kulay ng bawat loop habang lumiliwanag ito:
#defineDELTA_COLOR_UPCRGB (4, 4, 4)
// Halaga upang mabawasan ang kulay ng bawat loop dahil lumabo ito:
#defineDELTA_COLOR_DOWNCRGB (4, 4, 4)
// Pagkakataon ng bawat pixel na nagsisimulang magpasaya.
// 1 o 2 = ilang mga brightening pixel nang paisa-isa.
// 10 = maraming mga pixel na nagpapasaya sa bawat oras.
# kahuluganCHANCE_OF_TWINKLE2
enum {SteadyDim, GettingBrighter, GettingDimmerAgain};
uint8_t PixelState [NUM_LEDS];
byte runMode;
byte globalBright = 150;
byte globalDelay = 20; // Delay speed for twinkling
byte address = 35; // Address upang maiimbak ang run mode
voidsetup ()
{
FastLED.addLeds (leds, NUM_LEDS);
FastLED.setCorrection (KaraniwangLEDStrip);
//FastLED.setMaxPowerInVoltsAndMilliamps(5, maxMilliamps);
FastLED.setBightness (globalBright);
// Kunin ang mode na tumakbo
runMode = EEPROM.read (address);
// Palakihin ang runmode ng 1
EEPROM.write (address, runMode + 1);
}
voidloop ()
{
lumipat (runMode)
{
// Solid na puti
case1: fill_solid (leds, NUM_LEDS, CRGB:: White);
FastLED.show ();
DelayForever ();
pahinga;
// Twinkle kinda mabagal
case2: FastLED.setBightness (255);
globalDelay = 10;
TwinkleMapPixels ();
pahinga;
// Mabilis na kumislap
case3: FastLED.setBightness (150);
globalDelay = 2;
TwinkleMapPixels ();
pahinga;
//Bahaghari
case4:
RunRainbow ();
pahinga;
// Index out of range, i-reset ito sa 2 at pagkatapos ay patakbuhin ang mode 1.
// Kapag ang arduino restart tatakbo ito mode 2, ngunit sa ngayon patakbuhin ang mode 1
default:
EEPROM.write (address, 2);
runMode = 1;
pahinga;
}
}
voidRunRainbow ()
{
byte * c;
uint16_t i, j;
habang (totoo)
{
para sa (j = 0; j <256; j ++) {// 1 cycle ng lahat ng mga kulay sa gulong
para sa (i = 0; i <NUM_LEDS; i ++) {
c = Wheel (((i * 256 / NUM_LEDS) + j) & 255);
setPixel (i, * c, * (c + 1), * (c + 2));
}
FastLED.show ();
pagkaantala (globalDelay);
}
}
}
byte * Wheel (byte WheelPos) {
static byte c [3];
kung (WheelPos <85) {
c [0] = WheelPos * 3;
c [1] = 255 - WheelPos * 3;
c [2] = 0;
}
kung hindi man (WheelPos <170) {
WheelPos - = 85;
c [0] = 255 - WheelPos * 3;
c [1] = 0;
c [2] = WheelPos * 3;
}
iba pa {
WheelPos - = 170;
c [0] = 0;
c [1] = WheelPos * 3;
c [2] = 255 - WheelPos * 3;
}
bumalik c;
}
voidTwinkleMapPixels ()
{
InitPixelStates ();
habang (totoo)
{
para sa (uint16_t i = 0; i <NUM_LEDS; i ++) {
kung (PixelState == SteadyDim) {
// ang mga pixel na ito ay kasalukuyang: SteadyDim
/ / / / / / / / / / / / / / / // / / / / / / / / / / / _ / / _ / / / / / / / / / / / / / / _ / / / / _ / / / / / / / / / / / / / / / _ / / /. /……………………………………..
kung (random8 () <CHANCE_OF_TWINKLE) {
PixelState = GettingBrighter;
}
}
kung hindi man (PixelState == GettingBrighter) {
// ang mga pixel na ito ay kasalukuyang: GettingBrighter
// kaya kung nasa kulay ng rurok, ilipat ito upang lumabo muli
kung (leds > = PEAK_COLOR) {
PixelState = GettingDimmerAgain;
}
iba pa {
// kung hindi man, panatilihin lamang ang pagpapaliwanag nito:
leds + = DELTA_COLOR_UP;
}
}
kung hindi man {// lumabo ulit
// ang mga pixel na ito ay kasalukuyang: GettingDimmerAgain
// kaya kung bumalik ito sa kulay ng batayan, ilipat ito sa steady dim
kung (leds <= BASE_COLOR) {
leds = BASE_COLOR; // reset sa eksaktong base ng kulay, kung sakaling mag-overshot kami
PixelState = SteadyDim;
}
iba pa {
// kung hindi man, panatilihin lamang itong pagpapalabo:
leds - = DELTA_COLOR_DOWN;
}
}
}
FastLED.show ();
FastLED.delay (globalDelay);
}
}
voidInitPixelStates ()
{
memset (PixelState, laki ng (PixelState), SteadyDim); // ipasimula ang lahat ng mga pixel sa SteadyDim.
fill_solid (leds, NUM_LEDS, BASE_COLOR);
}
voidDelayForever ()
{
habang (totoo)
{
pagkaantala (100);
LowPower.powerDown (SLEEP_FOREVER, ADC_OFF, BOD_OFF);
}
}
voidshowStrip () {
FastLED.show ();
}
voidsetPixel (int Pixel, byte red, byte green, byte blue) {
// FastLED
leds [Pixel].r = pula;
leds [Pixel].g = berde;
leds [Pixel].b = asul;
}

tingnan ang rawFiberOptic_ClemsonPic.ino naka-host sa ❤ ng GitHub

Hakbang 5: Pangwakas na Produkto

Pangwakas na Produkto
Pangwakas na Produkto
Pangwakas na Produkto
Pangwakas na Produkto
Pangwakas na Produkto
Pangwakas na Produkto

Ta-da! Inaasahan kong ang Instructable na ito ay nagbibigay inspirasyon sa iba na gumawa ng kanilang sariling katulad na proyekto. Talagang hindi mahirap gawin at nagulat ako na wala pang nagawa nito at nagsulat ng masusing pagtuturo tungkol dito.

Inirerekumendang: