Sommario:

42 LED RGB Pixel Art Painting: 5 passaggi
42 LED RGB Pixel Art Painting: 5 passaggi

Video: 42 LED RGB Pixel Art Painting: 5 passaggi

Video: 42 LED RGB Pixel Art Painting: 5 passaggi
Video: PIXEL ANIMATION | ARDUINO | DIY | PIXEL ART | LED MATRIX DISPLAY | WITH TIMESTAMPS | STEP BY STEP 2024, Dicembre
Anonim
42 LED RGB Pixel Art Pittura
42 LED RGB Pixel Art Pittura

Hey, Quindi, per un compito scolastico chiamato "Se questo, allora quello" ho dovuto creare un //qualcosa// interattivo usando uno starterkit Arduino Uno (e qualsiasi altra cosa fosse disposto a comprarsi). Visto che sto facendo uno studio Arte/Tecnologia, volevo fare una combinazione di entrambi (arte e tecnologia). Ho pensato che avrei realizzato un dipinto composto da tanti LED RGB quanti potevo inserire sul mio Arduino e avrei lasciato che il giocatore/artista scorresse manualmente quei LED RGB e scegliesse un colore. In questo modo possono creare la propria "pixel art"!

Passaggio 1: alcune informazioni di base e teoria

Va bene così, non giriamo intorno al cespuglio. Se vuoi realizzare questo progetto: è difficile. Mi ci sono volute molte ore per capire/imparare cosa fare, e ancora di più per realizzarlo effettivamente, ma se vuoi davvero una scatola piena di filo metallico che possa creare "dipinti" molto piccoli, ti insegnerò come.

Quindi, per prima cosa. Vogliamo il maggior numero possibile di LED/LED RGB sul nostro Arduino. Più LED (RGB) colleghi, più dettagliati puoi realizzare il tuo "dipinto" (10x10 pixel ti danno più spazio di manovra rispetto a 2x2 a destra). Suppongo che ci siano più modi per ottenere effettivamente molti LED (RGB) sui tuoi 13 pin digitali (cose come un registro a scorrimento) ma ho usato un metodo chiamato "Charlieplexing". Mi collegherò a un istruibile che mi ha aiutato a capire questo concetto (sul serio lo spiegano molto bene), ma ti darò anche la versione rapida qui. Charlieplexing va come segue:

Metti un LED tra il pin 1 e il pin 2, se imposti il pin 1 su HIGH e 2 su LOW il cerchio funzionerà senza intoppi e il LED si accenderà. Nozioni di base. Bene, ora colleghi un altro LED, ma capovolto. L'estremità lunga è sul 2 e l'estremità corta è sul pin1. Ora se giri il pin 2 su HIGH e il pin 1 su LOW, il tuo secondo LED si accenderà e il primo rimarrà spento perché il flusso sarà sbagliato. Ora puoi collegare 2 LED su 2 pin. Se otteniamo il 3° pin nel mix, puoi fare questo trucco tra 1 e 2, 1 e 3 e 2 e 3. Sono 6 LED. Questo continua, 5 pin ci concederanno (2 + 4 + 6 + 8) 20 LED. L'utilizzo di tutti e 13 i pin digitali ci offre 156 opzioni. Sono 156 LED che puoi accendere e spegnere individualmente.

(va bene così per quelli di voi che se lo stanno chiedendo. Sì, quando hai molto è impossibile averne effettivamente alcuni allo stesso tempo, ma non preoccuparti, l'arduino può passare da un LED all'altro così rapidamente che l'occhio umano non può vedere lo sfarfallio)

(Spiegazione migliore e più dettagliata, con immagini)

Ok, quindi, con un grande sforzo quando si tratta di cablaggio (ne parlerò più avanti), possiamo creare una griglia di LED, ma ammettiamolo. I LED sono terribilmente noiosi. Come si può fare una foto con solo 2 colori? Suppongo che potresti, ma è molto più bello se hai più colori tra cui scegliere, giusto? Giusto. Quindi passiamo ai LED RGB!

I LED RGB sono fondamentalmente 3 LED in 1. Condividono un catodo o anodo comune (dove entra o esce l'alimentazione) e gli altri 3 "gambe" sono il LED rosso verde e blu. Tenendo questo a mente, sì, possiamo charlieplex anche loro! Ogni LED RGB conta per 3 LED normali. In questo modo puoi ancora accenderli e spegnerli singolarmente e creare fantastici colori tra cui scegliere! L'unico aspetto negativo è che questo rende le cose molto più difficili in quanto devi mappare/pianificare e cablare 3 volte il numero di LED che dovevi originariamente.

Ho optato per 42 LED RGB su 13 pin. Quello è 126 LED normali…..abbastanza il numero. Lascia che ti dica come ho fatto.

Passaggio 2: pianificazione

Pianificazione
Pianificazione

Sì, questo passaggio è abbastanza semplice una volta compresa la teoria alla base di ciò che stai facendo. Fondamentalmente scrivi tutti i tuoi LED e pianifichi quale pin deve andare a quale "gamba" di quale LED RGB in modo da coprire tutte le tue opzioni. Ho allegato una foto della mia pianificazione, sentiti libero di usare anche quella (non ho usato tutte le opzioni disponibili visto che "solo" avevo bisogno di 126 connessioni su 156. L'ho strutturato in questo modo perché renderebbe la costruzione un po' più fattibile).

È importante metterlo su carta, ne avrai bisogno in seguito per codificare. Se non lo scrivi e incasini 1 connessione, il codice non funzionerà per quel LED.

Passaggio 3: il codice

Ok, quindi se hai già un'idea su come cablare 2 LED RGB in questo modo su 2 pin: vai avanti! È bello controllare il codice, ma ti assicuro che funziona! Ho provato a fare il più possibile di codifica "pulita" (potresti anche gestirlo con gli interruttori negli interruttori ma è solo una seccatura terribile che ti fa scrivere tutto il tuo codice x42, mi ha fatto capire che probabilmente c'era un migliore modo).

L'obiettivo del codice è il seguente. Si parte da LED1. Il pulsante 1 ti consente di passare al LED successivo ma il LED precedente rimane acceso. Il pulsante 2 consente di tornare al LED precedente, il pulsante 3 consente di cambiare il colore. Il LED attualmente selezionato lampeggia in modo da poter vedere quale LED è "selezionato".

Per realizzare questo ho lavorato con gli array. Ho creato una classe LED che utilizza le informazioni che hai annotato durante la fase di pianificazione per vedere quale pin ha bisogno per creare un determinato colore. Li metto tutti in un array e lascio che arduino passi attraverso il LEDarray per determinare quale è acceso e attraverso il colorarray per determinare quale colore è selezionato (il colore è determinato dall'interruttore che consente di selezionare 7 colori). Il lampeggio è regolato da un'istruzione if.

Il codice è allegato, sentiti libero di scaricarlo e utilizzarlo. La sezione dei commenti è aperta per le domande se c'è qualcosa che non capisci, ma puoi praticamente copiare e incollare!

Passaggio 4: la parte più difficile

La parte più difficile
La parte più difficile
La parte più difficile
La parte più difficile

Quindi ora hai un'idea, un codice funzionante… ma non il prodotto vero e proprio. Questa è di gran lunga la parte più orribile di questo progetto e ti consiglierei di non prenderla alla leggera. Ricordi tutte quelle gambe diverse che finiscono tutte nello stesso perno? beh sì … devi creare la tua griglia di LED, quindi collegare ogni gamba a ogni altra gamba che deve andare allo stesso pin, e poi collegarli a detto pin. Questa è di gran lunga la parte più difficile e nemmeno la mia è risultata perfetta al 100%, se sei bravo a saldare potresti avere una possibilità però.

Ho messo una fila di LED RGB alla volta e ho collegato un filo di rame a ciascuna gamba (consiglio un filo di rame con involucro/involucro. Il mio era troppo spesso e mi ha causato MOLTO dolore). Fai attenzione che due gambe o due fili non si tocchino! quindi "semplicemente" collega tutti i fili che devono andare allo stesso pin e poi collegali a un resistore e collegalo a detto pin. Sono sicuro che ci sia un modo "più sicuro" per farlo, ma sono sicuro che uno annegherebbe nel filo mentre si prova e onestamente … la tua breadboard è così grande!

(ho aggiunto un disegno che potrebbe semplificare questo passaggio. Ti dice quale gamba deve andare a quale pin, per seguire esattamente il mio codice.)

Mi ci sono voluti 4 giorni interi di lavoro, ma ora ogni LED (meno 3-4 che ho rovinato) può essere acceso singolarmente!

quindi devi solo collegare alcuni pulsanti e presto! Il tuo dipinto Pixel Art!

Questo ragazzo ha anche fatto un esempio di cablaggio, è davvero utile

Passaggio 5: gongolare. Assolutamente gongolante

Se sei un principiante (come me) e sei riuscito a fare qualcosa di simile anche a questo nido di cavi di topi e si accende; gongolare. Hai fatto davvero bene!

Se hai domande/commenti, lasciali qui sotto, cercherò di aiutarti se posso!

Consigliato: