Innehållsförteckning:

Starry Sky Led Tie: 9 steg (med bilder)
Starry Sky Led Tie: 9 steg (med bilder)

Video: Starry Sky Led Tie: 9 steg (med bilder)

Video: Starry Sky Led Tie: 9 steg (med bilder)
Video: Я работаю в Страшном музее для Богатых и Знаменитых. Страшные истории. Ужасы. 2024, November
Anonim
Image
Image
Starry Sky Led Tie
Starry Sky Led Tie
Starry Sky Led Tie
Starry Sky Led Tie

För ett tag sedan hittade jag en barnleksak med fiberoptik i en dollarbutik och började fundera på vad jag kunde göra med den.

En av de galna idéer jag hade var att göra en slips med effekten av en stjärnhimmel.

Jag hade fortfarande några arduino pro mini's, adafruit -brädor och batterier som låg runt som förmodligen skulle passa detta projekt.

Så så snart jag hittade en fin bred slips i en pantbank i min stad och hittade en låda som kunde passa hårdvaran, bestämde jag mig för att gå efter den och försöka bygga den.

Denna instruerbara visar dig hur jag gjorde det.

Den körs på en arduino pro mini, adafruit powerboost 500 laddare, emmerich icr 18650nh-sp och 5 vita lysdioder. Koden gör att lysdioderna ändrar ljusstyrka slumpmässigt. (De första 40 sekunderna av videon är 3x hastighet)

Steg 1: Schema och hårdvara

Schemat och hårdvara
Schemat och hårdvara
Schemat och hårdvara
Schemat och hårdvara

Jag använder följande hårdvara:

- Kretskort med isvita lysdioder och 220 Ohm motstånd.

-Arduino pro mini (jag använde en knockoff)

-Adafruit Powerboost 500 laddare

-Emmerich Li-ion accu ICR-18650NH-SP

- Optiska fibrer (i olika storlekar)

Steg 2: Gör att kretskortet är värd för lysdioderna

Att göra kretskortet värd för lysdioderna
Att göra kretskortet värd för lysdioderna
Att göra kretskortet värd för lysdioderna
Att göra kretskortet värd för lysdioderna
Att göra kretskortet värd för lysdioderna
Att göra kretskortet värd för lysdioderna

Jag klippte av en remsa av ett kretskort för att hålla lysdioderna och använde LED -stiften för att löda det till huvudkortet.

Anslutde alla katoder (-) till GND och använde hälften av stiften för att lödas fast vid huvudkortet.

Anslutde alla anoder (+) till motstånd och med kablar till arduino.

Lysdioder måste vara anslutna till någon av följande PWM -portar: 3, 5, 6, 9, 10, 11

Dumt jag gjorde många misstag med detta projekt och glömde att kontrollera de korrekta PWM -portarna, så jag var tvungen att lösa några senare. Testade med Hög/Låg så jag märkte det först senare.

Jag började med 7 lysdioder, men det fanns bara 6 PWM -portar och en av lysdioderna som jag löste av dog. Jag behöll bara de fem fungerande lysdioderna och använder inte den sjätte.

Steg 3: Gör lådan

Att göra lådan
Att göra lådan
Att göra lådan
Att göra lådan
Att göra lådan
Att göra lådan
Att göra lådan
Att göra lådan

Jag använde en Bosch GRO (som en Dremel) och en borrmaskin för att skära ut formen på batteriet, knappen, mikro-usb-porten, rubrikerna från Arduino och optiska fibrer. (använd en dammmask!)

Limmade batteriet på fodralet med 2 band.

Användte skruvar för att montera Adafruit -kortet och kretskortet.

Friktion från att öppna och stänga skadade några ledningar. Jag var tvungen att lösa upp dem och använda lim för att förhindra att det händer igen.

Steg 4: Förbereda slipsen

Förbereda slipsen
Förbereda slipsen
Förbereda slipsen
Förbereda slipsen
Förbereda slipsen
Förbereda slipsen

Tog bort sömmen från den nedre delen av slipsen för att passa gummiplattan.

För att dölja hårdvaran och fortfarande kunna komma åt den vid behov bestämde jag mig för att använda en dragkedja.

Jag mår inte bra av en symaskin, så min söta mamma satte en dragkedja på slipsens baksida.

Efter att det var klart limmade jag gummiplattan i slipsen. Jag var rädd för att använda för mycket lim som skulle mätta tyget och vara synligt framifrån, så jag försökte jämna ut det och inte använda för mycket. Sammantaget ser det bra ut, men på några ställen märkte jag för mycket eller för lite lim, eftersom det kom genom tyget eller inte fastnade tyget särskilt bra. Lyckligtvis är detta knappt synligt på nära håll i starkt ljus.

Lådan och slipsen är nu klara. Dags att limma fiberoptiken!

Steg 5: Limma fiberoptiken

Limning av fiberoptiken
Limning av fiberoptiken
Limning av fiberoptiken
Limning av fiberoptiken
Limning av fiberoptiken
Limning av fiberoptiken
Limning av fiberoptiken
Limning av fiberoptiken

Leksaken hade en stor bunt fiberoptiska trådar som lätt gick sönder. Jag försökte limma dem en efter en först, men märkte snart att det skulle vara bättre att göra små buntar och fästa dem på lysdioden direkt. Det skulle göra det lättare att hålla det stadigt tills limmet var torrt. Förvirrade den första lysdioden med att räkna ut detta.

Var noga med att använda ett transparent lim! Den jag använde torkade mycket långsamt och det snabbtorkande limet som jag försökte på den första lysdioden blev vitt, vilket gjorde några fibrer från den första lysdioden mindre ljusa.

Jag limmade små svarta gummiplåtar för att förhindra att ljus läcker ovanpå och för att separera lysdioderna.

Ett av arken hindrade höljet från att stänga så jag lade till ett gummiband för att hålla locket stängt.

Steg 6: Sätta fiberoptik genom slipsen

Att sätta fiberoptik genom slipsen
Att sätta fiberoptik genom slipsen
Att sätta fiberoptik genom slipsen
Att sätta fiberoptik genom slipsen
Att sätta fiberoptik genom slipsen
Att sätta fiberoptik genom slipsen

Från botten nypade jag hål med en nål och satte fibrerna igenom en efter en. Varje LED: s fibrer sprider sig slumpmässigt över slipsen.

Jag limmade en svart remsa på baksidan som skulle gå ända upp till den mindre delen av slipsen för att behålla lådans vikt, men efter att jag lade igenom alla trådar och kände trådarnas spänning bestämde jag mig för att limma allt till slipsen var en bättre idé och klippte bort remsan.

Eftersom fiberoptiska trådar från leksaken var så korta var det svårt att montera dem över slipsen. Jag var begränsad att placera lådan och hade svårt att göra allt så platt som jag ville.

Steg 7: Limma fiberoptik till slipsen

Limma fiberoptik till slipsen
Limma fiberoptik till slipsen
Limma fiberoptik till slipsen
Limma fiberoptik till slipsen
Limma fiberoptik till slipsen
Limma fiberoptik till slipsen
Limma fiberoptik till slipsen
Limma fiberoptik till slipsen

Jag limmade alla fiberoptiska trådar på gummiplattan för att förhindra att trådarna dras ut ur gummiplattan och för att göra slipsen platt.

För att se till att jag inte limmade klämman på slipsen när jag satte tryck på den lade jag lite papper emellan. Det ser inte så bra ut men fungerar bra. Och du ser det inte när det är stängt.

Efter att limmet torkat klippte jag av trådarna på framsidan och klippte av lite av gummiplattan strax ovanför den högsta tråden, eftersom slipsen var lite för lång.

Foton med den vita skjortan är gjorda innan jag skär av den sista delen av gummit.

Steg 8: Koden

Nedanför koden skrev jag för slipsen.

Alla lysdioder har ett inställt "genomsnitt" (egentligen inte ett medelvärde utan en medelljusstyrka).

Så snart det når det genomsnittet, kommer det att bestämma med en chans 3/4 att gå till en lägre ljusstyrka. Den ställer också in slumpmässigt en ny minsta ljusstyrka, maximal ljusstyrka, väntetid för lägsta och maximala ljusstyrka och hastigheten den ökar eller minskar varje omgång (1-255) från 5 förinställda värden. Sedan gör den en cykel tills den når genomsnittet igen. Endast två lysdioder kan vara i en hög cykel samtidigt.

Varje tillstånd representeras av ett heltal (1-7) som avgör om det går medg-lågt, lågt-avg, väntar lågt, uppdaterar etc.

För information om hur du laddar upp kod till arduino, ta en titt på www.arduino.cc

/ * Starry Sky Tie * * Detta är ett manus för att slumpmässigt blekna 5 lysdioder från ett genomsnitt till en lägre * eller högre ljusstyrka med slumpmässiga lägre, högre och timinginställningar * för att se ut som en stjärnhimmel när den används med fiberoptik. * I detta fall kommer dessa att genomföras i oavgjort. * * Upp/ner chans = 1/4 upp, 3/4 ner, med max 2 * gå upp till max samtidigt. * * Genomsnittet förblir detsamma. * Minsta, högsta och tidsalternativ ändras slumpmässigt * från 5 alternativ varje gång en lysdiod når genomsnittet igen. * * Skapad av Billy Jaspers, maj 2019. *

/ Deklarera stift

int LED01 = 3; int LED02 = 5; int LED03 = 6; int LED04 = 9; int LED05 = 11;

// Tidsvariabler

osignerad lång aktuell tid; osignerad lång väntetid [5]; osignerad long lastRound;

// LED -variabler

int brightMin [5] = {10, 10, 10, 10, 10}; // Minsta ljusstyrka int brightAvg [5] = {200, 200, 200, 200, 200}; // Genomsnittlig ljusstyrka int brightMax [5] = {240, 240, 240, 240, 240}; // Maximal ljusstyrka int timeWaitLow [5] = {1000, 1000, 1000, 1000, 1000}; // Väntetid int timeWaitAvg [5] = {5000, 5000, 5000, 5000, 5000}; // Väntetid int timeWaitMax [5] = {4000, 3000, 3000, 3000, 3000}; // Väntetid int inkrement [5] = {2, 5, 4, 5, 2}; // Ökning i ljusstyrka int currentBright [5] = {200, 230, 210, 210, 235}; // Nuvarande ljusstyrka

// LED -variabler Möjligheter

int brightMinPos [5] = {5, 20, 40, 5, 20}; // Minsta möjliga ljusstyrka int brightMaxPos [5] = {240, 245, 230, 225, 245}; // Maximal ljusstyrka int timeLowPos [5] = {3000, 5000, 4000, 2000, 1000}; // Väntetid på möjligheter med låg ljusstyrka int timeHighPos [5] = {3000, 1000, 500, 2000, 4000}; // Väntetid på möjligheter med hög ljusstyrka int timeAvgPos [5] = {3000, 5000, 4000, 7000, 8000}; // Väntetid på genomsnittliga ljusstyrka möjligheter int incrementPos [5] = {2, 4, 5, 3, 1}; // ökning av ljusstyrka

// Variabler

bool start = true; // Måste startinställningarna startas?

// Riktningsvariabler

/* 0 = Väntar i genomsnitt 1 = går genomsnitt till låg 2 = väntar låg 3 = går lågt till snitt 4 = går i snitt till max 5 = väntar på max 6 = går högt till snitt 7 = uppdaterar variabler*/ int statusLED [5] = {0, 0, 0, 0, 0}; int amountHighLED = 0; int refreshRate = 50; bool statusWaiting [5] = {false, false, false, false, false}; // Väntar Led?

// Slumpmässiga variabler

lång randomNumber; // Långt för att lagra slumpmässigt nummer lång randomNumberTwo; // Lång för att lagra det andra slumpmässiga numret

// räknare

int i = 0; // Räknare för huvudslinga

void setup () {

Serial.begin (115200); // Starta seriell randomSeed (analogRead (A0)); // Ställ in slumpmässigt

// Deklarera utdata

pinMode (LED01, OUTPUT); pinMode (LED02, OUTPUT); pinMode (LED03, OUTPUT); pinMode (LED04, OUTPUT); pinMode (LED05, OUTPUT); }

// Skriv data till lysdioder

void writeToLED () {analogWrite (LED01, currentBright [0]); analogWrite (LED02, currentBright [1]); analogWrite (LED03, currentBright [2]); analogWrite (LED04, currentBright [3]); analogWrite (LED05, currentBright [4]); }

// Huvudslinga

void loop () {if (start) {// Startup settings lastRound = millis (); // Ställ in lastRound för boot writeToLED (); // Skriv startdata till LED start = false; // Stäng av start} currentTime = millis (); // Ställ in aktuell tid

if (currentTime - lastRound> = refreshRate) {

för (i = 0; i <5; i ++) {if (statusLED == 7) {// -7- Uppdatera Led randomNumber = random (5); brightMin = brightMinPos [randomNumber]; // Ställ in slumpmässigt värde för minsta ljusstyrka randomNumber = random (5); brightMax = brightMaxPos [randomNumber]; // Ställ in slumpmässigt värde för maximal ljusstyrka randomNumber = random (5); timeWaitLow = timeLowPos [randomNumber]; // Ställ in slumpmässigt värde för låg väntetid randomNumber = random (5); timeWaitMax = timeHighPos [randomNumber]; // Ställ in slumpmässigt värde för hög väntetid randomNumber = random (5); timeWaitAvg = timeAvgPos [randomNumber]; // Ställ in slumpmässigt värde för genomsnittlig väntetid randomNumber = random (5); inkrement = incrementPos [randomNumber]; // Ställ in slumpmässigt värde för inkrementvärdet randomNumber = random (2); // Ställ in slumpmässigt värde för riktningen randomNumberTwo = random (2); // Ange slumpmässigt värde för riktning om (randomNumber == 1 && randomNumberTwo == 0 && amountHighLED = brightAvg ) {statusLED = 0; // Om på lägsta punkt: Gå till Waiting Avg} else {currentBright = currentBright +steg ; // Annat: Högre ljusstyrka}} annars om (statusLED == 2) {// -2- Väntar lågt om (! StatusWaiting ) {// Om inte väntar: väntetid = millis (); // Ange väntetid statusWaiting = true; // Börja vänta} annars om (statusWaiting && currentTime-waitingTime > = timeWaitLow ) {// Om väntar OCH timeWaitAvg har passerat: statusWaiting = false; // Sluta vänta statusLED = 3; // Ange statusLed till Waiting for update}} else if (statusLED == 1) {// -1- Går genomsnitt till lågt om (currentBright <= brightMin ) {statusLED = 2; // Om på lägsta punkt: Gå till Waiting Low} annars {currentBright = currentBright -inkrement ; // Annat: Lägre ljusstyrka}} annat om (statusLED == 6) {// -6- Går max till snitt om (currentBright = timeWaitMax ) {// Om väntar OCH timeWaitAvg har passerat: statusWaiting = falskt; // Sluta vänta statusLED = 6; // Ange statusLed till Waiting for update}} else if (statusLED == 4) {// -4- Går snitt till max om (currentBright > = brightMax ) {statusLED = 5; // Om på lägsta punkt: Gå till Waiting High} annars {currentBright = currentBright +steg ; // Annat: Högre ljusstyrka}} annars om (statusLED == 0) {// -0- Väntar i genomsnitt om (! StatusWaiting ) {// Om inte väntar: waitingTime = millis (); // Ange väntetid statusWaiting = true; // Börja vänta} annars om (statusWaiting && currentTime-waitingTime > = timeWaitAvg ) {// Om väntar AND timeWaitAvg har passerat: statusWaiting = false; // Sluta vänta statusLED = 7; // Ange statusLed till Waiting for update}}} i = 0; lastRound = millis (); // Ställ in när sista omgången är klar. writeToLED (); // Skriv all data till lysdioderna}}

Steg 9: Slutprodukt

Image
Image
Slutprodukt
Slutprodukt
Slutprodukt
Slutprodukt

Jag tycker att det fungerade bra. Slipsen är inte för tjock, stel, lång eller tung och stjärneffekten ser fantastisk ut.

Rekommenderad: