Sommario:
- Passaggio 1: schemi e hardware
- Passaggio 2: rendere il PCB che ospita i LED
- Passaggio 3: creare la scatola
- Passaggio 4: preparare la cravatta
- Passaggio 5: incollare le fibre ottiche
- Passaggio 6: mettere le fibre ottiche attraverso la cravatta
- Passaggio 7: incollare le fibre ottiche alla cravatta
- Passaggio 8: il codice
- Passaggio 9: prodotto finale
Video: Cravatta Led Cielo Stellato: 9 Passaggi (con Immagini)
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:02
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
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
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
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
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
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
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
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
Penso che abbia funzionato bene. La cravatta non è troppo spessa, rigida, lunga o pesante e l'effetto stella è fantastico.
Consigliato:
Zucca di Halloween con un occhio animatronico in movimento - Questa zucca può alzare gli occhi al cielo!: 10 passaggi (con immagini)
Zucca di Halloween con un occhio animatronico in movimento | Questa zucca può roteare gli occhi!: in questo tutorial imparerai come creare una zucca di Halloween che terrorizzi tutti quando i suoi occhi si muovono. Regola la distanza di attivazione del sensore a ultrasuoni sul valore corretto (passo 9) e la tua zucca pietrificherà chiunque osi prendere una canna
Cravatta per pianoforte funzionante: 6 passaggi
Cravatta per pianoforte funzionante: gli anni '80 hanno portato a molti grandi successi nella moda e nella musica. C'era musica synth, keytar funky, leggings e la classica cravatta da pianoforte da uomo. Queste cravatte venivano indossate ironicamente (e non ironicamente) da molti alla moda (e fuori moda)
Stazione meteorologica portatile per osservatori del cielo notturno: 7 passaggi (con immagini)
Stazione meteorologica portatile per osservatori del cielo notturno: l'inquinamento luminoso è uno dei tanti problemi del mondo. Per risolvere questo problema, dobbiamo sapere quanto il cielo notturno è inquinato dalla luce artificiale. Molti studenti con insegnanti nel mondo cercano di misurare l'inquinamento luminoso con sensori costosi. Ho deciso di
Fotometro per la luminosità del cielo notturno TESS-W: 8 passaggi (con immagini)
Fotometro della luminosità del cielo notturno TESS-W: TESS-W è un fotometro progettato per misurare e monitorare continuamente la luminosità del cielo notturno per studi sull'inquinamento luminoso. È stato creato durante il progetto europeo STARS4ALL H2020 con un design aperto (hardware e software). Il fotometro TESS-W
Cappotto stellato: 6 passaggi (con immagini)
Star Coat: Era da un po' che desideravo giocare con la tecnologia indossabile e questo è il mio primo tentativo. Combina il mio interesse per l'elettronica per hobby con il mio amore per lo spazio e le cose luccicanti e consiglierei di provare questo progetto a chiunque desideri delle costellazioni