roue chromatique RGB gestion par XY

bonjour
N'etant pas du genre à reinventer la roue :grin:

je mets au point une gestion RGB commandée par un joystick virtuel bluetooth, mais ça pourrait s'appliquer à du simple analogique XY sur 2 entrées ana.
je recupere des valeurs X et Y que je souhaite transformer en PWM (0--255) pour chacun des 3 canaux RGB
plein blanc au centre comme sur cette page. (en pratique plein blanc pour X et Y = 512 sur de l'entree ana standard arduino. )

si l'un d'entre vous à un debut de code sur la transformation XY--->RGB je prend,
C'est assez trivial, mais si ça peut m'eviter de coder/debugger pour rien 8)
merci

Artouste:
je mets au point une gestion RGB commandée par un joystick virtuel bluetooth, mais ça pourrait s'appliquer à du simple analogique XY sur 2 entrées ana.

Normalement il y a 3 composantes: La couleur, la saturation et la luminance
Si tu n'as que 2 axes tu peux forcer la saturation à une valeur constantes mais tu n'auras pas toutes les couleurs.
En pièce jointe un code que j'ai développé et qui gère une LED RGB de puissance avec une télécommande. Il y a 2 fonctions qui permettent de passer de RGB vers HSV et réciproquement (HSV, hue, saturation, value).
Le format HSV est pratique car la première composante permet justement de modifier la couleur.

Autrement un max d'info ici : Math | EasyRGB

Led_HSV_Telco.ino (11.8 KB)

fdufnews:
...
En pièce jointe un code que j'ai développé et qui gère une LED RGB de puissance avec une télécommande. Il y a 2 fonctions qui permettent de passer de RGB vers HSV et réciproquement (HSV, hue, saturation, value).
Le format HSV est pratique car la première composante permet justement de modifier la couleur.

Autrement un max d'info ici : Math | EasyRGB

ok merci fdufnews
je regarde ça
en fait je veux un truc simple, pas faire de la colorimetrie calibrée

Artouste:
ok merci fdufnews
je regarde ça
en fait je veux un truc simple, pas faire de la colorimetrie calibrée

Le problème c'est que le monde des couleurs se représente dans un volume HSL and HSV - Wikipedia
En RGB c'est un cube
En HSV c'est un cone ou un cylindre

Tu n'as accès qu'à une partie des couleurs possibles avec seulement 2 variables d'ajustement.

fdufnews:
Tu n'as accès qu'à une partie des couleurs possibles avec seulement 2 variables d'ajustement.

Certes, mais techniquement un diagramme de chromaticité (ou une « roue chromatique » comme dans la demande initiale) ça se fait à luminance constante, et 2 données sont donc suffisantes. Ça ne donne pas accès à toutes les couleurs mais à toutes les chrominances.

merci à tous pour vos reponses
je ne cherche vraiment pas de la variation de couleur fine, plutot de la variation visible et perceptible sur le spectre visible
je vais regarder tout ça
comment au mieux transiter d'un "blanc" au centre vers le melange chromatique sur le pourtour de la roue

de toutes façons c'est pas fait pour faire de la lumiere sur le spectace du siecle :grin:

bon dans un premier temps , je vais gerer ça à la hussarde avec 3 potentiometres virtuels/reels
j'approfondirais la relation chromatique plus tard.

question un peu à coté :

pour jouer j'utilise des difffuseurs RGB de scanner
(barre en plastique de 21+ cm diffusant la lumiere et alimentée sur un bout par une led RGB )

quelqu'un a une idée sur la nature du "plastique" diffuseur ?
ce n'est pas du plexiglass (j'en ai) , je penche pour du makrolon (j'en ai pas) :grin:

Artouste:
comment au mieux transiter d'un "blanc" au centre vers le melange chromatique sur le pourtour de la roue

On obtient le blanc avec luminance à fond et saturation à zéro quelque soit la couleur.

La luminance comme son nom l'indique c'est l'intensité de la couleur.
La saturation c'est la proportion de gris dans une couleur. Saturation à 1 => couleurs pures, en diminuant la saturation on crée les couleurs "pastels".
Pour un couple saturation, luminance donné on parcours toutes les couleurs possible en variant le hue.

fdufnews:

Artouste:
comment au mieux transiter d'un "blanc" au centre vers le melange chromatique sur le pourtour de la roue

On obtient le blanc avec luminance à fond et saturation à zéro quelque soit la couleur.

La luminance comme son nom l'indique c'est l'intensité de la couleur.
La saturation c'est la proportion de gris dans une couleur. Saturation à 1 => couleurs pures, en diminuant la saturation on crée les couleurs "pastels".
Pour un couple saturation, luminance donné on parcours toutes les couleurs possible en variant le hue.

merci fdufnews
j'affinerais la gestion chroma plus tard
pour l'instant je part sur du "bourrin" :grin:
je reflechis plus sur l'integration mecanique "simple" de modules "lumiere scanner" :grin:
(têtes beches à priori)
http://cjoint.com/14jv/DArv04EVh96_lscan.mp4

Artouste:
, je penche pour du makrolon (j'en ai pas)

Makrolon® est une marque de polycarbonate que tu pourras facilement trouver en brico...

Pour commander une led RGB, il faut disposer des trois composantes R, G et B. Il faut donc travailler dans un espace tridimensionnel. Il n'existe aucune fonction permettant de passer de 2 à 3 dimensions, sinon, ça se saurait.

On peut cependant jouer sur :

X = couleur codée en RGB (sur 9 bits, de 0 à 511, genre RRRGGGBBB), puis Y = luminance, de 0 à 1023.

On obtiendrait alors une décomposition du genre :

word x = analogRead(A0) >> 1;
word y = analogRead(A1);

word Red = (x >> 6) * y;
word Green = ((x  >> 3) & 0x0007) * y;
word Bleu = (x & 0x0007) * y;

soit un pannel de 524288 couleurs, mais peut-être pas le rendu souhaîté...