Inhaltsverzeichnis:

Faseroptische Lichter im Leinwanddruck - Gunook
Faseroptische Lichter im Leinwanddruck - Gunook

Video: Faseroptische Lichter im Leinwanddruck - Gunook

Video: Faseroptische Lichter im Leinwanddruck - Gunook
Video: Die 12 Coolsten Gadgets, die den Kauf wert sind 2024, Juli
Anonim
Image
Image
Faseroptische Lichter im Leinwanddruck
Faseroptische Lichter im Leinwanddruck

Dieses Projekt verleiht einem Standard-Leinwanddruck eine einzigartige Note. Ich habe in 4 verschiedenen Beleuchtungsmodi programmiert, aber Sie könnten leicht weitere hinzufügen. Der Modus wird jedes Mal geändert, wenn Sie ihn aus- und wieder einschalten, anstatt eine separate Taste zu verwenden, um Schäden am Rahmen zu minimieren. Die Batterien sollten für mehr als 50 Betriebsstunden halten - ich bin mir nicht wirklich sicher, aber ich habe ein ähnliches Projekt für einen Freund gemacht und es hat 5x so viele Lichter verwendet und mehr als 20 Stunden mit einem einzigen Satz Batterien gehalten.

Materialien

  • Leinwanddruck mit bearbeitbarem Platz - Ich habe meinen bei https://www.easycanvasprints.com bestellt, weil sie gute Preise und eine offene Rückseite hatten. Der dickere 1,5"-Rahmen war perfekt und gab mir viel Platz, um die Glasfaserstränge zu biegen. Außerdem möchten Sie ein Bild, das 3" x 8" Platz für den Akku und den Mikrocontroller und die LED-Streifen bietet
  • LED-Streifen - Ich habe adressierbare WS2812-LED-Streifen verwendet. Lassen Sie sich nicht einschüchtern, sie sind mit den FastLED- oder Neopixel-Bibliotheken wirklich einfach zu verwenden! Sie können auch jeden Standard-LED-Streifen verwenden, Sie werden nur nicht jeden Lichtabschnitt einzeln ohne viel mehr Verkabelung ansteuern können.
  • Mikrocontroller - Ich habe einen Arduino Uno verwendet, aber Sie können für dieses Projekt fast alles verwenden.
  • Batteriepack - Ich habe dieses bei eBay (aus China) bestellt und es trug den Titel "6 x 1,5 V AA 2A CELL Battery Batteries Holder"
  • Glasfaserstränge - wieder einmal aus China bei eBay bestellt - "PMMA Plastic Fiber Optic Cable End Grow Led Light DIY Decor" oder "PMMA End Glow Fiber Optic Cable for Star Ceiling Light Kit". Ich habe die Größen 1 mm und 1,5 mm verwendet, ich empfehle tatsächlich, kleinere zu verwenden.
  • Ein/Aus-Schalter - "SPDT On/On 2-Position Miniatur-Kippschalter"
  • Drahtorganisationsclips - Diese helfen, die Glasfaserstränge schön und ordentlich zu halten.
  • Schaumstoffplatte, Vollkern-Anschlussdraht, Schrumpfschlauch

Werkzeuge

  • Dremel - wird verwendet, um den Ein-/Ausschalter im Bilderrahmen zu verschachteln. Dies könnte vielleicht mit einem Bohrer und einem wirklich großen Bit erreicht werden, aber ich empfehle das nicht.
  • Lötkolben - Anbringen von Drähten am LED-Streifen
  • Heißklebepistole - buchstäblich jeder Schritt dieses Projekts
  • Große Nähnadel - zum Stechen von Löchern durch die Leinwand und Schaumstoffplatte für die Lichter

Schritt 1: Schaumstoffplatte, Akku und Ein-/Ausschalter

Schaumstoffplatte, Akkupack und Ein-/Ausschalter
Schaumstoffplatte, Akkupack und Ein-/Ausschalter
Schaumstoffplatte, Akkupack und Ein-/Ausschalter
Schaumstoffplatte, Akkupack und Ein-/Ausschalter

Zuallererst müssen Sie ein Stück Schaumstoffplatte auf der Rückseite des Leinwanddrucks anbringen. Dies gibt uns eine schöne feste Oberfläche, an der wir alles andere befestigen können, und hilft, die Glasfaserstränge an Ort und Stelle zu halten. Verwenden Sie einfach ein exaktes Messer oder einen Kartonschneider, um ein Stück Schaumstoffplatte auf die richtige Größe zu schneiden und an vielen Stellen heiß zu kleben. Ich empfehle die Verwendung einer schwarzen Schaumstoffplatte, damit nicht so viel Licht durchscheint.

Ich habe den Dremel-Bit verwendet, der wie ein normaler Bohrer aussieht, aber eigentlich großartig zum Entfernen von Material ist. Es ist eines der Bits, die mit jedem Dremel geliefert werden sollten. Verwenden Sie eine Dose Druckluft, um Sägemehl aus dem Dremel zu entfernen.

Heißkleber alles an Ort und Stelle. Stellen Sie sicher, dass der Akku sehr gut befestigt ist, da das Einsetzen / Entfernen eines Akkus ein wenig Kraft erfordert und Sie nicht möchten, dass der Akkuhalter irgendwo hingeht.

Schritt 2: Mikrocontroller und Schaltung

Mikrocontroller und Schaltung
Mikrocontroller und Schaltung
Mikrocontroller und Schaltung
Mikrocontroller und Schaltung
Mikrocontroller und Schaltung
Mikrocontroller und Schaltung

Ich stelle den Netzschalter vor den Arduino UNO, damit beim Umschalten des Schalters nichts von den Akkus mit Strom versorgt wird. Dies sollte dazu beitragen, dass die Batterien so lange wie möglich halten, wenn das Projekt nicht eingeschaltet ist. Arduino-Boards sind notorisch schlecht bei der Energieverwaltung - sie verbrauchen viel Strom, wenn sie eingeschaltet sind, auch wenn sie nichts aktiv tun.

Stecken Sie das positive Ende des Akkus in VIN (Spannungseingang) des Mikrocontrollers, so dass er den eingebauten Spannungsregler des Controllers verwendet, um die Spannung auf die benötigten 5 V zu senken. Wenn wir mehr Lichter mit Strom versorgen würden, müssen wir möglicherweise unseren eigenen Spannungsregler für sie verwenden, aber die UNO sollte in der Lage sein, 5 LEDs zu handhaben.

Ich habe einen Widerstand zwischen dem Datenausgang und dem LED-Streifen verwendet, um das Signal zu glätten - ohne den Widerstand könnte es zu einem zufälligen Blinken von Pixeln kommen. Die Größe des Widerstands spielt keine Rolle, alles zwischen 50 und 400 sollte funktionieren.

Schritt 3: Faseroptische Lichter

Image
Image
Faseroptische Lichter
Faseroptische Lichter
Faseroptische Lichter
Faseroptische Lichter

Nach einigem Ausprobieren fand ich schließlich einen guten Weg, die Glasfaserstränge durch die Leinwand zu bringen.

  1. Verwenden Sie die größte Nähnadel, die Sie benötigen, um ein Loch durch die Vorderseite der Leinwand und der Schaumstoffplatte zu stechen. Ich empfehle, gleich zu Beginn jedes gewünschte Loch zu stechen, damit Sie es umdrehen und sehen können, wo Sie Ihre Kabelorganisationsclips platzieren können / nicht
  2. Nehmen Sie eine Spitzzange und greifen Sie den Glasfaserstrang weniger als einen Zentimeter vom Ende entfernt
  3. Stechen Sie den Glasfaserstrang durch das Loch, das Sie mit einer Nadel gemacht haben
  4. Führe den Strang durch verschiedene Plastikclips dorthin, wo er etwas länger als nötig ist – wir schneiden ihn später ab
  5. Mit Ihrer Heißklebepistole auf der NIEDRIGEN Temperatureinstellung (wenn diese Option vorhanden ist) geben Sie einen Tropfen Heißkleber auf den Glasfaserstrang, wo er durch die Schaumstoffplatte stößt. Alternativ könntest du das blaue klebrige Zeug verwenden. Der Heißkleber verformt die Strähne zwar ein wenig, scheint aber die optischen Qualitäten nicht zu sehr zu beeinträchtigen
  6. Schneiden Sie die Strähne mit einem Drahtschneider ein wenig von der Leinwand ab.

Um den Vorgang zu beschleunigen, kannst du viele Fasern hintereinander durchstechen, bevor du den Heißkleber machst. Sie sollten in der Regel von selbst an Ort und Stelle bleiben.

Achten Sie darauf, die Glasfaserstränge auf dem Tisch nicht zu brechen oder zu zerquetschen - sie werden brechen und wenn der Strang dadurch zu kurz wird, werden Sie traurig sein und müssen es wiederholen. Verwenden Sie den Akku als Gegengewicht, damit Sie den Bilderrahmen weniger als die Hälfte auf dem Schreibtisch haben.

Da ich weißes Schaumstoffbrett anstelle von schwarzem verwendete, schien viel Licht durch, wenn die LEDs an waren. Als Fix habe ich etwas Alufolie zwischen die Lichter und die Leinwand geklebt.

Verwenden Sie Schrumpfschläuche, um jedes Bündel von Glasfasersträngen zusammenzuhalten.

  1. Schneiden Sie die Stränge für das Bündel auf ungefähr die gleiche Länge
  2. Stecken Sie den Abschnitt durch den Schrumpfschlauch
  3. Verwenden Sie eine Heißluftpistole oder einen Lötkolben, um es zu schrumpfen. Wenn Sie einen Lötkolben verwenden, lassen Sie einfach die Seite des Lötkolbens den Schlauch leicht berühren und er schrumpft. Es sollte den Schlauch nicht schmelzen, da es für ein wenig Hitze ausgelegt ist.

Schließlich benutzte ich Heißkleber, um das Ende des Bündels an jedem LED-Licht zu befestigen. Ich habe viel Heißkleber verwendet, damit die Fasern tatsächlich von jeder rot / grün / blauen Diode im Licht Licht bekommen - wenn die Fasern wirklich nahe am Licht sind, eine "weiße" Farbe (die eigentlich rot und grün und blau ist) dann sind einige Fasern nur rot und andere grün, anstatt alle weiß zu sein. Dies könnte verbessert werden, indem ein Stück Papier oder etwas anderes verwendet wird, um es zu verteilen, aber Heißkleber funktionierte gut genug für mich.

Schritt 4: Programmierung

Bei der Programmierung habe ich drei Bibliotheken verwendet

FastLED - eine großartige Bibliothek zur Steuerung von WS2812 LED-Streifen (und vielen anderen adressierbaren LED-Streifen) -

Arduino Low Power - Ich weiß nicht, wie viel Strom dies tatsächlich spart, aber es war super einfach zu implementieren und sollte helfen, ein wenig Strom für die Funktion zu sparen, die nur weiße Lichter ist und dann für immer verzögert wird.

EEPROM - Wird verwendet, um den aktuellen Modus des Projekts zu lesen/zu speichern. Dadurch kann das Projekt den Farbmodus jedes Mal erhöhen, wenn Sie ihn aus- und wieder einschalten, sodass keine separate Schaltfläche zum Ändern des Modus erforderlich ist. Die EEPROM-Bibliothek wird immer installiert, wenn Sie die Arduino IDE installieren.

Ich habe auch eine Skizze verwendet, um die Lichter zu funkeln, die jemand anderes eingerichtet hat. Es beleuchtet zufällig ein Pixel von einer Grundfarbe zu einer Spitzenfarbe und dann wieder herunter. https://gist.github.com/kriegsman/88954aae22b03a66… (es verwendet auch die FastLED-Bibliothek)

Ich habe auch das vMicro-Plugin für Visual Studio verwendet - dies ist eine verstärkte Version der Arduino IDE. Es hat eine Menge hilfreicher Autocomplete-Funktionen und hebt Probleme in Ihrem Code hervor, ohne ihn kompilieren zu müssen. Es kostet 15 US-Dollar, ist es aber wert, wenn Sie mehr als ein Arduino-Projekt erstellen, und Sie werden gezwungen, sich mit Visual Studio zu vertraut zu machen, einem super leistungsstarken Programm.

(Ich hänge auch die Code-.ino-Datei an, weil das Instructable-Hosting eines Github-Gist viele der Leerzeichen in der Datei zerstört)

Der Arduino-Code, der 4 Farbmodi auf einem Arduino UNO für einige WS2812B-LED-Streifen mit der FastLED-Bibliothek ausführt

#enthalten
#enthalten
#enthalten
// FastLED-Setup
#defineNUM_LEDS4
#definePIN3//Datenpin für LED-Streifen
CRGB-LEDs[NUM_LEDS];
//Twinkle-Setup
#defineBASE_COLORCRGB(2, 2, 2) //Basishintergrundfarbe
#definePEAK_COLORCRGB(255, 255, 255) // Spitzenfarbe zum Funkeln bis zu
// Betrag, um die Farbe bei jeder Schleife zu erhöhen, wenn sie heller wird:
#defineDELTA_COLOR_UPCRGB(4, 4, 4)
// Betrag, um die Farbe um jede Schleife zu verringern, wenn sie dunkler wird:
#defineDELTA_COLOR_DOWNCRGB(4, 4, 4)
// Chance, dass jedes Pixel heller wird.
// 1 oder 2 = einige aufhellende Pixel gleichzeitig.
// 10 = viele Pixel werden gleichzeitig aufgehellt.
#defineCHANCE_OF_TWINKLE2
enum { SteadyDim, GettingBrighter, GettingDimmerAgain };
uint8_t PixelState[NUM_LEDS];
Byte-RunMode;
Byte globalBright = 150;
Byte globalDelay = 20; // Verzögerungsgeschwindigkeit für das Funkeln
Byteadresse = 35; // Adresse zum Speichern des Laufmodus
voidsetup()
{
FastLED.addLeds(LEDs, NUM_LEDS);
FastLED.setCorrection(TypicalLEDStrip);
//FastLED.setMaxPowerInVoltsAndMilliamps(5, maxMilliamps);
FastLED.setBrightness(globalBright);
// Den Modus zum Laufen bringen
runMode = EEPROM.read (Adresse);
// Erhöhe den Runmode um 1
EEPROM.write (Adresse, RunMode + 1);
}
Leerschleife()
{
Schalter (RunMode)
{
//Solides Weiss
case1: fill_solid (LEDs, NUM_LEDS, CRGB::Weiß);
FastLED.show();
Für immer verzögern();
brechen;
//Zwinkere ein bisschen langsam
Fall2: FastLED.setBrightness(255);
globale Verzögerung = 10;
TwinkleMapPixel();
brechen;
//Schnell funkeln
Fall3: FastLED.setBrightness (150);
globalDelay = 2;
TwinkleMapPixel();
brechen;
//Regenbogen
Fall4:
RunRegenbogen();
brechen;
// Index außerhalb des Bereichs, auf 2 zurücksetzen und dann Modus 1 ausführen.
// Wenn das Arduino neu startet, wird Modus 2 ausgeführt, aber vorerst wird Modus 1 ausgeführt
Ursprünglich:
EEPROM.write (Adresse, 2);
runMode = 1;
brechen;
}
}
voidRunRainbow()
{
Byte *c;
uint16_t i, j;
während (wahr)
{
for (j = 0; j < 256; j++) { // 1 Zyklus aller Farben auf dem Rad
für (i = 0; i < NUM_LEDS; i++) {
c = Rad (((i * 256 / NUM_LEDS) + j) & 255);
setPixel(i, *c, *(c + 1), *(c + 2));
}
FastLED.show();
Verzögerung (globale Verzögerung);
}
}
}
byte * Wheel(byte WheelPos) {
statisches Byte c[3];
if (RadPos < 85) {
c[0] = RadPos * 3;
c[1] = 255 - RadPos * 3;
c[2] = 0;
}
sonstif (WheelPos < 170) {
RadPos -= 85;
c[0] = 255 - RadPos * 3;
c[1] = 0;
c[2] = RadPos * 3;
}
anders {
RadPos -= 170;
c[0] = 0;
c[1] = RadPos * 3;
c[2] = 255 - RadPos * 3;
}
Rückkehr c;
}
voidTwinkleMapPixels()
{
InitPixelStates();
während (wahr)
{
for (uint16_t i = 0; i < NUM_LEDS; i++) {
if (PixelState == SteadyDim) {
// dieses Pixel ist derzeit: SteadyDim
// also erwägen wir zufällig, es heller zu machen
if (random8() < CHANCE_OF_TWINKLE) {
PixelState = Wird heller;
}
}
elseif (PixelState == GetBrighter) {
// dieses Pixel ist derzeit: GettingBrighter
// Wenn es also die höchste Farbe hat, schalten Sie es wieder auf Dimmer um
if (leds >= PEAK_COLOR) {
PixelState = GettingDimmerAgain;
}
anders {
// ansonsten erhelle es einfach weiter:
LEDs += DELTA_COLOR_UP;
}
}
else { // wird wieder dunkler
// dieses Pixel ist derzeit: GettingDimmerAgain
// Wenn es also wieder die Grundfarbe ist, schalten Sie es auf Dauerlicht um
if (leds <= BASE_COLOR) {
LEDs = BASE_COLOR; // auf exakte Grundfarbe zurücksetzen, falls wir überschießen
PixelState = SteadyDim;
}
anders {
// andernfalls dimme es einfach weiter herunter:
LEDs -= DELTA_COLOR_DOWN;
}
}
}
FastLED.show();
FastLED.delay (globale Verzögerung);
}
}
voidInitPixelStates()
{
memset(PixelState, sizeof(PixelState), SteadyDim); // alle Pixel mit SteadyDim initialisieren.
fill_solid (LEDs, NUM_LEDS, BASE_COLOR);
}
voidDelayForever()
{
während (wahr)
{
Verzögerung (100);
LowPower.powerDown(SLEEP_FOREVER, ADC_OFF, BOD_OFF);
}
}
voidshowStrip() {
FastLED.show();
}
voidsetPixel(int Pixel, Byte rot, Byte grün, Byte blau) {
// FastLED
LEDs[Pixel].r = rot;
LEDs[Pixel].g = grün;
LEDs[Pixel].b = blau;
}

rawFiberOptic_ClemsonPic.ino anzeigen, gehostet mit ❤ von GitHub

Schritt 5: Endprodukt

Endprodukt
Endprodukt
Endprodukt
Endprodukt
Endprodukt
Endprodukt

Ta-da! Ich hoffe, dass dieses Instructable jemand anderen inspiriert, ein eigenes ähnliches Projekt zu machen. Es war wirklich nicht schwer zu tun und ich war überrascht, dass es noch niemand getan und eine gründliche Anleitung darüber geschrieben hatte.

Empfohlen: