Projets:Perso:2015:LedTube



Il s'agit d'un projet à but purement esthétique et artistique. Rien de très original, mais c'est du plus bel effet Pour afficher en principe des images non figuratives. La première raison étant que la résolution n'est pas très élevée. A l'origine, mon projet était une sphère. Mais cela reste encore particulièrement problématique globalement. Est offert à l'électrolab pour sa déco. Peut aussi faire office d'éclairage très luxueux. Pas de compromis sur la performance. Quoique... Des vidéos du LedTube en fonctionnement sont ici : https://www.youtube.com/channel/UCg0Zysu4qRsVrjXHGqSWFog

=Spécificités=
 * Système d'affichage à LEDs cylindrique esthétique
 * Conçu pour s'accrocher au plafond, et s'alimenter directement sur le 220V
 * Le système assure un affichage hyper fluide pour des translations, même à faible ou grande vitesse.
 * Rafraîchissement d'image jusqu'à 200Hz.
 * Interface WIFI pour l'envoi d'images.
 * Un mode veille faible consommation et un allumage/extinction sans fil.
 * Silencieux
 * Par défaut, au démarrage le système affiche 3 logos Electrolab (120° entre les logos) verts. Tournant lentement. Avec de longues phases d'auto-génération d'images et d'affichage des images en flash. Le cycle auto est interrompu par toute commande Wifi et reprend après 10 minutes sans commande reçue par Wifi.

Modes d'auto-génération d'images Implémentés

 * Effets plasma (http://www.bidouille.org/prog/plasma), https://youtu.be/XoyWVUckujY?t=23s
 * jeu de la vie https://youtu.be/nbpqGYSiP_o
 * Image noire, blanche, blanc chaud avec réglage de l'intensité lumineuse https://youtu.be/XoyWVUckujY?t=1m52s
 * sauvegarde en flash des images RAW envoyées et affichage automatique de ces images par la suite

Evolutions futures

 * simulation de réaction chimique cyclique
 * machine de turing à deux dimensions

=Installation=
 * Vérifier qu'il y a bien un cavalier au bout du petit câble orange.
 * Bien ranger le cable USB blanc par le dessous en s'assurant que sa prise ne touche rien (capuchon plastique, pas de contact électrique).
 * Vérifier que le cylindre est bien relié à la terre (fil entre le cylindre et le blindage de l'alimentation)
 * Brancher le cable 220V à l'alim PC.
 * Brancher le câble 220V au secteur. Cet ordre évite des arcs multiples dans l'alim.

=Allumage=
 * Si un réseau WIFI "LEDTUBE" est déjà présent, mais rien ne s'affiche, c'est qu'il est en veille Medium Power : l'allumage peut se faire avec l'appli Android.
 * Sinon, mettre L'interrupteur de l'alim PC sur ON. Il est accessible par le dessus du LedTube. Cet interrupteur est sensé rester ON définitivement.
 * Sinon, si l'interrupteur est déjà sur ON, mais qu'il n'y a pas de réseau WIFI "LEDTUBE" alors c'est qu'il est en veille Low Power. Il est alors nécessaire de cycler l'alimentation (bouton ON/OFF) ou prise secteur.


 * Après allumage, par défaut, le LedTube cycle automatiquement entre les modes d'affichage. En commençant par le Logo Electrolab. Le cycle dure environ 3 heures.
 * Dès réception d'une commande Wifi, le cycle s'arrête. La commande est exécutée. En l'absence de commande, au bout de 10 minutes, le Ledtube continue le mode cycle automatique.

=Mise en Veille automatique=
 * 10 heures après l'allumage, le LedTube s'éteint spontanément en mode Off Medium Power.
 * 72 heures après l'allumage, il passe en Off Low Power. Il est alors nécessaire de cycler l'alimentation (bouton ON/OFF)

=Mise en Veille par commande WIFI=
 * Niveau Off Medium Power. Cela coupe l'alim PC, mais laisse le Wifi actif pour ré-allumer par Wifi. Le contrôle ON/OFF par WIFI se fait avec l'appli android.

=Choix techniques & Dimensionnement=
 * Structure porteuse des leds métallique cylindrique. Cylindre métallique de 1m de circonférence. (Pi*0.318=1).
 * Environ 0.3m de hauteur Ce qui fait vu de loin une section carrée. Ecran compris, environ 0,35m x 0,35m
 * Bandes de LEDs de 1m collées horizontalement sur la surface externe du cylindre métallique (petits carrés de 5mm de coté). 60 leds par mètre. Exploite le chip/led WS2812B alimenté en 5V (60mA/led)
 * Soit une résolution de 60x19, arrondi à 60x20 pour avoir un format d'image 3x1
 * Surface de projection : cylindre circonscrit en matériau translucide légèrement plus grand que le cylindre métallique. En pratique, les translations sont fluides avec un écran à 2cm de distance et avec un filtrage gaussien réglé à sigma = 0.7 (pixel)
 * Pixels placés en grille carrée simple (en grille hexagonale, le recouvrement des cônes d'émission aurait été plus uniforme, mais ça aurait été moins pratique du point de vue logiciel).
 * Alimentation. Alim de PC silencieuse. L'intérêt est d'en exploiter le mode veille faible consommation et d'avoir un allumage/extinction par télécommande RF 433Mhz. Il y a aussi des fournisseurs d'alim 12V dédiée pour ce type de besoin, au moins jusqu'à 600 Watts.
 * Feuilles de calcul pour le dimensionnement global
 * Autres choix techniques
 * Poids total 5.3Kg

=Le cylindre=

Structure Squelette porteur : un Abat-Jour du commerce

 * Abat-Jour Casto Filox Colors. Réf : 630767. 29.95€. diam extérieur mesuré 304mm pour utiliser uniquement son armature comme squelette porteur de l'ensemble du Led Tube. Hauteur 250mm (le cylindre métalique porteur des leds déborde de 40mm en haut et en bas). Comporte 6 tiges verticales séparées de 60° qui assurent une bonne rigidité. Pas besoin de renforts. http://www.castorama.fr/store/Suspension-Filox-Blanc-BRILLIANT-prod11580011.html

Cylindre porteur des leds

 * Tôle perforée de 1m de long, roulée. Diamètre théorique 305.6mm, très bien pour pouvoir l'enrouler autour de l'armature de l'Abat-Jour Castorama.
 * Les leds sont collées APRES avoir roulé la tôle.
 * https://www.castorama.fr/tole-perforee-carre-acier-brut-ep-1-mm-1000-x-500-mm/3232630223352_CAFR.prd. Réf :3232630223352. 46€ Tôle perforée carré 5,5 acier brut. Ep. 1 mm. Dimensions : 1000 x 500 mm. Solution retenue. Essai Réussit. Découpée au massicot. Roulage de la tôle OK à la main en commençant par l'enrouler autour d'un cylindre de 30cm diamètre extérieur, puis 23cm de diamètre, puis 20cm de diamètre. Soudure par points réussie avec un réglage au niveau 5 et durée 3 secondes. Tôle coupée au final en 996mm x 328mm (4mm enlevés à gauche pour que ça s'ajuste bien aux bandes de leds). Chutes de 4mm utilisées comme raccord soudure par points entre les deux extrémités du cylindre refermé. Cette découpe est critique. Surtout, ne pas trop en couper, sinon la bande de leds devra faire des contorsions très peu esthétiques.
 * Des pièces imprimées 3D réalisent la jonction entre les 3 éléments, servent à contrôler autant que possible la distance entre les leds et la surface de projection, améliorent le maintient mécanique des connexions électriques des bandes de leds (alim, datas et capacités de découplage en début et fin de bande).
 * Liste de fournisseurs et fabricants de Tôles Perforées en dernier ressort

Cylindre de projection
Il est constitué de :
 * Feuille en Rouleau de PVC transparent 0.8mm. (Leroy Merlin 1m x ..) découpé en un rectangle 1131mm x (351mm ou 351.5mm)
 * Face Intérieure : vernis mat déposé en aérosol (Cultura) http://www.cultura.com/bombe-vernis-mattlack-mat-150m-bombe-vernis-mattlack-mat-150ml-4007751000613.html
 * Face Extérieure : feuille de polyphane semi opaque (Cultura 0.6m x 1.2m) http://www.cultura.com/roul-polyphane-adh-opal-60x120-3532431050059.html obsolete semble-t-il, semble devenu : https://www.cultura.com/polyphane-adhesif-blanc-60x120cm-epaisseur-0-28mm-3700408385453.html

=Electronique=

Carte ST NUCLEO64-446RE
La carte NUCLEO-F446RE à 10€ basée sur la STM32F446RE est un bon candidat. Actuellement, le design est basé dessus avec une carte shield maison pour la connectique, la gestion de l'alim PC et le module WIFI.

Quatre choses m'ont fait préférer une solution mono processeur
 * Le très faible prix/puissance de la carte
 * La standardisation asssociée
 * Les tests réussis de pilotages des leds par DMA (moins de temps CPU passé pour charger la mémoire que le temps passé au DMA pour envoyer les données vers les leds ; disparition des contraintes dans le logiciel pour respecter des timings temps réel).
 * La simplification du code
 * Un filtrage gaussien horizontal ne prend que 3.2ms avec cette carte

Pour plus de puissance de calcul, on peut aussi utiliser la NUCLEO-F746ZG pin compatible avec le shield et boostée en CPU

Firmware pour la carte Nucleo
https://code.electrolab.fr/light/ledtube_446

Cette version peut stocker 32 images en flash.

Shield
Ayant choisi comme base la carte NUCLEO-F446RE, les interfaces sont sur une carte "shield" maison.

La carte "shield" porte
 * un module Wifi ESP-12-Q basé sur le ESP8266 et son alimentation dédiée (il consomme plus que ce que peut fournir la NUCLEO)
 * la logique de contrôle de l'alim PC pour le mode veille
 * les buffers de protection (techno ACT) vers les lignes DI (data in) des leds. Ils réalisent également l'adaptation des niveaux de tension (3.3V->4V)
 * l'entrée du récepteur de la télécommande.

Elle se branche sous la carte NUCLEO

Schéma électronique du shield
Le schéma électronique (eagle 6.5.0) est ici : https://code.electrolab.fr/light/ledtube_446/tree/master/docs

Il est compatible avec la version d'évaluation gratuite de eagle.

Prendre la v2. Vous y trouverez aussi la BOM et le fichier de placement.

La modification importante de la v2 est que les buffers sont alimentés en 4V au lieu de 5V. Elle est compatible NUCLEO64-446RE et NUCLEO64-746ZG

Leds RGB
Ce sont des LEDS adressables individuellement WS2812B en bandes.

Conseils aux utilisateurs de bandes de WS2812B : Profitez de mon expérience.

http://www.aliexpress.com/item/individually-addressable-1m-2m-4m-5m-waterproof-ip65-ip67-5050-rgb-30-60-74-96-144/32243894576.html

Module WIFI
J'explique comment j'utilise le Module WIFI ESP8266 ici

=Protocole / WIFI= Le protocole de COM avec le module est décrit ici


 * Une interface UDP/IP RAW est offerte pour y injecter des images et envoyer des commandes.

Une application pour Android a été développée. Tasker (APP Android)/UDP Sender (Plugin Android). Fait sans une ligne de code. Ce qui est assez incroyable est que cet outil tasker est capable de générer en un clic non seulement des widgets android, mais en plus une application .apk autonome avec juste les autorisations qui lui sont nécessaires et sans même la moindre connexion à un quelconque serveur google. Apple peut toujours aller se rhabiller.

=Autres composants=

Alim PC
On exploite la sortie 5V et les sorties 12V pour les leds On exploite la sortie 5VSB (disponible en veille) pour le calcul/CPU/WIFI
 * 15 bandes sur 5V produit en partant du 12V
 * 5 bandes en direct 5V

Alim retenue bien que sur-dimensionnée
 * http://www.ldlc.com/fiche/PB00183762.html

Au final, en réalité, il semble que la conso ne soit que de 200W. A confirmer.

Convertisseurs 12V->5V efficaces utilisés
Ils sont fixés sur les cotés de l'alim PC par des rivets pop 3mm diam x 7mm+, en orientant les cables de sortie coté opposé au ventilateur.

Le boitier de l'alim peut facilement être ouvert (4 vis) de telle sorte que pendant le perçage des trous 3mm de fixation des convertisseurs on ne remplit pas l'intérieur de limaille de fer.

Option 1 : Version 20A, on en utilise 3 DC to DC Converter Buck Module Regulator 12V 24V to 5V 20A 100W Car LED Power Supply Waterproof https://fr.aliexpress.com/item/DC-to-DC-Converter-Buck-Module-Regulator-12V-24V-to-5V-20A-100W-Car-LED-Power/32304164501.html?isOrigTitle=true

Option 2 : Version 30A, on en utilise 2 30A Waterproof DC 10-35V 12V 24V to 5V 150W DC Car LED Power Supply Voltage Converter Regulator Buck Module @ Wengao https://fr.aliexpress.com/item/30A-Waterproof-DC-10-35V-12V-24V-to-5V-150W-DC-Car-LED-Power-Supply-Voltage/32464818000.html?isOrigTitle=true

Connectique pour les fils de data
http://fr.aliexpress.com/store/product/10-pairs-DC-Connectors-with-Lock-Buckle-15cm-length-cable-DC-5-5-x-2-1mm/1051119_32247716577.html

Ce choix n'est pas idéal. Ces connecteurs sont verrouillables, ils tiennent bien, mais ils sont lourds et un peu trop gros (diamètre). Quand tout est branché, mâle verrouillé sur femelle et soudé sur la bande. Quand on a ça 20x avec les câbles un peu emmêlés, ça finit par faire un poids qui tire beaucoup sur certaines soudures aux bandes de leds. Autre petit problème, les connecteurs ne passent pas dans les ouvertures de la structure métallique du tube (trous rectangulaires d'environ 1cm petit coté), ce qui oblige à insérer la bande par sa fin, dans le trou depuis l'intérieur du tube. Mais c'est quand même assez pratique à l'intégration.

Coté carte de contrôle, s'est juste un header mâle 2 pins 0.1". Contacts dorés ; ça tient pas très bien. Tendance à ressortir un peu trop facilement si on tire un peu. Et justement, avec tout le poids additionné des 20 câbles, ça va bouger avec le temps.

Pour le deuxième exemplaire, la data sera transmise sur les même types de câble que l'alim. Plus légers et petits, ils pourront passer dans les ouvertures Coté carte de contrôle, un seul header 20x2 sera branché dans la carte de contrôle. Ca ne pourra plus bouger. Une pièce imprimée 3D (dupliquée 20x) permettra de mieux contrôler le passage des câbles data+power de chaque bande. Ca augmentera fortement la fiabilité de la connectique.

Connectique pour le 5V puissance vers les bandes de LEDS
http://www.aliexpress.com/item/30-pairs-Waterproof-JST-connector-wire-single-color-SMD-5050-3528-3014-5630-LED-Strip-Light/1718558728.html

Lorsque on tire sur le courant au max (blanc complet), ces petits câbles ont l'air sous dimensionnés. Ils chauffent. Leur gaine se ramollit un peut. Mais ça fait le job. Pour le deuxième exemplaire, l'alim sera envoyée des deux cotés de chaque bande