Përmbajtje:

Dritat me fibër optike në Canvas Print: 5 hapa
Dritat me fibër optike në Canvas Print: 5 hapa

Video: Dritat me fibër optike në Canvas Print: 5 hapa

Video: Dritat me fibër optike në Canvas Print: 5 hapa
Video: Part 5 - Treasure Island Audiobook by Robert Louis Stevenson (Chs 22-27) 2024, Korrik
Anonim
Image
Image
Dritat me fibër optike në printim në kanavacë
Dritat me fibër optike në printim në kanavacë

Ky projekt shton një rrotullim unik në një printim standard të kanavacës. Unë programova në 4 mënyra të ndryshme ndriçimi, por ju lehtë mund të shtoni më shumë. Modaliteti ndryshon sa herë që e fikni dhe ndizni në vend që të keni një buton të veçantë për të minimizuar dëmtimin e kornizës. Bateritë duhet të zgjasin mbi 50 orë përdorim - nuk jam vërtet i sigurt, por kam bërë një projekt të ngjashëm për një mik dhe ka përdorur 5 herë më shumë drita dhe ka zgjatur 20+ orë në një grup të vetëm baterish.

Materiale

  • Canvas print me hapësirë të punueshme - e porosita timen nga https://www.easycanvasprints.com sepse kishin çmime të mira dhe shpinë të hapur. Korniza më e trashë 1.5 "ishte e përsosur dhe më dha shumë hapësirë për të përkulur fijet e fibrave optike. Përveç kësaj ju dëshironi një fotografi që ju jep 3" me 8 "hapësirë të punës për paketën e baterisë dhe mikrokontrolluesin dhe shiritat LED
  • Dritat e shiritit LED - kam përdorur shirita LED të adresueshëm WS2812. Mos u frikësoni, ato janë vërtet të lehta për t'u përdorur me bibliotekat FastLED ose Neopixel! Ju gjithashtu mund të përdorni çdo shirit standard LED, thjesht nuk do të jeni në gjendje të kontrolloni secilën pjesë të dritës individualisht pa shumë më shumë instalime elektrike.
  • Mikrokontrolluesi - Kam përdorur një Arduino Uno, por ju mund të përdorni pothuajse gjithçka për këtë projekt.
  • Paketa e baterive - e porosita këtë nga eBay (nga Kina) dhe titullohej "Mbajtës i baterive të baterisë 6 x 1.5V AA 2A CELL"
  • Fijet e fibrave optike - edhe një herë, të porositura nga Kina në eBay - "PMMA Plastike Fiber Optic Cable End Grow Led Light DIY Decor" ose "PMMA End Glow Fiber Optic Cable for Star Ceiling Light Kit". Kam përdorur madhësi 1mm dhe 1.5mm, në të vërtetë rekomandoj përdorimin më të vogël se kaq.
  • Çelësi i ndezjes/fikjes - "Çelësat SPDT të ndezur/aktivizuar 2 pozicione miniaturë"
  • Kapëset e organizimit të telave - Këto ndihmojnë në mbajtjen e fijeve të fibrave optike të këndshme dhe të rregullta.
  • Pllakë shkumë, tela lidhës të ngurta me bazë, tuba të tkurrjes së nxehtësisë

Mjetet

  • Dremel - përdoret për të futur çelësin e ndezjes/fikjes në kornizën e figurës. Kjo ndoshta mund të arrihet me një stërvitje dhe një pjesë vërtet të madhe, por unë nuk e rekomandoj atë.
  • Hekuri i saldimit - bashkimi i telave në shiritin LED
  • Armë me zam të nxehtë - fjalë për fjalë çdo hap të këtij projekti
  • Gjilpërë e madhe qepëse - për hapjen e vrimave nëpër kanavacë dhe dërrasë shkumë për dritat

Hapi 1: Bordi i shkumës, Paketa e Baterisë dhe Çelësi i ndezjes/fikjes

Bordi i shkumës, Paketa e Baterisë dhe Çelësi i ndezjes/fikjes
Bordi i shkumës, Paketa e Baterisë dhe Çelësi i ndezjes/fikjes
Bordi i shkumës, Paketa e Baterisë dhe Çelësi i ndezjes/fikjes
Bordi i shkumës, Paketa e Baterisë dhe Çelësi i ndezjes/fikjes

Para çdo gjëje tjetër ju duhet të bashkëngjitni një copë dërrasë shkumë në pjesën e prapme të printimit të kanavacës. Kjo na jep një sipërfaqe të fortë të fortë për të bashkangjitur gjithçka tjetër dhe ndihmon në mbajtjen e fijeve të fibrave optike në vend. Thjesht përdorni një thikë ose një prestar kuti për të prerë një copë dërrasë shkumë në madhësinë e duhur dhe ngjiteni atë në shumë vende. Unë rekomandoj përdorimin e pllakës së zezë të shkumës në mënyrë që të mos lejojë që të rrjedhë aq shumë dritë.

Kam përdorur pjesën e dremel që duket si një stërvitje normale, por në të vërtetë është e shkëlqyeshme për heqjen e materialit. Oneshtë një nga pjesët që duhet të vijë me çdo dremel. Përdorni një kanaçe me ajër të ngjeshur për të hequr qafe çdo tallash nga dremel.

Ngjiteni nxehtë gjithçka në vend. Sigurohuni që paketa e baterisë është e bashkangjitur shumë mirë sepse kërkon një forcë të mirë për të futur/hequr një bateri dhe nuk doni që mbajtësi i baterisë të shkojë askund.

Hapi 2: Mikrokontrolluesi dhe Qarku

Mikrokontrolluesi dhe Qarku
Mikrokontrolluesi dhe Qarku
Mikrokontrolluesi dhe Qarku
Mikrokontrolluesi dhe Qarku
Mikrokontrolluesi dhe Qarku
Mikrokontrolluesi dhe Qarku

E vendosa çelësin e energjisë para Arduino UNO në mënyrë që kur ta ndërroni çelësin atëherë asgjë nuk po përdor energji nga paketat e baterisë. Kjo duhet të ndihmojë që bateritë të zgjasin sa më gjatë që të jetë e mundur kur projekti nuk është ndezur. Bordet Arduino janë jashtëzakonisht të këqija në menaxhimin e energjisë - ato përdorin shumë rrymë nëse janë ndezur edhe nëse nuk po bëjnë asgjë në mënyrë aktive.

Lidheni skajin pozitiv të paketës së baterisë në VIN (hyrja e tensionit) të mikrokontrolluesit në mënyrë që të përdorë rregullatorin e tensionit të integruar të kontrolluesit për të ulur tensionin në 5V që i nevojitet. Nëse do të ndiznim më shumë drita, mund të na duhet të përdorim rregullatorin tonë të tensionit për to, por UNO duhet të jetë në gjendje të trajtojë 5 LED.

Kam përdorur një rezistencë midis daljes së të dhënave dhe shiritit LED për të zbutur sinjalin - pa rezistencën mund të merrni ndezje të rastësishme të pikselave. Madhësia e rezistencës nuk ka shumë rëndësi, çdo gjë midis 50Ω dhe 400Ω duhet të funksionojë.

Hapi 3: Dritat me fibër optike

Image
Image
Dritat me fibër optike
Dritat me fibër optike
Dritat me fibër optike
Dritat me fibër optike

Pas disa provave dhe gabimeve unë përfundimisht gjeta një mënyrë të mirë për të kaluar fijet e fibrave optike përmes kanavacës.

  1. Përdorni gjilpërën më të madhe të qepjes që keni për të hapur një vrimë në pjesën e përparme të kanavacës dhe tabelës së shkumës. Unë rekomandoj të hapni çdo vrimë që dëshironi në fillim, në mënyrë që ta përmbysni dhe të shihni se ku mund/nuk mund t'i vendosni kapëset e organizatës tuaj kabllore
  2. Merrni një palë pincë me hundë gjilpërë dhe kapni fijen e fibrës optike më pak se një centimetër nga fundi
  3. Hidhni fijen e fibrës optike përmes vrimës që keni bërë me një gjilpërë
  4. Kaloni fillesën përmes kapëseve të ndryshme plastike atje ku është pak më e gjatë seç duhet - do ta presim më vonë
  5. Me armën tuaj të zamit të nxehtë në cilësimin e LOW të temperaturës (nëse e ka atë mundësi) vendosni një pikë zam të nxehtë në fijen e fibrës optike ku futet në tabelën e shkumës. Përndryshe ju mund të përdorni ato gjëra ngjitëse blu. Ngjitësja e nxehtë deformon pak fijen, por nuk duket të ngatërrohet shumë me cilësitë optike
  6. Pritini fillesën pak larg nga kanavacë duke përdorur hapëse teli.

Për të përshpejtuar procesin, mund të futni shumë fibra me radhë para se të bëni ngjitësin e nxehtë. Ata në përgjithësi duhet të qëndrojnë në vend më vete.

Kini kujdes që të mos thyeni ose copëtoni fijet e fibrave optike në tryezë - ato do të prishen dhe nëse e bën fijen shumë të shkurtër, atëherë do të jeni të trishtuar dhe duhet ta ribërni. Përdorni paketën e baterisë si kundërpeshë në mënyrë që të keni kornizën e figurës më pak se gjysma në tavolinë.

Për shkak se kam përdorur tabelë të bardhë shkumë në vend të zezë, kishte shumë dritë që ndriçonte kur LED ishin ndezur. Si rregullim, ngjita disa fletë alumini midis dritave dhe kanavacës.

Përdorni tuba për tkurrjen e nxehtësisë për të mbajtur së bashku çdo pako fijesh optike.

  1. Pritini fillesat për paketën në afërsisht të njëjtën gjatësi
  2. Vendoseni pjesën përmes tubave të tkurrjes së nxehtësisë
  3. Përdorni një armë ngrohëse ose hekur bashkues për ta zvogëluar atë. Nëse jeni duke përdorur një hekur bashkues, thjesht lini që ana e hekurit të prekë lehtë tubin dhe ai do të tkurret. Nuk duhet të shkrijë tubin sepse është projektuar për pak nxehtësi.

Përfundimisht kam përdorur zam të nxehtë për të bashkuar skajin e paketës në secilën dritë LED. Kam përdorur shumë zam të nxehtë në mënyrë që fibrat të marrin dritë nga çdo diodë e kuqe/jeshile/blu në dritë - kur fibrat janë vërtet afër dritës, një ngjyrë "e bardhë" (e cila në të vërtetë është e kuqe dhe jeshile dhe blu) atëherë disa fibra thjesht do të jenë të kuqe dhe disa do të jenë jeshile, në vend që të gjitha të jenë të bardha. Kjo mund të përmirësohet duke përdorur një copë letër ose diçka tjetër për ta shpërndarë atë, por zamja e nxehtë funksionoi mjaft mirë për mua.

Hapi 4: Programimi

Në programimin e kësaj kam përdorur tre -bibliotekat

FastLED - një bibliotekë e shkëlqyeshme për kontrollin e shiritave LED WS2812 (dhe shumë shirita të tjerë të adresueshëm LED) -

Fuqia e ulët Arduino - Unë nuk e di se sa energji kursen kjo në të vërtetë, por ishte super e lehtë për tu zbatuar dhe duhet të ndihmojë në kursimin e një grimce të vogël të energjisë në funksionin që është vetëm dritat e bardha dhe pastaj të vonohet përgjithmonë.

EEPROM - Përdoret për të lexuar/ruajtur mënyrën aktuale të projektit. Kjo i lejon projektit të rrisë modalitetin e ngjyrave sa herë që e fikni dhe ndizni, gjë që eliminon nevojën e një butoni të veçantë për të ndryshuar modalitetin. Biblioteka EEPROM është e instaluar sa herë që instaloni Arduino IDE.

Kam përdorur gjithashtu një skicë për vezullimin e dritave që dikush tjetër ka vendosur. Ai ndriçon rastësisht një piksel nga një ngjyrë bazë në një ngjyrë kulmore dhe pastaj tërhiqet. https://gist.github.com/kriegsman/88954aae22b03a66… (përdor edhe bibliotekën FastLED)

Kam përdorur gjithashtu shtojcën vMicro për Visual Studio - ky është një version i amplifikuar i Arduino IDE. Ka një numër funksionesh ndihmuese të plotësimit automatik dhe nxjerr në pah problemet në kodin tuaj pa pasur nevojë ta përpiloni atë. Kushton 15 dollarë, por ia vlen nëse do të bëni më shumë se një projekt Arduino dhe do t’ju detyrojë të mësoni rreth Visual Studio i cili është një program super i fuqishëm.

(Unë jam duke i bashkangjitur skedarin.ino sepse kodimi i udhëzueshëm i një Github Gist shkatërron shumë hapësira të zbrazëta në skedar)

Kodi Arduino që ekzekuton 4 mënyra ngjyrash në një Arduino UNO për disa drita të shiritave LED WS2812B duke përdorur bibliotekën FastLED

#përfshi
#përfshi
#përfshi
// Konfigurimi i FastLED
#përcaktoNUM_LEDS4
#definePIN3 // Kodi i të dhënave për shiritin LED
CRGB udhëheq [NUM_LEDS];
// Konfigurimi i vezullimit
#defineBASE_COLORCRGB (2, 2, 2) // Ngjyra bazë e sfondit
#definePEAK_COLORCRGB (255, 255, 255) // Ngjyra e pikut për të shkëlqyer deri në
// Shuma për të rritur ngjyrën me çdo lak ndërsa bëhet më e ndritshme:
#defineDELTA_COLOR_UPCRGB (4, 4, 4)
// Shuma për të zvogëluar ngjyrën me çdo lak ndërsa bëhet më e zbehtë:
#defineDELTA_COLOR_DOWNCRGB (4, 4, 4)
// Mundësia që çdo piksel të fillojë të ndriçohet.
// 1 ose 2 = disa piksele ndriçuese në të njëjtën kohë.
// 10 = shumë piksele që shkëlqejnë në të njëjtën kohë.
#përcakto CHANCE_OF_TWINKLE2
enum {SteadyDim, GettingBrighter, GettingDimmerAgain};
uint8_t PixelState [NUM_LEDS];
byte runMode;
byte globalBright = 150;
byte globalDelay = 20; // Shpejtësia e vonesës për vezullim
adresa e bajtit = 35; // Adresa për të ruajtur modalitetin e ekzekutimit
voidsetup ()
{
FastLED.addLeds (leds, NUM_LEDS);
FastLED.setCorrect (TypicalLEDStrip);
//FastLED.setMaxPowerInVoltsAndMilliamps(5, maxMilliamps);
FastLED.setBrightness (globalBright);
// Merrni modalitetin për të funksionuar
runMode = EEPROM.read (adresa);
// Rritni modalitetin e ekzekutimit me 1
EEPROM.write (adresa, runMode + 1);
}
voidloop ()
{
kaloni (runMode)
{
// E bardhë e fortë
case1: fill_solid (leds, NUM_LEDS, CRGB:: White);
FastLED.shfaq ();
DelayForever ();
pushim;
// Vezulloj disi ngadalë
case2: FastLED.setBrightness (255);
vonesa globale = 10;
TwinkleMapPixels ();
pushim;
// Vezullo shpejt
case3: FastLED.setBrightness (150);
vonesa globale = 2;
TwinkleMapPixels ();
pushim;
// Ylber
rasti 4:
RunRainbow ();
pushim;
// Indeksoni jashtë rrezes, rivendoseni atë në 2 dhe më pas ekzekutoni modalitetin 1.
// Kur arduino rifillon do të ekzekutojë modalitetin 2, por tani për tani funksionon modalitetin 1
parazgjedhje:
EEPROM.shkruaj (adresa, 2);
runMode = 1;
pushim;
}
}
voidRunRainbow ()
{
bajt *c;
uint16_t i, j;
ndërsa (e vërtetë)
{
për (j = 0; j <256; j ++) {// 1 cikël të të gjitha ngjyrave në timon
për (i = 0; i <NUM_LEDS; i ++) {
c = Rrota (((i * 256 / NUM_LEDS) + j) & 255);
setPixel (i, *c, *(c + 1), *(c + 2));
}
FastLED.shfaq ();
vonesa (GlobalDelay);
}
}
}
byte * Rrota (byte WheelPos) {
bajt statik c [3];
nëse (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;
}
tjeter {
WheelPos -= 170;
c [0] = 0;
c [1] = WheelPos * 3;
c [2] = 255 - WheelPos * 3;
}
kthimi c;
}
voidTwinkleMapPixels ()
{
InitPixelStates ();
ndërsa (e vërtetë)
{
për (uint16_t i = 0; i <NUM_LEDS; i ++) {
nëse (PixelState == SteadyDim) {
// këto piksele janë aktualisht: SteadyDim
// kështu që ne rastësisht e konsiderojmë që të fillojë të bëhet më e ndritshme
if (random8 () <CHANCE_OF_TWINKLE) {
PixelState = GettingBrighter;
}
}
elseif (PixelState == GettingBrighter) {
// këto piksele janë aktualisht: GettingBrighter
// kështu që nëse është në ngjyrën kulmore, kalojeni në errësim përsëri
nëse (leds > = PEAK_COLOR) {
PixelState = GettingDimmerAgain;
}
tjeter {
// përndryshe, thjesht vazhdoni ta ndriçoni atë:
leds += DELTA_COLOR_UP;
}
}
else {// po errësohet përsëri
// këto piksele janë aktualisht: GettingDimmerAgain
// kështu që nëse kthehet në ngjyrën bazë, kalojeni në zbehje të qëndrueshme
nëse (leds <= BASE_COLOR) {
leds = BASE_COLOR; // rivendoseni në ngjyrën e saktë bazë, në rast se e tejkalojmë
PixelState = SteadyDim;
}
tjeter {
// përndryshe, thjesht vazhdoni ta zbehni atë:
leds -= DELTA_COLOR_DOWN;
}
}
}
FastLED.shfaq ();
FastLED.vonesa (vonesa globale);
}
}
voidInitPixelStates ()
{
memset (PixelState, sizeof (PixelState), SteadyDim); // inicializoni të gjitha pikselët në SteadyDim.
mbushur_solid (leds, NUM_LEDS, BASE_COLOR);
}
voidDelayForever ()
{
ndërsa (e vërtetë)
{
vonesë (100);
LowPower.powerDown (SLEEP_FOREVER, ADC_OFF, BOD_OFF);
}
}
voidshowStrip () {
FastLED.shfaq ();
}
voidsetPixel (int Pixel, byte e kuqe, byte jeshile, byte blu) {
// FastLED
leds [Pixel].r = e kuqe;
leds [Pixel].g = jeshile;
leds [Pixel].b = blu;
}

shikoni rawFiberOptic_ClemsonPic.ino të pritur me ❤ nga GitHub

Hapi 5: Produkti Përfundimtar

Produkti Përfundimtar
Produkti Përfundimtar
Produkti Përfundimtar
Produkti Përfundimtar
Produkti Përfundimtar
Produkti Përfundimtar

Ta-da! Shpresoj që ky Instructable të frymëzojë dikë tjetër të bëjë projektin e tij të ngjashëm. Me të vërtetë nuk ishte e vështirë për ta bërë dhe unë u befasova që askush nuk e kishte bërë atë dhe nuk kishte shkruar ende një udhëzues të plotë për këtë.

Recommended: