Pièces de Tetris lumineuses géantes avec Arduino et des Neopixels

Le choeur secondaire de mon école a monté, pour son dernier spectacle « Svetlana et le Krock ». Il s’agit d’un petit conte musical, onirique et poétique, ou Svetlana, adepte des jeux vidéo et des écrans, rencontre le Krock, échappé de l’écran de sa télévision.

Comme toujours, Blandine, l’enseignante, a soigné la mise en scène, les décors et l’éclairage. C’est là où j’interviens, avec la création de deux pièces de Tetris géantes et lumineuses; le L et le T. Le L fait 1.80m de haut, le T en fait 1,20m. Chaque cube fait 60cm de côté. Contrainte supplémentaire: les élèves doivent pouvoir s’asseoir et monter sur les pièces. L’objectif était de déclencher un waouh effect auprès du public.

Voilà donc la base de la structure, réalisée en 3 plis et en lambourdes.

Les faces sont en pavatex, découpées à la découpeuse laser et encollées ensuite avec du papier calque. Pour réaliser ces décors, j’ai été aidé par mes élèves de l’OCOM Technologie 10H. Nous avons réalisé les découpes au FabLab de la HEPL.

Le montage de la structure a été réalisé en partie par moi et en partie par mes élèves.

Les pièces de Tetris devaient pouvoir changer de couleur durant le spectacle, pour s’adapter aux chants et à l’éclairage de la scène. Les pièces devaient aussi pouvoir être multicolores. Cela implique donc l’usage de bande de LEDs Neopixel. Chaque LED peut être commandée individuellement et donc recevoir une couleur individuellement, sans que ses voisines ne soient impliquées.

Les élèves ont soudé entre elles les bandes de Neopixels. Et c’est là que nous avons eu le plus de problèmes: les fils de connexion entre chaque bande étant trop rigides et les soudures fragiles, nous avons du reprendre de nombreuses soudures. Les bandes ont ensuite été mises en place dans les cubes.

Pour l’alimentation, et c’est sous doute la principale erreur, j’ai penser prendre des bandes de Neopixels en 5 Volts, au lieu des 12 habituel. Les Arduino permettant le contrôle des LEDs étant aussi en 5 Volts, cela simplifiait l’alimentation, ce d’autant plus que je voulais rendre les cubes autonomes, avec un fonctionnement sur batterie. Au final, cela n’aurait pas été nécessaire. Ainsi les LEDs et les Arduino étaient alimentés par des powerpacks.

Nous avons aussi fabriqué avec les élèves des powerpacks, pour les tests, afin de pouvoir avoir toujours suffisamment de packs chargés. Il faut en effet 5 packs pour alimenter les deux pièces de Tetris. C’est là où nous avons rencontré le plus grand problème: comme les LEDs sont alimentées par un faible voltage, le courant est proportionnellement plus important, selon la loi d’Ohm. Et j’ai très largement sous-estimé la consommation de chaque Neopixel (mes données concernaient en fait la version 12 Volts). Du coup, il a fallu réalimenter plusieurs fois le long des bandes (jusqu’à 4 fois pour le L), les Neopixels. Or, ceux-ci sont très sensibles. Chaque partie devait se retrouver sur une masse commune avec l’Arduino. Le moindre défaut de masse, le moindre parasite et la séquence d’allumage posait problème. Si sur le T, qui ne contient rien de moins de 354 Neopixel, nous n’avons pas rencontré de problème majeur, le L, lui, avec ses 416 LEDs est beaucoup plus instable. Les couleurs pures (rouge, vert, bleu) passent bien. Dès qu’on entre dans des couleurs composées (le violet, par exemple), nécessitant l’allumage du rouge et du bleu en même temps, nous avions parfois des problèmes. Une LED Neopixel est en effet composée de 3 minuscules LED, une rouge (R), une verte (G) et une bleue (B), raison pour laquelle on les appelle des LEDs RGB.

A l’origine, le passage d’une séquence à l’autre était commandé par un bouton-poussoir sur le cube, connecté en pull-up à l’Arduino. Deux élèves avaient la charge d’appuyer sur les boutons de chaque cube au moment idoine.

Mais suite à des erreurs lors de la première représentation, mes élèves et moi avons créé une sorte de télécommande à fil avec 4 boutons-poussoirs: deux pour chaque cube. L’un de bouton servait à passer à la séquence suivante, l’autre à revenir en arrière en cas d’éventuelle erreur. Il a donc fallu ajouter à l’Arduino un second circuit en pull-up. Pour la seconde représentation, j’étais donc en arrière-scène pour déclencher les séquences.

Au final, les cubes ont été habillés des faces ajourées avec du papier calque comme élément diffuseur.

Un grand merci à Blandine, l’enseignante de musique, qui s’est beaucoup investie pour ce spectacle, mais aussi à la fabrication des cubes (je ne connais pas beaucoup d’enseignantes de musique qui sache aussi faire de la soudure électronique). Merci aussi à Adrienne et Christophe du FabLab de la HEPL, aux élèves de ma classe d’OCOM Tech 10H et aux élèves du choeur.

Les codes Arduino pour commander le L et le T peuvent être téléchargés ici: Krock. Au final, j’ai réalisé le code, mais mes meilleurs élèves ont pu travailler durant l’année avec des Neopixel et des Arduino pour tester le tout.

Pour terminer, voici un petit medley du spectacle, avec les différents effets.

En conclusion, voici quelques conseils si vous vous lancez dans un projet Neopixel:

  • On peut sans problème alimenter jusqu’à 50 Neopixel en 5V avec une powerpack 2.1A. Au-delà, prévoir des Neopixels 12 V ou une alimentation secteur 5V/10A.
  • Si vous devez connecter en parallèle plusieurs bandes de Neopixel, connectez-les à une terre (GND) commune et n’oubliez pas d’y connecter dessus l’Arduino. Soignez la connexion!
  • Pour relier les bandes de Neopixel entre elles, choisissez du fil multibrin, plus souple que le monobrin.
  • N’utilisez pas de fil trop fin pour relier les bandes entre elles. Du 22AWG va bien.

EnregistrerEnregistrer

EnregistrerEnregistrer

Play

Publié par

Frédéric Genevey

Enseignant MITIC & Technologie, passionné de robotique pédagogique, d'Arduino et d'impression 3D.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.