Sommario:

Cravatta Led Cielo Stellato: 9 Passaggi (con Immagini)
Cravatta Led Cielo Stellato: 9 Passaggi (con Immagini)

Video: Cravatta Led Cielo Stellato: 9 Passaggi (con Immagini)

Video: Cravatta Led Cielo Stellato: 9 Passaggi (con Immagini)
Video: Maranza cerca di prendermi la moto 2024, Dicembre
Anonim
Image
Image
Cravatta Led Cielo Stellato
Cravatta Led Cielo Stellato
Cravatta Led Cielo Stellato
Cravatta Led Cielo Stellato

Qualche tempo fa ho trovato un giocattolo per bambini con fibre ottiche in un negozio di dollari e ho iniziato a pensare a cosa potevo farci.

Una delle idee folli che ho avuto è stata quella di realizzare una cravatta con l'effetto di un cielo stellato.

Avevo ancora alcuni arduino pro mini, schede adafruit e batterie in giro che probabilmente si adatterebbero a questo progetto.

Quindi, non appena ho trovato una bella cravatta larga in un banco dei pegni della mia città e ho trovato una scatola che potesse adattarsi all'hardware, ho deciso di prenderla e provare a costruirla.

Questo istruibile ti mostra come l'ho fatto.

Funziona con un arduino pro mini, caricatore adafruit powerboost 500, emmerich icr 18650nh-sp e 5 LED bianchi. Il codice rende casuale il cambio di luminosità del LED. (I primi 40 secondi del video hanno una velocità 3x)

Passaggio 1: schemi e hardware

Schemi e hardware
Schemi e hardware
Schemi e hardware
Schemi e hardware

Sto usando il seguente hardware:

- PCB con LED bianco ghiaccio e resistenze da 220 Ohm.

- Arduino pro mini (ho usato un knockoff)

- Caricabatterie Adafruit Powerboost 500

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

- Fibre ottiche (in diverse dimensioni)

Passaggio 2: rendere il PCB che ospita i LED

Rendere il PCB che ospita i LED
Rendere il PCB che ospita i LED
Rendere il PCB che ospita i LED
Rendere il PCB che ospita i LED
Rendere il PCB che ospita i LED
Rendere il PCB che ospita i LED

Ho tagliato una striscia da un PCB per contenere i LED e ho usato i pin del LED per saldarlo al PCB principale.

Ha collegato tutti i catodi (-) a GND e ha usato metà dei pin per saldarlo attaccato al PCB principale.

Collegati tutti gli anodi (+) alle resistenze, e con i cavi all'arduino.

I LED devono essere collegati ciascuno a una delle seguenti porte PWM: 3, 5, 6, 9, 10, 11

Sciocco, ho commesso molti errori con questo progetto e ho dimenticato di controllare le porte PWM corrette, quindi ho dovuto risaldarne alcune in seguito. Testato con High/Low, quindi me ne sono accorto solo in seguito.

Ho iniziato con 7 LED, ma c'erano solo 6 porte PWM e uno dei LED che ho risaldato è morto. Ho appena mantenuto i 5 LED funzionanti e non sto usando il 6.

Passaggio 3: creare la scatola

Fare la scatola
Fare la scatola
Fare la scatola
Fare la scatola
Fare la scatola
Fare la scatola
Fare la scatola
Fare la scatola

Ho usato un Bosch GRO (come un Dremel) e un trapano per ritagliare la forma della batteria, il pulsante, la porta micro-usb, i connettori dell'Arduino e le fibre ottiche. (usa una maschera antipolvere!)

Incollato la batteria alla custodia con 2 cinturini.

Viti usate per montare la scheda Adafruit e il PCB.

L'attrito durante l'apertura e la chiusura ha danneggiato alcuni fili. Ho dovuto risaldarli e usare la colla per evitare che accada di nuovo.

Passaggio 4: preparare la cravatta

Preparare la cravatta
Preparare la cravatta
Preparare la cravatta
Preparare la cravatta
Preparare la cravatta
Preparare la cravatta

Rimosse le cuciture dalla parte inferiore della cravatta per adattarle al foglio di gomma.

Per nascondere l'hardware ed essere ancora in grado di accedervi, se necessario, ho deciso di utilizzare una cerniera.

Non sono bravo con la macchina da cucire, quindi la mia dolce mamma ha messo una cerniera sul retro della cravatta.

Fatto ciò, ho incollato il foglio di gomma nella cravatta. Avevo paura di usare troppa colla che saturasse il tessuto e fosse visibile dal davanti, quindi ho cercato di uniformarla e di non usarne troppa. Nel complesso sembra buono, ma in alcuni punti ho notato troppa o troppo poca colla, perché è passata attraverso il tessuto o non ha attaccato molto bene il tessuto. Fortunatamente questo è appena visibile a distanza ravvicinata in piena luce.

La scatola e la cravatta ora sono finite. È ora di incollare le fibre ottiche!

Passaggio 5: incollare le fibre ottiche

Incollare le fibre ottiche
Incollare le fibre ottiche
Incollare le fibre ottiche
Incollare le fibre ottiche
Incollare le fibre ottiche
Incollare le fibre ottiche
Incollare le fibre ottiche
Incollare le fibre ottiche

Il giocattolo aveva un grosso fascio di cavi in fibra ottica che si rompevano facilmente. All'inizio ho provato a incollarli uno per uno, ma presto ho notato che sarebbe stato meglio fare dei piccoli fasci e attaccarli subito al LED. Ciò renderebbe più facile tenerlo fermo finché la colla non si sarà asciugata. Ha incasinato il primo LED per capirlo.

Assicurati di usare una colla trasparente! Quello che ho usato si è asciugato molto lentamente e la colla ad asciugatura rapida che ho provato sul primo LED è diventata bianca, rendendo meno luminose alcune fibre del primo LED.

Ho incollato dei piccoli fogli di gomma nera per evitare che la luce fuoriesca dalla parte superiore e per separare i LED.

Uno dei fogli ha impedito la chiusura della custodia, quindi ho aggiunto un elastico per tenere chiuso il coperchio.

Passaggio 6: mettere le fibre ottiche attraverso la cravatta

Mettere le fibre ottiche attraverso la cravatta
Mettere le fibre ottiche attraverso la cravatta
Mettere le fibre ottiche attraverso la cravatta
Mettere le fibre ottiche attraverso la cravatta
Mettere le fibre ottiche attraverso la cravatta
Mettere le fibre ottiche attraverso la cravatta

Partendo dal basso, ho praticato dei buchi con un ago e ho fatto passare le fibre una ad una. Le fibre di ogni LED si diffondono casualmente sulla cravatta.

Ho incollato una striscia nera sul retro che doveva andare fino alla parte più piccola della cravatta per mantenere il peso della scatola, ma dopo aver fatto passare tutti i fili e sentito la tensione dei fili ho deciso di incollare tutto fino alla cravatta è stata un'idea migliore e ho tagliato la striscia.

Dato che i fili in fibra ottica del giocattolo erano così corti, era difficile farli passare su tutta la cravatta. Ero limitato nel posizionare la scatola e ho avuto difficoltà a rendere tutto piatto come volevo.

Passaggio 7: incollare le fibre ottiche alla cravatta

Incollare le fibre ottiche alla cravatta
Incollare le fibre ottiche alla cravatta
Incollare le fibre ottiche alla cravatta
Incollare le fibre ottiche alla cravatta
Incollare le fibre ottiche alla cravatta
Incollare le fibre ottiche alla cravatta
Incollare le fibre ottiche alla cravatta
Incollare le fibre ottiche alla cravatta

Ho incollato tutti i fili in fibra ottica al foglio di gomma per evitare che i fili si sfilassero dal foglio di gomma e per appiattire la fascetta.

Per essere sicuro di non incollare il morsetto alla cravatta quando ho fatto pressione su di esso ho messo della carta in mezzo. Non sembra un granché ma funziona bene. E non lo vedi quando è chiuso.

Dopo che la colla si è asciugata ho tagliato i fili sul davanti e ho tagliato un po' il foglio di gomma appena sopra il filo più alto, perché la cravatta era un po' troppo lunga.

Le foto con la camicia bianca sono state fatte prima di tagliare l'ultimo pezzo di gomma.

Passaggio 8: il codice

Sotto il codice che ho scritto per la cravatta.

Tutti i LED hanno una "media" impostata (non in realtà una media ma una luminosità media).

Non appena raggiunge quella media, deciderà con una probabilità 3/4 di passare a una luminosità inferiore. Inoltre imposta in modo casuale una nuova luminosità minima, luminosità massima, tempo di attesa per luminosità minima e massima e la velocità aumenta o diminuisce ogni giro (1-255) da 5 valori preimpostati. Quindi eseguirà un ciclo fino a raggiungere nuovamente la media. Solo 2 LED possono essere in un ciclo alto contemporaneamente.

Ogni stato è rappresentato da un valore intero (1-7) che determina se sta andando medio-basso, basso-medio, in attesa basso, in aggiornamento, ecc.

Per informazioni sul caricamento del codice su arduino, dai un'occhiata a www.arduino.cc

/* Starry Sky Tie * * Questo è uno script per sfumare casualmente 5 LED da una media a una luminosità inferiore * o superiore con impostazioni casuali inferiori, superiori e temporali * per sembrare un cielo stellato quando utilizzato con fibre ottiche. * In questo caso questi saranno attuati in parità. * * Possibilità su/giù = 1/4 su, 3/4 giù, con un massimo di 2 * che salgono al massimo contemporaneamente. * * La media rimane la stessa. * Le opzioni di minimo, massimo e tempo cambiano in modo casuale * da 5 opzioni ogni volta che un LED raggiunge nuovamente la media. * * Creato da Billy Jaspers, maggio 2019. *

/ Dichiara i pin

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

// Variabili temporali

unsigned long currentTime; tempo di attesa lungo non firmato[5]; unsigned long lastRound;

// Variabili LED

int luminosoMin [5] = { 10, 10, 10, 10, 10 }; // Luminosità minima int brightAvg [5] = { 200, 200, 200, 200, 200 }; // Luminosità media int brightMax[5] = { 240, 240, 240, 240, 240 }; // Luminosità massima int timeWaitLow[5] = { 1000, 1000, 1000, 1000, 1000 }; // Tempo di attesa int timeWaitAvg[5] = { 5000, 5000, 5000, 5000, 5000 }; // Tempo di attesa int timeWaitMax[5] = { 4000, 3000, 3000, 3000, 3000 }; // Tempo di attesa int incremento[5] = { 2, 5, 4, 5, 2 }; // Incremento di luminosità int currentBright[5]= { 200, 230, 210, 210, 235 }; // Luminosità attuale

// Possibilità di variabili LED

int brightMinPos[5] = { 5, 20, 40, 5, 20 }; // Possibilità di luminosità minima int brightMaxPos[5] = { 240, 245, 230, 225, 245 }; // Massime possibilità di luminosità int timeLowPos[5] = { 3000, 5000, 4000, 2000, 1000 }; // Tempo di attesa su possibilità di bassa luminosità int timeHighPos[5] = { 3000, 1000, 500, 2000, 4000 }; // Tempo di attesa su possibilità di alta luminosità int timeAvgPos[5] = { 3000, 5000, 4000, 7000, 8000 }; // Tempo di attesa sulle possibilità di luminosità media int incrementPos[5] = { 2, 4, 5, 3, 1 }; // incremento delle possibilità di luminosità

// Variabili

bool avvio = vero; // È necessario avviare le impostazioni di avvio?

// Variabili direzionali

/* 0 = In attesa su Media 1 = passa da Media a Bassa 2 = in attesa Bassa 3 = passa da Bassa a Media 4 = passa da Media a Max 5 = in attesa di Max 6 = passa da Alta a Media 7 = Aggiornamento variabili*/ int statusLED[5] = { 0, 0, 0, 0, 0 }; int quantitàHighLED = 0; int refreshRate = 50; bool statusWaiting[5] = { false, false, false, false, false}; // Il LED sta aspettando?

// Variabili casuali

lungo numerocasuale; // Long per memorizzare un numero casuale long randomNumberTwo; // Lungo per memorizzare il secondo numero casuale

// contatori

int i = 0; // Contatore per il ciclo principale

void setup() {

Serial.begin (115200); // Avvia serial randomSeed(analogRead(A0)); // Imposta seme casuale

// Dichiara gli output

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

// Scrivi i dati sui LED

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

// Ciclo principale

void loop() { if (avvio){ // Impostazioni di avvio lastRound = millis(); // Imposta lastRound per l'avvio writeToLED(); // Scrive i dati di avvio nel LED startup = false; // Disattiva l'avvio } currentTime = millis(); // Imposta l'ora corrente

if (currentTime - lastRound >= refreshRate){

for (i=0;i<5;i++){ if (statusLED == 7){ // -7- Led in aggiornamento randomNumber = random(5); luminosoMin = luminosoMinPos[numerocasuale]; // Imposta un valore casuale per la luminosità minima randomNumber = random(5); brightMax = brightMaxPos[numerocasuale]; // Imposta un valore casuale per la massima luminosità randomNumber = random(5); timeWaitLow = timeLowPos[numerocasuale]; // Imposta un valore casuale per il tempo di attesa basso randomNumber = random(5); timeWaitMax = timeHighPos[numerocasuale]; // Imposta un valore casuale per un tempo di attesa elevato randomNumber = random(5); timeWaitAvg = timeAvgPos[numerocasuale]; // Imposta un valore casuale per il tempo di attesa medio randomNumber = random(5); incremento = incrementoPos[numerocasuale]; // Imposta un valore casuale per il valore di incremento randomNumber = random(2); // Imposta un valore casuale per la direzione randomNumberTwo = random(2); // Imposta un valore casuale per la direzione if (randomNumber == 1 && randomNumberTwo == 0 && quantitàHighLED = brightAvg){ statusLED = 0; // Se nel punto più basso: Vai a Waiting Avg }else{ currentBright = currentBright+increment; // Else: luminosità più alta } }else if (statusLED == 2){ // -2- Waiting Low if (!statusWaiting){ // Se non aspetta: waitTime = millis(); // Imposta il tempo di attesa statusWaiting = true; // Inizia ad aspettare }else if(statusWaiting && currentTime-waitingTime >= timeWaitLow){ // Se wait AND timeWaitAvg è passato: statusWaiting = false; // Interrompi l'attesa LED di stato = 3; // Imposta statusLed su In attesa di aggiornamento } }else if (statusLED == 1){ // -1- Going Avg to Low if (currentBright <= brightMin){ statusLED = 2; // Se nel punto più basso: Vai a Waiting Low }else{ currentBright = currentBright-increment; // Else: Lower Brightness } }else if (statusLED == 6){ // -6- Passando da Max a Avg if (currentBright = timeWaitMax){ // Se l'attesa AND timeWaitAvg è passata: statusWaiting = false; // Interrompi l'attesa LED di stato = 6; // Imposta statusLed su Waiting for update } }else if (statusLED == 4){ // -4- Going Avg to Max if (currentBright >= brightMax){ statusLED = 5; // Se al punto più basso: Vai a Waiting High }else{ currentBright = currentBright+increment; // Else: luminosità maggiore } }else if (statusLED == 0){ // -0- In attesa alla media if (!statusWaiting){ // Se non è in attesa: waitTime = millis(); // Imposta il tempo di attesa statusWaiting = true; // Avvia l'attesa }else if(statusWaiting && currentTime-waitingTime >= timeWaitAvg){ // Se l'attesa AND timeWaitAvg è passata: statusWaiting = false; // Interrompi l'attesa LED di stato = 7; // Imposta statusLed su In attesa di aggiornamento } } } i=0; lastRound = millis(); // Impostato quando l'ultimo round è finito. writeToLED(); // Scrive tutti i dati sui LED } }

Passaggio 9: prodotto finale

Image
Image
Prodotto finale
Prodotto finale
Prodotto finale
Prodotto finale

Penso che abbia funzionato bene. La cravatta non è troppo spessa, rigida, lunga o pesante e l'effetto stella è fantastico.

Consigliato: