Taula de continguts:

Llums de fibra òptica en tela: 5 passos
Llums de fibra òptica en tela: 5 passos

Vídeo: Llums de fibra òptica en tela: 5 passos

Vídeo: Llums de fibra òptica en tela: 5 passos
Vídeo: 5 Ferramentas de Visal Law 2024, De novembre
Anonim
Image
Image
Llums de fibra òptica amb llenços
Llums de fibra òptica amb llenços

Aquest projecte afegeix un gir únic sobre una impressió de tela estàndard. He programat en 4 modes d’il·luminació diferents, però podeu afegir-ne més fàcilment. El mode es canvia cada vegada que l’apagueu i el torneu a activar en lloc de tenir un botó separat per minimitzar el dany al quadre. Les bateries haurien de durar més de 50 hores d’ús; no estic segur, però vaig fer un projecte similar per a un amic, que feia servir cinc vegades més llums i ha durat més de 20 hores en un sol conjunt de bateries.

Materials

  • Impressió de llenços amb espai viable: he demanat el meu a https://www.easycanvasprints.com perquè tenien bons preus i una esquena oberta. El marc de 1,5 "més gruixut era perfecte i em donava molt d'espai per doblegar els fils de fibra òptica. A més, voleu una imatge que us doni 3" per 8 "d'espai viable per a la bateria, el microcontrolador i les tires LED
  • Llums de tires LED: he utilitzat tires LED WS2812 adreçables. No us deixeu intimidar, són molt fàcils d’utilitzar amb les biblioteques FastLED o Neopixel. També podeu utilitzar qualsevol tira LED estàndard, ja que no podreu controlar cada secció de llum individualment sense molt més cablejat.
  • Microcontrolador: he utilitzat un Arduino Uno, però es pot utilitzar gairebé qualsevol cosa per a aquest projecte.
  • Paquet de bateries: el vaig demanar a eBay (de la Xina) i es titulava "Suport de bateries de bateria de 6 x 1,5 V AA 2A CELL"
  • Cadenes de fibra òptica (una vegada més, encarregades a la Xina a eBay): "Cable de fibra òptica de plàstic PMMA, decoració de bricolatge amb llum LED" o "Kit de cable de fibra òptica PMMA End Glow per a llum de sostre estrella". He utilitzat mides d’1 mm i 1,5 mm, en realitat recomano utilitzar-ne més petites.
  • Interruptor d'encès / apagat - "Interruptors alternadors en miniatura SPDT On / On 2 posicions"
  • Clips d'organització de cables: ajuden a mantenir els fils de fibra òptica agradables i ordenats.
  • Tauler d'escuma, filferro de connector de nucli sòlid, tubs termoretràctils

Eines

  • Dremel: s’utilitza per posar l’interruptor d’encès / apagat al marc de la imatge. Potser això es podria aconseguir amb un trepant i una mica molt gran, però no ho recomano.
  • Soldador: fixació de cables a la tira LED
  • Pistola de cola calenta: literalment, cada pas d’aquest projecte
  • Agulla de cosir gran: per obrir forats a través del llenç i un tauler d'escuma per als llums

Pas 1: placa d'escuma, bateria i interruptor d'encès / apagat

Tauler d'escuma, bateria i interruptor d'encès / apagat
Tauler d'escuma, bateria i interruptor d'encès / apagat
Tauler d'escuma, bateria i interruptor d'encès / apagat
Tauler d'escuma, bateria i interruptor d'encès / apagat

Abans de qualsevol altra cosa, heu d’adjuntar un tros de tauler d’escuma a la part posterior de la tela. Això ens proporciona una superfície sòlida agradable per fixar tota la resta i ajuda a mantenir els fils de fibra òptica al seu lloc. Només cal que utilitzeu un ganivet o un tallador de caixes exacto per tallar un tros de tauler d’escuma de la mida adequada i enganxar-lo en calent a molts llocs. Recomano utilitzar taulers d'escuma negre perquè no permeti que sàpiga tanta llum.

He utilitzat la broca dremel que sembla una broca normal, però en realitat és ideal per treure material. És un dels bits que hauria de venir amb qualsevol dremel. Utilitzeu una llauna d’aire comprimit per desfer-vos de les serradures del dremel.

Pega calenta tot al seu lloc. Assegureu-vos que el paquet de bateries estigui ben connectat perquè requereix una bona força per inserir / treure una bateria i no voleu que el suport de la bateria vagi enlloc.

Pas 2: Microcontrolador i circuit

Microcontrolador i circuit
Microcontrolador i circuit
Microcontrolador i circuit
Microcontrolador i circuit
Microcontrolador i circuit
Microcontrolador i circuit

Vaig posar l’interruptor d’alimentació davant l’Arduino UNO de manera que quan canvieu l’interruptor, res no fa servir l’alimentació de les bateries. Això hauria d’ajudar les bateries a durar el màxim possible quan el projecte no estigui engegat. Les plaques Arduino són notòriament dolentes en la gestió d’energia: utilitzen molta intensitat si estan activades encara que no facin res activament.

Connecteu l'extrem positiu del paquet de bateries al VIN (entrada de tensió) del microcontrolador de manera que utilitzi el regulador de voltatge integrat del controlador per reduir el voltatge fins als 5V que necessita. Si alimentéssim més llums, potser hauríem d’utilitzar el nostre propi regulador de voltatge, però l’ONU hauria de poder manejar 5 LED.

He utilitzat una resistència entre la sortida de dades i la tira LED per suavitzar el senyal, sense la resistència es pot obtenir un parpelleig aleatori de píxels. La mida de la resistència realment no importa, qualsevol cosa entre 50Ω i 400Ω hauria de funcionar.

Pas 3: llums de fibra òptica

Image
Image
Llums de fibra òptica
Llums de fibra òptica
Llums de fibra òptica
Llums de fibra òptica

Després d'algunes proves i errors, finalment vaig trobar una bona manera de fer passar els fils de fibra òptica a través del llenç.

  1. Utilitzeu l’agulla de cosir més gran que tingueu per obrir un forat a la part frontal del llenç i del tauler d’escuma. Us recomano ficar tots els forats que vulgueu des del principi perquè pugueu capgirar-lo i veure on podeu o no posar els clips d'organització del cable
  2. Agafeu un parell d’alicates de nas d’agulla i agafeu la cadena de fibra òptica a menys d’un centímetre de l’extrem
  3. Introduïu el fil de fibra òptica pel forat que heu fet amb una agulla
  4. Encaminar el fil a través de diversos clips de plàstic fins on sigui una mica més llarg del necessari; el tallarem més endavant
  5. Amb la pistola de cola calenta en el paràmetre de BAIXA temperatura (si té aquesta opció), poseu una gota de cola calenta a la cadena de fibra òptica per on es cola a través del tauler d’escuma. Alternativament, podríeu utilitzar aquestes coses de color blau. La cola calenta deforma una mica el fil, però no sembla que s’emboliqui massa amb les qualitats òptiques
  6. Talleu una mica el fil de la tela amb talladors de filferro.

Per accelerar el procés, podeu ficar moltes fibres seguides abans de fer la cola calenta. En general, haurien de romandre al lloc sols.

Aneu amb compte de no trencar ni aixafar els fils de fibra òptica que hi ha a la taula: es trencaran i, si fa que el fil sigui massa curt, estareu tristos i haureu de refer-lo. Utilitzeu el paquet de bateries com a contrapès perquè pugueu tenir el marc de la imatge a menys de la meitat a l’escriptori.

Com que feia servir taulers d'escuma blanca en lloc de negre, hi havia molta llum que brillava quan els LED estaven engegats. Com a solució, vaig gravar un paper d'alumini entre els llums i el llenç.

Utilitzeu tubs termoretràctils per mantenir junts cada paquet de fils de fibra òptica.

  1. Talleu els fils del paquet aproximadament de la mateixa longitud
  2. Col·loqueu la secció a través dels tubs termorretractables
  3. Utilitzeu una pistola de calor o soldador per reduir-la. Si utilitzeu un soldador, deixeu que el costat del ferro toqui lleugerament el tub i es reduirà. No ha de fondre el tub perquè està dissenyat per a una mica de calor.

Finalment, vaig utilitzar cola calenta per fixar l'extrem del paquet a cada llum LED. Vaig utilitzar molta cola calenta perquè les fibres rebessin llum de cada díode vermell / verd / blau de la llum, quan les fibres estan molt a prop de la llum i tenen un color "blanc" (que en realitat és vermell i verd i blau) llavors algunes fibres només seran vermelles i altres seran verdes, en lloc de ser blanques. Això es podria millorar utilitzant un tros de paper o una altra cosa per difondre-ho, però la cola calenta em va funcionar prou bé.

Pas 4: Programació

En la programació d’això he utilitzat tres biblioteques

FastLED: una gran biblioteca per controlar tires LED WS2812 (i moltes altres tires LED dirigibles) -

Arduino Low Power: no sé quanta energia estalvia en realitat, però va ser molt fàcil d’implementar i hauria d’ajudar a estalviar una mica de potència en la funció que són només llums blanques i que es retarden per sempre.

EEPROM: s’utilitza per llegir / emmagatzemar el mode actual del projecte. Això permet al projecte incrementar el mode de color cada vegada que l’apagueu i el torneu a activar, cosa que elimina la necessitat d’un botó separat per canviar el mode. La biblioteca EEPROM s’instal·la sempre que instal·leu l’Arduino IDE.

També vaig fer servir un esbós per parpellejar els llums que algú va instal·lar. Il·lumina a l’atzar un píxel d’un color base a un color màxim i després torna cap avall. https://gist.github.com/kriegsman/88954aae22b03a66… (també utilitza la biblioteca FastLED)

També he utilitzat el connector vMicro per a Visual Studio: es tracta d’una versió ampliada de l’IDE Arduino. Té un munt de funcions útils d’autocompletar i ressalta problemes al vostre codi sense haver de compilar-lo. Costa 15 dòlars, però val la pena si feu més d’un projecte Arduino i us obligarà a conèixer Visual Studio, que és un programa súper potent.

(També adjunto el fitxer de codi.ino perquè l'allotjament instructiu d'un Github Gist destrueix molts espais en blanc del fitxer)

El codi Arduino que executa 4 modes de color en un Arduino UNO per a algunes llums de tires LED WS2812B mitjançant la biblioteca FastLED

#incloure
#incloure
#incloure
// Configuració FastLED
# defineNUM_LEDS4
# definePIN3 // Pin de dades per a tira LED
Leds CRGB [NUM_LEDS];
// Configuració de Twinkle
#defineBASE_COLORCRGB (2, 2, 2) // Color de fons base
#definePEAK_COLORCRGB (255, 255, 255) // Color màxim fins a parpellejar
// Quantitat per incrementar el color per cada bucle a mesura que es fa més brillant:
#defineDELTA_COLOR_UPCRGB (4, 4, 4)
// Quantitat per disminuir el color de cada bucle a mesura que es fa més feble:
#defineDELTA_COLOR_DOWNCRGB (4, 4, 4)
// La possibilitat que cada píxel comenci a brillar.
// 1 o 2 = alguns píxels més brillants alhora.
// 10 = molts píxels brillant alhora.
# defineCHANCE_OF_TWINKLE2
enum {SteadyDim, GettingBrighter, GettingDimmerAgain};
uint8_t PixelState [NUM_LEDS];
byte runMode;
byte globalBright = 150;
byte globalDelay = 20; // Retardar la velocitat de centelleig
adreça de byte = 35; // Adreça per emmagatzemar el mode d'execució
voidsetup ()
{
FastLED.addLeds (leds, NUM_LEDS);
FastLED.setCorrection (TipicLEDStrip);
//FastLED.setMaxPowerInVoltsAndMilliamps(5, maxMilliamps);
FastLED.setBrightness (globalBright);
// Feu funcionar el mode
runMode = EEPROM.read (adreça);
// Incrementeu el mode d'execució en 1
EEPROM.write (adreça, runMode + 1);
}
voidloop ()
{
commutador (runMode)
{
// Blanc sòlid
cas1: fill_solid (leds, NUM_LEDS, CRGB:: blanc);
FastLED.show ();
DelayForever ();
trencar;
// Brilla una mica lentament
cas2: FastLED.setBrightness (255);
retard global = 10;
TwinkleMapPixels ();
trencar;
// Parpelleja ràpidament
cas 3: FastLED.setBrightness (150);
retard global = 2;
TwinkleMapPixels ();
trencar;
// Arc de Sant Martí
cas 4:
RunRainbow ();
trencar;
// Índex fora de l'abast, restableix-lo a 2 i, a continuació, executa el mode 1.
// Quan es reiniciï l'arduino, s'executarà el mode 2, però de moment s'executa el mode 1
per defecte:
EEPROM.write (adreça, 2);
runMode = 1;
trencar;
}
}
voidRunRainbow ()
{
byte * c;
uint16_t i, j;
mentre que (cert)
{
for (j = 0; j <256; j ++) {// 1 cicle de tots els colors de la roda
per a (i = 0; i <NUM_LEDS; i ++) {
c = Roda (((i * 256 / NUM_LEDS) + j) & 255);
setPixel (i, * c, * (c + 1), * (c + 2));
}
FastLED.show ();
endarreriment (retard global);
}
}
}
byte * Wheel (byte WheelPos) {
byte estàtic c [3];
if (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;
}
més {
WheelPos - = 170;
c [0] = 0;
c [1] = WheelPos * 3;
c [2] = 255 - WheelPos * 3;
}
retorn c;
}
voidTwinkleMapPixels ()
{
InitPixelStates ();
mentre que (cert)
{
per a (uint16_t i = 0; i <NUM_LEDS; i ++) {
if (PixelState == SteadyDim) {
// actualment aquest píxel és: SteadyDim
// per tant, considerem a l’atzar que comenci a ser més brillant
if (random8 () <CHANCE_OF_TWINKLE) {
PixelState = GettingBrighter;
}
}
elseif (PixelState == GettingBrighter) {
// actualment aquest píxel és: GettingBrighter
// per tant, si té un color màxim, canvieu-lo per tornar a ser més atenuat
if (leds > = PEAK_COLOR) {
PixelState = GettingDimmerAgain;
}
més {
// en cas contrari, seguiu il·luminant-lo:
leds + = DELTA_COLOR_UP;
}
}
else {// tornar-se a enfosquir
// actualment aquest píxel és: GettingDimmerAgain
// Per tant, si torna al color base, canvieu-lo a una tonalitat estable
if (leds <= BASE_COLOR) {
leds = BASE_COLOR; // restableix al color base exacte, en cas que superem
PixelState = SteadyDim;
}
més {
// en cas contrari, continueu reduint-lo:
leds - = DELTA_COLOR_DOWN;
}
}
}
FastLED.show ();
FastLED.delay (globalDelay);
}
}
voidInitPixelStates ()
{
memset (PixelState, sizeof (PixelState), SteadyDim); // inicialitza tots els píxels a SteadyDim.
fill_solid (leds, NUM_LEDS, BASE_COLOR);
}
voidDelayForever ()
{
mentre que (cert)
{
retard (100);
LowPower.powerDown (SLEEP_FOREVER, ADC_OFF, BOD_OFF);
}
}
voidshowStrip () {
FastLED.show ();
}
voidsetPixel (int Pixel, byte vermell, byte verd, byte blau) {
// FastLED
leds [Pixel].r = vermell;
leds [Pixel].g = verd;
leds [Pixel].b = blau;
}

visualitza rawFiberOptic_ClemsonPic.ino allotjat amb ❤ per GitHub

Pas 5: producte final

Producte final
Producte final
Producte final
Producte final
Producte final
Producte final

Ta-da! Espero que aquest instructiu inspiri a algú altre a fer el seu propi projecte similar. Realment no va ser difícil de fer i em va sorprendre que ningú ho hagués fet i hagués escrit un detallable documentació al respecte encara.

Recomanat: