Taula de continguts:
- Pas 1: espai de color RGB
- Pas 2: El bon vaixell Lissajous
- Pas 3: Espereu: com podem conduir un LED amb una ona sinusoïdal?
- Pas 4: construïm un patró 3D important
- Pas 5: unir-ho tot a l'Arduino
- Pas 6: Què passa a continuació?
Vídeo: Exploració de l’espai de color: 6 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:15
Els nostres ulls perceben la llum a través de receptors que són sensibles als colors vermell, verd i blau de l’espectre visual. La gent ha utilitzat aquest fet per proporcionar imatges en color a través de pel·lícules, televisió, ordinadors i altres dispositius durant els darrers cent anys aproximadament.
A la pantalla d'un ordinador o telèfon, les imatges es mostren en molts colors canviant la intensitat dels diminuts LED vermells, verds i blaus que estan al costat de la pantalla. Es poden mostrar milions de colors diferents canviant la intensitat de la llum dels LED vermells, verds o blaus.
Aquest projecte us ajudarà a explorar l'espai de color vermell, verd i blau (RGB) mitjançant un Arduino, un LED RGB i una mica de matemàtiques.
Podeu pensar en les intensitats dels tres colors, vermell, verd i blau, com a coordenades en un cub, on cada color es troba al llarg d’un eix i els tres eixos són perpendiculars entre si. Com més a prop estigueu del punt zero, o origen, de l'eix, menys color es mostrarà. Quan els valors dels tres colors es troben al punt zero, o origen, el color és negre i el LED RGB està completament apagat. Quan els valors dels tres colors són tan elevats (en el nostre cas, 255 per a cadascun dels tres colors), el LED RGB està completament encès i l’ull percep aquesta combinació de colors com a blanc.
Pas 1: espai de color RGB
Gràcies a Kenneth Moreland pel permís per utilitzar la seva bonica imatge.
Ens agradaria explorar les cantonades del cub d’espai de color 3D mitjançant un LED RGB connectat a un Arduino, però també volem fer-ho d’una manera interessant. Ho podríem fer anidant tres bucles (un per al vermell, el verd i el blau) i passar per totes les combinacions de colors possibles, però seria realment avorrit. espectacle de llum làser? Depenent de la configuració, un patró de Lissajous pot semblar una línia diagonal, un cercle, una figura 8 o un patró de papallona que gira lentament. Els patrons de Lissajous es creen mitjançant el seguiment dels senyals sinusoïdals de dos (o més) oscil·ladors representats en eixos x-y (o, en el nostre cas, x-y-z o R-G-B).
Pas 2: El bon vaixell Lissajous
Els patrons de Lissajous més interessants apareixen quan les freqüències dels senyals sinusoïdals difereixen en una petita quantitat. A la foto de l’oscil·loscopi, les freqüències difereixen en una proporció de 5 a 2 (tots dos són nombres primers). Aquest patró cobreix força el seu quadrat i entra molt bé a les cantonades. Els nombres primers més alts farien un treball encara millor de cobrir el quadrat i ficar-se encara més a les cantonades.
Pas 3: Espereu: com podem conduir un LED amb una ona sinusoïdal?
M'has atrapat! Volem explorar l’espai de color 3D que oscil·la entre off (0) i full on (255) per a cadascun dels tres colors, però les ones sinusoïdals varien de -1 a +1. Aquí farem una mica de matemàtiques i programació per aconseguir el que volem.
- Multipliqueu cada valor per 127 per obtenir valors que oscil·len entre -127 i +127
- Afegiu 127 i arrodoneu cada valor per obtenir valors que oscil·len entre 0 i 255 (prou propers a 255 per a nosaltres)
Els valors que oscil·len entre 0 i 255 es poden representar mitjançant números d’un byte (el tipus de dades "char" en el llenguatge de programació Arduino tipus C), de manera que estalviarem memòria mitjançant la representació d'un byte.
Però, què tal els angles? Si feu servir graus, els angles d'un sinusoide oscil·len entre 0 i 360. Si feu servir radians, els angles oscil·len entre 0 i 2 vegades π ("pi"). Farem alguna cosa que de nou conservi la memòria al nostre Arduino i pensem en un cercle dividit en 256 parts i que tinguem "angles binaris" que oscil·len entre 0 i 255, de manera que els "angles" de cadascun dels colors poden ser representat per números d’un byte o caràcters, també aquí.
L'Arduino és bastant increïble tal com és i, tot i que pot calcular valors sinusoïdals, necessitem quelcom més ràpid. Pre-calcularem els valors i els posarem en una matriu llarga de 256 entrades de valors d’un byte o de caràcters al nostre programa (vegeu la declaració SineTable […] al programa Arduino).
Pas 4: construïm un patró 3D important
Per circular per la taula a una freqüència diferent per a cadascun dels tres colors, conservarem un índex per color i afegirem compensacions relativament primeres a cada índex a mesura que anem passant pels colors. Triarem 2, 5 i 11 com a compensacions relativament primeres per als valors de l’índex vermell, verd i blau. Les pròpies capacitats matemàtiques internes de l’Arduino ens ajudaran mitjançant un embolcall automàtic mentre afegim el valor de compensació a cada índex.
Pas 5: unir-ho tot a l'Arduino
La majoria dels Arduinos tenen diversos canals PWM (o amplada de pols). Aquí en necessitarem tres. Un Arduino UNO és ideal per a això. Fins i tot un petit microcontrolador Atmel de 8 bits (ATTiny85) funciona fabulosament.
Cadascun dels canals PWM conduirà un color del LED RGB mitjançant la funció "AnalogWrite" d'Arduino, on la intensitat del color en cada punt al voltant del cicle sinusoidal es representa mitjançant una amplada de pols, o cicle de treball, des de 0 (tot apagat)) a 255 (tot activat). Els nostres ulls perceben aquestes amplades de pols variables, repetides prou ràpidament, com a diferents intensitats o lluminositats del LED. Combinant els tres canals PWM que condueixen cadascun dels tres colors en un LED RGB, tenim la possibilitat de mostrar 256 * 256 * 256, o més de setze milions de colors.
Haureu de configurar l’Arduino IDE (Entorn de desenvolupament interactiu) i connectar-lo a la placa Arduino mitjançant el seu cable USB. Executeu ponts des de les sortides PWM 3, 5 i 6 (pins de processador 5, 11 i 12) a tres resistències de 1 KΩ (mil ohms) a la vostra placa proto o protecció blindatge, i des de les resistències al LED R, G, i pins B.
- Si el LED RGB és un càtode comú (terminal negatiu), executeu un cable des del càtode cap al pin GND de l'Arduino.
- Si el LED RGB és un ànode comú (terminal positiu), executeu un cable des de l’ànode cap al pin + 5V de l’Arduino.
L’esbós d’Arduino funcionarà de qualsevol manera. He utilitzat un LED de càtode RGB de SparkFun Electronics / COM-11120 RGB (a la imatge superior, del lloc web de SparkFun). El passador més llarg és el càtode comú.
Baixeu-vos l'esbós RGB-Instructable.ino, obriu-lo amb l'IDE Arduino i proveu-ne la compilació. Assegureu-vos d’especificar la placa o xip Arduino objectiu correcte i, a continuació, carregueu el programa a l’Arduino. Hauria de començar immediatament.
Veureu el LED RGB recorrent tants colors com pugueu anomenar i milions que no.
Pas 6: Què passa a continuació?
Acabem d’explorar l’espai de color RGB amb el nostre Arduino. Algunes altres coses que he fet amb aquest concepte són:
Escriviu directament als registres del xip, en lloc d’utilitzar AnalogWrite, per accelerar les coses
- Modificar el circuit perquè un sensor de proximitat IR infeliqui o alenteixi el cicle en funció del grau de proximitat
- Programació d’un microcontrolador de 8 pins Atmel ATTiny85 amb el carregador d’Arduino i aquest esbós
Recomanat:
Llum LED d'escriptori intel·ligent - Il·luminació intel·ligent amb Arduino - Espai de treball Neopixels: 10 passos (amb imatges)
Llum LED d'escriptori intel·ligent | Il·luminació intel·ligent amb Arduino | Espai de treball de Neopixels: ara passem molt de temps a casa estudiant i treballant virtualment, per què no fer que el nostre espai de treball sigui més gran amb un sistema d’il·luminació personalitzat i intel·ligent basat en els LEDs Arduino i Ws2812b. Aquí us mostro com construir el vostre Smart Llum LED d'escriptori que
Cosmo Clock: canvia de color cada vegada que un astronauta entra a l'espai: 8 passos (amb imatges)
Cosmo Clock: canvia de color cada vegada que un astronauta entra a l'espai: Hola! Ets un entusiasta de l'espai? Si és així, hi-fi! M'encanta l'espai i l'astronomia. Viouslybviament no sóc cap astronauta per pujar-hi i mirar més de prop l’univers. Però cada cop que descobreixo que una persona de la terra ha viatjat al cel, m’inspiro
Creix més enciam en menys espai o Creix enciam a l’espai, (més o menys) .: 10 passos
Cultivar més enciam en menys espai o … Cultivar enciam a l’espai, (més o menys): es tracta d’una presentació professional al Concurs de fabricants de Growing Beyond Earth, enviat a través d’Instrumentsables. No podia estar més emocionat de dissenyar per a la producció de cultius espacials i publicar el meu primer Instructable. Per començar, el concurs ens va demanar que
Exploració de Windows 8.1 !!: 12 passos
Exploració de Windows 8.1 !!: aquest instructiu us proporcionarà una visió general ràpida de Windows 8.1, totes les seves funcions i programes. Subscriviu-vos al meu canal Gràcies
Panell de llum personalitzable portàtil (Curs d’exploració tecnològica - TfCD - Tu Delft): 12 passos (amb imatges)
Panell de llum personalitzable portàtil (Curs d’exploració de tecnologia - TfCD - Tu Delft): en aquest instructiu aprendràs a fer la teva pròpia imatge il·luminada que pots portar. Això es fa utilitzant la tecnologia EL coberta amb una calcomania de vinil i fixant-hi bandes perquè pugueu portar-lo al braç. També podeu canviar parts d'aquesta p