Sommario:

Digispark & WS2812 Ruota Arcobaleno in Scatola: 4 Passaggi (con Immagini)
Digispark & WS2812 Ruota Arcobaleno in Scatola: 4 Passaggi (con Immagini)

Video: Digispark & WS2812 Ruota Arcobaleno in Scatola: 4 Passaggi (con Immagini)

Video: Digispark & WS2812 Ruota Arcobaleno in Scatola: 4 Passaggi (con Immagini)
Video: Rainbow wheel (8x WS2812, DigiSpark, NeoPixel) 2024, Dicembre
Anonim
Image
Image
Digispark e ruota arcobaleno WS2812 in una scatola
Digispark e ruota arcobaleno WS2812 in una scatola
Digispark e WS2812 Ruota arcobaleno in scatola
Digispark e WS2812 Ruota arcobaleno in scatola

Questo piccolo progetto è stato realizzato attorno a una scatola di legno 10x6x5 cm ben intagliata che ho trovato in un negozio.

La sua caratteristica migliore, che in realtà non è stata catturata correttamente dalla fotocamera, è quella di illuminare con colori brillanti e saturi i lati del coperchio intagliato ad albero della scatola.

D'altra parte, tieni presente che l'uso di un effetto arcobaleno su una striscia di LED RGB 5050 stretti risulterà sempre in un'illuminazione biancastra entro alcuni centimetri dai LED, poiché il colore di ogni pixel si mescola presto con i suoi vicini. Se vuoi evitare questo effetto, puoi provare a usare qualche obiettivo di messa a fuoco

La luminosità della lampada è mantenuta proporzionale alla luce ambientale grazie a un LDR: la lampada brillerà in condizioni di luce diurna e non sarà troppo brillante se utilizzata come luce notturna, al buio.

Forniture

Distinta base:

  • una scheda Attiny85 Digispark (clone), con il suo bootloader Micronucleus
  • una barra 8x WS2812
  • un LDR, utilizzato per regolare la luminosità della lampada a seconda dell'ambiente circostante
  • una resistenza di pull-up da 10KΩ per LDR
  • un micro cavo USB per programmare il Digispark e per alimentare la lampada una volta terminato
  • una scatola di legno vuota
  • una fonte di alimentazione da 5V⎓ (in grado di fornire non meno di 500mA)

Competenze e strumenti:

  • PlatformIO (in esecuzione su Visual Studio Code) come IDE - qualsiasi IDE Arduino farà il lavoro, però
  • un saldatore, del filo di saldatura e abilità di saldatura di base
  • alcuni cavi, forbici
  • un po' di colla, pinzette
  • della vernice opaca (per coprire Digispark LED e per proteggere l'LDR dall'influenza della luce della lampada)

Passaggio 1: Digispark e PlatformIO

Digispark (e ogni clone che coinvolge lo stesso microcontrollore a 8 bit) è una scheda breakout costruita attorno a un AVR Attiny85, in grado di comunicare direttamente tramite USB grazie a un bootloader Micronucleus. Si prega di trovare ulteriori informazioni sul suo wiki:

PlatformIO è l'ecosistema che ho usato per programmare Digispark. Per lavorare con esso, devi installare Visual Studio Code

Passaggio 2: schema e cablaggio

Schema e cablaggio
Schema e cablaggio
Schema e cablaggio
Schema e cablaggio
Schema e cablaggio
Schema e cablaggio

saldatura

  1. collegare tre fili alla barra WS2812 (terra, ingresso alimentazione e ingresso dati)
  2. filo di terra e Vcc a 5V e pin GND del Digispark
  3. saldare il filo rimanente al pin P0 di Digispark
  4. saldare una resistenza da 10KΩ ai pin GND e P2 della scheda
  5. utilizzare due fili per collegare l'LDR ai pin 5V e P2 (ho usato fili smaltati appena visibili per motivi estetici)

Passaggio 3: firmware

Trova il codice per questo progetto sul mio GitHub:

Bello sapere:

  • #include deve essere utilizzato mentre si lavora con PlatformIO
  • i parametri, come l'assegnazione dei pin, il numero di LED WS2812, la velocità della ruota arcobaleno e le soglie di buio/luminosità sia per LED che LDR sono all'inizio del codice
  • Adafruit Neopixel è la libreria utilizzata per controllare i LED WS2812
  • La libreria RunningMedian viene utilizzata per rendere più stabili le letture LDR; a causa dei limiti impostati, mappando i limiti di luminosità del LED, questo è particolarmente utile in condizioni di bassa luminosità, dove una piccola fluttuazione può causare un fastidioso sfarfallio
  • Non troverai alcun tentativo di bloccare Attiny85, quindi il progetto rimarrà modificabile

Alcuni suggerimenti (che compaiono anche nel file README.md su GitHub):

  • Per caricare il codice, assicurati di avere un cavo USB con ogni pin cablato: i cavi di ricarica economici spesso hanno solo +5V e cablati a terra
  • Il caricamento da PlatformIO a DigiSpark richiede che tu colleghi DigiSpark dopo la compilazione, anche se la console non avverte "ora è il momento di collegare DigiSpark", come fa Arduino IDE.
  • Soluzione rapida per il problema durante il caricamento su DigiSpark da PlatformIO su MacOS: problema PIO 111
  • I caricabatterie USB economici possono fornire un'uscita sporca/rumorosa, che potrebbe far sfarfallare i LED in modo strano soprattutto a bassa luminosità: assicurati di avere una sorgente 5VDC pulita o di filtrare aggiungendo un condensatore (o un circuito più appropriato)

Passaggio 4: rivestimento e tocco finale

Involucro e tocco finale
Involucro e tocco finale
Involucro e tocco finale
Involucro e tocco finale
Involucro e tocco finale
Involucro e tocco finale
  • Fai un buco nella scatola che preferisci per ospitare il progetto, per collegare il cavo USB. Tieni presente che più grande è il foro attorno al connettore micro USB, maggiore è la perdita di luce dalla barra LED, a meno che tu non fornisca un sigillo opaco.
  • Scava un buco per l'LDR; assicurati di farlo puntare non verso l'area che verrà illuminata dai led, altrimenti l'autoregolazione cadrà in loop
  • Incidi la superficie interna per fare spazio alla barra LED, poiché non dovresti voler vedere direttamente i LED mentre guardi la tua lampada
  • Sigillare con un mezzo opaco il fondo dell'LDR, per evitare qualsiasi interferenza nel rilevamento della luminosità dell'ambiente causata dalla barra WS2812
  • Usa una goccia di vernice opaca per mascherare il led di alimentazione di Digispark, evitando così che brilli all'interno della scatola
  • Incolla la scheda Digispark, la barra LED, l'LDR e ogni cavo per evitare che l'interno della tua scatola vuota sembri disordinato
  • Prevedere un cavo USB con interruttore, per accendere e spegnere facilmente la lampada

Consigliato: