EasyLight, Ambilight Clone System

easylight

EasyLight, Ambilight Clone System

EasyLight est un système lumineux d’ambience pour télévisions et écrans de vidéoprojection. Il s’inspire du célèbre système Ambilight développé par Philips.

EasyLight est un projet totalement libre et gratuit qui va donner de la profondeur à vos films, séries et dessins animés préférés.

EasyLight génère des effets de lumière qui correspondent à l’image diffusée autour de l’écran. EasyLight permet ainsi de réduire la fatigue oculaire et augmente la qualité de l’image perçue. Le rétro éclairage fournit par EasyLight réduit notablement la fatigue.

Les lumières émises par EasyLight vont réduire les reflets sur votre écran, augmenter le contraste perçu et mettre en valeur les couleurs. EasyLight va donner une nouvelle dimension à vos films !

Avantages d’EasyLight

EasyLight est un projet gratuit qui donne de l’intensité aux films et séries que vous visionnez. EasyLight est gratuit mais il dispose de nombreux atouts pour vous donner envie de l’essayer. Voici 10 raisons d’essayer EasyLight:

  • EasyLight ne coûte pas cher à réaliser: logiciel gratuit, électronique élémentaire et quelques leds RGB suffisent.
  • EasyLight s’adapte à tous les types d’écrans: télévision, écran de projection, écran d’ordinateur, etc…
  • EasyLight dispose d’un mode qui analyse le contenu de l’écran afin de diffuser une lumière en totale cohérence avec l’image visualisée.
  • EasyLight dispose également d’un mode “Lumière Ambient” afin de diffuser une lumière d’ambience qui mettra en valeur les images diffusées.
  • EasyLight n’est pas limité dans le nombre de leds RGB, vous pourrez donc l’utiliser avec des écrans de quelques centimètres comme avec des écrans de plusieurs mètres.
  • Grâce à son logiciel gratuit, EasyLight est totalement paramétrable: nombre de zones lumineuses, différentes méthodes d’analyses, différents modes de diffusion, etc…
  • Le logiciel EasyLight est compatible et optimisé pour les principales versions de Windows. Il se base sur DirectX pour analyser le contenu, ce qui lui confère assure une optimisation maximale des ressources de votre ordinateur (juste 5% de CPU et 90Mo de mémoire sur un ordinateur récent style I5 avec 4Go de ram)
  • EasyLight réduit la fatigue oculaire.
  • EasyLight augmente le contraste de vos films et séries.
  • EasyLight est compatible avec la plupart des lecteurs multimédia du marché: Windows Media Player, VLC, Windows Player Classic, etc…

Inconvénients d’EasyLight

Aucune solution parfaite n’existe, EasyLight ne déroge pas à la règle et il se voit attribuer quelques inconvénients:

  • Contraitement à un système Ambilight, EasyLight ne peut pas analyser le contenu d’un téléviseur directement. Il ne peut analyser que l’image diffusée par un ordinateur.
  • La réalisation d’un système EasyLight demande quelques notions en électronique: soudures et connectique par exemple.
  • Plus le taux de rafraîchissement sera rapide et plus EasyLight utilisera les ressources de votre machine.

Fonctionnement d’EasyLight

Le projet EasyLight a été développé de la manière la plus simple possible. Il se compose de 3 éléments:

  • une partie électronique à base de Arduino et de multiplexeurs TLC5940
  • une partie logicielle nommée EasyLight qui va analyser les couleurs de l’écran afin de pouvoir sortir les tendances
  • une partie matérielle qui se compose de leds RGB à anode commune

EasyLight et Arduino

EasyLight utilise un arduino pour contrôler les leds RGB. Voici le schéma de connectique d’EasyLight:

easylight arduino

Veuillez noter que:

  • 2 résistances de 470 ohms et une résistance de 10K ohms sont utilisées. Pour calculer les valeurs des résistances à utiliser, vous pouvez vous référer à mon tutoriel sur le multiplexeur PWN TLC5940. La résistance de 10K ohms permet de mettre les canaux off pendant le reset d’Arduino. Les résistances de 470 ohms permettent de limiter le courant par canal.
  • dans le schéma suivant, je n’utilise pas la sortie Out0 des composants TLC5940 car je n’ai besoin que de 10 canaux
  • chaque canal peut alimenter plusieurs leds montées en parallèle
  • dans le schéma j’utilise une alimentation via une pile de 9V. Il faudra adapter l’alimentation à vos leds (puissance et nombre). Il ne faudra pas utiliser le 5V de votre arduino pour alimenter les leds car Arduino ne sera pas assez puissant pour fournir la puissance nécessaire. Vous pouvez utiliser une alimentation externe (environ 5€ sur Ebay par exemple).

EasyLight: le logiciel d’analyse de l’image

Le logiciel EasyLight a été développé sur la plateforme DotNet. Les prérequis pour utiliser le logiciel EasyLight sont les suivants:

  • framework DotNet 4 (au minimum) qui peut être téléchargé gratuitement sur le site de Microsoft.
  • Processeur Bi Coeurs (4 coeurs conseillés) style Intel I3, AMD X4
  • 2Go de mémoire vive (4Go conseillés)

Voici quelques captures d’écran afin de comprendre les principales fonctionnalités du logiciel EasyLight.

Le logiciel EasyLight contient 3 onglets:

Dynamic Mode Settings

easylight dynamic mode settings

L’onglet Dynamic Mode Settings permet de définir les paramètres de capture de l’image. Les différents paramètres sont:

  • Proportional: qui permet de définir l’échantillon de pixels à analyser. Par exemple si 5 est sélectionné, cela signifie que l’on analysera 1 pixel sur 5.
  • Layers: définit le nombre de barrettes leds que vous utilisez
  • Method: pour choisir la méthode d’analyse des pixels
  • Hscan: définit la hauteur horizontal des layers top et bottom
  • Vscan: définit la largeur vertical des layers gauche et droit
  • Skip Dark Pixels: pour ignore les pixels foncés de l’analyse
  • Analyzer: permet de choisir la méthode d’analyse des pixels à utiliser. DirectX est plus performant et se base sur DirectX pour analyser l’image. GDI est moins performante et se base sur Bitmap GDI.

Pour utiliser EasyLight Dynamic Mode, il faut sélectionner “Dynamic Screen Color” dans le paramètre “Mode”.

Static Mode Settings

easylight static mode settings

L’onglet Static Mode Settings permet de définir les paramètres pour le mode ambient. Ce mode vous permet d’éclairer avec une lumière ambiente votre écran. Les différents paramètres sont:

  • Couleur Gauche
  • Couleur Droite
  • Couleur Haut
  • Couleur Bas

Chaque couleur peut être paramétrée indépendamment des autres.

Pour utiliser EasyLight Static Mode, il faut sélectionner “Static Ambient Color” dans le paramètre “Mode”.

Arduino Settings

easylight arduino settings

L’onglet Arduino Settings permet de définir les paramètres de connexion et d’envoi de données à la carte Arduino. Les différents paramètres sont:

  • Port COM: qui est le port COM sur lequel est connecté votre Arduino.
  • Baud Rate: qui permet de définir la vitesse d’envoi des données.
  • Max Retries: qui définit le nombre de tentative de connexions. Une fois cette limite atteinte, EasyLight ne tente plus de se connecter à votre Arduino. Pour relancer la connexion, il faut recliquer sur le bouton Save.
  • Sleep Time: définit le nombre de millisecondes à atteindre entre 2 rafraîchissements.

Une bac à événements permet de suivre l’interaction entre EasyLight et Arduino. Un clic droit sur le bac à évènements vous permettra de sauvegarder ou nettoyer la log.

ActionBar

L’ActionBar permet d’effectuer des actions globales sur EasyLight:

  • Mode: permet de sélectionner le mode d’affichage Dynamic Screen Color ou Static Ambient Color.
  • Minimized: permet de lancer EasyLight directement dans la barre des tâches lorsqu’il est lancé.
  • AutoStart: permet de démarrer EasyLight automatiquement au démarrage de Windows.
  • Save: permet de sauvegarder les paramètres.
  • Exit: permet de fermer EasyLight.

StatusBar

La StatusBar permet d’avoir des informations en temps réel sur EasyLight:

  • Arduino: permet de savoir l’état de la connexion à Arduino (Not Connected, Pending, Connected)
  • Cpu: permet de savoir le pourcentage de CPU utilisé par EasyLight. Si ce pourcentage dépasse 15% alors la valeur est affichée en rouge.
  • Mem: permet de savoir la quantité de mémoire consommée par EasyLight. Si ce pourcentage dépasse 100Mo alors la valeur est affichée en rouge.
  • Nb Loops / sec: permet de savoir le nombre de fois que EasyLight rafraîchit ces données. Ce nombre dépend de la puissance de votre ordinateur et du sleep time définit.

Barre des tâches

EasyLight peut être minimisé dans la barre des tâches. Un clic droit sur l’icône d’EasyLight fera apparaître le menu suivant:

easylight taskbar

Les différents paramètres du menu sont:

  • Maximize EasyLight: qui permet d’afficher le logiciel EasyLight. Un double clic sur l’icône dans la barre des tâches aura la même action.
  • Go to EasyLight Website: qui permet d’aller sur le site de ZeM.
  • Exit: qui permet de fermer le logiciel EasyLight.

Performances d’EasyLight

Il est relativement facile d’obtenir plus de 25 rafraichissements par seconde sur une machine récente. Pour celà, il faut désactiver Aero sur windows (car Aero est consommateur en mémoire). Pensez qu’il n’est pas nécessaire d’avoir un tel niveau de rafraichissement. Ainsi 10 rafraichissements par seconde est très correct et très peu gourmand en ressources.

Fabrication d’une barrette Leds RGB pas cher

L’objectif principal d’EasyLight est de cloner à moindre coût le célèbre système Ambilight de Philips.

Vous pouvez utiliser EasyLight avec des barrettes leds SMD toutes faites (disponibles sur Ebay par exemple) mais ces barrettes restent encore chères.

Vous pouvez donc fabriquer vous même vos barrettes leds grâce au matériel suivant:

  •  50 pcs RGB LED Common Anode Diffused (10€ sur Ebay)
  • 1 passe cable mural (4€ chez Leroy Merlin)
  • 2 metres de cable réseau ou téléphonique (2€)
  • fer à souder, étain, etc…

50 leds sont largement suffisantes pour des écrans allant jusqu’à 150cm (8 barrettes). Pour une vingtaine d’euros et quelques heures de travail vous aurez vos barrettes RGB 🙂

Étapes de fabrication (ex: barrette de 3 groupes de 3 leds):

  1. Coupez le passe câble à la largeur de votre écran.
  2. Percez un trou pour chaque led dans le passe câble en prenant soin d’espace de manière égale chaque led.
  3. Sur chacune de vos leds, soudez 4 fils de couleur différentes (rouge: anode, orange: R, vert: G, bleu: B) en prenant soin d’avoir assez de longueur de fils pour pouvoir atteindre le milieu de la barrette.
  4. Une fois que toutes vos leds sont équipées de fils, insérez les dans les trous percés dans le passe câble.
  5. Si les leds ne sont pas solidement fixées, vous pouvez mettre un point de colle (au pistolet à colle) pour les fixer sur le passe câble.
  6. Pour chaque groupe de leds (dans mon cas, il y en a 3: 3 leds à gauche, 3 au centre et 3 à droite), regroupez les fils par couleur en les soudant entre eux ou sur une plaque à pastille.
  7. Il ne restera plus qu’à souder du cable réseau entre vos groupes de leds et le composant TLC5940

Téléchargement de EasyLight

EasyLight est disponible en téléchargement gratuit ici.

De plus j’ai mis à votre disposition l’ensemble des sources DotNet et des sources Arduino sur mon GitHub: GitHub EasyLight.

8 Responses to EasyLight, Ambilight Clone System

  1. Morti says:

    Super projet vraiment interessant bravo! mais du coup il y a une possibilité d’avoir accès à une version du programme ?

  2. Djeff says:

    +1 Impossible de trouver le lien 🙂
    En tout cas vraiment sympa le projet.

  3. manu says:

    Bonjour

    Je fabrique mon ambilight,pourriez me donner un lien de telechargement
    pour EasyLight

    Cordialement

    Manu

  4. Morti says:

    Salut,
    J’ai une erreur sur Arduino :
    sketch_mar25a:42: error: ‘stringIn’ was not declared in this scope
    Une idée? il manque peut être déclaration de variable, je suis pas très bon en Arduino encore.
    Merci

Leave a Reply

Your email address will not be published. Required fields are marked *