Contenus de la page
Présentation du projet
L’objectif de ce projet est de faire flotter des balles de ping pong dans des tubes transparents afin de faire des animations.
Nous avons décidé de faire flotter 6 balles, afin de pouvoir faire quelques animations tout en conservant une taille raisonnable.
Projets existants
Ce projet est une continuation d’un projet de l’an dernier, Aerovisual Harmony. D’autres projets similaires existent aussi, comme celui ci. Nous avons néanmoins choisi de ne pas approcher le problème de la même manière: au lieu d’une caméra, nous utilisons un capteur Time of Flight (ToF); de plus nous avons essayé de ne pas suivre la même méthode de contrôle: au lieu de moduler un ventilateur avec un système PWD, nous utilisons un servomoteur permettant de contrôler le flux d’air.
Liste des composants
- Capteur ToF VL53L0X x6 (amazon)
- servomoteur 9g x6 (amazon)
- ESP-32 wroom 32 x1
- GPIO extender PCF8574AN x 1
- breadboard ProjectBoard
- résistances 4.7kΩ x3
- condensateur 0.1µF x1
- condensateur 10µF x6
- condensateur 100µF
- Ventilateur sunon 12v 4W x1 extrait d’un ordinateur
- tubes transparents x6
- balles de ping pong x6
- Logic level shifter
- ruban led neopixel (6 x3 leds)
- Alimentation 12V1A
- Alimentation 5V3A
Prix total : ~150€.
Montage théorique, Itérations & Proof of Concept
Dès le début, nous avions décidé d’utiliser un système d’aspiration par en haut et de contrôle de flux d’air par en bas. Ce système permet de n’utiliser qu’un unique ventilateur, et d’avoir un emplacement permettant de placer le capteur ToF. Il nous a alors fallu concevoir ce fameux système de contrôle de flux d’air.
Nous avons premièrement pensé à un système de diaphragme, mais l’impression 3D nous a paru être un terrain dangereux pour une pièce devant être aussi précise. Nous avons donc opté pour un système de deux pièces glissant l’une par rapport a l’autre. Même cette idée beaucoup plus simple a nécessité plusieurs itérations.
Après plusieurs itérations, nous avons pensé à un système de bielle-manivelle afin de faire glisser le slidor (notre pièce se déplaçant) par rapport au stator (la pièce statique).
Les itérations du slidor
Les itérations du stator
Afin de concevoir la bielle et la manivelle, nous avons eu de nombreuses itérations, certaines ne fonctionnant pas à cause de la méthode de fabrication (impression 3D) et d’autres étant trop fragiles.
Les bielles et manivelles

Il y a eu de nombreuses itérations de la bielle et de la manivelle. Nous avons fini par arriver sur une version permettant de découper à la laser la bielle, permettant d’avoir une haute précision et haute rapidité.
Les différentes versions simulées
Dans les simulations, les pièces passent les unes dans les autres ce qui est impossible dans le monde physique. Néanmoins il est important de noter qu’il suffit de contraindre l’angle du servomoteur à se situer entre deux valeurs seulement et faire un mouvement de va-et-vient (réduit pour la première simulation) et non un tour complet dans la troisième simulation.
Avant d’imprimer tous les composants en 6 exemplaires, nous avons essayé de faire une version avec un unique tube, qui nous permettait de tester si notre système de contrôle de flux d’air était bien fonctionnel. Après la modélisation d’un cône pour mettre le ventilateur, et de quelques heures de programmation, nous avons obtenu ceci :
Carte de contrôle
Nous avons modélisé une carte de contrôle avec EasyEDA dont le plan est visible ci-après. Nous avons finalement choisi de ne pas faire un PCB par manque de connaissances et pour pouvoir modifier assez rapidement la carte en cas de schéma faux. Cependant, cela nous a causé de nombreux problème de faux contacts a cause de soudures mal faites. Nous nous sommes donc réorientés vers une breadboard « project board » afin de pouvoir conclure le projet.


Chassis
Dans la première version du chassis, nous voulions caché en partie le système mécanique en-dessous des tubes mais pour des raisons de facilité et parce que nous trouvions le système joli, nous n’avons finalement pas choisi de garder les deux planches en bas.
La partie basse du chassis est composée de six fois quatre trous permettant de visser les « pieds » des différents mécanismes. En haut, nous retrouvons, tout d’abord, une planche percée de six trous permettant aux six tubes de s’y glisser afin de les maintenir droits. Au-dessus, nous avons modélisé une planche trouée en son centre pour y mettre le ventillateur par-dessus.

Le passage à 6 tubes
Nous avions désormais une version fonctionnelle à un tube. Nous pensions que le passage à 6 tubes serait facile, mais cela n’a pas été le cas. En ne changeant pas de bibliothèque, il n’était possible que de contrôler que 2 capteurs ToF, et l’ajout d’un troisième renvoyait les mêmes valeurs que l’un des deux autres. C’était un gros problème. Nous avons alors changé de librairie, passant de Adafruit_VL53L0X.h à pololu/vl53l0x. Le problème a directement disparu, nous permettant de mesurer la hauteur des 6 balles de ping pong.
Une fois toutes ces vérifications effectuées, nous avons monté le système pour une dernière fois. Nous avons alors découpé avec la laser. Nous devions vérifier qu’un unique ventilateur permettait bien de porter toutes les balles. Ce fut un succès, nous permettant d’aller vers un montage définitif.
L’ajout de leds
On nous a proposé de rajouter des leds afin de rendre le projet plus joli. Nous nous sommes alors attelés à la tâche. Après un malheureux court circuit qui a fait disfonctionner toute la carte soudée, nous avons finalement réussi à les ajouter. Nous avons décidé de faire en sorte que les leds soient détachables, permettant de « facilement » changer les balles ou de réparer un tube.
Un autre problème a eu lieu avec le controle de ces dernières. En effet, si le code de démonstration de la bibliothèque fonctionnait parfaitement, dès lors de l’integration dans notre code, les leds devenanient incontrôlables. Le coupable ? Adafruit (encore). Il y avait un conflit entre les bibliothèques Adafruit_Neopixel et AsyncTCP. La solution a été de changer Adafruit_Neopixel par fastLED, qui, en plus de ne pas avoir de conflits avec d’autres bibliothèques, consomme moins de ressources.
Montage final & démo
Pour acceder au contrôle des balles, il faut aller sur la page http://192.168.4.1 depuis le wifi esp_ping.

Conclusion
Notre projet Makers est fonctionnel, nous obtenons une belle sinusoïde, et le contrôle des balles via la page web est assez précis.
Regrets
Nous avons quelques regrets sur ce projet. En particulier, par rapport à certaines fonctionnalités encore manquantes: par exemple, la phase de calibration initiale est assez longue, la faible quantité de mode d’affichage, ou la fiabilité de notre projet est assez faible (servo-moteur au comportement erratique, tof suicidaire…).
De plus, certaines pièces (en particulier autour du système de bielle/manivelle) sont assez fragile et assez difficile a imprimer, ce qui a rendu le projet plus fastidieux que prévu.
La non uniformité des balles de ping pong est aussi un gros regret. Les balles blanches permettent de mieux diffuser la lumière des leds.

Sources
- Code source : https://gitea.piair.dev/piair/je-menvol
- Modélisations OnShape : https://cad.onshape.com/documents/cb54d9461a24e569da9315a2/w/dcc1c490e4a0c11172d30c61/e/b41ad1cee3079b11d0891811
- Modélisations EasyEDA (format JSON) : https://alessevan.fr/2025/makers/easyeda.json
- Datasheet VL53L0X : https://www.st.com/resource/en/datasheet/vl53l0x.pdf
- Adafruit VL53L0X : https://registry.platformio.org/libraries/adafruit/Adafruit_VL53L0X
- Pololu VL53L0X : https://registry.platformio.org/libraries/pololu/vl53l0x
- Datasheet PCF8574AN : https://www.alldatasheet.com/datasheet-pdf/view/83873/TI/PCF8574AN.html
- Adafruit PCF8574 : https://registry.platformio.org/libraries/adafruit/Adafruit%20PCF8574
- fastLED: https://registry.platformio.org/libraries/etidbury/FastLED
- Adafruit neopixel: https://registry.platformio.org/libraries/adafruit/Adafruit%20NeoPixel








