Cuprins:

Starry Sky Led Tie: 9 Pași (cu imagini)
Starry Sky Led Tie: 9 Pași (cu imagini)

Video: Starry Sky Led Tie: 9 Pași (cu imagini)

Video: Starry Sky Led Tie: 9 Pași (cu imagini)
Video: FEMEIA De 399 De ANI ! #shorts 2024, Noiembrie
Anonim
Image
Image
Starry Sky Led Tie
Starry Sky Led Tie
Starry Sky Led Tie
Starry Sky Led Tie

Acum ceva timp am găsit o jucărie pentru copii cu fibră optică la un magazin de dolari și am început să mă gândesc la ce aș putea face cu ea.

Una dintre ideile nebune pe care le-am avut, a fost să fac o cravată cu efectul unui cer înstelat.

Încă mai aveam niște arduino pro mini, plăci adafruit și baterii care se potriveau probabil acestui proiect.

Așa că, de îndată ce am găsit o cravată largă frumoasă într-o casă de amanet din orașul meu și am găsit o cutie care s-ar putea potrivi cu hardware-ul, am decis să merg după el și să încerc să-l construiesc.

Acest instructable vă arată cum am reușit.

Funcționează pe un arduino pro mini, încărcător adafruit powerboost 500, emmerich icr 18650nh-sp și 5 LED-uri albe. Codul face ca luminozitatea schimbării LED-ului să fie aleatorie. (Primele 40 de secunde ale videoclipului au o viteză de 3x)

Pasul 1: Scheme și hardware

Scheme și hardware
Scheme și hardware
Scheme și hardware
Scheme și hardware

Folosesc următorul hardware:

- PCB cu LED-uri Ice White și rezistențe de 220 Ohm.

- Arduino pro mini (am folosit un knockoff)

- Încărcător Adafruit Powerboost 500

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

- Fibre optice (în diferite dimensiuni)

Pasul 2: Realizarea PCB-ului care găzduiește LED-urile

Realizarea PCB-ului care găzduiește LED-urile
Realizarea PCB-ului care găzduiește LED-urile
Realizarea PCB-ului care găzduiește LED-urile
Realizarea PCB-ului care găzduiește LED-urile
Realizarea PCB-ului care găzduiește LED-urile
Realizarea PCB-ului care găzduiește LED-urile

Am tăiat o bandă de pe un PCB pentru a ține LED-urile și am folosit pinii LED-ului pentru a-l lipi pe PCB-ul principal.

Am conectat toți catodii (-) la GND și am folosit jumătate din știfturi pentru a-l lipi lipit de placa principală.

Conectați toți anodii (+) la rezistențe și cu cabluri la arduino.

Fiecare LED trebuie conectat la unul dintre următoarele porturi PWM: 3, 5, 6, 9, 10, 11

Silly me a făcut o mulțime de greșeli cu acest proiect și am uitat să verific porturile PWM corecte, așa că a trebuit să revând câteva după. Testat cu High / Low, așa că am observat asta mai târziu.

Am început cu 7 LED-uri, dar erau doar 6 porturi PWM și unul dintre LED-urile pe care le-am revândut a murit. Tocmai am păstrat cele 5 LED-uri funcționale și nu folosesc al 6-lea.

Pasul 3: Realizarea cutiei

Realizarea Cutiei
Realizarea Cutiei
Realizarea Cutiei
Realizarea Cutiei
Realizarea Cutiei
Realizarea Cutiei
Realizarea Cutiei
Realizarea Cutiei

Am folosit un Bosch GRO (ca un Dremel) și un burghiu pentru a decupa forma bateriei, butonul, portul micro-usb, antetele de la Arduino și fibrele optice. (folosiți o mască de praf!)

Am lipit bateria de carcasă cu 2 benzi.

Șuruburi folosite pentru a monta placa Adafruit și PCB.

Fricțiunea de la deschidere și închidere a deteriorat unele fire. A trebuit să le revând și să folosesc clei pentru a preveni repetarea.

Pasul 4: Pregătirea cravatei

Pregătirea cravatei
Pregătirea cravatei
Pregătirea cravatei
Pregătirea cravatei
Pregătirea cravatei
Pregătirea cravatei

Scoaterea cusăturii din partea de jos a cravatei pentru a se potrivi cu foaia de cauciuc.

Pentru a ascunde hardware-ul și a putea să îl accesez în continuare, dacă este necesar, am decis să folosesc un fermoar.

Nu sunt bun cu o mașină de cusut, așa că mama mea dulce a pus un fermoar pe spatele cravatei.

După ce s-a făcut asta, am lipit foaia de cauciuc în cravată. Mi-a fost frică să nu folosesc prea mult adeziv care să sature țesătura și să fie vizibil din față, așa că am încercat să o uniformizez și să nu folosesc prea mult. În general, arată bine, dar în câteva locuri am observat prea mult sau prea puțină lipici, deoarece a trecut prin țesătură sau nu a lipit țesătura foarte bine. Din fericire, acest lucru este abia vizibil de la distanță strânsă, în lumină puternică.

Caseta și cravata sunt acum terminate. E timpul să lipim fibrele optice!

Pasul 5: lipirea fibrelor optice

Lipirea Fiberoptics
Lipirea Fiberoptics
Lipirea Fiberoptics
Lipirea Fiberoptics
Lipirea Fiberoptics
Lipirea Fiberoptics
Lipirea Fiberoptics
Lipirea Fiberoptics

Jucăria avea un pachet mare de fire din fibră optică care se rupeau cu ușurință. Am încercat să le lipesc unul câte unul la început, dar în curând am observat că ar fi mai bine să facem pachete mici și să le lipim de LED-uri deodată. Acest lucru ar face mai ușor să-l mențineți până când adezivul a fost uscat. Primul LED a dat peste cap acest lucru.

Asigurați-vă că utilizați un lipici transparent! Cel pe care l-am folosit s-a uscat foarte lent și adezivul cu uscare rapidă pe care l-am încercat pe primul LED a devenit alb, făcând unele fibre din primul LED mai puțin strălucitoare.

Am lipit foi mici de cauciuc negru pentru a preveni scurgerea luminii deasupra și pentru a separa LED-urile.

Una dintre foi a împiedicat închiderea carcasei, așa că am adăugat o bandă de cauciuc pentru a menține capacul închis.

Pasul 6: Punerea fibrelor optice prin cravată

Punerea fibrelor optice prin cravată
Punerea fibrelor optice prin cravată
Punerea fibrelor optice prin cravată
Punerea fibrelor optice prin cravată
Punerea fibrelor optice prin cravată
Punerea fibrelor optice prin cravată

Începând de jos, am ciupit găuri cu un ac și am pus fibrele una câte una. Fibrele fiecărui LED se răspândesc aleator pe cravată.

Am lipit o bandă neagră pe spate care trebuia să meargă până la partea mai mică a cravatei pentru a menține greutatea cutiei, dar după ce am introdus toate firele și am simțit tensiunea firelor, am decis să lipesc totul până la cravată a fost o idee mai bună și a tăiat banda.

Din moment ce firele din fibră optică de la jucărie erau atât de scurte, le-a fost greu să le monteze pe toată cravata. Am fost limitat în poziționarea cutiei și mi-a fost greu să fac totul cât de plat am vrut.

Pasul 7: lipirea fibrelor optice de cravată

Lipirea fibrelor optice la cravată
Lipirea fibrelor optice la cravată
Lipirea fibrelor optice la cravată
Lipirea fibrelor optice la cravată
Lipirea fibrelor optice la cravată
Lipirea fibrelor optice la cravată
Lipirea fibrelor optice la cravată
Lipirea fibrelor optice la cravată

Am lipit toate firele de fibră optică pe foaia de cauciuc pentru a preveni tragerea firelor din foaia de cauciuc și pentru a face cravata plată.

Pentru a mă asigura că nu am lipit clema de cravată atunci când pun presiune pe ea, am pus niște hârtie între ele. Nu arată atât de bine, dar funcționează bine. Și nu o vezi când este închisă.

După ce lipiciul s-a uscat, am tăiat firele din față și am tăiat puțin foaia de cauciuc chiar deasupra firului cel mai înalt, deoarece cravata a fost puțin prea lungă.

Fotografiile cu cămașa albă sunt făcute înainte de a tăia ultima bucată de cauciuc.

Pasul 8: Codul

Sub codul pe care l-am scris pentru cravată.

Toate LED-urile au o „medie” setată (de fapt nu o medie, ci o luminozitate medie).

De îndată ce va atinge acea medie, va decide cu o șansă de 3/4 să meargă la o luminozitate mai mică. De asemenea, setează aleatoriu o nouă luminozitate minimă, luminozitate maximă, timp de așteptare pentru luminozitate minimă și maximă și viteza pe care o mărește sau scade la fiecare rundă (1-255) de la 5 valori prestabilite. Apoi va face un ciclu până va atinge din nou media. Doar 2 LED-uri pot fi în ciclu ridicat în același timp.

Fiecare stare este reprezentată de o valoare întreagă (1-7) care determină dacă va merge în medie, în medie, în așteptare, în actualizare etc.

Pentru informații despre încărcarea codului pe arduino, vă rugăm să aruncați o privire la www.arduino.cc

/ * Starry Sky Tie * * Acesta este un script pentru a estompa în mod aleatoriu 5 LED-uri de la o luminozitate medie la mai mică * sau mai mare cu setări aleatorii mai mici, mai mari și de sincronizare * pentru a arăta ca un cer înstelat atunci când este utilizat cu fibră optică. * În acest caz, acestea vor fi implementate în egalitate. * * Șansă sus / jos = 1/4 în sus, 3/4 în jos, cu maximum 2 * în sus până la maxim în același timp. * * Media rămâne aceeași. * Opțiunile minime, maxime și de sincronizare se schimbă aleatoriu * din 5 opțiuni de fiecare dată când un LED atinge din nou media. * * Creat de Billy Jaspers, mai 2019. *

/ Declarați pinii

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

// Variabile de timp

currentTime nesemnat lung; Timp lung de așteptare nesemnat [5]; unsigned long lastRound;

// Variabile LED

int brightMin [5] = {10, 10, 10, 10, 10}; // Luminozitate minimă int brightAvg [5] = {200, 200, 200, 200, 200}; // Luminozitate medie int brightMax [5] = {240, 240, 240, 240, 240}; // Luminozitate maximă int timeWaitLow [5] = {1000, 1000, 1000, 1000, 1000}; // Timp de așteptare int timeWaitAvg [5] = {5000, 5000, 5000, 5000, 5000}; // Timp de așteptare int timeWaitMax [5] = {4000, 3000, 3000, 3000, 3000}; // Timp de așteptare int increment [5] = {2, 5, 4, 5, 2}; // Creșterea luminozității int currentBright [5] = {200, 230, 210, 210, 235}; // Luminozitatea curentă

// Posibilități de variabile LED

int brightMinPos [5] = {5, 20, 40, 5, 20}; // Posibilități minime de luminozitate int brightMaxPos [5] = {240, 245, 230, 225, 245}; // Posibilități maxime de luminozitate int timeLowPos [5] = {3000, 5000, 4000, 2000, 1000}; // Timp de așteptare cu posibilități de luminozitate redusă int timeHighPos [5] = {3000, 1000, 500, 2000, 4000}; // Timp de așteptare cu posibilități de luminozitate ridicate int timeAvgPos [5] = {3000, 5000, 4000, 7000, 8000}; // Timp de așteptare cu posibilități medii de luminozitate int incrementPos [5] = {2, 4, 5, 3, 1}; // creșterea posibilităților de luminozitate

// Variabile

bool startup = adevărat; // Trebuie pornite setările de pornire?

// Variabile direcționale

/ * 0 = Se așteaptă în medie 1 = se duce la minim 2 = se așteaptă 3 = se scade la media 4 = se merge la Max 5 = se așteaptă la Max 6 = se ridică la media 7 = Se actualizează variabilele * / int stareLED [5] = {0, 0, 0, 0, 0}; int amountHighLED = 0; int refreshRate = 50; bool statusWaiting [5] = {false, false, false, false, false}; // Led-ul așteaptă?

// Variabile aleatoare

Număr aleatoriu lung; // Lung pentru a stoca numărul aleator lung randomNumberTwo; // Lung pentru a stoca al doilea număr aleatoriu

// contoare

int i = 0; // Contor pentru bucla principală

configurare nulă () {

Serial.begin (115200); // Porniți serial randomSeed (analogRead (A0)); // Setați randomseed

// Declarați ieșirile

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

// Scrieți date pe LED-uri

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

// Bucla principală

void loop () {if (startup) {// Setări startup lastRound = millis (); // Setați lastRound pentru boot writeToLED (); // Scrieți date de pornire la pornirea LED = false; // Dezactivează pornirea} currentTime = millis (); // Setați ora curentă

if (currentTime - lastRound> = refreshRate) {

for (i = 0; i <5; i ++) {if (statusLED == 7) {// -7- Actualizare Led randomNumber = random (5); brightMin = brightMinPos [randomNumber]; // Setați valoarea aleatorie pentru luminozitatea minimă randomNumber = random (5); brightMax = brightMaxPos [randomNumber]; // Setați valoarea aleatorie pentru luminozitatea maximă randomNumber = random (5); timeWaitLow = timeLowPos [randomNumber]; // Setați valoarea aleatorie pentru timpul de așteptare scăzut randomNumber = random (5); timeWaitMax = timeHighPos [randomNumber]; // Setați valoarea aleatorie pentru timpul mare de așteptare randomNumber = random (5); timeWaitAvg = timeAvgPos [randomNumber]; // Setați valoarea aleatorie pentru timpul mediu de așteptare randomNumber = random (5); increment = incrementPos [randomNumber]; // Setați valoarea aleatorie pentru valoarea incrementului randomNumber = random (2); // Setați valoarea aleatorie pentru direcția randomNumberTwo = random (2); // Setați valoarea aleatorie pentru direcție dacă (randomNumber == 1 && randomNumberTwo == 0 && amountHighLED = brightAvg ) {statusLED = 0; // Dacă în cel mai de jos punct: Mergeți la Așteptare medie} else {currentBright = currentBright + increment ; // Altfel: Luminozitate mai mare}} else if (statusLED == 2) {// -2- Waiting Low if (! StatusWaiting ) {// If not waiting: waitingTime = millis (); // Setați starea timpului de așteptareWaiting = true; // Începeți să așteptați} altceva dacă (statusWaiting && currentTime-waitingTime > = timeWaitLow ) {// Dacă așteptarea AND timeWaitAvg a trecut: statusWaiting = false; // Opriți starea de așteptareLED = 3; // Setați statusLed la Se așteaptă actualizarea}} else if (statusLED == 1) {// -1- Mergeți la Low dacă (currentBright <= brightMin ) {statusLED = 2; // Dacă în cel mai de jos punct: Mergeți la Așteptare scăzută} else {currentBright = currentBright -increment ; // Altfel: Luminozitate scăzută}} else if (statusLED == 6) {// -6- Trecerea maximă la Avg if (currentBright = timeWaitMax ) {// Dacă așteptat ȘI timeWaitAvg a trecut: statusWaiting = false; // Stop status statusLED = 6; // Setați statusLed la Se așteaptă actualizarea}} else if (statusLED == 4) {// -4- Mergeți la Max dacă (currentBright > = brightMax ) {statusLED = 5; // Dacă în cel mai de jos punct: Accesați Waiting High} else {currentBright = currentBright + increment ; // Altfel: Luminozitate mai mare}} else if (statusLED == 0) {// -0- Waiting at Average if (! StatusWaiting ) {// If not waiting: waitingTime = millis (); // Setați starea timpului de așteptareWaiting = true; // Începeți să așteptați} altfel dacă (statusWaiting && currentTime-waitingTime > = timeWaitAvg ) {// Dacă așteptare ȘI timeWaitAvg a trecut: statusWaiting = false; // Stop status statusLED = 7; // Setați statusLed la Se așteaptă actualizarea}}} i = 0; lastRound = milis (); // Setați când se termină ultima rundă. writeToLED (); // Scrieți toate datele pe LED-uri}}

Pasul 9: Produsul final

Image
Image
Produs final
Produs final
Produs final
Produs final

Cred că a funcționat bine. Cravata nu este prea groasă, rigidă, lungă sau grea, iar efectul de stea arată uimitor.

Recomandat: