[TUTO] Mettre en place un système Ambilight sous LibreELEC et Hypérion pour son Odroid C2 avec un Arduino ( USB ) ou un ESP8266/NodemMCU ( WiFi )

L'Odroid C2 reste une bonne alternative au Raspberry Pi 3, mise en avant par divers Benchmark que l'on rencontre sur internet le donnant gagnant face a celui-ci. Toutefois, voici les 4 points qui pourrait en rebutés plus d'un de le choisir dans une mise en place d'un système Ambilight par rapport à un Raspberry Pi 3 :

  • N’intègre pas d'origine de puce bluetooth mais surtout WiFi nécessaire pour toute manipulation à distance ( il y a toujours l'ethernet )
  • Ne permet pas pour le moment de gérer ses bandes de LEDs via les broches GPIO nous obligeant à passer par un dispositif externe
  • Ne prend pour le moment pas en charge les Videograbber donc pas de gestion du Multi-Sources HDMI également
  • Communauté moins importante que pour le Raspberry.

Je vais quand même être bon joueur et lui donner des points positifs pour la mettre en avant, car je suis assez content de cette carte :

  • Gestion de la 4k@60HZ
  • Fréquences CPU à 2 Ghz
  • 2 Giga de Mémoire DDR3
  • Carte ethernet Gigabit
  • Possibilité de lui rajouter une carte EMMc...

Vous l'aurez donc compris, le but de ce tuto sera de mettre en place un système Ambilight avec Hypérion pour son Odroid C2 que pour Kodi.

Coté Software je vous donnerai le choix entre l'installation d'un système LibreELEC tournant soit sous Kodi 17 ( Krypton ) soit sous Kodi 18 ( Leia ). Je ferai de même coté Hardware pour la gestion de bande de LEDs pour vous permettre de choisir entre un Arduino ou un NodeMCU.

 

Pour ce Tuto j'ai utilisé :

  • Mon Odroid C2 que j'ai intégré dans mon boitier AmbiPiBox
  • Un Arduino Nano et un Nodemcu ( qui possède également leur petit boitier )
  • une bande de LEDs WS2812B 
  • Une TV de 19"

Voici 2 photos de mon installation avec :

  • Mon petit boitier AmBiPiBox
  • Mon mini boitier Nodemcu / Arduino Nano ( fichier 3d recupérable sur la page d’accueil )
  • Mon Disque dur ( que j'ai récupérer sur mon grand boitier AmBiPiBox ).

Préalable

 

J'aurai besoin :

  • D'une TV 19"
  • Mon boitier assemblé AmbiPiBox + mini boitier pour Arduino Nano ou Nodemcu/ESP8266.
  • Un Odroid C2 + carte SD ( privilégié des hautes vitesses )
  • Une bande de 75 LEDs WS2812B 
  • Pas d'alimentation de bande car alimenté par le port USB de ma télé ( je ne devrais peut être pas vu l’ampérage nécessaire, +- 4A )
  • 4 Connecteurs d'Angles ( car ma bande de LED débute au centre de la TV )
  • Un Chargeur 5v 4A pour mon boitier (  3A insuffisant car HDD ). Pour alimenter un Odroid C2 un chargeur 2A minimum est recommandé.
  • Un Hub USB 3/4 ports ( pas obligatoire )
  • Une carte WiFi USB et ou Bluetooth
  • Un Arduino et/ou un Nodemcu 
  • Une télécommande Infrarouge Media Center

 

Quelle version de LibreELEC choisir ?

 

Plus haut Je vous ai indiqué vous donner le choix entre l'utilisation d'un LibreELEC tournant sur Kodi 17 - Krypton ou Kodi 18 - leia.

 

Pourquoi 2 versions ? Juste pour une histoire de thèmes en fait.

 

Sur Kodi 17 on pourra utiliser la version d'origine d'Estuary, la Version 2 et avoir la possibilité d'installer la Version 1 que certains préfèrent.

Par contre elle n'est pas installable sur Kodi 18 d'ou le choix entre les 2 versions de LibreELEC. Voici quelques images pour comparer les 2 :

 

Version 1

 

Version 2 :

Pour les 2 versions nous installerons des versions modifiés de notre cher ami Guilouz, au lieu d'utiliser celle d'origine.

 

Ce que je peux vous conseillez :

  • Etant donné que LibreELEC avec Kodi 17 permet l'utilisation des 2 versions, je traiterai l'installation de celle-ci.
  • Ensuite faites d'abord un essai avec le skin d'origine ( Estuary V2 ) puis avec la Version 1 ( Kodi 17 Estuary Mod )
  • Si vous préférez la Version 1 rester sur Kodi 17 sinon migrer sur Kodi 18 via l'utilisation de l'archive .tar

Pour ceux qui ne savent pas comment faire pas d’inquiétude, je traiterai de tout ces points dans ce tuto. Voyons les fichiers à télécharger.

 

Téléchargements des archives et préparation de la carte MicroSD 

 

Téléchargement des Archives 

 

Nous avons vu dans le paragraphe précédent que nous allons débuter par l'installation de LibreELEC comprenant Kodi 17. Il nous faudra :

Pour la migration de Kodi 17 vers Kodi 18 nous avons besoin de cette archive LibreELEC-Odroid_C2.arm-9.0-rb-agile16.tar ( release V16 )

 

Pour ceux qui veulent directement aller vers Kodi Leia il faudra télécharger cette archive LibreELEC-Odroid_C2.arm-9.0-rb-agile16.img.gz.

Comme pour la version Krypton, vérifier si il existe de nouvelles releases.

 

Libre a vous ensuite de changer de système si celui-ci ne vous convient pas. Une fois les fichiers téléchargés passons à l’étape suivante.

 

Préparation de la carte µSD

 

La première des choses à faire sera de décompresser l'archive LibreELEC-Odroid_C2.arm-8.0-rb-krypton11.img.gz que nous venons de télécharger. Pour cela on pourra soit utiliser Winrar soit 7zip. Nous obtenons un fichier LibreELEC-Odroid_C2.arm-8.0-rb-krypton11.img. Voici la marche à suivre pour installer ce système sur la carte µSD :

  • Brancher votre clé adaptateur USB/MicroSD ou adaptateur SDCard/MicroSD contenant votre carte sur un des ports USB de votre PC. Elle doit être reconnu et une lettre doit lui être assigné
  • Exécuter le logiciel Win32DiskImager
  • Cliquer sur le petit dossier bleu à droite pour sélectionner une image Systeme .img
  • Naviguer jusqu’au dossier ou se trouve cette image, la sélectionner et cliquer sur Ouvrir
  • Cliquer sur le menu déroulant à coté du dossier bleu pour sélectionner la lettre correspondant à votre carte ( le logiciel la sélectionnera par défaut mais à vérifier quand même, on ne sais jamais si vous en avez plusieurs ou s'il à commis une erreur )
  • Cliquer ensuite sur Write pour lancer la copie. On vous demandera de confirmer la copie donc cliquer sur YES.
  • Un message s'affiche pour nous indiquer la fin et la réussite de la copie.

 Vous pouvez dès à présent retirer votre carte et l'introduire dans votre Odroid puis alimenter le pour lancer le système. Passons maintenant à l’étape suivante, la première partie consacré à LibreELEC et à Kodi.

 

Premier pas sur LibreELEC

 

Si tout s'est bien passé vous devriez voir des informations qui defile sur le haut de l'écran, ainsi que l'affichage du logo LibreELEC et pour finir l'arrivée sur l'interface de Kodi qui a lancé l'assistant de configuration de 1er démarrage.

Afin de pouvoir naviguer sous Kodi vous avez le choix entre :

  • Un clavier ou une Souris
  • Une télécommande Infrarouge ( car présence d'un récepteur infrarouge )
  • Votre télécommande TV via l'option CEC.

 Vous devrez :

  • Sélectionner Next pour passer à la fenêtre suivante
  • Entrer un nom pour notre dispositif, vous pouvez laisser LibreELEC par défaut et sélectionner Next
  • Si vous n'avez pas de carte WiFi sélectionner Next sinon sélectionner votre réseauentrer votre mot de passe ( Noter l'adresse IP que vous obtenez, on en aura besoin plus tard pour effectuer une connexion à distance, dans mon cas 192.168.1.1), puis sélectionner Next
  • Se positionner sur le curseur sous SSH et le le faire glisser en le sélectionnant pour activer cette fonction puis sélectionner Next
  • Et enfin sélectionner 2 fois Next  pour terminer la configuration.

Nous arrivons sur cette interface :

 

Configuration de LibreELEC

 

Nous allons ensuite effectuer quelques réglages rapide. Commençons par la partie propre au fonctionnement de LibreELEC en :

  • Sélectionnant la roue crantée pour accéder aux réglages puis
  • Pour ceux qui utilisent l'Ethernet sélectionner l'icone System Information afin récupérer l'adresse IP, dans mon cas 192.168.1.1
  • Revenir en Arrière puis Sélectionner l'icone LibreELEC.
  • Positionner vous sur l'onglet System puis sur Keyboard layout et changer le clavier de US en Azerty
  • Positionner vous ensuite sur l'onglet Services puis sélectionner Use Samba Password Authentification pour activer cette fonction ( le nom d'utilisateur et le mot passe pour se connecter à distance via samba sera libreelec, vous pouvez en changer via le menu)
  • Si vous avez une carte bluetooth descendre jusqu’à Bluetooth et activer cette fonction
  • Enfin positionner vous sur Bluetooth pour effectuer un jumelage avec vos périphériques.
  • Revenir sur l’écran d’accueil une fois terminé.

 

Configuration de Kodi à minima

 

Nous venons d’effectuer les réglages principaux de LibreELEC et allons faire de même pour Kodi en modifiant quelques options. Pour cela :

  • Se positionner sur Addons puis sur Install From Repository
  • Descendre et sélectionner la ligne Kodi Addon-on repository afin de mettre à jour les dépôts
  • Une fois fait une liste de dossiers devrait s'afficher.

Pour le moment nous n'allons pas entrer dans ces dossiers mais plutôt retourner dans les paramètres de Kodi :

  • En retournant sur l'Ecran d’accueil puis en sélectionnant la Roue crantée ensuite
  • Sélectionner l'icone Interface settings
  • Positionner vous ensuite sur Standard pour le modifier en Expert et afficher ainsi toutes les options disponibles de Kodi
  • Si vous avez des problèmes de rognage d’écran positionner vous sur Skin puis sur Zoom et passer de 0% à -2, -4 ou encore -6%
  • A vous de voir ensuite les autres options qui se présente à vous dans cet onglet. ( changement de couleur, font...)

Je viens d'effectuer quelques modifications sur le thème. Pour le configurer de manière plus approfondie,  positionner vous sur Skin puis sur Configure Skin. Passons maintenant à l'onglet Régional. Commençons par franciser Kodi et passer le clavier en Azerty :

  • Positionner vous sur Regional et sélectionner Language puis
  • Descendre dans la liste et sélectionner French. L'interface change et passe en français
  • Repositionner vous sur l'onglet Région puis sur Dispositions du clavier
  • Sélectionner English Qwerty pour le de-valider puis descendre et sélectionner la ligne French AZERTY puis valider en sélectionnant OK.

Ne reste plus qu'a changer le pays pour les unités et le fuseau horaire en :

  • Sélectionnant la ligne Format régional prédéfini, descendre dans la liste et choisir la France puis refaire la même manipulation en sélectionnant la ligne Pays fuseau Horaire.

 

Installation des versions modifiés d'Estuary 

 

Le dernier point que je traiterai sur le mod de Kodi sera l'installation des versions modifiés d'Estuary. Commençons donc par copier notre archive repository.guilouz-1.0.3.zip.

 

Il est possible d'effectuer des transferts de fichiers de différentes manières, en utilisant WinSCp par FTP ou bien Samba par navigation Réseau. Le plus simple étant ce dernier, je l'utiliserai pour les copies de fichiers. 

 

Voici comment. Sur votre Ordinateur :

  • Ouvrir un dossier quelconque puis copier \\ADRESSE_IP_DE_VOTRE_ODROID dans la barre d'adresse soit pour moi \\192.168.1.1
  • On va vous demander un Nom d'utilisateur et mot de passe, pour les 2 champs saisir libreelec ( ou ceux que vous avez choisi plus haut )
  • Entrer dans le dossier Downloads par exemple puis copier le fichier repository.guilouz-1.0.3.zip dans celui-ci.
  • Profitez-en pour également copier notre fichier T4A_AmbiLightTest.mp4 dans le dossier Vidéos.

Une fois l'archive en place retournons sur l'Odroid. Il nous faudra dans un premier temps activer la prise en charge d'installation à partir de sources inconnues puis installer le dépôt et enfin installer la version d'Estuary correspondant à sa version de Kodi. Voici la procédure :

  • Retourner sur l'ecran d'acceuil de Kodi puis descendre jusqu’à Extensions et sélectionner l'icone Mes Extensions
  • Sélectionner la ligne .. puis Installer depuis un fichier ZIP. Un message d'information de sécurité s'affiche, sélectionner Paramètres puis
  • Selectionner Sources Inconnues pour activer l’installation d'archives au format ZIP. un message d'information s'affiche, sélectionner Oui
  • Revenir en arrière puis sélectionner de nouveau Installer depuis un fichier ZIP. Une liste de dossiers devrai s'afficher
  • Selectionner la ligne Dossier Personnel puis downloads et enfin repository.guilouz-1.0.3.zip. Selectionner OK pour valider l'installation. Une banderole vous informera de  la fin d'installation du dépôt.
  • Revenir en arrière puis sélectionner la ligne Installer depuis un dépôt
  • Sélectionner ensuite Guilouz Repository puis Apparence, Habillage et enfin Estuary Mod ( Kodi 17 ).
  • Selectionner enfin Installer pour lancer le téléchargement puis l'installation du thème
  • A la fin du téléchargement une fenêtre s'affiche nous demandant de basculer vers le nouveau thème, sélectionner Oui
  • Une autre fenêtre s'affiche pour nous demander si l'on veux conserver les modifications, sélectionner de nouveau Oui.
  • Revenir sur l'ecran d'acceuil de Kodi
  • On vous demandera pour finir de télécharger une extension pour faire fonctionner notre thème, sélectionner de nouveau Oui

Nous avons maintenant le choix entre 2 versions d'Estuary, la V1 ou celle d'origine, la V2.

Pour Info : Pour rebasculer vers le 1er theme, retourner sur la roue crantée puis sélectionner Interface et pour finir Habillage ou vous aurez le choix entre Estuary ( version d'origine ) et Estuary Mod ( Kodi 17 )

 

Migration de LibreELEC-Krypton vers LibreELEC- Leia

 

J'avais abordé en début de tuto la possibilité de migrer d'une version de LibreELEC vers une autre en utilisant l'image au format .tar

Cette migration est très simple à réaliser. Il faudra tout d'abord :

  • Sur son ordinateur, ouvrir de nouveau les dossiers Samba partagées disponible sur l'Odroid
  • Entrer dans le dossier Update puis copier l'Archive LibreELEC-Odroid_C2.arm-9.0-rb-agile16.tar que nous avions téléchargé plus haut
  • Retourner sur l'interface de Kodi pour redémarrer le système en sélectionnant le symbole Power puis
  • Sélectionner l'icone et/ou la ligne Redémarrer pour effectuer la mise à jour.

Plusieurs lignes en haut à gauche vous informe de la mise à jour. l'Odroid devrai ensuite démarrer sur le nouveau système sous Kodi 18.

 ( Ne pas fermer la fenêtre samba nous en aurons besoin dans plus bas dans le tuto ).

 

Vous pouvez utiliser des archives de votre choix au format .tar pour effectuer des migrations vers d'autres versions.

 

Je vous ai proposés ces versions car elles contiennent déjà le dépôt du créateur de l'Archive personnalisé, à savoir Raybuntu, permettant ainsi l'installation des Extensions notamment Hyperion, mais aussi leurs mises à jours des la parution d'une nouvelle version. 

 

La configuration de Kodi à était faite au minimum. Etant donné que ce tuto ne s'intitule pas "Comment configurer Kodi dans les moindres détails" j’arrêterai ici la config de celui-ci. Passons à la prochaine étape.

 

Installation d'Hypérion

 

Comme nous sommes en train d'intervenir sur Kodi, nous allons en profiter pour lancer l'installation d’Hypérion. Voici la marche à suivre :

  • Retourner sur l’écran d’accueil puis sélectionner l'icone Extensions et enfin Rechercher
  • Entrer à l'aide clavier virtuel le mot hyp puis sélectionner OK
  • Sélectionner dans la liste Service Hypérion puis installer pour lancer le téléchargement puis son installation

Si vous souhaitez installer d'autres Extensions :

  • Selectionner l'icone installer depuis un depot au lieu de Rechercher puis
  • Selectionner un depot par exemple RB Addons puis Services

La liste d'Extensions que l'on peux installer s'affiche. Il ne vous reste plus qu'a sélectionner celle que l'on veux puis de l'installer.

 

Pour information : Ne surtout pas installer Hypérion par des lignes de commande ( comme celle que vous trouverez ci-dessous que l'on utilise pour une install sur Raspberry ) ou autres comme vous le feriez pour un autre MicroPC.

 

curl -k -L --output install_hyperion.sh --get https://raw.githubusercontent.com/hyperion-project/hyperion/master/bin/install_hyperion.sh

chmod +x install_hyperion.sh && sudo sh ./install_hyperion.sh 

 

Cette version à était spécialement compilé pour fonctionner sous l'Architecture de l'Odroid C2, inutile d'aller chercher d'autres versions ailleurs.

 

Nous allons maintenant voir la partie Hardware puis Software de notre installation Ambilight. Comme j'ai déjà traité ces 2 sujets de manière approfondie dans de précédents tutos, je vous renvoi vers leurs lectures pour avoir des informations supplémentaires et complémentaires :

 

 

Positionnement et câblages des LEDs

 

Pour pouvoir configurer correctement notre logiciel Ambilight HyperCon il va d'abord falloir s'occuper de la partie Hardware notamment le type de bande, le nombre de LEDs ainsi que leur disposition dans l'espace derrière la TV.

 

Je dispose d'une petite TV de 19" ( 18.5" en réalité ) dont je vais me servir comme base pour mon installation. J'ai choisi d'utiliser des WS2812B car il m'en restait quelques longueurs mais j'aurai très bien pu utiliser d'autres modèles.

 

Vu que je vais utiliser mon mini boitier pour Arduino Nano ou Nodemcu fixé sur le Vesa j'ai opté pour un démarrage de bande au centre de la TV. ( Je trouve que ce mode permet de mieux cacher et ranger les câbles ).Voici les schémas de montage pour un Arduino nano ou Nodemcu

( Du grand Art ) :

Pour résumé :

  • J'ai positionné mes LEDs par trop près du bord de la TV pour qu'elles soit un peu cachées
  • Mes bandes sont reparties comme ceci, 11 LEDs pour la 1ère, 14 pour 2nde, 24 pour la 3ème, 14 pour la 4ème et 12 pour la 5ème. J'ai donc disposé 75 LEDs et le sens de rotation sera l'inverse des aiguilles d'une montre lorsque nous seront face à l’écran 
  • Elles sont alimentées par le port USB de ma télé ( privilégié plutôt un chargeur secteur externe de type chargeur d'ordinateur portable. Un 5V 10A fera l'affaire pour la plupart des installs )
  • Si vous utilisez un Arduino connecter le Data sur la broche D5, si Nodemcu le Data se connecte sur la broche D7.
  • L'Arduino Nano est alimenté par l'Odroid C2 via la connexion USB et le Nodemcu par son propre chargeur 5V 1A.

Si vous utilisez des bandes SPI ( 4 fil ), pour l'Arduino il faudra connecter la Clock sur la broche D7 et pour le Nodemcu sur la broche D5 ( Vous aurez surement vues que les broches sont inversées, D7/D5 pour l'un et D5/D7 pour l'autre ).

 

Notre partie Hardware est maintenant terminé, passons à la partie Software.

 

 

Programmation des MicroControlleurs et Création du fichier .conf via HyperCON

 

 

La partie Software sera divisé en 2 parties. La première sera consacré à la programmation des Microcontroleurs en utilisant le logiciel Arduino IDE et la seconde traitera de la génération du fichier de configuration pour Hypérion via HyperCon.

 

Programmation des MicroControlleurs

 

Nous allons dans un premier temps voir la programmation de l'Arduino Nano puis celle du Nodemcu.

 

Programmation de l'Arduino Nano

 

Nous allons  programmer notre Arduino Nano avec le Sketch Adalight_Arduino_Ambilight.ino pour la gestion de notre Ambilight. Voici la marche à suivre :

  • Double Cliquer sur Adalight_Arduino_Ambilight.ino pour ouvrir votre fichier ou sinon l'ouvrir directement dans le logiciel Arduino IDE
  • On vous demandera de le placer dans un dossier, répondre Oui
  • Modifions le type de carte à programmer en cliquant sur Outils, Type de cartes puis sélectionner Arduino Nano
  • Cliquer de nouveau sur Outils puis Port et enfin sélectionner le port COM correspondant à votre Arduino, pour moi COM3 

Sur le fichier il faudra modifier quelques valeurs comme :

  • Le Nombre de LEDs en fonction de votre configuration, #define NUM_LEDS 75
  • La broche sur laquelle est connecté le Data, #define DATA_PIN 5 ( si vous avez une clock supprimer les // devant //#define CLOCK_PIN 7 )
  • L'ordre des couleurs, #define COLOR_ORDER GRB ( par exemple en #define COLOR_ORDER RGB )
  • la taux de transmission, #define serialRate 500000 ( certain Arduino ne fonctionne pas à cette vitesse mais plutôt à 115200 )
  • et enfin le type de bande utilisé FastLED.addLeds<WS2812B, DATA_PIN, GRB>(leds, NUM_LEDS);

Une fois que nous avons effectué les modifications sur notre fichier, on pourra lancer la programmation en cliquant sur Téléverser. Vérifier que celle-ci s'est déroulé avec succès dans la fenêtre d'information qui se trouve en bas du logiciel.

 

Programmation du NodeMCU

 

Nous allons maintenant voir comment programmer notre Nodemcu en utilisant l'Archive ESP8266_Hyperion_LED-Controller-master.zip.

( Je vous renvoi une nouvelle fois vers le tuto dont je faisais référence plus haut pour la configuration d'Arduino IDE et la modification des fichiers en vue de la programmation du Nodemcu). Voici la marche à suivre  :

  • Ouvrir le Sketch HyperionRGB.ino dans Arduino IDE
  • Changer le type de carte, la fréquence Processeur, le port de communication et verifier que le taux de transmission est à 115200
  • Cliquer ensuite sur l'onglet Configstatic.h

Passons à la modification, voici ce que j'ai entré comme informations :

  • Le nombre de LED, #define CONFIG_LED_COUNT 75  
  • L'ordre des couleurs, #define COLOR_ORDER GRB
  • Le type de bande que l'on utilisera, 3 ou 4 fil ( commenter/ dé-commenter les lignes en fonction de ce que vous avez ) pour moi 3 fil en WS2812B donc je commenterai la partie 4 fil :

//  Configuration pour 3 fils  //

#define CONFIG_LED_CLOCKLESS_CHIPSET WS2812B

#define CONFIG_LED_DATAPIN D7

#define FASTLED_ALLOW_INTERRUPTS 0    

 

//  Configuration pour 4 fils // 

//#define CONFIG_LED_SPI_CHIPSET APA102

//#define CONFIG_LED_CLOCKPIN D5 

//#define CONFIG_LED_DATAPIN D7

  • Le type d'effet de démarrage #define CONFIG_LED_STANDARD_MODE HYPERION_UDP  ( remplacer FIRE2012 par UDP )
  • et enfin le nom du réseau Wifi et le mot de passe #define CONFIG_WIFI_SSID "NOMduRESEAU" #define CONFIG_WIFI_PASSWORD "MOTdePASSE"

Une fois que les modifications apportées lançer la programmation en cliquant sur Téléverser. Ne pas oublier d'ouvrir le Moniteur série pour voir si tout s'est bien passé mais également pour récupérer l'adresse IP. L'adresse que j'ai assigné est la 192.168.1.123.

( Ne pas oublier également de définir une adresse IP pour votre Microcontrôleur via la page Web http://AdresseIPduNomdeMCU).

Nous venons de voir brièvement comment programmer soit un Arduino, soit un Nodemcu pour l’intégrer à notre installation Ambilight. 

Passons maintenant à la 2ème partie, la création du fichier de configuration avec HyperCon. 

 

Creation du fichier hyperion.config.json avec HyperCon 

 

Comme pour la programmation des Microcontrôleurs je ne rentrerai pas dans les détails pour expliquer tel ou tel fonction d'HyperCon, mon tuto sur celui-ci est très détaillés et contient toutes les informations nécessaires pour en avoir avoir une bonne compréhension.

 

A l'image du paragraphe précédent je diviserai cette partie en 2, la première pour l'Arduino et la suivante pour le NodeMCU ou j'effectuerai quelques changements sur la configuration initiale.

 

Hyperion.config.json pour l'Arduino Nano  

 

Commençons par ouvrir notre HyperCon. Je n'effectuerai des modifications que dans l'onglet Hardware donc :

( j'effectuerai une modification pour augmenter la fréquence des LEDs directement sur le fichier config en dernière partie de tuto )

  • Entrer un nom de configuration dans le champ Configuration name par exemple Arduino_75Leds_WS2812B
  • Choisir Adalight comme type d'installation ( si vous avez des APA102/APA102C/SK9822 choisir AdalightAPA102 )

Pour Info : moimeme m'a fait part que le profile AdalightAPA102 ( normalement concu pour les APA102 ) posais problème chez lui et il à utilisé le profile Adalight tout court à la place donc à vous de tester d'abord avec AdalightAPA102 puis si vous constatez des LED de couleurs R V B puis noir tout le tour de l'ecran lors de la séquence de démarrage d'hyperion, changer le profile pour Adalight.( Je testerai de mon coté également avec des SK9822 ). Merci à lui pour cette info qui aidera les autres.

  • Choisir dans Output le chemin du dispositif sur LibreELEC, soit /dev/ttyUSB0  
  • Changer l'ordre des couleurs en GRB
  • Passer le Baudrate à 500 000 ( sinon mettre la valeur serialRate que vous avez indiqué lors de la programmation de l'Arduino )
  • Changer la direction en Counter ClockWise
  • Incrementer le nombre de LEDs Horizontal jusqu'a 24
  • Incrementer le nombre de LEDs Left et Right jusqu'a 14
  • Incrémenter la valeur Bottom Gap jusqu’à 1 ( car je dispose de 24 LEDs sur la partie haute et de 23 LEDs ( 12 + 11 ) sur la partie basse ) 

Pour obtenir la valeur 1st LED offset, mettre la valeur sur 0. La 1ère LED se positionnera en haut à gauche. Localiser l'emplacement de la 1ère LED dans votre installation mais surtout le numéro associé à celle-ci, pour moi c'est la 27. Il faudra donc :

  • Incrementer la valeur 1st LED Offset jusqu'a 27 pour que celle-ci se positionne sur la case 27 qui deviendra 0
  • Si vous voulez, incrementer la valeur d'Overlap jusqu'a 50 pour un traitement plus harmonieux des couleurs.

 

Cliquer ensuite sur :

  • Save puis entrer un nom, ( par exemple la même chose que Configuration name soit Arduino_75Leds_WS2812B.dat ) et enfin enregistrer les modifications que vous avez apportés dans un fichier dat. ( Il sera possible de charger ultérieurement son contenu pour ne pas avoir à reprendre tout de 0 en sélectionnant Load puis le fichier en question). Puis sur 
  • Create Hyperion Configuration et enfin enregistrer le fichier de configuration hyperion.config.json ( ne pas modifier le nom )

Passons aux modifications à apporter pour l'utilisation d'un NodeMCU.

 

Hyperion.config.json pour le NodeMCU  

 

Nous venons de faire le gros du travail dans notre paragraphe précédent et n'allons modifier que quelques valeurs, voici lesquelles :

  • Changer le nom dans Configuration name par exemple en NodemMCU_75Leds_WS2812B 
  • Changer le type, actuellement sur Adalight en UDP ou UDP ( new-imp )
  •  Dans le champ Output remplacer l'adresse IP 192.168.0.10 par l'adresse IP de votre NodemMCU, pour moi ce sera 192.168.1.123

Répéter les procédures de sauvegarde en entrant par exemple NodeMCU_75Leds_WS2812B.dat au lieu d'Arduino_75Leds_WS2812B.dat

 

Notre fichier hyperion.config.json est maintenant créer, que ce soit pour l'utilisation d'un Arduino que pour un NodeMCU. Ne reste plus qu'a tester tout ça. Enfin pas tout à fait. il va falloir que l'on modifie le fichier en lui rajoutant quelques lignes de codes, impossible via HyperCon.

 

 

Modification du fichier hyperion.config.json et copie sur l'Odroid via Samba

 

Dans le prochain et dernier paragraphe de ce tuto nous allons voir comment effectuer des modifications directement sur le fichier de configuration hyperion.config.json. Nous verrons également comment copier ce fichier sur notre Odroid.

 

Modification de la configuration

 

Pour ne pas devoir à recréer un nouveau fichier de configuration nous allons l’éditer pour effectuer des modifications à l’intérieur de celui-ci. Utile notamment si l'on veux remplacer telles ou telles valeurs ou ajouter quelques lignes de code...

Pour cela :

  • Ouvrir le fichier hyperion.config.json avec Notepad++ ( il faudra lié l'ouverture des fichiers .json de manière permanente avec notepad++ ).

Voici ce que l'on obtient :

( utilisant un Nodemcu j'ai fait la copie du fichier de configuration correspondant à celui-ci )

Ce fichier reprend toutes les informations que l'on à saisi dans HyperCon et il est tout à fait possible de modifier ce que l'on veux à l’intérieur.

 

Vous noterez toutefois que dans l’état actuel, comme indiqué plus haut, notre fichier n'est pas encore totalement configurer pour fonctionner avec l'Odroid. Il va falloir lui ajouter les lignes de code qui se trouve plus bas. Voici comment :

  • Dans Notepad++,  rechercher le mot V4L2 puis
  • Insérer les lignes qui suivent entre // NO V4L2 GRABBER CONFIG et // FRAME GRABBER CONFIG

"amlgrabber" : 

{

"width" : 64,

"height" : 64,

"frequency_Hz" : 10.0,

"priority" : 880

},

  • Faire une nouvelle recherche ou avec le mot effects
  • Inserer entre "/storage/hyperion/effects", et "/usr/share/hyperion/effects" la ligne ci dessous ( ne pas oublier la virgule )

"/storage/.kodi/addons/service.hyperion/effects",

 

Nous allons ajouter l’accès à l'interface d'Hyperion  via navigateur sur le port 8099 en rajoutant les  lignes ci-dessous entre les lignes  // NO JSON/PROTO FORWARD CONFIG et // LED CONFIGURATION

 

 "webConfig" :

        {

                "enable" : true,

                "document_root" : "/storage/.kodi/addons/service.hyperion/webconfig",

                "port" : 8099

 

        },

  • Sauvegarder votre fichier pour valider les changements.

Imaginons maintenant que je veuille modifier dans le fichier de configuration l'adresse IP du NodeMCU en 192.168.321 et l'ordre des couleurs après avoir observé une inversion des couleurs rouge et bleu lors de la lecture de la vidéo. Il va donc falloir :

  • Modifier la valeur 192.168.1.123 en 192.168.1.321
  • Modifier la séquence GRB en GBR

Plus haut je vous avez indiqué que j'allais modifier une valeur concernant les LEDs directement dans le fichier de configuration. Celle-ci est UpdateFrequency. Certaines LED fonctionne à 20, 25 ou encore 30 Hz et la WS2812B fonctionne bien à cette dernière fréquence. Je vais donc l'augmenter pour la passer de 20 à 30 Hz. Pour cela :

  • Faire une recherche dans le fichier avec le mot Update
  • Le logiciel trouve une correspondance. Modifier le 20 en 30

Petite info : Si jamais vous constatez un délai dans le changement de couleurs, vous pouvez diminuer la valeur time_ms au dessus de la ligne UpdateFrequency en la passant d'abord à 100 puis à 50.

Vous pouvez, comme précédemment, modifier ce que vous voulez dans votre fichier mais attention toutefois aux mauvaises manipulations. Voyons maintenant comment copier le fichier de configuration sur notre Odroid en utilisant le service Samba.

 

Copie du fichier de configuration

 

Nous allons une nouvelle fois accéder aux dossiers partagés Samba pour effectuer la copie de notre fichier. Voici ce qu'il faut faire :

  • Une fois arrivée devant la liste des dossiers entrer dans Userdata puis addon_data et enfin dans Service_hyperion
  • Renommer le fichier d'origine hyperion.config.json en par exemple Old.hyperion.config.json
  • Coller ensuite le fichier hyperion.config.json que vous avez généré à l'aide d'HyperCon

 

Une fois la copie faite retourner sur Kodi et redémarrer le système. Au redémarrage vous devriez voir une séquence lumineuses Arc-en-Ciel au niveau de vos LEDs puis, lorsque vous arriverez sur l'interface de Kodi, elle devrai s'allumer et s'adapter aux couleurs de l'interface.

 

C'est le moment de tester pour de bon notre installation et voir si tout est correctement paramétrer. Ce sera le dernier chapitre de ce tuto.

( Ouf enfin certain dirons je pense... )

 

Test de l'installation et interface Web Hyperion

 

Commençons d'abord par tester notre installation. Nous verrons par la suite les manipulations que l'on peux réaliser sur l'interface Web pour prendre en main Hyperion donc nos LEDs.

  

Lecture de la vidéo de test RGB

 

Plus haut dans le tuto je vous avais demandé de copier une vidéo de test dans le dossier Vidéos. Nous l'utiliserons pour effectuer notre test.

 

Voici la procédure pour pouvoir la lire:

  • Retourner sur l'ecran d'acceuil de Kodi
  • Selectionner l'icone Videos, puis Fichiers et enfin Vidéos une nouvelle fois
  • Le fichier T4A_AmbiLightTest.mp4 devrai s'y trouver
  • Lancer la lecture de ce fichier pour déjà voir si votre installation fonctionne et si l'ordre des couleurs est correct.

Comme je vous l'ai dit plus haut si vous observé des erreurs de couleurs ou autres, éditer via Samba le fichier de configuration se trouvant dans le dossier service.hyperion et modifier les valeurs en questions ( RGB --> GBR --> GRB... )

 

Voyons maintenant comment accéder à l'interface Web hyperion et ainsi agir directement sur nos LEDs pour effectuer d'autres tests.

 

Interface Web Hypérion

 

Il est possible de contrôler Hyperion de différente manière, par le biais d'Application pour Smartphone, par le logiciel HyperCon, ou encore en exécutant des lignes de commande. Nous allons utiliser aucune des ces options mais plutôt s'orienter vers le contrôle par l'Interface Web.

 

Cette fonction est disponible d'office et ne nécessite aucune installation supplémentaire, raison pour laquelle je parlerai de celle-ci. Cette interface est disponible sur le port 8099 donc :

  • Ouvrir le navigateur de votre choix puis
  • Accéder à cette adresse http://Adresse_IP_de_L_Odroid:8099 soit pour moi http://192.168.1.1:8099

Nous arrivons sur cette interface :

Nous allons ajouter notre serveur Hyperion pour faire reagir les LEDs. Pour cela :

  • Cliquer sur Settings puis sur Detect. Il devrai trouver le serveur tout seul.
  • Si il ne trouve pas de serveur ( comme pour moi ) pas de panique, nous allons l'ajouter manuellement
  • Cliquer sur le + en haut à droite puis
  • Entrer les informations demandé soit un nom et l'adresse IP, j'ai entré par exemple LibreELEC Odroid et 192.168.1.1 ( IP de l'ODroid )
  • Puis Add pour valider l'ajout. Un message m'informe que le serveur à était trouvé et que je suis connecté.

Revenir sur l'onglet Colors puis maintenir le Click gauche de votre souris en la déplaçant sur la zone de couleurs. Rien ne se passe, pourquoi ?

 

Parce qu'en fait le curseur de luminosité des LEDs est quasiment positionné au minimum. Il faudra le faire glisser vers la droite pour les allumer à 100%. ( il aurait pu quand même la positionner au bon endroit ;-) ).

 

Faites le glisser et essayer de nouveau de faire changer vos LEDs de couleurs. Ça devrai marcher.

 

Par contre après une certaine période d'inactivité, la connexion à l'air de ne plus être établi donc cliquer sur Settings puis sur LibreELEC Odroid. Vous verrez de nouveau le petit message vous informant que la connexion avec Hyperion est de retour.

( Cliquer sur la gomme, à droite au dessus d'Effects, pour réinitialiser vos interventions faite sur la zone de couleurs )

Vous pouvez également jouer avec des effets lumineux genre Guirlandes de Noel ou encore Sirène de Police. Vous les trouverez dans Effects. L'onglet Transform quand à lui servira à faire des petits réglages au niveau du Gamma, du taux de luminosité... ( Il vaut mieux ne rien toucher ).

 

Voila nous arrivons au terme de notre long tuto. Je dit bravo au courageux qui l'on lu entièrement. Vous savez tout ce qu'il y à savoir sur la mise en place d'un systeme Amblight pour un Odroid C2 et pouvait reprendre certains passages pour l'adapter à un Raspberry ou autre µPC.

 

 

Un grand merci à Raybuntu pour ses releases LibreELEC et aux autres qui nous permettent de réaliser nos projets Ambilight...

 

 

Bon mod à tous !!!

 

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

    Moimeme (jeudi, 08 juin 2017 14:17)

    Salut,
    Je suis entrain de suivre ton Tutoriel.
    Concernant la programmation de la parti Arduino.
    J'utilise des led APA102, que je dois mettre à la place de :

    FastLED.addLeds<WS2812B, DATA_PIN, GRB>(leds, NUM_LEDS);

    Ou bien je laisse tel quel ?

  • #2

    YouS (vendredi, 09 juin 2017 20:03)

    Salut,
    Non il faut que tu change cette ligne ( ou tu la rajoute en dessous en n'oubliant pas de commenter celle utilisant WS2812B ) par :
    FastLED.addLeds<APA102, DATA_PIN, CLOCK_PIN, GRB>(leds, NUM_LEDS);
    Il faut aussi que tu de-commente celle ligne : #define CLOCK_PIN 7

    Normalement il faudrait utiliser la broche MOSI et la CLOCK donc ça donnerais la D11 et la D8 sur un Arduino Nano ( 8 et 11 dans le sketch ).
    Après j'ai utilisé d'autres PIN et j'ai pas eu de soucis particulier donc...

  • #3

    Moimeme (lundi, 12 juin 2017 13:04)

    Alors, je me permet de revenir vers toi, j'ai fait les branchement, j'ai fait des test l'arduino fonctionne bien avec les leds, aucun soucis... (J'ai bien le RGB quand je fais un test de séquence)

    Alors par contre... avec l'odroid C2, j'ai un soucis au boot j'ai une pseudo séquence de rainbow par contre, 3 led Allumé et une éteinte et ainsi de suite tout le tour, les led allumé sont soit de couleurs Rouge, Bleu ou Vert.

    Je ne sais pas de quoi ça peut venir. J'ai baissé le Baud Rate sur l'arduino et le fichier Json d'hypérion.

    Là, je sèche.
    Amicalement.

  • #4

    Moimeme (lundi, 12 juin 2017 13:57)

    J'ai fini par trouver:
    Choisir Adalight comme type d'installation ( si vous avez des APA102/APA102C/SK9822 choisir AdalightAPA102 )
    cela ne fonctionne avec AdalightAPA102 mais avec Adalight (tout simplement) il faut aussi choisir le bon port USB qui est

    "type" : "adalight",
    "output" : "/dev/ttyACM0",

    cordialement

  • #5

    YouS (lundi, 12 juin 2017 14:16)

    Ok super je t'avais répondu pour te donner des pistes mais tu as trouvé entre temps. /;-().

    Effectivement pour l'arduino il faut choisir USB0 pour un nano et ACM0 pour un Uno si je ne me trompe pas.

    Par contre cette histoire de type d'installation n'est pas normal. Ce profil est conçu spécialement pour les APA102 ou équivalent.

    Je vais rajouté le fait qu'il y a un risque que ça ne fonctionne pas si l'on choisi AdalightAPA102, même si l'on a des APA102 et qu'il est préférable de choisir Adalight tout court à la place. ( Je ferai un essai de mon coté avec mes SK9822 pour voir si j'ai aussi la même chose que toi )

    Merci à toi pour cette information et encore désolé.

  • #6

    Moimeme (lundi, 12 juin 2017 15:36)

    Alors pour commencer, ne soit pas désolé.
    Je / On te remercie pour cette mine d'or que tu as mis à notre disposition.

    Après j'ai une question j'ai des film qui ont des bande noir en haut et en bas normal quoi ... du coup hyperion affiche les coté jusqu'au bande noir mais rien sur le dessus.
    Il y a un moyen d'y remédier ?

  • #7

    YouS (lundi, 12 juin 2017 15:51)

    Ok pas de soucis, c'est sympa de ta part. Je te rejoins sur ce point, je me dirige tout droit vers l’encyclopédie de l'Ambilight si je continue comme ça.

    Il vaux mieux avoir trop d'info et faire le tri que pas assez et être perdu /:-/)

    Bref, Pour les bandes noirs il faut que tu active dans le 1er onglet d'HyperCon Blackborder détection.

    Après si ça passe pas avec les valeurs par defaut, tu peux jouer sur le %. ( le mode default doit etre bon aussi, voir le site hyperion-project pour plus d'info ).

    Ensuite j'aimerai savoir, tu garde les bandes noirs par choix ou tu ne sais pas comment les enlevés ??

    Si option 2 il faut que tu aille dans les options, paramètres de lecteur, vidéos puis passe l'affichage des vidéos en 4:3 en étirement 16/9. Ça te mettra la vidéo en plein écran.

    Je pense que tu y arrivera avec ces infos et merci encore pour ta sollicitude, ça fait toujours plaisir.

  • #8

    Moimeme (lundi, 12 juin 2017 16:17)

    Non, je garde le format d'origine du film ...

    Dans Hyperion screen capture j'utilise:
    <add key="width" value="64" />
    <add key="height" value="64" />
    et dans le grabber interne j'utilise :

    "amlgrabber" :
    {
    "width" : 64,
    "height" : 64,
    "frequency_Hz" : 10.0,
    "priority" : 880
    },

    C'est bon aussi ?

  • #9

    YouS (lundi, 12 juin 2017 16:41)

    Oui ce sont les valeurs par défaut conseillé et je ne les ai jamais changés, quelque soit les distributions ou architecture que j'ai utilisés.

    Je viens de tester avec Hyperion screen capture en simulant des bandes noirs.

    D’après mes tests, il faut que tu augmente la largeur des zones de détection à l'horizontal
    En mettant une bande noir fine, les couleurs sont toujours affichés par contre si je l'augmente et qu'elle est hors champs, les couleurs ne sont plus affichés.

    Essaye de voir en suivant mon tuto sur Openelec et le Pi zero si tu peux mettre en place plusieurs profil Hyperion, un pour Screen capture et l'autre pour Kodi de l'odroid.

    Tu pourra faire la bascule entre les 2 via l'application Connectbot ou directement via une télécommande infrarouge, vu que celui-ci est présent sur l'odroid ( possible également via le CEC mais pas dispo chez moi donc pas testé ).

  • #10

    Moimeme (lundi, 12 juin 2017 18:43)

    Alors pour ne pas avoir de soucis avec les bande noir sur certains film il suffit d'augmenter la valeur threshold dans la partie :

    // BLACKBORDER CONFIG
    "blackborderdetector" :
    {
    "enable" : true,
    "threshold" : 10.0,
    "unknownFrameCnt" : 600,
    "borderFrameCnt" : 50,
    "maxInconsistentCnt" : 10,
    "blurRemoveCnt" : 1,
    "mode" : "default"
    },

  • #11

    Moimeme (lundi, 12 juin 2017 18:45)

    Pardon j'ai oublié de dire que ça ne fonctionne pas avec Hyperion Screen Capture...
    Donc je ne sais pas trop comment faire avec ce dernier ...

  • #12

    YouS (lundi, 12 juin 2017 18:57)

    Ok comme je disais le seul moyen semble etre l'augmentation des largeurs de detection des couleurs.

    A tester avec plusieurs valeurs mais ca devrait etre dans les 25 ou 30.

  • #13

    Moimeme (vendredi, 16 juin 2017 13:12)

    Bonjour Yous,
    je reviens vers toi car je n'ai pas saisie ton dernier commentaire.

    Ok comme je disais le seul moyen semble etre l'augmentation des largeurs de detection des couleurs.
    A tester avec plusieurs valeurs mais ca devrait etre dans les 25 ou 30.

    Peux tu préciser ?

  • #14

    YouS (vendredi, 16 juin 2017 13:33)

    En fait quand tu créer ton fichier hyperion....json avec HyperCon tu peux choisir une largeur de bande de détection de couleurs :
    - Horizontal Depth pour le haut et le bas de l'image
    - Vertical Depth pour la droite et la gauche.

    Je sais pas comment fonctionne Hyperion Screen Capture, si il récupère les informations du serveur ou si il à son propre fichier de configuration et renvoi juste les changements de couleurs à celui-ci.

    Si on part du principe qu'il utilise les informations du fichier présent sur le serveur il faut que tu créer un 2nd fichier hyperion...json avec les valeurs Horizontal Depth à 25, 30 voir plus et que tu laisse inchangé celle à la vertical ( car c'est pas les cotés qui pose problème ).

    Je l'aurai bien tester moi-même mais j'ai pas trop le temps en ce moment. Tu me dira si ça fonctionne.

  • #15

    YouS (dimanche, 18 juin 2017 10:07)

    Je viens de faire quelques test. Alors j'ai mis 0.3 comme valeur Threshold dans Blackborder et même en ayant des bandes noirs énormes, toutes le bandes sont allumées. Donc un 0.1 ou 0.2 devrait le faire.
    Même chose en triplant les valeurs Horizontal Depth, ça fonctionne. Par contre, plus je réduit les bandes noirs virtuellement et me rapproche des zones détection, plus les couleurs sont intenses.
    Je pencherai plus pour une config avec l'utilisation de Blackborder. /;-)