[TUTO] SynLight, l'alternative Sans Fil à AmbiBox, Prismatik et les autres

Le but de ce tuto est de vous faire découvrir un nouveau programme de gestion Ambilight simple et efficace sous Windows, à savoir Synlight.

 

J'ai découvert Synlight par hasard, en effectuant des recherches d'informations sur l'application HyperionScreenCap que je n'arrivai pas à faire fonctionner sur mon installation ( qui marche depuis peu et plutôt bien malgré quelques restrictions, Zoom bureau à 100% entre autre ).

 

Je suis tombé sur un post d'un certain Synless faisant référence à son programme Ambilight sous Windows via l'utilisation d'un Nodemcu.

 

L'ayant contacté suite à un soucis de paramétrage de LEDs, ne possédant pas de LEDs dans les coins, celui-ci à apporté les modifications nécessaire à son programme pour remédier à ce problème. En plus de cela il l'a adapté pour les personnes n'ayant pas leur première LED débutant dans un des 4 coins.

 

Qui plus est, notre très cher ami Synless n'est pas Russe, Américain ou de je ne sais quelle nationalité mais Français alors soyons un peu chauvin et dans la mesure du possible, utilisons son logiciel.

 

Pour ce tuto je vais reprendre la même configuration que pour mes précédents tuto sur AmbiboxPrismatik et Adrilight, c'est à dire celle que j'avais mise en place pour mon Ordinateur portable.

 

Pour Info : Sachez que Synlight est vraiment très peu gourmand en ressources systèmes. En effet il ne prend qu'entre 0.5% et 5% de charge CPU. ( monte à ce taux maximum lors de changement fréquent de couleurs ). Sachez également que malgré un fonctionnement en Wifi, je n'ai pas noté de latence particulière dans la transition des couleurs.

 

Voila le résultat en vidéo ( Faudra que je fasse mieux la prochaine fois mais c'est quand meme pas mal ;-^/) )

 

Préalable

 

Nous aurons besoin :

Une fois tout téléchargés et installés nous pouvons commencer.

 

Info concernant les bandes de LEDs : Voici les modèles PWM et SPI utilisable dans la mise en place de votre installation Ambilight.

 

3 Fil (pwm): NEOPIXEL BTM1829 TM1812 TM1809 TM1804 TM1803 UCS1903 UCS1903B UCS1904 UCS2903 WS2812 WS2852 WS2812B SK6812 SK6822 APA106 PL9823 WS2811 WS2813 APA104 WS2811_40 GW6205 GW6205_40 LPD1886 LPD1886_8BIT 

 

4 Fil (spi): LPD8806 WS2801 WS2803 SM16716 P9813 APA102 SK9822 DOTSTAR

 

A vous de jongler entre les 2 bibliothèques en fonction du type de bande et du modèle de LEDs que vous choisirez. ( risque d'incompatibilité )

Pour rappel : Dans mon installation j'ai j'utilisé 62 LEDS WS2812B, départ en bas à gauche, le sens de rotation est l'inverse des aiguilles d'une montre.

 

Programmation du Nodemcu

 

L'archive Synlight-master.zip que nous avons téléchargés contient 2 dossiers :

  • Un premier, Arduino, contenant 3 sketchs ino à savoir :
  1. SynLight.ino utilisant NéoPixelBus et le paramétrage manuel de la configuration Wifi ( SSID, Mot de Passe )
  2. SynLight_Auto.ino, presque identique au premier à la différence que la configuration Wifi se fera grâce à WiFiManager
  3. SynLight_Safe.ino identique au premier mais utilisant la bibliothèque FastLED.
  • Un second, Synlight, qui contient l’exécutable ainsi que le fichier de configuration pour celui-ci.

Décompresser cette archive pour pouvoir ouvrir les fichiers présent dans le dossier Arduino et sauvegarder les modifications apportés.

 

Pour la programmation vous aurez le choix d'utiliser soit :

  • Un des 3 Sketchs Ino précédent
  • Mon Sketch Synlight_Modif_AmbiMod.ino ayant pour modèle SynLight_Safe.ino  provenant de cette même archive ( voir détail plus bas ).

Pour les besoins de ce tuto j'utiliserai le sketch Synlight.ino ( NéoPixelBus ) et mon fichier Synlight_Modif_AmbiMod.ino ( FastLED ).

 

Modification et Programmation du Sketch Synlight.ino

 

Pour ceux qui ont choisis d'utiliser la bibliothèque NéoPixelBus nous allons voir les modifications à apporter au fichier pour que celui-ci correspond à la configuration mise en place sur mon Ordinateur Portable.

 

Sachez que l'utilisation de cette bibliothèque restreint le nombre de modèle de LEDs utilisable mais pas de soucis car les WS281X et les SK6812 en RGB ou encore RGBW sont compatibles avec celle-ci. ( Ces dernières sont bien pour avoir une consommation réduite, donc petite alimentation ).

 

Commençons par ouvrir notre Sketch SynLight.ino dans Arduino IDE. ( Valider la création du dossier et le déplacement du .ino dans celui-ci )

Voici ce que l'on obtient :

Peu de chose seront à modifier dans ce fichier juste :

  • Le Nombre de LEDs
  • L'Ordre des Couleurs
  • Le Nom du Point d'Accès ainsi que le Mot de Passe associé.

Voici le résumé des modifications que j'ai apportés :

  • Changé la valeur 52 de la ligne const uint16_t PixelCount = 52 en la faisant correspondre à mon nombre de LEDs soit 62
  • Entré le nom de mon Point d’Accès à la ligne const char* ssid = "Synless_Wifi"  en changeant la valeur Synless_Wifi par ASUS_4G-N12
  • Modifié sur la ligne juste en dessous les --------  par le Mot de Passe associé à mon Point d'Accès.

J'ai laissé l'ordre des couleurs tel quel. Si vous souhaitez les changer il faudra modifier la variable NeoGrbFeature qui se trouve sur la ligne 

  • NeoPixelBus<NeoGrbFeature, Neo800KbpsMethod> strip(PixelCount, PixelPin);

 par NeoRgbFeatureNeoBrgFeature... Vous pouvez également changer le port 8787 par celui de votre choix.

 

Voila à quoi ressemble mon fichier après modifications :

Comme vous pouvez le voir Je n'ai pas changé le numéro de broche de connexion du Fil Data, localisable à la ligne const uint8_t PixelPin = 2; car quelque soit celle que l'on entre, la broche RX sera défini automatiquement.

 

Attention de ne pas oublier aussi dans Outils :

  • De sélectionner dans Type de carte le microcontrôleur que l'on utilise soit pour moi NodeMCU 1.0  ( Nodemcu Lolin )
  • De passer, si vous le voulez, la Frequence CPU de 80 MHZ à 160 MHZ
  • De vérifier que la vitesse de transfert est réglé sur 115200
  • De sélectionner le bon Port COM qui correspond au NodeMCU ( COM4 pour moi ).

Une ligne en bas à droite reprendra la configuration choisi dans Outils. Une fois les modifications terminés, sélectionner Téléverser pour lancer la programmation du sketch vers le NodeMCU. 

Vu que nous passons par un Adressage IP dynamique, il vous faudra aller sur la page d'information de votre routeur ou box internet et voir quelle adresse IP à était assigné au NodeMCU. 

 

Vous pouvez aussi passer par un adressage d'IP Statique par DHCP ( conseillé car Synlight.exe à besoin de cette adresse pour transmettre les informations au NodeMCU ) en utilisant la méthode de l'adressage IP via l'adresse MAC. Pour cela vous n'avez juste qu'a récupérer l'adresse IP assigné au NodeMCU puis de taper cette commande dans une fenêtre d'invite de commandes :

  • arp -a

Vous allez voir toutes les correspondances Adresses MAC --> Adresse IP. Il ne restera plus qu'a renseigné cette correspondance directement sur l'interface de gestion DHCP, dans la partie équivalente à  Adresse IP assignée manuellement dans la liste DHCP dans la votre.

Plus de soucis à avoir avec l'adressage IP du NodeMCU car il recevra tout le temps la même Adresse IP et cela par DHCP.

 

Voyons maintenant la même procédure que précédemment mais en utilisant cette fois-ci le fichier Synlight_Modif_AmbiMod.ino et en établissant un Adressage IP Statique du NodeMCU directement dans le sketch.

 

 

Modification et Programmation du Sketch Synlight_Modif_AmbiMod.ino

 

Pour les autres ayant choisis mon fichier modifié utilisant la bibliothèque FastLED, il y aura plus de variables à modifier car j'y ai ajouté :

  • Une gestion de l'adressage en IP Statique ou Dynamique
  • Une modification simplifié des types de bandes de LEDs ( PWM et SPI ) et modèles de LEDs
  • La gestion de programmation du NodeMCU par Wifi

Assez de blahblah et ouvrons notre fichier dans Arduino IDE, voici ce qu'on obtient :

Toutes les modifications seront à faire en haut de fichier, plus besoin de descendre pour changer le type de LEDs par exemple.

On y voit plusieurs éléments à configurer :

  • Le Type de Bande et le Type de LED
  • Le Nombre de LEDs, l'Ordre des Couleurs et les Numéros des broches Data et/ou Clock
  • Activation ou pas de l'adressage IP statique et si oui définition des Adresses Réseau
  • Le Nom du Point d'accès et son Mot de Passe
  • Le Mot de Passe pour la programmation Wifi
  • Le Nom du Dispositif
  • Le Port sur lequel la connexion sera établi.

Les 2 premières lignes sont également à commenter ou à de-commenter si vous avez, ou pour se prévenir du Flickering. 

Pour résumer j'ai :

  • De-commenté la ligne #define FASTLED_ALLOW_INTERRUPTS 0
  • Choisi comme Type de Bande de LED PWMLED et comme Type de LEDs des WS2812B  ( car j'utilise des bandes à 3 fil et ce modèle de LED )

Si j'avais utilisés des SK9822, APA102 ou encore APA102C, j'aurai saisi SPILED comme type de bande et APA102 comme type de LEDs.

  • Défini la valeur 62 pour le nombre de LEDs et GRB pour l'ordre des couleurs
  • Spécifié la broche 7 pour le DATA_PIN ( La broche D7 est le MOSI sur le NodeMCU ). Si bande SPI, spécifier la valeur CLOCK_PIN 5 ( HSCLK )
  • Laissé la ligne #define STATIC_IP de-commenté
  • Entré l'Adresse IP 192.168.1.231 et, 192.168.1.254 comme gateway ainsi que dns
  • Renseigné les informations de connexion réseau au point d’accès, ASUS_4G-N12 comme ssid , et le mot de passe PASSEPOINTDACCES
  • Entré comme mot de passe PASSEPROG pour la programmation Wifi ( otapassword )
  • Choisi comme Port de connexion 1234. ( pas très original je sais mais au moins on s'en souvient ;-) )

Les modifications sont terminées. Pour information voici la partie du code gérant le Type de Bande, de LEDs et l'Ordre des Couleurs que vous trouverez plus bas :

 

// Choix du Type de Bande et Type de LEDs

#ifdef PWMLED

 // Si PWMLED alors 

    FastLED.addLeds<TYPE_LED, DATA_PIN, ORDRE>(leds, NUM_LEDS); 

#elif defined SPILED

 // Sinon programmation pour bande SPI.

#else

    FastLED.addLeds<TYPE_LED, DATA_PIN, CLOCK_PIN, ORDRE>(leds, NUM_LEDS); 

#endif

 

Cela permet de n'avoir que quelques lignes au lieu des 2 douzaines, comme ci-dessous, faisant référence aux différents modèles de LEDs :

Je vous les mets aussi pour que vous ayez la liste de quasi tout les modèles de LEDs utilisable par cette bibliothèque. 

  •       // FastLED.addLeds<TM1803, DATA_PIN, RGB>(leds, NUM_LEDS);
  •       // FastLED.addLeds<TM1804, DATA_PIN, RGB>(leds, NUM_LEDS);
  •       // FastLED.addLeds<TM1809, DATA_PIN, RGB>(leds, NUM_LEDS);
  •       // FastLED.addLeds<WS2811, DATA_PIN, RGB>(leds, NUM_LEDS);
  •       // FastLED.addLeds<WS2812, DATA_PIN, RGB>(leds, NUM_LEDS);
  •       // FastLED.addLeds<WS2812B, DATA_PIN, RGB>(leds, NUM_LEDS);
  •           FastLED.addLeds<NEOPIXEL, DATA_PIN>(leds, NUM_LEDS);
  •       // FastLED.addLeds<APA104, DATA_PIN, RGB>(leds, NUM_LEDS);
  •       // FastLED.addLeds<UCS1903, DATA_PIN, RGB>(leds, NUM_LEDS);
  •       // FastLED.addLeds<UCS1903B, DATA_PIN, RGB>(leds, NUM_LEDS);
  •       // FastLED.addLeds<GW6205, DATA_PIN, RGB>(leds, NUM_LEDS);
  •       // FastLED.addLeds<GW6205_400, DATA_PIN, RGB>(leds, NUM_LEDS);
  •       // FastLED.addLeds<WS2801, RGB>(leds, NUM_LEDS);
  •       // FastLED.addLeds<SM16716, RGB>(leds, NUM_LEDS);
  •       // FastLED.addLeds<LPD8806, RGB>(leds, NUM_LEDS);
  •       // FastLED.addLeds<P9813, RGB>(leds, NUM_LEDS);
  •       // FastLED.addLeds<APA102, RGB>(leds, NUM_LEDS);
  •       // FastLED.addLeds<DOTSTAR, RGB>(leds, NUM_LEDS);
  •       // FastLED.addLeds<WS2801, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS);
  •       // FastLED.addLeds<SM16716, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS);
  •       // FastLED.addLeds<LPD8806, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS);
  •       // FastLED.addLeds<P9813, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS);
  •       // FastLED.addLeds<APA102, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS);
  •       // FastLED.addLeds<DOTSTAR, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS);

Avant de lancer la programmation du NodeMCU, cliquer sur le symbole en haut à droite représentant une sorte de loupe pour ouvrir le Moniteur Série. Elle va nous permettre d'obtenir des informations en fin de programmation.

 

Une fois ouvert, lancer la programmation en cliquant sur Téléverser et mettre au premier plan la fenêtre du Moniteur Série.

Voici le résultat de ma programmation :

Pour Info : Ne pas oublié de mettre dans les menus déroulant en bas de fenêtre Pas de fin de ligne et le taux de transmission à 115200 baud.

 

La programmation à était réalisé avec succès car mon NodeMCU à réussi à se connecter sur mon routeur et est paramétré avec l'adresse IP 192.168.1.231 que j'ai assigné.

 

Voyons maintenant les schémas de câblages en fonction de la bibliothèque et du type de bande utilisés.

 

Schéma de câblages 

 

En fonction de la bibliothèque et du type de bande que vous avez choisi, le câblage sur le NodeMCU sera différent. Nous obtenons 3 schémas :

  1. Bande PWM et Bibliothèque NéoPixelBus 
  2. Bande PWM et Bibliothèque FastLED
  3. Bande SPI et Bibliothèque FastLED

Les voici :

1er Schéma :

  • Le GND de la bande est connecté sur une des broches GND du NodeMCU et sur le GND du connecteur d'Alimentation
  • Le 5V sera quand à lui relié directement au 5V du connecteur d'Alimentation
  • Le Data se connecte, comme on l'a vu plus haut, sur la broche RX du NodeMCU.

2nd Schéma :

  • Il est identique au 1er à la différence que le Data n'est plus connecté sur la broche RX mais sur la D7.

3eme Schéma :

  • Il est identique au précédent mais j'y ai rajouté la Clock qui sera connecté sur la broche D5.

Le NodeMCU sera quant à lui alimenté soit :

  • Par un chargeur 5V 1A
  • Par le chargeur de la bande de LEDs en connectant le GND à une des broches GND et le 5V sur la broche Vin.

Nous arrivons au terme de la partie consacré au Hardware. Passons à la partie Software en voyant en détail le programme de gestion Synlight.

 

Prise en main du programme de gestion Synlight

 

Pour faire fonctionner Synlight nous avons besoin de 2 fichiers :

  • L’exécutable Synlight.exe et
  • Le fichier de configuration param.txt.

Ces 2 fichiers se trouvent dans un sous dossier Debug du dossier Synlight de l'archive Synlight-master.zip.

  • Repartez donc dans le dossier de l'archive que nous avons extrait précédemment, lors de la programmation du NodeMCU,
  • Entrez dans le dossier Synlight, puis Debug et enfin bin
  • Déplacez les 2 fichiers présents à savoir Synlight.exe et param.txt sur le bureau pour débuter nos tests.

Pour Info : Une fois que tout sera fonctionnel, vous pourrez le mettre dans le dossier de votre choix.

 

 

Modification du fichier de configuration param.txt

 

Nous n'allons pas commencer par exécuter notre programme mais plutôt éditer le fichier de configuration param.txt.

Après ouverture nous obtenons ceci :

On voit que ce fichier est divisé en 7 parties. Nous allons changer les valeurs que dans 4 d'entres elles à savoir :

  • LED SETTINGS ou l'on va pouvoir, entre autre, définir le nombre de LEDs, si l'on possede des LEDs dans les coins, décaler la 1ère LED...
  • LAN SETTINGS pour configurer l'Adresse IP du NodeMCU et le Port de connexion
  • 1ST LED AND DIRECTION SETTINGS ou l'on va indiquer l'emplacement de la 1ere LED et le Sens de rotation
  • WILL RUN IN BACKGROUND pour activer ou non l'affichage de l'interface de configuration lors du lancement du programme.

Voici le détail de mes actions sur le fichier et une explication pour chacune d'elles. J'ai :

  • Changé la valeur X=19 et Y=12 ( car je possède 19 LED à l'horizontale et 12 LED à la Verticale )
  • Laissé la valeur UPDOWN=0 car ma 1ère LED débute dans un coin. Si ma 1ère LED n’était pas positionné dans un angle j'aurai mis UPDOWN=9 ( Division par 2 d'une de mes bandes à l'horizontale soit ( 19 - 1 ) / 2 nous donnant 2 bandes de LED de 9 LEDs ).
  • Changé la valeur UDP=8787 par UDP=1234 car j'utilise mon Sketch ino modifié. Sinon j'aurai laissé la valeur UDP=8787.
  • Changé l'adresse IP par celle que j'ai défini pour mon NodeMCU, soit IP=192.168.1.231
  • Laissé la valeur BL et CCW car ma 1ère LED se trouve en bas à gauche et le sens de rotation est l'inverse des aiguilles d'une montre. ( BL et CCW sont les abréviations en Anglais de Bottom Left et Counter ClockWise ). Vous aurez le choix entre BL, BR, TL, et TR ( Bottom Left, Bottom Right, Top Left et Top Right ) pour la position de la 1ère LED et CW ou CCW pour le sens de rotation ( ClockWise et Counter ClockWise ).
  • Laissé la ligne SHOW de-commenté car je souhaite avoir accès à l'interface du programme pour de futur réglage. Plus tard, une fois que tout fonctionnera comme je le souhaite, je la transformerais en //SHOW pour une exécution en Arrière Plan.

Une fois terminés, sauver les modifications que vous avez apportés au fichier.

  

Exécution de Synlight.exe

 

Il est temps de lancer notre programme Synlight.exe. Si votre fichier param.txt est correctement configuré vous devriez voir s'allumer vos LEDs reprenant les couleurs de votre écran. Voici l'interface que j'obtient lorsque je lance l’exécutable :

 

 Sobre mais contient le nécessaire pour presque toutes les configurations.

 

On retrouve les valeurs que j'ai saisi dans le fichier param.txt à savoir, le X à 19, le Y à 12 et la 1ere LED en bas à gauche. Un bouton STOP / START nous permet d'activer ou désactiver l'Ambilight. Seul le sens n'est pas coché mais configuré comme tel et éventuellement cochable. 

 

En effet, modifier les valeurs ou cocher différentes cases dans l'interface la fera changer à la volée. Vous allez voir que cette fonction nous sera utile car la configuration actuelle n'est pas tout à fait correct pour mon utilisation.

 

Pour effectuer ce réglage en direct nous allons utiliser la vidéo RGB Test Sequence.mp4. Tout d'abord :

  • Lancer la vidéo avec le lecteur de votre choix puis avancer jusqu’à la minute 1:03 puis mettre en pause pour former un + parfait
  • Regarder ce que donne cette configuration sur les LEDs. Si le positionnement est conforme et bien on ne touche à rien pour le moment. Pour les autres, comme moi, qui ont des couleurs décalées, il va falloir agir sur le nombre de LEDs.

Voici une comparaison des couleurs affichés sur mon écran et des couleurs obtenues sur mes LEDs :

On voit que ça ne va pas du tout . :-((. Bon on va y remédier en douceur en :

  • Commençant par incrémenter de +1 la valeur X et la valeur Y. Je me retrouve donc avec une valeur X à 20 et Y à 13.

Voici ce que donne cette cette nouvelle configuration :

J'y suis presque. On constatera que le Rouge s'est décalé de 3 LEDs vers la gauche. Même chose pour le Bleu qui s'est décalé vers la droite de seulement 1 LED, presque imperceptible. Malgré tout, cela reste encore insuffisant pour avoir un + parfait.

 

On notera également une anomalie de couleurs en bout de bande ( coin en haut à gauche de l'image ) sur la 1ere et la 2nde photo. Je ne sais pas pourquoi mais selon ce que je mets, les couleurs à cet endroit ne correspondent pas du tout à ce qui est affiché sur mon écran ( peut être à cause de ma configuration bâtarde ). Pas de panique car de toute manière je vais encore devoir agir sur ces valeurs pour arriver à mon +.

 

Cette fois-ci je vais incrémenter seulement le X en le passant à 21. Voici ce que j'obtient et on peut dire que c'est mieux que sur les 2 précédentes photos :

On notera que les couleurs forment un + presque parfait et que le défaut de couleurs dans le coin en haut à gauche à disparu. Je changerais donc dans mon fichier de configuration param.txt les valeurs X=19 et Y=12 par les nouvelles X=21 et Y=13.

 

Si par contre vous n'obtenez pas satisfaction, remettre le X à la valeur inférieur et incrémenter le Y à la place. Si ce n'est toujours pas concluant, incrémenter les 2 valeurs puis recommencer jusqu’à obtenir un + parfait.

 

Une question se pose : C'est bien beau d'avoir un + presque parfait mais si l'on forme un X, est ce que les LEDs seront aussi alignés ?

 

C'est ce que nous allons voir. Pour cela :

  • Avancez la vidéo de quelques micro secondes ou d'une seconde pour arriver à une image formant un X.

Voici ce que j'obtient, aussi bien à l’écran que sur mes LEDs :

Pour Info : Ne pas oublier que le vert sur l'impression écran correspond au bas de l’écran donc au haut de la photo.

 

On peut voir que c'est "presque" le cas. Si on regarde attentivement le Rouge et le Bleu, on constatera en bout des bandes à l'horizontale que j'ai 4 ou 5 LEDs Rouge pour 3 ou 4 LEDs Bleu alors que j'aurai dû normalement avoir un nombre égal.

 

C'est surement, comme je vous l'ai dit plus haut, à cause de ma configuration utilisant un nombre de LEDs impaire à l'horizontale, et aussi que je n'ai pas de LEDs dans les coins, rendant impossible une symétrie 100% parfaite mais que l'on pourrait qualifier de quasi parfaite.

 

Essayer aussi de faire plusieurs essais en modifiant à la volée sur les valeurs X et Y afin d'arriver à un alignement adéquat. Vous pouvez aussi agir sur la valeur Coins CORNERS= dans le fichier de configuration ) pour rajouter des LEDs virtuellement.

Voici celle que j'ai utilisés pour un alignement quasi parfait :

  • X : 21 Y : 13 COINS : 0
  • X : 23 Y : 15 COINS : 1
  • X : 25 Y : 17 COINS : 2
  • X : 27 Y : 19 COINS : 3
  • X : 29 Y : 21 COINS : 4

On notera que pour chaque ligne, cela revient à incrémenter les valeurs X et Y de la ligne précédente de +2 et Coins de +1.

 

Si j'avais voulu décaler le Bleu de 1 LED vers la droite, j'aurai entré 1 dans la case à coté de la double flèche verticale ( Correspond dans le fichier param.txt à UPDOWN= ). Par contre petit bug dans le logiciel car il n'est pas possible d'entrer une valeur via le pavé numérique.

 

Le seul moyen pour l'instant est de copier/coller un chiffre à l’intérieur de celle-ci. ( Synless à constaté ce petit soucis et travaille dessus ).

Si par contre j'avais positionné ma 1ère LED au milieu de mon installation, j'aurai collé dans cette case le chiffre 9. ( comme on l'a vu plus haut ).

 

Effectuez des changements sur l'interface au fur et à mesure en n'oubliant surtout pas, de temps en temps, de refaire tourner la vidéo pour reformer un + ou un X afin de vérifier que les modifications apportés n’altèrent pas l'alignement des LEDs.

  

Dès que vous avez trouvé la configuration parfaite, reportez la dans le fichier param.txt et rajouter aussi le // devant SHOW.

 

Pour info : Il n'est malheureusement pas possible de réduire cette fenêtre dans la zone de notification donc si vous laissez cette ligne de-commenté, vous aurez la fenêtre Synlight tout le temps présente dans votre barre des taches.

 

Voici à quoi ressemble mon fichier définitif :

Il ne me reste plus qu'a :

  • Fermer le programme Synlight
  • Déplacer les 2 fichiers dans un dossier permanent ( Pour moi ça sera le dossier C:\Program Files (x86)\Synlight  crée pour l'occasion )
  • Puis de rajouter un raccourci vers Synlight.exe dans la liste de programme au démarrage de Windows.

Pour effectuer cette dernière étape :

  • Creer un raccourci de Synlight.exe sur le bureau ( Click droit sur Synlight.exe puis Envoyer vers et enfin Bureau ( créer un raccourci ) )
  • Retourner sur le bureau, sélectionner le raccourci et faites un Couper 
  • Aller dans ce dossier C:\Users\NomUtilisateur\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup et faire un Coller.

Il faudra bien entendu remplacer le NomUtilisateur par le nom de votre profile Windows. 

Au redémarrage, Synlight.exe s’exécutera automatiquement de manière totalement transparente en fond de tache et votre Ambilight se mettra en marche.

 

Synless m'a informé laisser son système Ambilight tourner 24h/24, raison pour laquelle ( comme indiqué plus haut ) il n'a malheureusement pas développé la possibilité d'une réduction de son appli dans la zone de notification ainsi que la possibilité d'activation/désactivation via celle-ci ( même si il est possible, comme on l'a vu, d’éteindre/d'allumer ses LEDs via le bouton STOP/START ). Dommage ça aurait été un vrai plus.

 

Si vous avez activé le lancement en fond de taches, il vous faudra passer soit par le gestionnaire de taches pour arrêter le programme, soit de relancer une nouvelle fois l'application Synlight.exe qui s'auto-arrêtera, de la même manière qu'un interrupteur, comme Synless m'en a fait part tout récemment ( Il m'a décrit, suite à la lecture de mon tuto, cette méthode qu'il à développé et qu'il utilise lui même, merci à lui /;-)).

 

Vous pouvez, comme Synless et moi-même l'avons fait, épingler Synlight.exe dans la barre des taches pour une exécution rapide.

 

Si par contre vous optés quand même pour un passage par le gestionnaire de tache, la ligne Synlight sera localisable dans les Processus en Arrière Plan et devra être arrêter en cliquant sur Fin de tache.

Je n'ai pas traité toutes les options présentes dans le fichiers de configuration param.txt et sur l'interface de gestion. Si toutefois vous voulez savoir à quoi elles servent, voici un extrait de conversation que j'ai eu avec Synless afin qu'il me renseigne sur leurs utilités :

 

[OTHER]
SLEEPTIME=8 -> A
BEHAVIOR=1 -> B

A.) Sleeptime c'est une variable d'attente. Un nombre en milli-secondes entre la fin de l'envoi d'une trame et le début de l'analyse de la nouvelle. Plus c'est faible, plus ça va vite mais plus ça consomme au niveau CPU. C'est une valeur qui permet de garder un bon taux de rafraîchissement sans trop charger sur le processeur. 

J'ai implémenté une technique amélioré de capture d'image, et la valeur de temps d'attente est également influencé par la charge actuelle du processeur (plus le processeur est chargé, plus j'attend et je le laisse traiter d'autres taches).
Du coup, je sais plus vraiment si j'utilise cette valeur.
B.) Bahavior sert à gérer un comportement spécial. Si le programme tourne en tache de fond (//HIDE -> HIDE) alors cliquer une nouvelle fois dessus tue le premier au lieu de lancer le programme une seconde fois. 
Ici aussi, avec le temps, je ne sais plus si j'impose ce comportement et je n'ai pas supprimé l'option, ou si c'est réglable.

 

_________________________________________

 

[21:9 TWEAKING VARIABLES]
A=1,33
B=1,0
Pour savoir de combien de led je dois me décaler quand je travail en mode 21:9 je travaille sur le nombre de leds en 16:9. Je trouve ensuite combien de leds correspondent à la zone 21:9.
Exemple : 18 en Y en 16:9 devient peut-être 12 leds dans la partie 21:9. Les 3 leds au dessus et au dessous recopient la couleur des leds aux extrémités de la partie 21:9.
A et B sont des variables pour jouer sur le calcul du nombre de leds à décaler. 

Notre tuto est à présent terminé. Nous avons vu qu'il était possible de ne plus passer par un Arduino pour réaliser une installation Ambilight pour son écran d'ordinateur. Pratique pour ceux qui ont peu de port USB sur leur machine ou qui veulent avoir une solution en Wifi.

 

Si vous avez le moindre soucis, n’hésitez pas à m'en faire part en postant un petit commentaire, ( même si vous n'avez pas de problèmes ;-) ) j’essaierai de vous aider du mieux que je peux ou bien, vous pouvez vous rendre directement sur le Github de Synless pour faire part de vos problèmes en postant une issue ou bien entendu, pour le félicité, ça fait toujours plaisir.

 

Un grand merci à Synless pour son travail /;-).

 

Bon mod à tous !!!

Commentaires : 2 (Discussion fermée)
  • #1

    Guillaume (lundi, 10 juillet 2017 10:39)

    Merci beaucoup pour ce tutorial :)

  • #2

    YouS (lundi, 10 juillet 2017 10:59)

    De rien mais c'est Synless qui a fait le plus gros du travail en créant son appli. Merci a lui surtout. ;-^).