Taula de continguts:

Digispark & WS2812 Rainbow Wheel in a Box: 4 Passos (amb imatges)
Digispark & WS2812 Rainbow Wheel in a Box: 4 Passos (amb imatges)

Vídeo: Digispark & WS2812 Rainbow Wheel in a Box: 4 Passos (amb imatges)

Vídeo: Digispark & WS2812 Rainbow Wheel in a Box: 4 Passos (amb imatges)
Vídeo: 555 - Beginner Electronics with a Digispark Micro-Controller 2024, Desembre
Anonim
Image
Image
Digispark & WS2812 Rainbow Wheel in a Box
Digispark & WS2812 Rainbow Wheel in a Box
Digispark i WS2812 Rainbow Wheel in a Box
Digispark i WS2812 Rainbow Wheel in a Box

Aquest petit projecte s’ha realitzat al voltant d’una caixa de fusta de 10x6x5cm molt ben tallada que vaig trobar en una botiga.

La seva millor característica, que realment no s’ha capturat correctament a la càmera, és il·luminar-se amb colors brillants i saturats, als costats de la tapa tallada en arbre de la caixa.

A l'altra banda, tingueu en compte que l'ús d'un efecte arc de Sant Martí en una tira de LED estrets RGB 5050 sempre donarà lloc a una il·luminació blanquinosa a uns centímetres dels LED, ja que el color de cada píxel aviat es barreja amb el dels seus veïns. Si voleu evitar aquest efecte, podeu provar d’utilitzar una lent d’enfocament

La brillantor de la làmpada es manté proporcional a la llum ambiental gràcies a un LDR: la llum brillarà en condicions de llum diürna i no serà massa brillant quan s’utilitzi com a llum nocturna, a les fosques.

Subministraments

Factura de materials:

  • una placa Digispark (clon) Attiny85, amb el seu carregador d'arrencada Micronucleus
  • una barra WS2812 de 8x
  • un LDR, que s'utilitza per sintonitzar la brillantor de la làmpada en funció de l'entorn
  • una resistència de tracció de 10KΩ per al LDR
  • un micro cable USB per programar el Digispark i per alimentar el llum una vegada acabat
  • una caixa de fusta buida
  • una font d'alimentació de 5V⎓ (capaç de proporcionar no menys de 500mA)

Habilitats i eines:

  • PlatformIO (que s’executa en Visual Studio Code) com a IDE, però qualsevol IDE d’Arduino farà la feina
  • un soldador, una mica de fil de soldar i habilitats bàsiques de soldadura
  • alguns cablejats, tisores
  • una mica de cola, pinces
  • una mica de pintura opaca (per cobrir el LED Digispark i per protegir el LDR de la llum del llum).

Pas 1: Digispark i PlatformIO

Digispark (i tots els clons que impliquen el mateix microcontrolador de 8 bits) és una placa de ruptura construïda al voltant d’un AVR Attiny85, capaç de comunicar-se directament amb USB gràcies a un carregador d’arrencada Micronucleus. Trobareu més informació al seu wiki:

PlatformIO és l’ecosistema que he utilitzat per programar el Digispark. Per treballar-hi, heu d’instal·lar Visual Studio Code

Pas 2: Esquema i cablejat

Esquema i cablejat
Esquema i cablejat
Esquema i cablejat
Esquema i cablejat
Esquema i cablejat
Esquema i cablejat

Soldadura

  1. connectar tres cables a la barra WS2812 (terra, entrada de potència i entrada de dades)
  2. terra de filferro i Vcc a 5V i pin GND del Digispark
  3. soldeu el cable restant al pin P0 de Digispark
  4. soldeu una resistència de 10KΩ als pins GND i P2 de la placa
  5. utilitzeu dos cables per connectar el LDR als pins 5V i P2 (he utilitzat cables esmaltats amb prou feines per motius estètics)

Pas 3: Firmware

Cerqueu el codi d’aquest projecte al meu GitHub:

Està bé saber-ho:

  • #include s'ha d'utilitzar mentre es treballa amb PlatformIO
  • els paràmetres, com l'assignació de pins, el nombre de LEDs WS2812, la velocitat de la roda arc de Sant Martí i els llindars foscos / lluminosos tant per a LEDs com per a LDR es troben al principi del codi
  • Adafruit Neopixel és la biblioteca que s’utilitza per controlar els LED WS2812
  • La biblioteca RunningMedian s'utilitza per fer més estables les lectures LDR; a causa dels límits establerts, mapejant els límits de la brillantor del LED, això és especialment agradable en condicions de poca brillantor, on una petita fluctuació pot provocar un parpelleig molest
  • No trobareu cap intent de bloquejar l’Attiny85, de manera que el projecte es mantindrà editable

Alguns consells (que apareixen també al fitxer README.md a GitHub):

  • Per penjar el codi, assegureu-vos de tenir un cable USB amb tots els pins connectats: els cables de càrrega econòmics solen tenir només + 5 V i connectats a terra
  • La càrrega de PlatformIO a DigiSpark necessita que connecteu el DigiSpark després de compilar-lo, tot i que la consola no adverteix "ara és hora de connectar el vostre DigiSpark", tal com fa Arduino IDE.
  • Solució ràpida del problema en carregar a DigiSpark des de PlatformIO a MacOS: número 111 de PIO
  • Els carregadors USB barats poden proporcionar una sortida bruta / sorollosa, cosa que pot fer que els LED parpelleguin de manera estranya sobretot amb poca brillantor: assegureu-vos de tenir una font neta de 5VDC o filtrar afegint un condensador (o un circuit més adequat)

Pas 4: carcassa i acabat

Carcassa i acabat tàctil
Carcassa i acabat tàctil
Carcassa i acabat tàctil
Carcassa i acabat tàctil
Carcassa i acabat tàctil
Carcassa i acabat tàctil
  • Feu un forat a la caixa que trieu per allotjar el projecte per connectar el cable USB. Tingueu en compte que, com més gran sigui el forat al voltant del connector micro USB, més fuites de llum tindrà la barra LED, tret que no proporcioneu cap segell opac.
  • Tallar un forat per al LDR; assegureu-vos de fer que no apunti cap a la zona que serà il·luminada pels LED, en cas contrari l’autoregulació caurà en bucle
  • Graveu la superfície interior per deixar espai a la barra LED, ja que no hauríeu de veure directament els LED mentre mireu la vostra làmpada
  • Segellar amb un mitjà opac la part inferior de la LDR, per evitar qualsevol interferència en la detecció de la brillantor de l'entorn causada per la barra WS2812
  • Utilitzeu una gota de pintura opaca per emmascarar el LED d’alimentació Digispark, evitant així que brilli dins de la caixa
  • Enganxeu el tauler Digispark, la barra LED, el LDR i tots els cables per evitar que l’interior de la caixa buida sembli desordenat
  • Preveu un cable USB amb un interruptor per encendre i apagar fàcilment la llum

Recomanat: