Yocto-Color, Neopixel et balles de ping pong

Yocto-Color, Neopixel et balles de ping pong

Cette semaine, on vous présente un petit bricolage relativement simple, basé sur le fait que les balles de ping-pong blanches font d'excellents diffuseurs de lumière. On a fabriqué une espèce de luminaire multicolore pilotable par internet et alimenté par PoE.

L'idée est d'utiliser des balles de ping pong et de placer une LED RGB dans chacune de ces balles. On a choisi des LEDs NEOPIXEL d'Adafruit: elles sont déjà soudées sur un PCB minuscule et on peut les acheter en quantité pour un prix raisonnable. Pour piloter ces LEDS on utilise un Yocto-Color-V2 qui permet non seulement d'affecter une couleur indépendante à chaque LED, mais aussi de jouer des animations de manière complètement autonome. Effets de lumière psychédéliques en perspective.

Le matériel de base, des LEDs NEOPIXEL et des balles de ping pong
Le matériel de base, des LEDs NEOPIXEL et des balles de ping pong


Construction

On voulait donc fabriquer une ribambelles de petites balles lumineuses au bout de tiges rigides bien bien alignées.

On voulait fabriquer un truc qui ressemble plus ou moins à ça.
On voulait fabriquer un truc qui ressemble plus ou moins à ça.



Pour ça, en plus des LEDs et des balles de ping pong, on a utilisé:

  • Des tubes de carbones de 4mm, disponible dans les bons magasins de modélisme
  • Du contre-plaqué 3mm
  • Un mètre de profilé aluminium en U
  • Des perles percées d'un trou de 4mm qui entrent dans le profilé
  • Du Fil électrique capable de tenir au moins 1A
  • Du Fil électrique suffisamment fin pour en passer 4 brins dans les tubes de carbone
  • De la colle époxy


Les ampoules

Pour fabriquer les "ampoules", on a commencé par découper trois rondelles dans le contre-plaqué. On les a collé ensemble et peinte en noir. Ce qui donne un espèce de capuchon dans lequel chaque LED sera logée. On pourrait probablement utiliser des bouchons de flacon à la place.

Fabrication de petits capuchons
Fabrication de petits capuchons


On a ensuite soudé quatre petits fils sur les pads +,GND,In et out de chacune des LEDS.

On soude des fils sur chacune des LEDs
On soude des fils sur chacune des LEDs


On a fait passer les fils dans la tige de carbone. Comme ils rentrent tout juste, le plus facile consiste à dénuder leur extrémités, les torsader et les souder au bout d'un fil rigide. Il suffit alors de faire passer le fil rigide dans le tube en premier et de tirer ensuite dessus pour que les 4 autres fils suivent le mouvement. La LED se retrouve alors à l'extrémité de la tige de carbone.

On a fait passer les fils dans la tige de carbone
On a fait passer les fils dans la tige de carbone


Ensuite, avec un Dremel et une fraise, on a percé un gros trou dans chacune des balles des ping-pong. Il faut que ce trou soit plus gros de la LED mais plus petit que de diamètre du capuchon. De plus, si on le centre sur le plan de joint de la balle, il sera plus facile d'orienter toutes les balles de la même façon. En effet le joint reste assez visible par transparence.

Perçage des balles de ping-pong
Perçage des balles de ping-pong


Après avoir vérifié que la LED marchait toujours, on finalement collé ensemble la tige de carbone, le capuchon et la balle à la colle epoxy. Pour être sûrs que la tige et la balle soient bien aligné on a fabriqué un petit dispositif de centrage qui tient le tout ensemble pendant que la colle sèche.

Le système de centrage  Test
Collage et test



Le support

Pour fabriquer le support, on a percés des trous régulièrement espacés dans le profilé d'aluminium. On a percé avec un diamètre un peu plus grand que celui des tiges: 5mm pour la tige puisse flotter dans le trou.

Profilé en aluminium  Trous espacés aussi régulièrement que possible
Profilé en aluminium; perçage.


On a ensuite passé une tige que dans chacun des trous, et on a terminé chaque tige avec une perle. Ainsi lorsque l'ensemble est vertical, chaque tige reste à peu près libre de s'orienter comme bon lui semble.

  
Les tiges sont bloquées par des perles


On a ensuite câblé toutes les tiges en soudant les fils ensemble. Les + et GND sont soudé à deux fils plus gros qui longent l'intérieur du profilé et les IN et OUT sont chainés. Honnêtement, c'est la partie la plus fastidieuse et la moins amusante. Si on doit en reconstruire un, on fera fabriquer un PCB qu'on placera au fond du profilé et on soudera les fils directement dessous. Ça coutera plus cher, mais se sera infiniment plus facile et plus propre.

Le schéma de cablage.
Le schéma de cablage.


Une fois le système suspendu, on s'est rendu compte que l'alignement des balles, quoique raisonnable, n'était pas parfait, et ce malgré l'astuce des perles. On donc fabriqué un gabarit pour aligner les balles, et une fois celui-ci en place on a immobilisé les tiges en versant de la colle époxy dans le profilé. Un conseil: vérifiez que toutes les LEDS fonctionnent avant de tout coller définitivement.


Immobilisation à l'aide d'un gabarit  
Immobilisation des balles et collage des tiges


Un fois la colle sèche, on a retiré le garabit et les balles ont conservé leur bel alignement.

Alignées comme à la parade
Alignées comme à la parade



Le Controleur

Les LEDS sont contrôlées par un Yocto-Color-V2, lui-même controlé par un YoctoHub-Ethernet. On a aussi utilisé un Yocto-Light-V2 pour mesurer la lumière ambiante et pouvoir ajuster la luminosité du lustre en conséquence. Pour avoir quelque chose de propre, on a utilisé DipTrace pour faire fabriquer un PCB qu'on a utilisé pour interconnecter les trois modules. Et on a placé le tout dans une jolie boîte en aluminium.


Les modules Yoctopuce et le PCB fait avec DipTrace  Les modules montés sur le PCB
Le controleur
Le controleur terminé, le trou est pour le capteur de lumière.


On s'est donc retrouvé avec 19 balles de ping pong lumineuses, qu'on peut alimenter et contrôler par internet. On peut même programmer à distance des animations autonomes en utilisant le système d'animation du Yocto-Color-V2.

Le système, terminé
Le système, terminé


Comme le YoctoHub-Ethernet supporte le PoE, il n'y a pas besoin d'alimentation séparée: tout le système est alimenté par le câble Ethernet.

Application: une horloge BCD

Pour tout vous dire, ce petit bricolage n'est pas juste destiné à faire de joli effets de lumière. On compte l'utiliser comme horloge BCD. En effet, avec 19 balles, on peut faire quatre groupes de 4 balles séparés par une balle. C'est largement assez pour afficher en binaire les quatre digits correspondant aux heures et aux minutes.

Application: une horloge BCD
Application: une horloge BCD



Évidement l'affichage de l'heure ne peut pas se faire manière autonome. Mais en utilisant le système de callbacks HTTP du YoctoHub-Ethernet, un simple script PHP peut faire l'affaire:


<?php
include("yocto_api.php");
include("yocto_colorledcluster.php");
include("yocto_lightsensor.php");
$errmsg='';
date_default_timezone_set('Europe/Paris');

if (yregisterhub('callback',$errmsg)!=YAPI_SUCCESS) die($errmsg);

$leds = yFirstColorLedCluster();
if (is_null($leds)) die('No led cluster');
   
$sensor = yFirstLightSensor();
if (is_null($sensor)) die('No light sensor');

$l = intVal($sensor->get_currentValue() / 2);
$l = max( 0x10, min( 0x80,$l ));

$now = Date("Hi");
for ($i=0;$i<19;$i++)
  $buffer[$i]=0x008000 | $l;
 
for ($i=0;$i<4;$i++)
 {$digit = ord($now[$i])-48;
  for ($j=0;$j<4;$j++)
    $buffer[$i*5+$j]=($digit&(1<<(3-$j)))>0?0x40FF00|$l:0x40FF00|($l>>4);    
 }
for ($i=0;$i<19;$i++)  
  $leds->hsl_move($i,1,$buffer[$i],900);

Print('done.');
?>
 



En guise de conclusion, voici une petite vidéo du système en fonctionnement.

  



Commenter aucun commentaire
Retour au blog












Yoctopuce, get your stuff connected.