Satura rādītājs:

Optisko šķiedru gaismas kanvas drukā: 5 soļi
Optisko šķiedru gaismas kanvas drukā: 5 soļi

Video: Optisko šķiedru gaismas kanvas drukā: 5 soļi

Video: Optisko šķiedru gaismas kanvas drukā: 5 soļi
Video: 20 товаров для автомобиля с Алиэкспресс, автотовары №29 2024, Jūnijs
Anonim
Image
Image
Optiskās šķiedras gaismas kanvas drukā
Optiskās šķiedras gaismas kanvas drukā

Šis projekts standarta audekla drukai pievieno unikālu griezienu. Es programmēju 4 dažādus apgaismojuma režīmus, bet jūs varētu viegli pievienot vairāk. Režīms tiek mainīts katru reizi, kad to izslēdzat un ieslēdzat, nevis atsevišķa poga, lai samazinātu rāmja bojājumus. Baterijām vajadzētu kalpot vairāk nekā 50 stundas - es neesmu īsti pārliecināts, bet līdzīgu projektu uztaisīju draugam, un tas izmantoja 5 reizes vairāk gaismas un ir izturējis 20+ stundas ar vienu bateriju komplektu.

Materiāli

  • Kanvas druka ar darbināmu vietu - es pasūtīju raktuves vietnē https://www.easycanvasprints.com, jo tām bija labas cenas un atvērta aizmugure. Biezāks 1,5 collu rāmis bija ideāls un deva man daudz vietas, lai saliektu optisko šķiedru pavedienus. Turklāt jūs vēlaties attēlu, kas dod jums 3 x 8 collas praktiskas vietas akumulatora blokam un mikrokontrolleram un LED sloksnēm
  • LED sloksnes gaismas - es izmantoju adresējamas WS2812 LED sloksnes. Nebaidieties, tos patiešām ir viegli lietot kopā ar FastLED vai Neopixel bibliotēkām! Jūs varētu arī izmantot jebkuru standarta LED sloksni, jūs vienkārši nevarēsit kontrolēt katru gaismas sadaļu atsevišķi, bez daudz vairāk vadu.
  • Mikrokontrolleris - Es izmantoju Arduino Uno, bet šim projektam varat izmantot gandrīz jebko.
  • Akumulators - es pasūtīju šo no eBay (no Ķīnas), un tā nosaukums bija "6 x 1,5 V AA 2A CELL akumulatoru bateriju turētājs"
  • Optiskās šķiedras pavedieni - atkal pasūtīti no Ķīnas eBay - "PMMA plastmasas šķiedru šķiedru kabeļa gala augšanas gaismas DIY dekors" vai "PMMA gala kvēlojošs šķiedru optikas kabelis zvaigžņu griestu gaismas komplektam". Es izmantoju 1 mm un 1,5 mm izmērus, es patiešām iesaku izmantot mazāku par to.
  • Ieslēgšanas/izslēgšanas slēdzis - "SPDT ieslēgšanas/ieslēgšanas 2 pozīciju miniatūras pārslēgšanas slēdži"
  • Stiepļu organizēšanas skavas - tie palīdz saglabāt optisko šķiedru pavedienus jaukus un sakoptus.
  • Putu dēlis, cietā serdeņa savienotāja vads, termiski saraušanās caurule

Rīki

  • Dremel - izmanto, lai ieslēgtu/izslēgtu slēdzi attēla rāmī. To varbūt varētu paveikt ar urbjmašīnu un patiešām lielu gabalu, bet es to neiesaku.
  • Lodāmurs - vadu piestiprināšana pie LED sloksnes
  • Karstās līmes pistole - burtiski katrs šī projekta solis
  • Liela šūšanas adata - caurumu izurbšanai caur audeklu un putu dēli gaismekļiem

1. darbība: putu dēlis, akumulators un ieslēgšanas/izslēgšanas slēdzis

Putu dēlis, akumulators un ieslēgšanas/izslēgšanas slēdzis
Putu dēlis, akumulators un ieslēgšanas/izslēgšanas slēdzis
Putu dēlis, akumulators un ieslēgšanas/izslēgšanas slēdzis
Putu dēlis, akumulators un ieslēgšanas/izslēgšanas slēdzis

Pirms kaut kas cits, jums jāpiestiprina putuplasta plāksnes gabals audekla izdrukas aizmugurē. Tas dod mums jauku cietu virsmu, lai piestiprinātu visu pārējo, un palīdz noturēt optiskās šķiedras pavedienus. Vienkārši izmantojiet precīzo nazi vai kārbas griezēju, lai sagrieztu putu plātnes gabalu pareizajā izmērā un daudzās vietās to karsti pielīmētu. Es iesaku izmantot melnu putu dēli, lai tas neļautu izplūst tik daudz gaismas.

Es izmantoju dremel uzgali, kas izskatās kā parasts urbis, bet patiesībā ir lieliski piemērots materiāla noņemšanai. Tas ir viens no gabaliem, kas būtu jāpievieno jebkuram dremel. Izmantojiet saspiesta gaisa kannu, lai no dremel atbrīvotos no zāģu skaidām.

Karstā līme viss vietā. Pārliecinieties, vai akumulators ir pievienots ļoti labi, jo akumulatora ievietošanai/izņemšanai ir vajadzīgs neliels spēks, un jūs nevēlaties, lai akumulatora turētājs nekur nenokļūtu.

2. solis: mikrokontrolleris un ķēde

Mikrokontrolleris un ķēde
Mikrokontrolleris un ķēde
Mikrokontrolleris un ķēde
Mikrokontrolleris un ķēde
Mikrokontrolleris un ķēde
Mikrokontrolleris un ķēde

Es ievietoju barošanas slēdzi pirms Arduino UNO, lai, pārslēdzot slēdzi, nekas neizmantotu akumulatoru enerģiju. Tam vajadzētu palīdzēt baterijām ilgt pēc iespējas ilgāk, kad projekts nav ieslēgts. Arduino dēļi ir ļoti slikti enerģijas pārvaldībā - tie izmanto daudz strāvas, ja tie ir ieslēgti, pat ja tie neko nedara.

Pievienojiet akumulatora bloka pozitīvo galu mikrokontrollera VIN (sprieguma ievadei), lai tas izmantotu kontrollera iebūvēto sprieguma regulatoru, lai samazinātu spriegumu līdz vajadzīgajam 5 V. Ja mēs darbinātu vairāk gaismas, mums, iespējams, būs jāizmanto savs sprieguma regulators, bet UNO vajadzētu spēt apstrādāt 5 gaismas diodes.

Lai izlīdzinātu signālu, es izmantoju rezistoru starp datu izvadi un LED sloksni - bez rezistora jūs varētu nejauši mirgot pikseļos. Rezistora izmēram nav nozīmes, vajadzētu darboties visam starp 50Ω un 400Ω.

3. darbība: optiskās šķiedras gaismas

Image
Image
Šķiedru optiskās gaismas
Šķiedru optiskās gaismas
Šķiedru optiskās gaismas
Šķiedru optiskās gaismas

Pēc dažiem izmēģinājumiem un kļūdām es beidzot atradu labu veidu, kā caur audeklu iegūt optiskās šķiedras pavedienus.

  1. Izmantojiet lielāko šūšanas adatu, kas jums jāizdara caurums audekla un putuplasta dēļa priekšpusē. Es iesaku izbāzt katru vēlamo caurumu pašā sākumā, lai jūs varētu to apgriezt un redzēt, kur varat/nevarat ievietot kabeļa organizācijas klipus
  2. Paņemiet knaibles ar adatām un satveriet optiskās šķiedras pavedienu mazāk nekā centimetru no gala
  3. Ieduriet optisko šķiedru caurumu caur adatas izveidoto caurumu
  4. Novietojiet pavedienu caur dažādiem plastmasas skavām līdz vietai, kur tas ir nedaudz garāks nekā nepieciešams - mēs to sagriezīsim vēlāk
  5. Kad jūsu karstās līmes pistole ir iestatīta uz LOW temperatūras iestatījumu (ja ir tāda iespēja), uzpiliniet karstu līmi uz optiskās šķiedras šķiedras, kur tā izduras caur putuplasta plāksni. Alternatīvi jūs varētu izmantot šo zilo lipīgo lietu. Karstā līme nedaudz deformē šķiedru, taču šķiet, ka tā pārāk daudz netraucē optiskajām īpašībām
  6. Izgrieziet pavedienu nedaudz prom no audekla, izmantojot stiepļu griezējus.

Lai paātrinātu procesu, pirms karstās līmes pielīmēšanas varat izlaist daudzas šķiedras pēc kārtas. Viņiem parasti vajadzētu palikt patstāvīgi.

Esiet piesardzīgs, lai nesabojātu vai nesaspiestu optiskās šķiedras šķiedras uz galda - tās salūzīs un, ja tas padarīs šķiedru par īsu, jūs būsiet skumji un jums tas būs jādara no jauna. Izmantojiet akumulatoru kā pretsvaru, lai attēla rāmis būtu mazāk par pusi uz galda.

Tā kā melnās krāsas vietā es izmantoju baltu putu plāksni, kad gaismas diodes bija ieslēgtas, gaisma spīdēja daudz. Kā labojumu es ievietoju alumīnija foliju starp gaismām un audeklu.

Izmantojiet saraušanās caurules, lai katrs šķiedru šķiedru saišķis būtu kopā.

  1. Izgrieziet saišķa pavedienus aptuveni vienāda garuma
  2. Ielieciet sekciju caur termiski saraušanās cauruli
  3. Izmantojiet siltuma pistoli vai lodāmuru, lai to samazinātu. Ja izmantojat lodāmuru, vienkārši ļaujiet gludekļa pusei viegli pieskarties caurulei, un tā samazināsies. Tam nevajadzētu izkausēt caurules, jo tas ir paredzēts nelielam siltumam.

Galu galā es izmantoju karstu līmi, lai pievienotu saišķa galu katrai LED gaismai. Es izmantoju daudz karstu līmi, lai šķiedras patiesībā iegūtu gaismu no katras sarkanās/zaļās/zilās diodes gaismā - kad šķiedras patiešām ir tuvu gaismai, ir "balta" krāsa (kas patiesībā ir sarkana un zaļa un zila) tad dažas šķiedras būs tikai sarkanas, bet citas - zaļas, nevis visas būs baltas. To varētu uzlabot, izmantojot papīra gabalu vai ko citu, lai to izkliedētu, bet karstā līme man derēja pietiekami labi.

4. solis: programmēšana

Programmēšanā es izmantoju trīs bibliotēkas

FastLED - lieliska bibliotēka, lai kontrolētu WS2812 LED sloksnes (un daudzas citas adresējamas LED sloksnes) -

Arduino Low Power - Es nezinu, cik daudz enerģijas tas faktiski ietaupa, taču to bija ļoti viegli ieviest, un tam vajadzētu palīdzēt ietaupīt nelielu enerģijas daudzumu funkcijai, kas ir tikai baltas gaismas un pēc tam aizkavējas uz visiem laikiem.

EEPROM - izmanto, lai lasītu/saglabātu projekta pašreizējo režīmu. Tas ļauj projektam palielināt krāsu režīmu katru reizi, kad to izslēdzat un atkal ieslēdzat, kas novērš nepieciešamību pēc atsevišķas pogas, lai mainītu režīmu. EEPROM bibliotēka tiek instalēta ikreiz, kad instalējat Arduino IDE.

Es arī izmantoju skici, lai mirdzētu gaismas, ko kāds cits uzstādīja. Tas nejauši iedegas pikseļu no pamatkrāsas līdz maksimālajai krāsai un pēc tam atkāpjas. https://gist.github.com/kriegsman/88954aae22b03a66… (tā izmanto arī FastLED bibliotēku)

Es arī izmantoju vMicro spraudni Visual Studio - šī ir Arduino IDE pastiprināta versija. Tam ir daudz noderīgu automātiskās pabeigšanas funkciju, un tas izceļ jūsu koda problēmas, to neapkopojot. Tas maksā 15 USD, bet ir tā vērts, ja plānojat izveidot vairāk nekā vienu Arduino projektu, un tas liks jums uzzināt par Visual Studio, kas ir īpaši spēcīga programma.

(Es pievienoju arī kodu.ino failu, jo Github Gist mitināmā mitināšana iznīcina daudzas tukšās vietas failā)

Arduino kods darbojas ar 4 krāsu režīmiem Arduino UNO dažām WS2812B LED sloksņu gaismām, izmantojot FastLED bibliotēku

#iekļaut
#iekļaut
#iekļaut
// FastLED iestatīšana
#defineNUM_LEDS4
#definePIN3 // Datu tapa LED sloksnei
CRGB gaismas diodes [NUM_LEDS];
// Twinkle iestatīšana
#defineBASE_COLORCRGB (2, 2, 2) // Pamata fona krāsa
#definePEAK_COLORCRGB (255, 255, 255) // Maksimālā krāsa līdz mirdzumam
// Daudzums, lai palielinātu krāsu par katru cilpu, kad tā kļūst gaišāka:
#defineDELTA_COLOR_UPCRGB (4, 4, 4)
// Summa, lai samazinātu krāsu par katru cilpu, kad tā kļūst blāvāka:
#defineDELTA_COLOR_DOWNCRGB (4, 4, 4)
// Katra pikseļa iespēja kļūt gaišāka.
// 1 vai 2 = daži spilgtāki pikseļi vienlaikus.
// 10 = daudz pikseļu, kas izgaismojas vienlaikus.
#defineCHANCE_OF_TWINKLE2
enum {SteadyDim, GettingBrighter, GettingDimmerAgain};
uint8_t PixelState [NUM_LEDS];
baits runMode;
baits globalBright = 150;
baits globalDelay = 20; // Aizkaves ātrums mirgošanai
baitu adrese = 35; // Adrese, kurā saglabāt darbības režīmu
voidsetup ()
{
FastLED.addLeds (gaismas diodes, NUM_LEDS);
FastLED.setCorrection (tipiskaLEDStrip);
//FastLED.setMaxPowerInVoltsAndMilliamps(5, maxMilliamps);
FastLED.setBrightness (globalBright);
// Iegūstiet izpildāmo režīmu
runMode = EEPROM.read (adrese);
// Palieliniet darbības režīmu par 1
EEPROM.write (adrese, runMode + 1);
}
voidloop ()
{
slēdzis (runMode)
{
// Vienkrāsains balts
1. gadījums: fill_solid (gaismas diodes, NUM_LEDS, CRGB:: balts);
FastLED.show ();
DelayForever ();
pārtraukums;
// Mirkšķiniet lēnām
2. gadījums: FastLED.setBrightness (255);
globalDelay = 10;
TwinkleMapPixels ();
pārtraukums;
// Ātri mirgo
3. gadījums: FastLED.setBrightness (150);
globalDelay = 2;
TwinkleMapPixels ();
pārtraukums;
// Varavīksne
4. gadījums:
RunRainbow ();
pārtraukums;
// Indekss ir ārpus diapazona, atiestatiet to uz 2 un pēc tam palaidiet 1. režīmu.
// Kad arduino restartējas, tas darbosies 2. režīmā, bet pagaidām 1. režīmā
noklusējums:
EEPROM.write (adrese, 2);
runMode = 1;
pārtraukums;
}
}
voidRunRainbow ()
{
baits *c;
uint16_t i, j;
kamēr (taisnība)
{
par (j = 0; j <256; j ++) {// 1 visu riteņa krāsu cikls
par (i = 0; i <NUM_LEDS; i ++) {
c = ritenis ((((i * 256 / NUM_LEDS) + j) & 255);
setPixel (i, *c, *(c + 1), *(c + 2));
}
FastLED.show ();
kavēšanās (globalDelay);
}
}
}
baits * ritenis (baits WheelPos) {
statiskais baits c [3];
ja (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;
}
cits {
WheelPos -= 170;
c [0] = 0;
c [1] = WheelPos * 3;
c [2] = 255 - WheelPos * 3;
}
atgriešanās c;
}
voidTwinkleMapPixels ()
{
InitPixelStates ();
kamēr (taisnība)
{
par (uint16_t i = 0; i <NUM_LEDS; i ++) {
ja (PixelState == SteadyDim) {
// šie pikseļi pašlaik ir: SteadyDim
// tāpēc mēs nejauši apsveram iespēju padarīt to gaišāku
ja (random8 () <CHANCE_OF_TWINKLE) {
PixelState = GettingBrighter;
}
}
elseif (PixelState == GettingBrighter) {
// šie pikseļi pašlaik ir: GettingBrighter
// tātad, ja tā ir visaugstākajā krāsā, pārslēdziet to uz arvien blāvāku
ja (gaismas diodes > = PEAK_COLOR) {
PixelState = GettingDimmerAgain;
}
cits {
// pretējā gadījumā turpiniet to padarīt gaišāku:
gaismas diodes += DELTA_COLOR_UP;
}
}
cits {// atkal kļūst blāvāks
// šie pikseļi pašlaik ir: GettingDimmerAgain
// Tātad, ja tā ir atgriezusies pamatkrāsā, pārslēdziet to uz vienmērīgu blāvumu
ja (gaismas diodes <= BASE_COLOR) {
gaismas diodes = BASE_COLOR; // atiestatīt uz precīzu pamatkrāsu, ja mēs pārspēsim
PixelState = StabilsDim;
}
cits {
// pretējā gadījumā turpiniet aptumšot:
gaismas diodes -= DELTA_COLOR_DOWN;
}
}
}
FastLED.show ();
FastLED.delay (globalDelay);
}
}
voidInitPixelStates ()
{
memset (PixelState, sizeof (PixelState), SteadyDim); // inicializēt visus pikseļus uz SteadyDim.
fill_solid (gaismas diodes, NUM_LEDS, BASE_COLOR);
}
voidDelayForever ()
{
kamēr (taisnība)
{
kavēšanās (100);
LowPower.powerDown (SLEEP_FOREVER, ADC_OFF, BOD_OFF);
}
}
voidshowStrip () {
FastLED.show ();
}
voidsetPixel (int Pixel, baits sarkans, baits zaļš, baits zils) {
// FastLED
gaismas diodes [Pixel].r = sarkans;
gaismas diodes [pikseļi].g = zaļa;
gaismas diodes [pikseļi].b = zils;
}

apskatīt rawFiberOptic_ClemsonPic.ino, kuru mitina GitHub ar ❤

5. solis: galaprodukts

Galaprodukts
Galaprodukts
Galaprodukts
Galaprodukts
Galaprodukts
Galaprodukts

Ta-da! Es ceru, ka šī pamācība iedvesmo kādu citu izveidot līdzīgu projektu. Tas tiešām nebija grūti izdarāms, un es biju pārsteigts, ka neviens to vēl nebija izdarījis un par to vēl nebija uzrakstījis pamatīgu pamācību.

Ieteicams: