Table des matières:

Lumières à fibre optique imprimées sur toile : 5 étapes
Lumières à fibre optique imprimées sur toile : 5 étapes

Vidéo: Lumières à fibre optique imprimées sur toile : 5 étapes

Vidéo: Lumières à fibre optique imprimées sur toile : 5 étapes
Vidéo: TUTO DIY : Fibre optique + Soleil 2024, Juillet
Anonim
Image
Image
Lumières à fibre optique en impression sur toile
Lumières à fibre optique en impression sur toile

Ce projet ajoute une touche unique à une impression sur toile standard. J'ai programmé dans 4 modes d'éclairage différents mais vous pouvez facilement en ajouter d'autres. Le mode est modifié chaque fois que vous l'éteignez et le rallumez au lieu d'avoir un bouton séparé pour minimiser les dommages au cadre. Les piles devraient durer plus de 50 heures d'utilisation - je ne suis pas vraiment sûr, mais j'ai fait un projet similaire pour un ami et il a utilisé 5 fois plus de lumières et a duré plus de 20 heures avec un seul jeu de piles.

Matériaux

  • Impression sur toile avec espace de travail - J'ai commandé le mien sur https://www.easycanvasprints.com car ils avaient de bons prix et un dos ouvert. Le cadre plus épais de 1,5" était parfait et m'a donné beaucoup d'espace pour plier les brins de fibre optique. De plus, vous voulez une image qui vous donne 3" par 8" d'espace de travail pour la batterie, le microcontrôleur et les bandes LED
  • Bandes lumineuses LED - J'ai utilisé des bandes LED adressables WS2812. Ne vous laissez pas intimider, ils sont vraiment faciles à utiliser avec les librairies FastLED ou Neopixel ! Vous pouvez également utiliser n'importe quelle bande LED standard, vous ne pourrez tout simplement pas contrôler chaque section d'éclairage individuellement sans beaucoup plus de câblage.
  • Microcontrôleur - J'ai utilisé un Arduino Uno mais vous pouvez utiliser à peu près n'importe quoi pour ce projet.
  • Batterie - J'ai commandé celle-ci sur eBay (de Chine) et elle s'intitulait "Support de batterie 6 x 1.5V AA 2A CELL"
  • Brins de fibre optique - encore une fois, commandés en Chine sur eBay - "L'extrémité du câble à fibre optique en plastique PMMA fait pousser la lumière LED DIY Decor" ou "Câble à fibre optique PMMA End Glow pour kit de plafonnier Star". J'ai utilisé des tailles 1 mm et 1,5 mm, je recommande en fait d'utiliser des tailles plus petites que cela.
  • Interrupteur marche/arrêt - "Interrupteurs à bascule miniatures marche/arrêt SPDT à 2 positions"
  • Clips d'organisation des fils - Ceux-ci aident à garder les brins de fibre optique bien rangés.
  • Panneau en mousse, fil de connexion à âme solide, tube thermorétractable

Outils

  • Dremel - utilisé pour imbriquer l'interrupteur marche/arrêt dans le cadre photo. Cela pourrait peut-être être accompli avec une perceuse et un très gros morceau, mais je ne le recommande pas.
  • Fer à souder - attacher les fils à la bande LED
  • Pistolet à colle chaude - littéralement à chaque étape de ce projet
  • Grande aiguille à coudre - pour percer des trous dans la toile et panneau en mousse pour les lumières

Étape 1: panneau en mousse, bloc-piles et interrupteur marche/arrêt

Panneau en mousse, bloc-piles et interrupteur marche/arrêt
Panneau en mousse, bloc-piles et interrupteur marche/arrêt
Panneau en mousse, bloc-piles et interrupteur marche/arrêt
Panneau en mousse, bloc-piles et interrupteur marche/arrêt

Avant toute chose, vous devez attacher un morceau de carton mousse au dos de l'impression sur toile. Cela nous donne une belle surface solide pour attacher tout le reste et aide à maintenir les brins de fibre optique en place. Utilisez simplement un couteau exacto ou un cutter pour couper un morceau de carton mousse à la bonne taille et collez-le à chaud à de nombreux endroits. Je recommande d'utiliser un panneau de mousse noir afin qu'il ne laisse pas passer autant de lumière.

J'ai utilisé le foret dremel qui ressemble à un foret normal mais qui est en fait idéal pour enlever de la matière. C'est l'un des éléments qui devraient accompagner n'importe quel dremel. Utilisez une bombe d'air comprimé pour éliminer toute sciure du dremel.

Collez à chaud tout en place. Assurez-vous que la batterie est très bien fixée car elle nécessite un peu de force pour insérer/retirer une batterie et vous ne voulez pas que le support de batterie aille n'importe où.

Étape 2: Microcontrôleur et circuit

Microcontrôleur et Circuit
Microcontrôleur et Circuit
Microcontrôleur et Circuit
Microcontrôleur et Circuit
Microcontrôleur et Circuit
Microcontrôleur et Circuit

J'ai placé l'interrupteur d'alimentation avant l'Arduino UNO de sorte que lorsque vous basculez l'interrupteur, rien n'utilise l'alimentation des batteries. Cela devrait aider les batteries à durer le plus longtemps possible lorsque le projet n'est pas allumé. Les cartes Arduino sont notoirement mauvaises pour la gestion de l'alimentation - elles utilisent beaucoup de courant si elles sont allumées même si elles ne font rien activement.

Branchez l'extrémité positive de la batterie dans le VIN (entrée de tension) du microcontrôleur afin qu'il utilise le régulateur de tension intégré du contrôleur pour abaisser la tension à 5 V dont il a besoin. Si nous alimentions plus de lumières, nous aurions peut-être besoin d'utiliser notre propre régulateur de tension pour elles, mais l'UNO devrait être capable de gérer 5 LED.

J'ai utilisé une résistance entre la sortie de données et la bande LED pour lisser le signal - sans la résistance, vous pourriez obtenir un clignotement aléatoire des pixels. La taille de la résistance n'a pas vraiment d'importance, tout ce qui se situe entre 50Ω et 400Ω devrait fonctionner.

Étape 3: Lumières à fibre optique

Image
Image
Lumières à fibre optique
Lumières à fibre optique
Lumières à fibre optique
Lumières à fibre optique

Après quelques essais et erreurs, j'ai finalement trouvé un bon moyen de faire passer les brins de fibre optique à travers la toile.

  1. Utilisez la plus grosse aiguille à coudre dont vous disposez pour percer un trou à travers le devant de la toile et du carton mousse. Je recommande de percer chaque trou que vous voulez au tout début afin que vous puissiez le retourner et voir où vous pouvez/ne pouvez pas mettre vos clips d'organisation de câbles
  2. Prenez une pince à bec effilé et saisissez le brin de fibre optique à moins d'un centimètre de l'extrémité
  3. Piquez le brin de fibre optique à travers le trou que vous avez fait avec une aiguille
  4. Faites passer le brin à travers divers clips en plastique jusqu'à l'endroit où il est légèrement plus long que nécessaire - nous le couperons plus tard
  5. Avec votre pistolet à colle chaude sur le réglage de température BASSE (s'il a cette option), mettez une goutte de colle chaude sur le brin de fibre optique où elle pénètre à travers le panneau de mousse. Alternativement, vous pouvez utiliser ce truc bleu collant. La colle chaude déforme un peu le brin mais ne semble pas trop gâcher les qualités optiques
  6. Coupez le brin un peu à l'écart de la toile à l'aide d'une pince coupante.

Pour accélérer le processus, vous pouvez percer plusieurs fibres d'affilée avant de faire la colle chaude. Ils devraient généralement rester en place par vous-même.

Faites attention à ne pas casser ou écraser les brins de fibre optique sur la table - ils vont se casser et si cela rend le brin trop court, vous serez triste et devrez le refaire. Utilisez la batterie comme contrepoids afin que vous puissiez avoir le cadre photo moins de la moitié sur le bureau.

Parce que j'ai utilisé du carton mousse blanc au lieu du noir, il y avait beaucoup de lumière qui brillait lorsque les LED étaient allumées. Comme solution, j'ai collé du papier d'aluminium entre les lumières et la toile.

Utilisez un tube thermorétractable pour maintenir ensemble chaque faisceau de brins de fibre optique.

  1. Couper les brins du faisceau à environ la même longueur
  2. Passer la section à travers une gaine thermorétractable
  3. Utilisez un pistolet thermique ou un fer à souder pour le rétrécir. Si vous utilisez un fer à souder, laissez simplement le côté du fer toucher légèrement le tube et il rétrécira. Il ne doit pas faire fondre le tube car il est conçu pour un peu de chaleur.

Finalement, j'ai utilisé de la colle chaude pour fixer l'extrémité du paquet à chaque lumière LED. J'ai utilisé beaucoup de colle chaude pour que les fibres reçoivent réellement de la lumière de chaque diode rouge/vert/bleu dans la lumière - lorsque les fibres sont vraiment proches de la lumière, une couleur "blanche" (qui est en fait rouge, verte et bleue) alors certaines fibres seront simplement rouges et certaines seront vertes, au lieu d'être toutes blanches. Cela pourrait être amélioré en utilisant un morceau de papier ou autre chose pour le diffuser, mais la colle chaude a assez bien fonctionné pour moi.

Étape 4: Programmation

Dans la programmation, j'ai utilisé trois bibliothèques

FastLED - une excellente bibliothèque pour contrôler les bandes LED WS2812 (et de nombreuses autres bandes LED adressables) -

Arduino Low Power - Je ne sais pas combien d'énergie cela économise réellement, mais c'était très facile à mettre en œuvre et devrait aider à économiser un tout petit peu d'énergie sur la fonction qui n'est que des lumières blanches puis un retard pour toujours.

EEPROM - Utilisé pour lire/stocker le mode actuel du projet. Cela permet au projet d'incrémenter le mode couleur à chaque fois que vous l'éteignez et le rallumez, ce qui élimine le besoin d'un bouton séparé pour changer le mode. La bibliothèque EEPROM est installée chaque fois que vous installez l'IDE Arduino.

J'ai également utilisé un croquis pour faire scintiller les lumières que quelqu'un d'autre a installées. Il éclaire aléatoirement un pixel d'une couleur de base à une couleur de pointe, puis redescend. https://gist.github.com/kriegsman/88954aae22b03a66… (il utilise également la bibliothèque FastLED)

J'ai également utilisé le plugin vMicro pour Visual Studio - il s'agit d'une version amplifiée de l'IDE Arduino. Il a une tonne de fonctions de saisie semi-automatique utiles et met en évidence les problèmes dans votre code sans avoir à le compiler. Cela coûte 15 $ mais cela en vaut la peine si vous envisagez de créer plus d'un projet Arduino, et cela vous obligera à vous familiariser avec Visual Studio qui est un programme super puissant.

(Je joins également le fichier de code.ino car l'hébergement Instructable d'un Github Gist détruit beaucoup d'espaces vides dans le fichier)

Le code Arduino exécutant 4 modes de couleur sur un Arduino UNO pour certaines bandes lumineuses LED WS2812B utilisant la bibliothèque FastLED

#comprendre
#comprendre
#comprendre
//Configuration FastLED
#defineNUM_LEDS4
#definePIN3//Broche de données pour bande LED
LED CRGB[NUM_LEDS];
//Configuration de scintillement
#defineBASE_COLORCRGB(2, 2, 2) //Couleur d'arrière-plan de base
#definePEAK_COLORCRGB(255, 255, 255) //Couleur de pointe pour scintiller jusqu'à
// Quantité pour incrémenter la couleur de chaque boucle à mesure qu'elle devient plus lumineuse:
#defineDELTA_COLOR_UPCRGB(4, 4, 4)
// Quantité pour décrémenter la couleur de chaque boucle au fur et à mesure qu'elle devient plus faible:
#defineDELTA_COLOR_DOWNCRGB(4, 4, 4)
// Chance que chaque pixel commence à s'éclaircir.
// 1 ou 2 = quelques pixels éclaircissants à la fois.
// 10 = beaucoup de pixels éclaircissant à la fois.
#defineCHANCE_OF_TWINKLE2
enum { SteadyDim, GettingBrighter, GettingDimmerAgain };
uint8_t PixelState[NUM_LEDS];
octet runMode;
octet globalBright = 150;
octet globalDelay = 20; //Vitesse de retard pour le scintillement
adresse d'octet = 35; //Adresse pour stocker le mode d'exécution
void setup()
{
FastLED.addLeds(leds, NUM_LEDS);
FastLED.setCorrection(TypicalLEDStrip);
//FastLED.setMaxPowerInVoltsAndMilliamps(5, maxMilliamps);
FastLED.setBrightness(globalBright);
//Obtenir le mode à exécuter
runMode = EEPROM.read(adresse);
//Incrémente le runmode de 1
EEPROM.write(adresse, runMode + 1);
}
boucle vide()
{
commutateur (runMode)
{
//Blanc uni
case1: fill_solid(leds, NUM_LEDS, CRGB::White);
FastLED.show();
DelayForever();
Pause;
// scintille un peu lentement
case2: FastLED.setBrightness(255);
globalDelay = 10;
TwinkleMapPixels();
Pause;
// scintille rapidement
case 3: FastLED.setBrightness(150);
globalDelay = 2;
TwinkleMapPixels();
Pause;
//Arc-en-ciel
cas4:
ExécuterRainbow();
Pause;
//Index hors limites, réinitialisez-le à 2, puis exécutez le mode 1.
//Lorsque l'arduino redémarre, il exécute le mode 2, mais pour l'instant, exécute le mode 1
défaut:
EEPROM.write(adresse, 2);
mode d'exécution = 1;
Pause;
}
}
voidRunRainbow()
{
octet *c;
uint16_t i, j;
tandis que (vrai)
{
for (j = 0; j < 256; j++) { // 1 cycle de toutes les couleurs sur la roue
pour (i = 0; i < NUM_LEDS; i++) {
c = Roue(((i * 256 / NUM_LEDS) + j) & 255);
setPixel(i, *c, *(c + 1), *(c + 2));
}
FastLED.show();
delay(globalDelay);
}
}
}
octet * Wheel(byte WheelPos) {
octet statique c[3];
si (PosRoue < 85) {
c[0] = WheelPos * 3;
c[1] = 255 - WheelPos * 3;
c[2] = 0;
}
elseif (PosRoue < 170) {
RouePos -= 85;
c[0] = 255 - WheelPos * 3;
c[1] = 0;
c[2] = WheelPos * 3;
}
autre {
RouePos -= 170;
c[0] = 0;
c[1] = WheelPos * 3;
c[2] = 255 - WheelPos * 3;
}
retour c;
}
voidTwinkleMapPixels()
{
InitPixelStates();
tandis que (vrai)
{
pour (uint16_t i = 0; i < NUM_LEDS; i++) {
if (PixelState == SteadyDim) {
// ce pixel est actuellement: SteadyDim
// donc nous envisageons au hasard de le faire commencer à devenir plus lumineux
if (random8() < CHANCE_OF_TWINKLE) {
PixelState = GettingBrighter;
}
}
elseif (PixelState == GettingBrighter) {
// ce pixel est actuellement: GettingBrighter
// donc si c'est à la couleur de pointe, changez-le pour obtenir à nouveau un gradateur
si (leds >= PEAK_COLOR) {
PixelState = GettingDimmerAgain;
}
autre {
// sinon, continuez de l'éclaircir:
leds += DELTA_COLOR_UP;
}
}
else { // s'assombrir à nouveau
// ce pixel est actuellement: GettingDimmerAgain
// donc si c'est de retour à la couleur de base, changez-le en sombre constant
si (leds <= BASE_COLOR) {
leds = BASE_COLOR; // réinitialiser la couleur de base exacte, au cas où nous dépasserions
PixelState = SteadyDim;
}
autre {
// sinon, continuez simplement à le réduire:
leds -= DELTA_COLOR_DOWN;
}
}
}
FastLED.show();
FastLED.delay(globalDelay);
}
}
voidInitPixelStates()
{
memset(PixelState, sizeof(PixelState), SteadyDim); // initialise tous les pixels à SteadyDim.
fill_solid(leds, NUM_LEDS, BASE_COLOR);
}
voidDelayForever()
{
tandis que (vrai)
{
retard (100);
LowPower.powerDown(SLEEP_FOREVER, ADC_OFF, BOD_OFF);
}
}
voidshowStrip() {
FastLED.show();
}
voidsetPixel(int Pixel, octet rouge, octet vert, octet bleu) {
// FastLED
leds[Pixel].r = rouge;
leds[Pixel].g = vert;
leds[Pixel].b = bleu;
}

voir rawFiberOptic_ClemsonPic.ino hébergé avec ❤ par GitHub

Étape 5: Produit final

Produit final
Produit final
Produit final
Produit final
Produit final
Produit final

Ta-da ! J'espère que ce Instructable inspire quelqu'un d'autre à faire leur propre projet similaire. Ce n'était vraiment pas difficile à faire et j'ai été surpris que personne ne l'ait fait et n'ait encore écrit un instructable complet à ce sujet.

Conseillé: