La boîte à pingouin

Comment transformer une simple boîte à sucre en boîte à musique high-tech ? Grâce à un mini-ordinateur, quelques composants électroniques et pas mal d’ingéniosité !

Entièrement pensée et réalisée au cours des ateliers des Façonneurs du numérique, voici une boîte qui fait danser un pingouin pendant que de petites lumières s’allument au rythme d’une mélodie bien connue.

Cet article décrit les différentes étapes de la fabrication et les outils nécessaires à la réalisation de votre propre boîte à pingouin.

Fichiers et liens

Manuel de la boîte à pingouin - version 8 (PDF - 1,80mo) Fichiers du projet (ZIP - 3,47mo)

Ce dossier zippé contient :

  • Le plan des branchements
  • Les plans du dessus et du côté de la boîte, à l’échelle 1/1
  • Le fichier en .stl du pingouin (donc, imprimable)
  • Le tableau de conversion notes/fréquences (pour faire jouer la mélodie par le piezo buzzer)

Ci-dessous, les liens vers les logiciels libres qui ont servi à la conception :

Quelques liens utiles :

Description du projet

Voici une nouvelle génération de boîte à musique. Un pingouin illuminé de lumière surgit de sa boite sur l’ air d’ Oh when the saints go marching in ! Elle a été réalisée dans une boîte à sucre banale, découpée selon nos besoins puis peinte.

Le système est composé d’une carte Arduino Uno (un mini-ordinateur), de câblages, de composants (lumières, buzzer, moteur, boutons) et d’un pingouin modélisé en 3D puis imprimé en 3D, dont le visuel est inspiré du personnage de série animés Pingu show.

La théorie c’est bien, mais mettre les mains dans le cambouis c’est plus sympa.
Les façonneurs du Numérique ont voulu tester concrètement les compétences qu’ils avaient acquises (à la sueur de leur front), tout en s’amusant à réaliser un objet, de préférence inutile… et pourtant tellement utile !

Cela leur a en effet permis de pratiquer la programmation avec le logiciel IDE Arduino (plus d’une centaine de lignes de codes pour la boîte), de revoir leurs connaissances en montage électrique (je fais quoi de ce câble rouge ?) et aussi quelques notions d’électricité de base. Au passage, pas mal de temps à réfléchir sur l’objet concret (où on met quoi, comment on découpe ?) et à le conceptualiser de A jusqu’à Z. Un long processus de création / fabrication.

La boîte a aussi permis à chacun de mobiliser ses propres compétences, et de les partager avec tout le monde. On obtient ainsi une mutualisation des savoir-faire, ce qui permet d’apprendre des autres, et d’apprendre aux autres.

Les Façonneurs du Numérique se réunissent le mercredi, à l’Espace Numérique de la Médiathèque de Guichen. L’équipe qui a réalisé la boîte n’était pas un groupe fermé, certains ont participé d’un bout à l’autre, d’autres n’ont fait que passer et nous ont parfois enlevé une sacrée épine du pied.

Un travail d’équipe, que l’on pourrait résumer ainsi :

  • Modélisation 3D : Kevin
  • Aspect bricolage : Jean-Yves
  • Coordinateur de projet : Olivier
  • Concept de base : Régine
  • Programmation : Lohan
  • Peinture : Viviane

Mais au final, tout le monde a touché à tout !

On peut aussi citer William, qui a participé activement au début du projet et Éliane, qui a joué les photographes pour ce livret.

Matériel et composant

  • Un pingouin imprimé en 3D
  • Du gros ruban adhésif
  • Un breadboard
  • Une pile 9V et son connecteur
  • Un bouton poussoir
  • Des câbles (mâle/mâle), 2 par led
  • Une carte Arduino Uno, son câble USB et son adaptateur secteur
  • Des leds 5 mm (1 rouge, 2 bleues, 2 vertes, 2 jaunes) et leurs supports
  • Un piezo buzzer
  • Des résistances, 1 par led
  • Un moteur pour actionner le pingouin, type servo-moteur 3kg
  • Un fer à souder léger et du fil d’étain
  • Une boîte métallique
  • Logiciels à prévoir : IDE Arduino pour le code, Blender ou TinkerCad pour la modélisation du pingouin

 

Fabrication de la boîte

On peut utiliser une boîte à sucre, qui fera environ 20 cm de long par 13 cm de large.

Perçage des trous

7 trous de diamètre 7 mm devront être faits à la perceuse, afin d’insérer les supports de leds, puis les leds.

Il faudra aussi un trou d’environ 1cm pour le bouton poussoir.

Découpes

On pourra découper la fente (3×9 cm) et effectuer le trou rectangulaire pour le bouton on/off (1×1,5 cm) avec un cutter.

Pour avoir des ouvertures bien propres, on peut découper 1 cm de moins, puis découper sur 1 cm chaque angle, en diagonal, de manière à replier les bords vers l’intérieur de la boîte.

Peinture

Il faut d’abord passer une sous-couche de peinture pour métal.

On peut prendre le parti de peindre la boîte en bleu, qui rappelle le logo du dispositif Arduino. Pour décorer, on pourra imaginer une banquise avec de la peinture blanche.

Fabrication du pingouin

Le pingouin a été librement inspiré du personnage principal d’une série télévisée en animation helvético-britannique, le Pingu show, créé par Otmar Gutmann.

Modélisation

On peut utiliser le logiciel libre et gratuit Blender pour réaliser le fichier 3D du pingouin.

On pensera à ajouter un bras de fixation au moteur sur le pied droit du pingouin.

Il faut bien faire atten-tion aux dimensions du pingouin, afin qu’il passe bien par la fente de la boîte.

Par exemple, on peut le modéliser en 8 cm par 5 cm. Pour le bras, par exemple 2,5 cm par 1,8 cm.

Il faudra ensuite l’exporter au format .stl en vue de l’impression 3D.

Impression 3D

Notre pingouin a été imprimé avec une Imprimante 3D Prusa I3 et du filament ABS. L’imprimante était pilotée par le logiciel Repetier.

Tous types d’imprimantes, matières et logiciels feront l’affaire.

Ci-contre, le pingouin encore tout chaud !

Peinture

On peut peindre le pingouin avec de la peinture à maquette, qui tient bien sur les impressions 3D.

D’abord, une sous-couche noire (on attend que ce soit bien sec), puis on dessine pattes et bec en orange, yeux en blanc. Pour les pupilles, une petite goutte de peinture noire au bout d’un cure-dents.

Programmation

Voici en résumé les différentes parties qui vont composer le programme, et les principales commandes.

Les 3 blocs

Le code se décomposera en 3 grands blocs.

Déclaration des constantes et variables

On indique ce qui est branché et sur quelle broche.

Par exemple :

int verte =4 ;

Ici la led verte que l’on nomme « verte » est branchée sur la broche 4.

Le bloc d’initialisation du programme (void setup)

On indique quelles broches agissent sur le programme (comme le bouton) et sur lesquelles le programme agit (les leds, le buzzer,…).

Par exemple :

pinMode(verte, OUTPUT);

Ici, la led verte est définie comme une sortie → le programme agit dessus (il l’allume ou l’éteint).

Ou encore :

pinMode(bouton, INPUT);

Ici, le bouton est une entrée : il déclenche une sous-partie du programme.

Le bloc répété en boucle infinie (void loop)

2 sous-blocs, le « if » (si le bouton est poussé) et le « else » (si le bouton n’est pas poussé). Dans les deux sous-blocs, on insère les lignes de commande des composants. Dans le « if », on indique l’allumage des leds, les notes du buzzer, les rotations du moteur.

Les principales commandes

La commande digitalWrite et les actions HIGH et LOW

La commande « digitalWrite » sert à définir une action binaire (1 ou 0, oui ou non, allumer ou éteindre) sur un composant.

digitalWrite(jaune, HIGH);

digitalWrite(jaune, LOW);

Par exemple ici, on dit que le composant nommé « jaune » s’allume puis s’éteint (il faut impérativement qu’il y ait une commande « delay » entre les commandes « digitalWrite » pour que le composant s’allume).

« HIGH » est la commande utilisée pour allumer un composant.

« LOW » est la commande utilisée pour éteindre un composant.

La commande delay

La commande « delay » sert à définir une durée entre 2 commandes (une pause dans le programme).

Par exemple :

digitalWrite(jaune, HIGH);

delay(1000);

digitalWrite(jaune, LOW);

Ici , on attend 1000 ms (donc 1 seconde) avant d’éteindre la led jaune.

Le moteur

On indique les mouvements du moteur en degrés et le sens. Par exemple :

for(pos = 0; pos <= 90; pos++) {

moteur.write(pos); }

Ici, on opère une rotation de 90° degrés dans le sens horaire.

Ou encore :

for(pos = 90; pos>=75; pos–) {

moteur.write(pos); }

Ici, on opère une rotation de 75° dans le sens anti-horaire.

Les leds

digitalWrite(jaune, HIGH);

delay (1000);

digitalWrite(jaune, LOW);

Ici, la led jaune est allumée pendant 1 seconde (1000 millisecondes).

Le moteur

#include <Servo.h>

Servo servo;

On inclut le sous-programme du servo-moteur, puis on le nomme «  servo  ».

Ainsi, nous n’avons pas à programmer le moteur, on récupère le code déjà intégré au logiciel.

La syntaxe

On pense à terminer chaque ligne par un point-virgule et à fermer toutes les accolades ouvertes.

On respectera aussi les majuscules et minuscules.

La musique

En 1923, le groupe Paramount Jubilee Singers enregistre une adaptation de la chanson When the saints are marching in, composée par Katharine Purvis et James Milton Black en 1896. Ce morceau a été choisi pour la simplicité de sa mélodie et son aspect dansant.

Les quelques mesures utilisées pour la boîte sont faciles à reproduire avec le Piezo buzzer, qui ne peut jouer qu’une seule note à la fois, donc pas d’accords.

Conversion en fréquences

En programmation, on va convertir ces notes en fréquences, comme suit :

Le C correspond à un Do, le C# à un Do#, le D à un Ré, et ainsi de suite.

Les colonnes (-1, 0, 1, 2, etc.) sont les octaves de la plus grave à la plus aiguë.

Les nombres sont les fréquences Hertz pour chaque note, que le buzzer reproduira.

Dans le programme

tone(buzz, 440, 800);

Ici, par la commande « tone », on fait jouer à l’élément qu’on a appelé « buzz » (le piezo buzzer), une fréquence de 440Hz (un La) pendant 800 millisecondes (donc 0,8 secondes)

Téléversement

Nous n’avons plus qu’à envoyer le programme dans la carte.

Pour cela :

  • On choisit le bon port USB de l’ordinateur via le menu Outils → ports
  • On branche l’Arduino en USB
  • On clic sur le bouton Téléverser en haut à gauche

Le montage électrique

Les broches

Voici les numéros de broches sur lesquelles sont branchés les différents composants :

4810

N° de broche Led ou composant
1 Led rouge
2 Led jaune 1
4 Led verte 1
5 Led bleue 1
6 Led jaune 2
7 Led verte 2
8 Led bleue 2
9 Servo moteur
10 Bouton poussoir
11 Piezo buzzer

Les branchements

Voici le schéma des branchements de la carte Arduino vers le breadboard, jusqu’aux composants.

Les leds

Ce tableau indique les valeurs de résistance en Ohms pour chaque couleur de led, pour des leds de 5 mm :

Couleur Valeur
Rouge 470Ω
Vert 680Ω
Jaune 1kΩ
Bleu 1kΩ

On fera attention au sens de la led : la patte courte est le – et la longue le +.

Les résistances ne sont pas polarisées, donc n’ont pas de sens.

Le moteur

On part de la broche 9 pour aller au moteur, puis du moteur à la masse de l’Arduino (GND).

Sur le 3ème fil du moteur, on raccordera la broche 5V.

Le bouton

On doit raccorder le bouton à sa broche, à la masse de l’Arduino, mais aussi à la broche 5V. On mettra une résistance dans le montage, juste avant la masse. On branchera comme ci-contre :

Le câble rouge va au 5V et le noir à la masse (broche nommée GND).

L’alimentation

On se servira de la prise secteur de l’Arduino, en y insérant une fiche (éventuellement découpée sur un chargeur adapté). On soudera à la fiche, d’un côté, un interrupteur, de l’autre le connecteur de pile 9V. On raccorde ensuite l’interrupteur à la pile.

Mise en place des éléments

La carte

La boîte étant en métal, elle risque de provoquer des courts-circuits sous la carte Arduino. On pourra donc découper un morceau de carton et en recouvrir le fond pour isoler.

Le breadboard

Il vaut mieux fixer le breadboard afin que les fils ne se débranchent pas. Par exemple avec des pastilles adhésives.

Les leds

Il faut commencer par insérer dans les trous les supports de led, en passant par le haut. S’ils semblent ne pas rentrer, il faut forcer un peu (ils ne sont pas fragiles).

On viendra ensuite insérer les leds dans les supports par le dessous. Généralement, il faut forcer, mais en faisant attention à ne pas casser les pattes de la led.

Le moteur, la pile, le buzzer

Pour ces trois éléments, le ruban adhésif double-face sera pratique.

On fixe le moteur au couvercle, au bord de la fente.

Fixer la pile à mi-chemin entre la prise secteur de l’Arduino et le bouton on/off, sans gêner les autres éléments. Pas trop de ruban adhésif sous la pile : il faudra la changer un jour ou l’autre !

Le buzzer peut être fixé à un côté de la boîte (fermement, sinon il tombe).

Les câbles

Vous avez maintenant tout dans la boîte et des câbles dans tous les sens. On peut mettre de l’ordre en fixant les câbles un peu partout avec du gros ruban adhésif.

Le pingouin

Toujours au ruban adhésif double-face, on peut fixer le pingouin sur le bras du moteur. Attention à le positionner correctement par rapport à votre fente, ni trop haut ni trop bas.

Ce concept peut tout à fait être adapté pour donner lieu à un autre objet. La boîte pourrait être en bois ou en carton, le pingouin peut prendre l’apparence d’un autre personnage…

A vous de jouer !

Licence

Ce projet a été réalisé dans le cadre des ateliers organisés à l’Espace Numérique de Guichen par Les façonneurs du numérique, en mai 2016.

Licence Creative Commons
Ce(tte) œuvre est mise à disposition selon les termes de la Licence Creative Commons Attribution – Pas d’Utilisation Commerciale – Partage dans les Mêmes Conditions 4.0 International.

 

Laisser un commentaire

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