Aggiorna la tua ghirlanda natalizia con una matrice LED attivata dal movimento
Il Natale è di nuovo qui, e se è la tua vacanza preferita dell'anno o ti fa uscire in un sudore freddo, le decorazioni stanno iniziando a salire. Quest'anno, perché non incorporare alcune tecnologie fai-da-te nelle tue decorazioni per farle risaltare?
In questo progetto costruiremo una matrice 8 x 8 LED a prova di intemperie, attivata dal movimento ... per meno di $ 20. È progettato per adattarsi al centro di una ghirlanda natalizia standard, anche se potrebbe essere utilizzato in qualsiasi punto della casa. E dal momento che è alimentato a batteria, anche lontano da casa!
Elenco delle parti
Per questo progetto avrai bisogno di:
- Arduino.
- Ho usato il Nano per le sue dimensioni ridotte, ma potevi usare quasi tutte le guide per l'acquisto di Arduino con microcontrollore compatibile con Arduino: quale scheda dovresti acquistare? Guida all'acquisto di Arduino: quale scheda si dovrebbe ottenere? Ci sono così tanti diversi tipi di tavole Arduino là fuori, ti verrebbe perdonato per essere stato confuso. Quale dovresti comprare per il tuo progetto? Aiutaci, con questa guida all'acquisto di Arduino! Leggi di più .
- 64 LED rossi.
- Resistenze 8 x 220 Ohm.
- Sensore di movimento PIR.
- Molti kit di avvio Arduino Cosa è incluso in un kit di avvio Arduino? [MakeUseOf Explains] Cosa è incluso in un Arduino Starter Kit? [MakeUseOf Explains] Ho già introdotto l'hardware open source Arduino qui su MakeUseOf, ma non avrai bisogno di altro che l'effettivo Arduino per crearne qualcosa e iniziare davvero. I "kit di avvio" Arduino sono ... Leggi di più vieni con questi. Ho comprato un pacchetto multiplo da Amazon per $ 10.
- 1 pezzo di scheda di prototipazione.
- Quello usato qui era 9 x 7 cm, anche se è possibile utilizzare qualsiasi dimensione desiderata.
- Batteria 7-12v.
- Un semplice pacco batterie viene usato qui per motivi di budget, ma un caricatore per la banca mobile I migliori Pokemon Go Power Banks I migliori Pokemon Go Power Banks Pokemon Go batte fuori dalla batteria di un telefono. Spremere un po 'più succo di Pokemon dal tuo telefono richiede un power bank. Ma qual è la migliore batteria là fuori? Leggi di più può durare anche di più.
- Brevi pezzi di filo assortiti.
- Scatola Tupperware o custodia impermeabile simile.
- Assicurati che sia abbastanza grande da contenere tutti i componenti all'interno!
- Ghirlanda di Natale.
- Qualunque cosa accada, assicurati solo che la scatola del recinto si adatti al suo interno.
- Saldatore e saldatura.
Anche se non strettamente necessario in quanto è possibile saldare i componenti direttamente su Nano, ho anche trovato una piccola breadboard molto utile durante i test. Una pistola per colla a caldo aiuta anche a mettere insieme tutte le parti.
Questo progetto richiede un bel po 'di saldatura, e come un principiante può sembrare scoraggiante. Personalmente sono ancora un principiante nelle saldature e ho trovato che non è così impegnativo o che richiede tempo come sembra. Se sei anche nuovo a saldare qui ci sono alcuni buoni consigli per aiutarti a imparare a saldare, con questi semplici suggerimenti e progetti Impara come saldare, con questi semplici consigli e progetti Sei un po 'intimidito dal pensiero di un ferro caldo e metallo fuso? Se vuoi iniziare a lavorare con l'elettronica, avrai bisogno di imparare a saldare. Lasciaci aiutare. Leggi di più .
Se non sei davvero entusiasta dell'idea di saldare, questo progetto è possibile anche con strisce LED Weekend Project: Costruisci un gigantesco LED Pixel Display Weekend Project: Costruisci un display gigante a LED Pixel Amo i pixel LED: luminosi, facili da controllare, economico, e così versatile. Oggi li trasformeremo in un grande display a pixel che può essere appeso al muro. Leggi altro, o una matrice LED pronta all'uso che potresti avere nel tuo kit iniziale. Alcune modifiche al codice saranno necessarie se si decide di seguire quella rotta.
Configurare l'Arduino
Inizieremo con lo schema del circuito per Arduino e i fili che collegheremo al nostro sensore PIR e alla matrice LED.
All'interno di Matrix
Ora facciamo la nostra matrice 8 x 8 LED. È una buona idea iniziare con la creazione di una riga e una colonna della matrice, per assicurarsi che sia esattamente dove lo si desidera sulla scheda di prototipazione.
Nella foto sopra, tutti i LED sono posizionati in modo che gli anodi (la gamba più lunga e positiva) si trovino nella parte superiore della scheda prototipo. Questo è importante, poiché creeremo colonne di anodi comuni unendoli insieme e file di catodi comuni (la gamba negativa più corta). Ottenere questo adesso salverà il mal di testa più tardi!
Stiamo andando a costruire una matrice di catodo a riga comune, questo diagramma mostra come è tutto collegato.
All'inizio può sembrare un po 'scoraggiante, ma è una configurazione abbastanza semplice. In ogni riga, tutti i catodi sono uniti da destra a sinistra e quindi collegati a uno dei nostri pin Arduino. Dopo questo, facciamo lo stesso per ogni colonna di anodi. In questo modo, a seconda della colonna a cui applichiamo la potenza e della fila a cui ci uniamo a terra, possiamo attivare qualsiasi LED nell'array.
Lascia che inizi la saldatura
Inizia posizionando la prima fila di LED. Assicurati che tutti gli anodi siano rivolti verso l'alto e capovolgili. Ho trovato che aggiungere un altro LED in ogni angolo e attaccare un altro pezzo di protoboard in cima usando un cordino elastico ha aiutato a tenere tutto a posto.
Ora piegate una ad una la gamba catodica (corta) di ciascun LED a sinistra in modo che si sovrappongano l'una con l'altra. È più facile iniziare dal lato sinistro e lavorare correttamente. Se stai usando un pezzo più grande di protoboard, puoi saldarli prima alla lavagna e collegarli insieme usando i pad. Fare attenzione a non unire alcun catodo a nessun'altra linea sulla scheda o su uno qualsiasi degli anodi!
Ripeti questo processo per tutte e otto le righe e quando hai finito dovresti avere qualcosa che assomigli a questo:
Anodi di salto!
Le colonne di anodi sono un po 'più laboriose. Nel diagramma sopra, la curva degli anodi ogni volta che attraversano una fila di catodi. Questo perché non riescono a toccare le file. Dobbiamo piegare gli anodi sopra le file dei catodi e collegarli tra loro. Potresti scoprire che usare una penna per piegare le gambe aiuta molto.
Fallo per ogni fila di anodi e collega un resistore a ciascun anodo superiore. Probabilmente troverai più facile mettere la resistenza nel foro successivo nella protoboard e unire i pad usando la saldatura. Ora dovresti avere qualcosa di simile a questo:
Congratulazioni! La matrice LED è completa. Controlla attentamente la saldatura in questa fase per assicurarti che non vi siano interruzioni e che nessuna delle colonne tocchi le righe. Non ti preoccupare se non sembra carino, abbiamo solo bisogno che funzioni! È possibile controllare ciascun LED individualmente ora collegando 5v a qualsiasi estremità della colonna e collegando a terra qualsiasi estremità della riga.
Se tutto va bene, collega i cavi di aggancio a ogni colonna e ogni fila e collegali al tuo Arduino come mostrato nello schema sopra.
Prendiamo il codice
Apri l'IDE Arduino e scegli la tua scheda e la tua porta. Se sei nuovo di Arduino, consulta questa guida introduttiva. Guida introduttiva ad Arduino: Guida per principianti Guida introduttiva ad Arduino: Guida per principianti Arduino è una piattaforma di prototipazione elettronica open source basata su hardware e software flessibili e facili da utilizzare. È pensato per artisti, designer, hobbisti e chiunque sia interessato a creare oggetti o ambienti interattivi. Leggi di più
Inserisci questo codice nell'editor. È un codice abbastanza denso se non lo conosci, ma è disponibile qui completamente annotato per aiutare a capire come funziona.
const int row [8] = 2,3,4,5,6,7,8,9; const int col [8] = 10,11,12,14,15,16,17,18; int pirPin = 19; int pirState = LOW; int val = 0; bool pirTrigger = falso; const int pirLockTime = 12000; int pirCountdown = pirLockTime; int pixel [8] [8]; const int refreshSpeed = 500; int countDown = refreshSpeed; int currentCharIndex = 0; typedef bool CHAR_MAP_NAME [8] [8]; const CHAR_MAP_NAME vuoto = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ; const CHAR_MAP_NAME threedownthreein = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ; const int noOfFrames = 5; const CHAR_MAP_NAME * charMap [noOfFrames] = & blank, & threedownthreein, & blank, & blank, & threedownthreein; void setup () for (int i = 0; i<8;i++) pinMode(row[i], OUTPUT); pinMode(col[i],OUTPUT); //motion sensor pinMode(pirPin, INPUT); digitalWrite(col[i], LOW); void screenSetup() const CHAR_MAP_NAME *thisMap = charMap[currentCharIndex]; for (int x = 0; x < 8; x++) for (int y = 0; y < 8; y++) bool on = (*thisMap)[x][y]; if(on) pixels[x][y] = HIGH; else pixels[x][y] = LOW; currentCharIndex++; if(currentCharIndex>= noOfFrames) currentCharIndex = 0; void refreshScreen () for (int currentRow = 0; currentRow < 8; currentRow++) digitalWrite(row[currentRow], LOW); for (int currentCol = 0; currentCol < 8; currentCol++) int thisPixel = pixels[currentRow][currentCol]; digitalWrite(col[currentCol], thisPixel); if (thisPixel == HIGH) digitalWrite(col[currentCol], LOW); digitalWrite(row[currentRow], HIGH); void loop() val = digitalRead(pirPin); if (val == HIGH) pirTrigger = true; else if (val == LOW && pirCountdown <=0) pirTrigger=false; pirCountdown = pirLockTime; if(pirTrigger==true && pirCountdown > 0) refreshScreen (); conto alla rovescia--; pirCountdown--; if (conto alla rovescia <= 0) countDown = refreshSpeed; screenSetup();
Le parti importanti da capire sono:
Il refreshSpeed variabile. Questa variabile determina il modo in cui il tempo tra ogni schermata si aggiorna. Un numero maggiore significa un'attesa più lunga.
Il const CHAR_MAP_NAMES. Qui è dove metti ogni mappa di caratteri (o cornice se è più facile pensarli in quel modo) che vuoi mostrare.
Il noOfFrames variabile. Determina quanti fotogrammi vengono visualizzati in una riproduzione completa. Si noti che può essere diverso dal numero di mappe di caratteri. Ad esempio se si desidera visualizzare “UN GATTO” avresti solo bisogno di definire quattro fotogrammi distinti: vuoto, an UN, un C e a T.
Ora, quando il sensore di movimento rileva il movimento, lo schermo a LED dovrebbe lampeggiare il LED tre in basso e tre in alto a sinistra. Se non viene visualizzato correttamente, ricontrolla il cablaggio per assicurarsi che tutto sia nel posto giusto! Quando aggiungi la tua immagine o messaggio, potrebbe essere interrotto presto o giocare troppo a lungo. Prova a cambiare il pirLockTime variabile finché non viene riprodotto per la quantità di tempo desiderata.
Il processo di aggiunta di ciascun frame allo schermo a LED può essere un po 'noioso, quindi abbiamo creato questo foglio di calcolo per semplificare la creazione di testo e immagini per la matrice LED (crea una copia del foglio Google in modo da poterlo modificare ).
Usando il foglio di calcolo, puoi copiare le tue creazioni direttamente nel codice.
Fallo coraggioso degli elementi
Ora che abbiamo una matrice LED funzionante, abbiamo bisogno di un modo per sopravvivere al clima invernale. Anche se questo metodo potrebbe non reggere a una tempesta tropicale o essere inzuppato nella piscina, dovrebbe essere sufficiente a mantenere tutti i componenti elettronici al sicuro dagli elementi.
Ho usato una scatola Tupperware rotonda con un diametro di 15 cm e una profondità di 6 cm che si adatta perfettamente ai miei componenti. Taglia una finestra nel coperchio leggermente più grande della tua matrice LED, e applica un film di plastica trasparente, assicurandoti di non lasciare spazi vuoti per entrare. La plastica robusta contenuta in alcune confezioni potrebbe funzionare meglio, ma questo era tutto ciò che avevo. È anche possibile montare alcuni supporti per la protoboard, anche se entrambi i lavori potrebbero essere facilmente eseguiti con un robusto nastro impermeabile.
Quindi, fai un piccolo foro sotto la finestra, quindi allargalo attentamente e lentamente fino a quando il sensore PIR non riesce a entrare. Vuoi che si adatti al meglio possibile.
Attacca il tuo sensore PIR e riempi tutti gli spazi che puoi vedere con nastro adesivo o colla a caldo.
Pulisci qualsiasi nastro o colla che potrebbe impedire alla scatola di chiudersi correttamente e aggiungi tutti i componenti alla confezione insieme alla batteria. Qui è stata utilizzata una semplice batteria AA, collegata direttamente al pin VCC di Nano. Alcuni piccoli pezzi di sughero sono stati aggiunti all'esterno del recinto per aiutare ad appendere la costruzione al centro della corona.
E siamo fatti
Una volta che la scatola è sigillata, appendila con la ghirlanda natalizia e attendi le reazioni dei tuoi visitatori per il benvenuto personale di alta $ 20! Potresti anche fare un ulteriore passo avanti e creare fantastiche decorazioni fai-da-te Decorazioni natalizie stampate in 3D per vacanze fantastiche perfette Decorazioni natalizie stampate in 3D per vacanze da sogno perfette Perché non risparmiare un po 'di soldi questo Natale e stampare in 3D alcuni ornamenti di festa per la tua casa? Leggi di più anche da altre parti della casa!
In questo progetto abbiamo creato da zero un sistema di matrice LED autonomo, cioè attivato dal movimento e in grado di sopravvivere all'esterno in tutto ma senza il minimo tempo. Questa build sarà utile molto tempo dopo che la stagione delle vacanze è finita in altri progetti, e la stessa tecnica potrebbe essere utilizzata per creare custodie resistenti alle intemperie anche per altri progetti.
Hai costruito qualcosa per dare al tuo Natale un tocco fai da te? Stai organizzando dei regali natalizi a tema fai-da-te quest'anno? Fateci sapere nei commenti qui sotto!
Scopri di più su: Arduino, Elettronica.