Difference between revisions of "Projets:Perso:2015:LedTube"

From Electrolab
Jump to: navigation, search
(Spécifications, Requis)
(Carte ST NUCLEO64-446RE)
 
(54 intermediate revisions by one user not shown)
Line 1: Line 1:
 
{{Project
 
{{Project
|name= LED TUBE. Un afficheur led RGB de forme cyclindrique
+
|name= LED TUBE. Un afficheur led RGB de forme cylindrique
 
|author= Laurent (C)
 
|author= Laurent (C)
 
|proposal_date= 13/10/2015
 
|proposal_date= 13/10/2015
Line 15: Line 15:
 
|budget= 600€
 
|budget= 600€
 
|number_of_members= 1 (viendez participer!)
 
|number_of_members= 1 (viendez participer!)
|estimated_time= 200 hours!
+
|estimated_time= 100 hours!
 
}}
 
}}
  
Un projet que je traine depuis plus de 20 ans.<br>
+
[[File:Projets.perso.2015.ledtube.ecran3.jpg.jpg|right|500px]]
 +
[[File:Projets.perso.2015.ledtube.ecran4.jpg|right|500px]]
 +
[[File:Projet.perso.2015.ldtube.structure.jpg|right|500px]]
 +
 
 
Il s'agit d'un projet à but purement esthétique et artistique.<br>
 
Il s'agit d'un projet à but purement esthétique et artistique.<br>
Rien de très original, mais ça devrait décoiffer<br>
+
Rien de très original, mais c'est du plus bel effet<br>
Pour afficher en principe des images non figuratives. La première raison étant que la résolution ne sera pas très élevée.<br>
+
Pour afficher en principe des images non figuratives. La première raison étant que la résolution n'est pas très élevée.<br>
 
A l'origine, mon projet était une sphère. Mais cela reste encore particulièrement problématique globalement.<br>  
 
A l'origine, mon projet était une sphère. Mais cela reste encore particulièrement problématique globalement.<br>  
Sera offert à l'électrolab pour sa déco.<br>
+
Est offert à l'électrolab pour sa déco.<br>
 
Peut aussi faire office d'éclairage très luxueux.<br>
 
Peut aussi faire office d'éclairage très luxueux.<br>
Pas de Feature Creep. KISS. Je préférerai toujours la solution la plus simple qui laissera le code compréhensible<br>
+
Pas de compromis sur la performance. Quoique...<br>
Pas de compromis sur la performance. Quoique...  
+
Des vidéos du LedTube en fonctionnement sont ici : https://www.youtube.com/channel/UCg0Zysu4qRsVrjXHGqSWFog
  
=Spécifications, Requis=
+
=Spécificités=
*Systeme d'affichage à LEDs cylindrique esthétique
+
*Système d'affichage à LEDs cylindrique esthétique
*Conçu pour s'accrocher au plafond, et s'alimenter sur une douille de lampe 220V
+
*Conçu pour s'accrocher au plafond, et s'alimenter directement sur le 220V
*Quatre choses m'ont fait préférer une solution mono processeur
+
*Le système assure un affichage hyper fluide pour des translations, même à faible ou grande vitesse.
**Le très faible prix/puissance de la carte ST NUCLEO64-446RE
+
*Rafraîchissement d'image jusqu'à 200Hz.
**La standardisation asssociée
+
*Interface WIFI pour l'envoi d'images.
**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 et par conséquent, pas de problèmes de timings temps réel).
+
*Un mode veille faible consommation et un allumage/extinction sans fil.
**La simplification du code
+
*Silencieux
**Un filtrage gaussien horizontal ne prend que 3.2ms avec cette carte
+
*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.
*Le système doit être capable d'assurer un affichage hyper fluide pour des translations à toutes vitesses.
+
*Affichage à 60Hz ou plus.
+
*Une interface WIFI pour l'envoi d'images.
+
*Un mode veille low power (avec rétention de la dernière image) et un allumage/extinction sans fil.
+
*Par défaut, le système affichera 3 logos Electrolab (120° entre les logos) verts. Tournant lentement.
+
*Documenté
+
  
Des vidéos du LedTube en fonctionnement sont ici : https://www.youtube.com/channel/UCg0Zysu4qRsVrjXHGqSWFog
+
==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
  
==Like to Have==
+
==Evolutions futures==
*Quelques modes d'auto-génération d'images
+
* simulation de réaction chimique cyclique
** Par exemple effet plasma (http://www.bidouille.org/prog/plasma), simulation de réaction chimique cyclique, machine de turing à deux dimensions, logo electrolab, etc...
+
* machine de turing à deux dimensions
** Image blanche ou blanc chaud avec réglage de l'intensité lumineuse
+
 
 +
=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'[[Projets:Perso:2015:LedTube:API|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'[[Projets:Perso:2015:LedTube:API|appli android]].
  
 
=Choix techniques & Dimensionnement=
 
=Choix techniques & Dimensionnement=
 
*Structure porteuse des leds métallique cylindrique. Cylindre métallique de 1m de circonférence. (Pi*0.318=1).  
 
*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.
+
*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 (petits carrés de 5mm de coté). 60 leds par mètre. Exploite le chip/led WS2812B alimenté en 5V (60mA/led)
+
*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
 
*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. A 4mm de distance environ de la surface des leds, ce qui fait que les cônes d'émission des leds vont tout juste se recouvrir. Il faut que ce cylindre de projection soit d'épaisseur parfaitement uniforme, sinon, il y aurait assombrissement local. La conséquence est qu'on ne peut pas obtenir cela avec une simple feuille de polyphane (cf rougie et plé) enroulée. 4mm c'est la théorie. En pratique, j'ai mesuré que les translations sont fluides à 2cm de distance avec un filtrage gaussien réglé à sigma = 0.7 (pixel)
+
*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 ou en grille hexagonale (recouvrement des cônes d'émission plus uniforme). A décider. S'oriente vers grille carrée.
+
*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).
*[[Projets:Perso:2015:LedTube:Alimentation|Alimentation]]. Peut-être alim de PC. Ou alim 12V sans ventilo (donc silencieuses). Il y a aussi des fournisseurs d'alim 12V dédiée pour ce type de besoin, au moins jusqu'à 600 Watts.
+
*[[Projets:Perso:2015:LedTube:Alimentation|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.
 
*[[Projets:Perso:2015:LedTube:Calculs|Feuilles de calcul]] pour le dimensionnement global
 
*[[Projets:Perso:2015:LedTube:Calculs|Feuilles de calcul]] pour le dimensionnement global
*Si alim PC utilisée, l'intérêt est que cela permet de piloter l'allumage de l'alim PC et donc d'avoir un mode veille low power et un allumage/extinction par wifi (sera par télécommande RF 433Mhz).
 
 
*[[Projets:Perso:2015:LedTube:ReflexionTechnique|Autres choix techniques]]
 
*[[Projets:Perso:2015:LedTube:ReflexionTechnique|Autres choix techniques]]
 
+
*Poids total 5.3Kg
Zenos a indiqué que percer 1200 trous dans du métal pourrait nécessiter 50 forêts. Il a recommandé de plutôt se procurer des tôles perforés (par poinçonnage). Exemple de fournisseur : gantois. Finalement : tôle trouvée chez castorama.
+
  
 
=Le cylindre=
 
=Le cylindre=
==Structure Squelette porteur==
+
 
* Essai en cours : Abat-Jour Casto Filox Colors. Réf : 630767. 29.95€. diam estérieur mesuré 304mm pour utiliser uniquement son armature comme structure porteuse de l'ensemble du Led Tube. Hauteur 250mm (le cylindre métalique porteur des leds débordera de 40mm en haut et en bas). Comporte 6 tiges verticales séparées de 60° qui assurent une bonne rigidité. Devra surement être renforcé. http://www.castorama.fr/store/Suspension-Filox-Blanc-BRILLIANT-prod11580011.html
+
==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==
 
==Cylindre porteur des leds==
* Tôle de 1m de long, roulée. Diamètre théorique 305.6mm on est donc théoriquement très bien pour pouvoir l'enrouler autour de l'armature de l'Abat-Jour Castorama.  
+
[[File:Led_tube_4_test.jpg|right|500px]]
* Les leds seront collées APRES avoir roulé la tôle.
+
[[File:Projets.perso.2015.ledtube.soudure.jpg|right|500px]]
* [[Projets:Perso:2015:LedTube:CylindrePorteur|Liste de fournisseurs et fabriquants de Tôles Perforées]]
+
* 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.  
* Premier essai : <s>http://www.castorama.fr/store/Tole-alu-brut-deploye-16-x-8-prod7220036.html?navAction=jump&skuId=Casto196923. Casto n°42 2016-5522 (tôle alu déployé). 22.20€ premier en test pour voir si les leds passent dans les trous. Métal déployé aluminium brut. Dimensions mailles : 16 x 8 x 1 x 0,8 mm. Dimensions : 1000 x 500 mm. Ref Réf :196923. Les leds 5mmx5mm devraient passer sans problème au travers.</s> Solution rejetée car trop fragile et flexible pour porter le poids de l'ensemble.
+
* Les leds sont collées APRES avoir roulé la tôle.
* Deuxieme essai : http://www.castorama.fr/store/Tole-acier-perforee-carre-prod7220026.html?navAction=jump&skuId=Casto196915. Réf :196915. 46€? Tôle perforée carré 5,5 acier brut. Ep. 1 mm. Dimensions : 1000 x 500 mm. Solution retenue. Des sortes de petits crochets métalliques amovibles (fait main) devraient permettre de fixer le cylindre porteur des leds, au moins au cercle du bas de l'abat-jour, en passant possiblement au travers des perforations.  Essai Réussit. Découpée au massicot. Roulage de la tôle OK à la main, avec successivement : Suspension IKAT LUM Alinea noir en acier laminé de 30cm diamètre extérieur, puis la bombone rouge d'éric elap 23cm, puis Extincteur 18cm (extincteur un peu trop petit). Donc il faudra trouver quelque chose de 20cm de diamètre. Soudure par points réussie avec un réglage au niveau 5.
+
* 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.
[[File:Led_tube_4_test.jpg]]
+
* [[Projets:Perso:2015:LedTube:impression3d|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).
* Des pièces imprimées 3D réalisent la jonction entre les 3 éléments et servent à controler autant que possible la distance entre les leds et la surface de projection.
+
* [[Projets:Perso:2015:LedTube:CylindrePorteur|Liste de fournisseurs et fabricants de Tôles Perforées]] en dernier ressort
[[File:Projets_perso_2015_ledtube_leds.jpg|500px]]
+
  
 
==Cylindre de projection==
 
==Cylindre de projection==
TBD
+
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
  
=Discussions à l'electrolab pour trouver des synergies=
+
=Electronique=
Il semble que quelqu'un a un projet de génération d'image actuellement. Peut-être que ce pourrait être son display ?<br>
+
==Carte ST NUCLEO64-446RE==
On pourrait aussi y brancher le générateur d'image milk machin truc qui était passé à l'électrolab il y a environ 4 ans ?<br>
+
  
=Interfaces=
+
La carte [https://fr.farnell.com/stmicroelectronics/nucleo-f446re/carte-de-dev-arduino-mbed-nucleo/dp/2491978 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.<br>
  
==Electronique==
+
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 [https://fr.farnell.com/stmicroelectronics/nucleo-f746zg/carte-de-dev-arduino-mbed-nucleo/dp/2517900 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.
 
Ayant choisi comme base la carte NUCLEO-F446RE, les interfaces sont sur une carte "shield" maison.
  
Line 94: Line 131:
 
*un module Wifi [[Projets:Perso:2015:LedTube:ESP12Q|ESP-12-Q basé sur le ESP8266]] et son alimentation dédiée (il consomme plus que ce que peut fournir la NUCLEO)
 
*un module Wifi [[Projets:Perso:2015:LedTube:ESP12Q|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
 
*la logique de contrôle de l'alim PC pour le mode veille
*les buffers de protection vers les lignes DI (data in) des leds
+
*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.
 
*l'entrée du récepteur de la télécommande.
  
 
Elle se branche sous la carte NUCLEO
 
Elle se branche sous la carte NUCLEO
  
Pour avoir un vrai mode low power, un ON/OFF avec une petite télécommande RF détournée de son usage normal. Permet aussi d'envisager de pouvoir régler la luminosité avec.
 
  
Bonne nouvelle, ST vient de sortir la version NUCLEO-F746ZG pin compatible et boostée en CPU
+
===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
  
==Protocole / WIFI==
+
Il est compatible avec la version d'évaluation gratuite de eagle.
  
Le protocole de COM avec le module est [[Projets:Perso:2015:LedTube:Protocole|décrit ici]]
+
Prendre la v2. Vous y trouverez aussi la BOM et le fichier de placement.
  
*Au minimum, une interface UDP/IP RAW est offerte pour y injecter des images et envoyer des commandes.<br>
+
La modification importante de la v2 est que les buffers sont alimentés en 4V au lieu de 5V.
*Le système ne peut recevoir que les choses suivantes
+
Elle est compatible NUCLEO64-446RE et NUCLEO64-746ZG
** des images en RAW
+
*** en une seule trame UDP pour les images fixes (si possible)
+
** une commande d'initialisation de la translation (nombre flottant 32 bits dans [0..1]. Si en dehors de [0..1], le système prendra le modulo flottant).  
+
***Par UDP
+
** un vecteur vitesse de translation horizontale (nombre flottant 32 bits). En tours par seconde. Peut être positif ou négatif.
+
***Par UDP
+
  
* Pas de notion de sprites. Pas de notions de couches superposées transparentes. On va pas refaire le chipset de l'amiga.
+
==Leds RGB==
 +
Ce sont des LEDS adressables individuellement WS2812B en bandes.
  
Une interface sur Android a été développée. Tasker (APP Android)/UDP Sender (Plugin Android). Fait sans une ligne de code (euuh en fait 1 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.  
+
Conseils aux utilisateurs de bandes de WS2812B : [[Projets:Perso:2015:LedTube:Conseils|Profitez de mon expérience]].
  
[[File:Ledtube_tasker_on_udp_sender.png|200px]]
+
http://www.aliexpress.com/item/individually-addressable-1m-2m-4m-5m-waterproof-ip65-ip67-5050-rgb-30-60-74-96-144/32243894576.html
  
==Nice to Have==
+
==Module WIFI==
 +
J'explique comment j'utilise le [[Projets:Perso:2015:LedTube:ESP12Q|Module WIFI ESP8266 ici]]<br>
  
=Liste des composants=
+
=Protocole / WIFI=
== Electronique ==
+
[[File:Ledtube_tasker_on_udp_sender.png|right|200px]]
Leds RGB<br>
+
[[File:Projets.perso.2015.ledtube.ecran1.jpg|right|500px]]
http://www.aliexpress.com/item/individually-addressable-1m-2m-4m-5m-waterproof-ip65-ip67-5050-rgb-30-60-74-96-144/32243894576.html
+
[[File:Projets.perso.2015.ledtube.ecran2.jpg|right|500px]]
 +
Le protocole de COM avec le module est [[Projets:Perso:2015:LedTube:Protocole|décrit ici]]
  
Processeurs<br>
+
*Une interface UDP/IP RAW est offerte pour y injecter des images et envoyer des commandes.<br>
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 lemodule WIFI.<br>
+
On pourrait aussi utiliser 1 STM32F745VG et 1 STM32F446RE. Dont un pour driver l'afficheur. Le but est de pas se prendre la tête avec la puissance de calcul, sachant que le prix des processeurs est négligeable par rapport au reste. Ça permet aussi d'envisager des traitement d'image optimaux (filtrage).<br>
+
http://fr.rs-online.com/web/p/products/8820281/<br>
+
http://fr.rs-online.com/web/p/products/7926063/<br>
+
  
La télécommande ON/OFF<br>
+
Une [[Projets:Perso:2015:LedTube:API|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.
Ne sert que pour le ON/OFF. Le récepteur sera juste branché sur un GPIO du CPU (en mode HALT en veille). La présence de PWM réveillera le CPU. L'absence de PWM pendant une seconde mettra le CPU en veille.<br>
+
3.3€, imbattable. Utilise une pile 3V CR2025 non fournie<br>
+
http://fr.aliexpress.com/item/9-keys-Mini-Wireless-RF-Remote-Control-Dimmer-for-5050-Single-Color-LED-Strip/32430409354.html
+
  
Un peu de déco<br>
 
http://www.aliexpress.com/item/CJMCU-40bit-WS2812B-5050-RGB-LED-Circle-LED-Board-Dia-126mm-Development-Board/32477790038.html
 
  
Module WIFI Possible ESP8266<br>
+
 
http://www.via-design.fr/actualites/la-solution-wi-fi-iot-a-tres-bas-cout-despressif-09214716/#more-14716
+
 
 +
=Autres composants=
 +
 
  
 
== Energie ==
 
== Energie ==
Alim PC<br>
+
===Alim PC===
 
On exploite la sortie 5V et les sorties 12V pour les leds<br>
 
On exploite la sortie 5V et les sorties 12V pour les leds<br>
 +
* 15 bandes sur 5V produit en partant du 12V
 +
* 5 bandes en direct 5V
 
On exploite la sortie 5VSB (disponible en veille) pour le calcul/CPU/WIFI<br>
 
On exploite la sortie 5VSB (disponible en veille) pour le calcul/CPU/WIFI<br>
Autant que possible, récup d'alim PC electrolab.<br>
+
 
Exemples d'alims adaptées:
+
Alim retenue bien que sur-dimensionnée
* http://www.ldlc.com/fiche/PB00185390.html
+
 
* http://www.ldlc.com/fiche/PB00183762.html
 
* http://www.ldlc.com/fiche/PB00183762.html
Pourrait utiliser des alims serveur Pinnacle de l'electrolab. Cf page alim.
 
  
 +
Au final, en réalité, il semble que la conso ne soit que de 200W. A confirmer.
  
Convertisseurs 12V->5V efficaces<br>
+
===Convertisseurs 12V->5V efficaces utilisés===
http://www.aliexpress.com/snapshot/7028120099.html?orderId=70266443550545
+
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<br>
 +
DC to DC Converter Buck Module Regulator 12V 24V to 5V 20A 100W Car LED Power Supply Waterproof<br>
 +
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 <br>
 +
 +
Option 2 : Version 30A, on en utilise 2<br>
 +
30A Waterproof DC 10-35V 12V 24V to 5V 150W DC Car LED Power Supply Voltage Converter Regulator Buck Module @ Wengao <br>
 +
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 <br>
  
 
== Connectique ==
 
== Connectique ==
Connectique pour les fils de data<br>
+
===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
 
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
  
Connectique pour le 5V puissance vers les bandes de LEDS<br>
+
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 <br>
 +
Coté carte de contrôle, un seul header 20x2 sera branché dans la carte de contrôle. Ca ne pourra plus bouger. <br>
 +
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.<br>
 +
 
 +
===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
 
http://www.aliexpress.com/item/30-pairs-Waterproof-JST-connector-wire-single-color-SMD-5050-3528-3014-5630-LED-Strip-Light/1718558728.html
  
== Méca ==
+
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.
Tole Perforée<br>
+
http://www.castorama.fr/store/Tole-acier-perforee-carre-prod7220026.html?navAction=jump&skuId=Casto196915
+
Pour le deuxième exemplaire, l'alim sera envoyée des deux cotés de chaque bande
  
Abat-Jour squelette porteur<br>
+
<gallery mode="packed-hover">
http://www.castorama.fr/store/Suspension-Filox-Blanc-BRILLIANT-prod11580011.html
+
Image:Projets.perso.2015.ledtube.ecran3.jpg.jpg|Mode Plasma, Écran diffusant
 +
Image:Projets.perso.2015.ledtube.ecran4.jpg|Mode Jeu de la Vie
 +
Image:Projet.perso.2015.ldtube.structure.jpg|Structure Porteuse
 +
Image:Led_tube_4_test.jpg|Essai de réalisation
 +
Image:Projets.perso.2015.ledtube.soudure.jpg|Gros Plan sur les jonctions par soudure à point
 +
Image:Projets.perso.2015.ledtube.ecran1.jpg|Ecran diffusant
 +
Image:Projets.perso.2015.ledtube.ecran2.jpg|Vue plongeante
 +
Image:Projets.perso.2015.ledtube.3d1.jpg|Ecarteurs et Pieds
 +
Image:Projets_perso_2015_ledtube_shield.jpg|Shield pour Carte NUCLEO32/64
 +
Image:Projets.perso.2015.ledtube.support_dacier_clip04.png|Pieds
 +
Image:Projets.perso.2015.ledtube.passe_fils.png|Passe fils
 +
Image:Projets.perso.2015.ledtube.passe_fils2.jpg|Passe fils
 +
Image:Projets.perso.2015.ledtube.4v.jpg|Correctif LDO 4V
 +
</gallery>

Latest revision as of 15:15, 22 April 2019

LED TUBE. Un afficheur led RGB de forme cylindrique
Auteur Laurent (C)
Date de proposition 13/10/2015
Tags du projet led rgb ecran
Lieu d'utilisation final Electrolab
Utilisateur final Electrolab
Type de projet

Projet personnel de Laurent (C)

Projet LED TUBE. Un afficheur led RGB de forme cylindrique

La technologie est mure pour réaliser facilement ce "display"
C'est une première étape simplifiée pour aller vers un afficheur sphérique.



Projets.perso.2015.ledtube.ecran3.jpg.jpg
Projets.perso.2015.ledtube.ecran4.jpg
Projet.perso.2015.ldtube.structure.jpg

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

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

Led tube 4 test.jpg
Projets.perso.2015.ledtube.soudure.jpg
  • 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 :

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

Ledtube tasker on udp sender.png
Projets.perso.2015.ledtube.ecran1.jpg
Projets.perso.2015.ledtube.ecran2.jpg

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

Energie

Alim PC

On exploite la sortie 5V et les sorties 12V pour les leds

  • 15 bandes sur 5V produit en partant du 12V
  • 5 bandes en direct 5V

On exploite la sortie 5VSB (disponible en veille) pour le calcul/CPU/WIFI

Alim retenue bien que sur-dimensionnée

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

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