MoodBox : Différence entre versions

(update property name)
 
(44 révisions intermédiaires par 4 utilisateurs non affichées)
Ligne 1 : Ligne 1 :
{{ {{tntn|Tuto Details}}
+
{{Tuto Details
 
|Main_Picture=Mood_Box,_Sons_et_Lumières_DSC_0064.JPG
 
|Main_Picture=Mood_Box,_Sons_et_Lumières_DSC_0064.JPG
 
|Licences=Attribution (CC BY)
 
|Licences=Attribution (CC BY)
|Description=Cette boîte modulaire est composée de 3 étages. Une fois allumée, elle fournit par défaut les informations d'une mini-station météo mais se transforme en une mood box et un juke box lorsque sollicitée.
+
|Description=<translate><!--T:1--> Boîte modulaire : mini-station météo et juke box Arduino.</translate>
|Area=Art, Decoration, Electronics, Music and Sound, Science and Biology
+
|Area=Art, Decoration, Electronics, Music and Sound
 
|Type=Creation
 
|Type=Creation
 
|Difficulty=Medium
 
|Difficulty=Medium
Ligne 10 : Ligne 10 :
 
|Cost=50
 
|Cost=50
 
|Currency=EUR (€)
 
|Currency=EUR (€)
|Tags=Découpe laser, Impression 3D, Programmation Arduino, Juke box, Météo
+
|Tags=Découpe laser, Impression 3D, Programmation Arduino, Juke box, Météo, Arduino, ledring, moteur pas-à-pas, LCD
 
|SourceLanguage=none
 
|SourceLanguage=none
 
|Language=fr
 
|Language=fr
 
|IsTranslation=0
 
|IsTranslation=0
 
}}
 
}}
{{ {{tntn|Introduction}}
+
{{Introduction
|Introduction=Vous trouverez dans ce paragraphe le projet décrit un peu plus en détail.
+
|Introduction=<translate><!--T:2-->
 
+
Cette boîte modulaire est composée de 3 étages. Une fois allumée, elle fournit par les informations d'une mini-station météo (température/humidité/pression atmosphérique) mais se transforme en une "Mood box", à savoir en juke box, à la demande.
=== Préambule ===
 
  
 +
=== Préambule === <!--T:4-->
 
Ce projet est un projet de groupe (FaB team) réalisé dans le cadre de la formation hybride "Fabrication Numérique", promotion juillet 2018.
 
Ce projet est un projet de groupe (FaB team) réalisé dans le cadre de la formation hybride "Fabrication Numérique", promotion juillet 2018.
  
Ce projet de fin de parcours met en oeuvre une partie des savoir-faire acquis au cours de celle-ci et scelle la formation.
+
<!--T:5-->
 +
Ce projet de fin de parcours met en œuvre une partie des savoir-faire acquis au cours de celle-ci et scelle la formation. Il vient donc en complément du projet "bentolux" qui sera bientôt documenté et référencé sur wikifab.org .
  
 +
<!--T:6-->
 
Les instructions de base étaient les suivantes :
 
Les instructions de base étaient les suivantes :
* concevoir un nouvel étage au début de boîte existant (3 étages possibles : 1 socle, 1 en plexiglas, 1 pour l'écran LCD ;
+
* concevoir un nouvel étage sur une boîte existante conçue au fil de la formation (3 étages possibles à disposition : 1 socle, 1 en plexiglas, 1 pour l'écran LCD) ;
* disposer pour ce nouvel étage d'au moins un élément imprimé en 3D ;
+
* utiliser pour ce nouvel étage les connaissances acquises : impression 3D, découpe laser, etc ;
 
* programmer via Arduino au moins une interaction avec l'utilisateur (à nous de choisir cette dernière).
 
* programmer via Arduino au moins une interaction avec l'utilisateur (à nous de choisir cette dernière).
  
=== Spécifications générales ===
+
=== Spécifications générales === <!--T:8-->
 
+
Après réflexion, notre groupe a décidé de créer l'étage musical "Mood Box" qui viendrait compléter la station météo déjà prévue avec l'étage socle et l'étage écran LCD.
Après réflexion, notre groupe a décidé de créer un étage Mood Box qui viendrait compléter la station météo déjà prévue avec l'étage socle et l'étage écran LCD.
 
  
 +
<!--T:9-->
 
Le comportement prévu est décrit dans les paragraphes ci-dessous.
 
Le comportement prévu est décrit dans les paragraphes ci-dessous.
  
==== Démarrage de la boîte ====
+
==== Démarrage de la boîte ==== <!--T:11-->
 
 
 
Une fois le bloc d'alimentation correctement branché, le démarrage de la boîte est réalisé par le biais de l'interrupteur en façade.
 
Une fois le bloc d'alimentation correctement branché, le démarrage de la boîte est réalisé par le biais de l'interrupteur en façade.
  
 +
<!--T:12-->
 
Ce démarrage déclenche les événements suivants :
 
Ce démarrage déclenche les événements suivants :
 
* la figurine au sommet de la boîte tourne sur son support ;
 
* la figurine au sommet de la boîte tourne sur son support ;
* une animation lumineuse via l'anneau de LEDs situé sous le support de la figurine ;
+
* cette "danse" est agrémentée d'une animation lumineuse via l'anneau de LEDs situé sous le support de la figurine ;
 
* l'écran LCD affiche un message de bienvenue.
 
* l'écran LCD affiche un message de bienvenue.
 
S'il n'y a aucune autre action dans la foulée, la boîte passe en mode "veille".
 
S'il n'y a aucune autre action dans la foulée, la boîte passe en mode "veille".
  
 +
<!--T:13-->
 
Dans ce mode, l'écran LCD affiche la température et le taux d'humidité accompagnés d'un message.
 
Dans ce mode, l'écran LCD affiche la température et le taux d'humidité accompagnés d'un message.
  
 +
<!--T:14-->
 
Ces messages comme la couleur appliquée à l'anneau de Leds et au fond de l'écran LCD dépendent de la température détectée, à savoir :
 
Ces messages comme la couleur appliquée à l'anneau de Leds et au fond de l'écran LCD dépendent de la température détectée, à savoir :
* "De l'air !!", si la température atteint 27°C ou plus ;
+
* la couleur (LCD/Led-ring) varie du bleu au rouge proportionnellement à la température ;
* "J':heart: la douceur", si la température est supérieure ou égale à 22°C et inférieure à 27°C ;
+
* le led-ring scintille à une fréquence aléatoire pour donner de l'animation ;
* "Il fait bon !", si la température est supérieure ou égale à 17°C et inférieure à 22°C ;
+
* un message variable par tranche est affiché sur l'écran LCD.</translate>
* "Frais, non ?", si la température est supérieure ou égale à 22°C et inférieure à 27°C ;
+
}}
* "Frisquet :persevere:", si la température est supérieure ou égale à 22°C et inférieure à 27°C ;
+
{{Materials
* "Quel froid :persevere:", si la température est supérieure ou égale à 22°C et inférieure à 27°C.
+
|Step_Picture_00=Mood_Box,_Sons_et_Lumières_DSC_0071_1528657594768.jpg
 
+
|Step_Picture_01=Mood_Box,_Sons_et_Lumières_DSC_0070_1528657596593.jpg
==== Activation de la Mood Box et comportement ====
+
|Step_Picture_02=Mood_Box,_Sons_et_Lumières_DSC_0072.jpg
 
+
|Step_Picture_03=Mood_Box,_Sons_et_Lumières_IMG_4014.jpg
La Mood Box est activée lorsque l'utilisateur appuie sur la barre de laiton située au sommet de la boîte (cette barre est une extension de la touche capacitive installée à l'intérieur de la boîte).
+
|Step_Picture_04=Mood_Box,_Sons_et_Lumières_IMG_4011.jpg
 
+
|Material=<translate><!--T:28-->
Cette activation est accompagnée d'une animation conjointe de la figurine, de l'anneau de LEDs et de l'écran LCD.  
+
Les matériaux nécessaires ont été regroupés par catégorie.
 
 
{{Warning|Si aucun autre appui n'est effectué sur la barre dans les 5 secondes suivant l'activation, la Mood Box est désactivé et le mode veille reprend.}} 
 
 
 
Un nouvel appui déclenche le mode lecture. {{Idea|Pour faciliter l'utilisation de la barre, un affichage itératif de leds permet un comptage visuel direct des "clics" effectués.}}
 
 
 
La première fois, la lecture de la musique démarre au tout début de la liste de lecture.
 
 
 
Le bouton du potentiomètre est alors actif et permet de régler le volume de la musique jouée.
 
  
La barre reste quant à elle disponible pour agir sur la musique jouée.
+
==== Pour la boîte ==== <!--T:29-->
 +
*panneau de contreplaqué en 3mm d'épaisseur pour la découpe laser ;
 +
{{Idea|le peuplier n'est pas très cher, se découpe très bien et surtout très rapidement.}}
 +
* languette de laiton 80x7x2mm (Lxlxh), pour modifier et étendre la surface sensible de la touche capacitive ;
 +
{{Info|La tige laiton se trouve dans le commerce en barre d'un mètre (~7€). On peut la remplace par n'importe quel élément conducteur, de section et forme différente.}}
 +
* PLA transparent pour imprimer en 3D :
 +
** la trappe d'accès à la boîte contenant l'Arduino,
 +
** les supports de la figurine dont un qui va également diffuser la lumière du led-ring,
 +
** le bouton de volume,
 +
** les clips d'assemblage ;
 +
* PLA (couleur au choix) pour créer le décor animé placé au sommet de la boîte.
  
Pendant ce mode, si la barre est touchée :
+
==== Pour l'électronique ==== <!--T:30-->
*  1 fois : "pause/play", i.e. la musique est mise en pause ou en lecture suivant l'état précédent, avec un affichage spécifique sur l'écran LCD ;
+
* 1 carte Arduino Uno Rev.3 ;
*  2 fois : "next", i.e. le titre en cours de lecture est stoppé et la lecture passe au titre suivant de la liste de lecture ;
+
* 1 alimentation électrique MW, modèle 1500mA Rotary Switch Adaptor ;
*  3 fois : "previous", i.e. le titre en cours de lecture est stoppé et la lecture passe au titre précédent de la liste de lecture ;
+
* 1 inverseur KNX-1, 3A, 250V AC, pour servir d'interrupteur général ;
*  4 fois ou plus : retour au mode "veille", avec une animation conjointe de l'anneau de LEDs, de la figurine et de l'écran LCD.
+
* 1 potentiomètre Seeed Studio, modèle Grove Rotary Angle Sensor (P) ;
Pendant la lecture, l'anneau de LEDs est en mode "arc-en-ciel" et la figurine tourne sur elle-même.
+
* 1 touche capacitive Seeed Studio, modèle Grove Touch Sensor ;
 +
* 1 ledring Adafruit, modèle Neopixel Ring 12 x 5050 RGB ;
 +
* 1 lecteurMP3 Seeed Studio, modèle Grove MP3 v2.0 ;
 +
* 1 carte micro SD, pour stocker la bibliothèque musicale de son choix ;
 +
* 1 moteur Seeed Studio, type Gear Stepper Motor with Driver, modèle Step Motor 28BYJ-48 5V DC ;
 +
* 1 capteur BME280 Adafruit : , humidité, pression (ADA2652) ;
 +
* 1 "Base Shield V2" de marque Seeed Studio.
  
==== Désactivation de la Mood Box ====
+
==== Autres ==== <!--T:31-->
 +
*colle à bois, pour l'assemblage des différents étages de la boîte ;
 +
* colle cyanoacrylate ;
 +
* visserie pour fixer certains composants à la boîte ;
 +
* câbles et connecteurs.</translate>
 +
|Tools=<translate><!--T:32-->
 +
Les outils utilisés sont répartis ci-dessous suivant leur nature.
  
Après activation de la Mood Box ou après l'arrêt volontaire de la musique, si aucun appui n'est effectué dans les 5 secondes, le mode veille reprend et la Mood Box est désactivée.
+
==== CAO & PAO ==== <!--T:33-->
 +
* Inkscape : logiciel de CAO 2D pour créer ou modifier le schéma de découpe et/ou de gravure des différents éléments de la boîte ;
 +
* TinkerCAD, Blender ou autre logiciel de CAO 3D de son choix pour créer ou modifier les éléments de décor et autres parties imprimées de la boîte ;
 +
* Arduino IDE : environnement de développement adapté à la carte Arduino pour créer le programme de commande de la boîte et gérer les différentes interactions entre les utilisateurs et les capteurs et autres composants.
 +
{{Idea|Tous les fichiers 2D et 3D (.svg, .stl) sont mis à disposition dans l'onglet "fichier" de cette page.}}
  
Il est à noter que si l'on sort à nouveau du mode "veille", la lecture va reprendre exactement au même endroit.
+
==== Machines & outils ==== <!--T:34-->
 +
* découpeuse laser, accessible dans un Fablab ;
 +
{{Warning|Plus les panneaux à découper seront plans (et non cintrés), plus la découpe sera précise. Il peut être judicieux de mentionner au vendeur que les panneaux vont aller en découpe laser.}}
 +
* imprimante 3D, également accessible via un FabLab au besoin ;
 +
* fer à souder et matériel de soudure ;
 +
{{Warning|Attention, en plus du risque de brûlure en cas de mauvaise manipulation du fer lui-même, certains composants électroniques sont sensibles à la chaleur et nécessitent de minimiser le temps de chauffe des différentes parties à souder. Il faut donc rester vigilant et procéder par étapes courtes (de 2 à 3 secondes maximum).}}
 +
* tournevis, pinces coupantes, scie, etc. ;
 +
* outil type Dremel.</translate>
 +
|Tuto_Attachments={{Tuto Attachments
 +
|Attachment=Supports - Bras et pivot - V4.stl
 +
}}{{Tuto Attachments
 +
|Attachment=Fermeture box V2.stl
 +
}}{{Tuto Attachments
 +
|Attachment=Capot arrière V3.stl
 +
}}{{Tuto Attachments
 +
|Attachment=Bouton potentiomètre.stl
 +
}}{{Tuto Attachments
 +
|Attachment=Plan découpe laser.pdf
 +
}}{{Tuto Attachments
 +
|Attachment=Capot arrière.svg
 +
}}{{Tuto Attachments
 +
|Attachment=Bras support inkscape.svg
 +
}}{{Tuto Attachments
 +
|Attachment=Schéma pivot moteur perçage.svg
 +
}}{{Tuto Attachments
 +
|Attachment=Schéma pivot moteur.svg
 +
}}{{Tuto Attachments
 +
|Attachment=Bloque fil.stl
 +
}}{{Tuto Attachments
 +
|Attachment=MoodBox V2.ino
 
}}
 
}}
{{ {{tntn|Materials}}
 
|Step_Picture_00=Mood_Box,_Sons_et_Lumières_IMG_4014.jpg
 
|Step_Picture_01=Mood_Box,_Sons_et_Lumières_IMG_4011.jpg
 
|Material=Les matériaux nécessaires ont été regroupés par catégorie.
 
 
==== Pour la boîte ====
 
*panneau de contreplaqué en 3mm d'épaisseur pour la découpe laser
 
{{Idea|le peuplier n'est pas très cher, se découpe très bien et surtout très rapidement}}
 
* languette de laiton 79x7x2mm (Lxlxh), pour modifier et étendre la surface sensible de la touche capacitive
 
* PLA transparent pour créer la trappe d'accès à la boîte contenant l'Arduino
 
* PLA pour le support du décor animé listé ci-après
 
* PLA pour créer le futur décor animé placé au sommet de la boîte
 
* PLA pour créer le bouton du volume sonore situé en façade de la boîte
 
* PLA pour créer le cache du levier de l'interrupteur général de la boîte
 
 
==== Pour l'électronique ====
 
* 1 carte Arduino Uno Rev.3
 
* 1 alimentation électrique MW, modèle 1500mA Rotary Switch Adaptor
 
* 1 inverseur KNX-1, 3A, 250V AC, pour servir d'interrupteur général
 
* 1 potentiomètre Seeed Studio, modèle Grove Rotary Angle Sensor (P)
 
* 1 touche capacitive Seeed Studio, modèle Grove Touch Sensor
 
* 1 ledring Adafruit, modèle Neopixel Ring 12 x 5050 RGB
 
* 1 lecteurMP3 Seeed Studio, modèle Grove MP3 v2.0
 
* 1 carte micro SD, pour stocker la bibliothèque musicale de son choix
 
* 1 moteur Seeed Studio, type Gear Stepper Motor with Driver, modèle Step Motor 28BYJ-48 5V DC
 
 
==== Autres ====
 
*colle à bois, pour l'assemblage des différents étages de la boîte
 
* colle plastique pour la trappe d'accès en PLA
 
* visserie pour fixer certains composants à la boîte
 
|Tools=Les outils utilisés sont répartis ci-dessous suivant leur nature.
 
 
==== CAO & PAO ====
 
*Inkscape : logiciel de CAO 2D pour créer ou modifier le schéma de découpe et/ou de gravure des différents éléments de la boîte
 
* TinkerCAD, Blender ou autre logiciel de CAO 3D de son choix pour créer ou modifier les éléments de décor et autres parties imprimées de la boîte
 
* Arduino IDE : environnement de développement particulièrement adapté à la carte Arduino pour créer le programme de commande de la boîte et gérer les différentes interactions entre les utilisateurs et les capteurs et autres composants
 
 
==== Machines & outils ====
 
* découpeuse laser, accessible via un FabLab près de chez soi {{Warning|Plus les panneaux à découper seront plans (et non cintrés), plus la découpe sera précise. Il peut être judicieux de mentionner au vendeur que les panneaux vont aller en découpe laser.}}
 
* imprimante 3D, également accessible via un FabLab au besoin
 
* fer à souder et matériel de soudure {{Warning|Attention, en plus du risque de brûlure en cas de mauvaise manipulation du fer lui-même, certains composants électroniques sont sensibles à la chaleur et nécessitent de minimiser le temps de chauffe des différentes parties à souder. Il faut donc rester vigilant et procéder par étapes courtes (de 2 à 3 secondes maximum) }}
 
* tournevis
 
 
}}
 
}}
{{ {{tntn|Separator}}}}
+
{{Separator}}
{{ {{tntn|Tuto Step}}
+
{{Tuto Step
|Step_Title=Conception 2D (nouvel étage de la boîte)
+
|Step_Title=<translate><!--T:35--> Conception 2D (nouvel étage de la boîte)</translate>
|Step_Content=Le but était d'avoir un nouvel étage différent faisant la part belle à la découpe laser mais aussi à la gravure.
+
|Step_Content=<translate><!--T:36-->
 +
Le but était d'avoir un nouvel étage différent faisant la part belle à la découpe laser mais aussi à la gravure.
  
 +
<!--T:37-->
 
Un motif de gravure a donc été choisi sous forme d'image.
 
Un motif de gravure a donc été choisi sous forme d'image.
  
 +
<!--T:38-->
 
Il a ensuite été reproduit sous Inkscape au moyen de courbes de Béziers.
 
Il a ensuite été reproduit sous Inkscape au moyen de courbes de Béziers.
  
Pour finir, ce motif de gravure a été intégré au schéma de découpe du nouvel étage de la boîte.
+
<!--T:39-->
|Step_Picture_00=Mood_Box,_Sons_et_Lumières_trac_de_d_coupe_et_gravure_laser_V4bis_.png
+
Pour finir, ce motif de gravure a été intégré au schéma de découpe du nouvel étage de la boîte.</translate>
|Step_Picture_01=Mood_Box,_Sons_et_Lumières_2400.jpg
+
|Step_Picture_00=Mood_Box,_Sons_et_Lumières_Plan_de_base_comment_.jpg
 +
|Step_Picture_01=Mood_Box,_Sons_et_Lumières_trac_de_d_coupe_et_gravure_laser_V4bis_.png
 +
|Step_Picture_02=Mood_Box,_Sons_et_Lumières_2400.jpg
 
}}
 
}}
{{ {{tntn|Tuto Step}}
+
{{Tuto Step
|Step_Title=Conception des éléments pour l'impression 3D
+
|Step_Title=<translate><!--T:40--> Conception des éléments pour l'impression 3D</translate>
|Step_Content={{Dont|À FAIRE
+
|Step_Content=<translate><!--T:41-->
ajouter les images issus des logiciels Inkscape, TinkerCAd et Blender pour :
 
le cache du levier de l'interrupteur,
 
le bouton pour le potentiomètre,
 
le support de la figurine
 
et la trappe d'accès de l'étage socle}}
 
 
 
 
Les éléments destinés à être imprimés en 3D sont les suivants :
 
Les éléments destinés à être imprimés en 3D sont les suivants :
* trappe d'accès pour l'étage socle dans lequel l'Arduino est placé ainsi que l'interrupteur et le potentiomètre ;
+
* trappe d'accès pour l'étage de base sur lequel l'Arduino est placé ainsi que l'interrupteur et le potentiomètre ;
 
* bouton pour la molette de réglage du potentiomètre ;
 
* bouton pour la molette de réglage du potentiomètre ;
* cache du levier de l'interrupteur ;
+
* l'embase sous le fantôme qui lui sert de support et diffuse la lumière du ledring ;
* support pour la figurine, ici un fantôme animé trouvé sur le site Thingiverse (cf. Notes et références) ;
+
* la figurine, ici le fantôme animé "Funkgeist" issu du site Thingiverse (https://www.thingiverse.com/thing:570654) et ses éléments de support ;
* figurine servant d'animation au sommet de la boîte.
+
* les clips de fermeture latéraux de la boite.
Pour cette étape, le travail a été réalisé à l'aide des logiciels Inkscape, TinkerCAD et Blender.
+
Pour cette étape, le travail a été réalisé à l'aide des logiciels Inkscape, TinkerCAD et Blender.</translate>
 +
|Step_Picture_00=Mood_Box,_Sons_et_Lumières_Capot_Etage_Base.jpg
 +
|Step_Picture_01=Mood_Box,_Sons_et_Lumières_Bouton_potentiom_tre.jpg
 +
|Step_Picture_01_annotation={"objects":[],"height":"385","width":"600"}
 +
|Step_Picture_02=Mood_Box,_Sons_et_Lumières_Supports-Vue_1.jpg
 +
|Step_Picture_03=Mood_Box,_Sons_et_Lumières_Supports-Vue_2.jpg
 +
|Step_Picture_04=Mood_Box,_Sons_et_Lumières_Clips_de_fermeture_-_Vue_1.jpg
 
}}
 
}}
{{ {{tntn|Tuto Step}}
+
{{Tuto Step
|Step_Title=Découpe laser et gravure du nouvel étage de la boîte
+
|Step_Title=<translate><!--T:42--> Découpe laser et gravure du nouvel étage de la boîte</translate>
|Step_Content=La découpe laser (avec la gravure) a été faite au sein du EdFab à Saint-Denis sous la houlette bienveillante de Lola et Arthur : un grand merci à eux deux !
+
|Step_Content=<translate><!--T:43-->
 +
La découpe laser (avec la gravure) a été faite au sein du EdFab à Saint-Denis sous la houlette bienveillante de Lola et Arthur : un grand merci à eux deux !
 +
 
 +
<!--T:73-->
 +
{{Idea|Une fois la boîte découpée et assemblée, on peut laisser libre court à son imagination pour la peindre, la décorer, la personnaliser selon ses envies.}}</translate>
 
|Step_Picture_00=Mood_Box,_Sons_et_Lumières_mood_box_d_coupe_laser.png
 
|Step_Picture_00=Mood_Box,_Sons_et_Lumières_mood_box_d_coupe_laser.png
|Step_Picture_01=Mood_Box,_Sons_et_Lumières_mood_box_d_coupe_laser.png
+
|Step_Picture_01=Mood_Box,_Sons_et_Lumières_mood_box_gravure_laser.png
|Step_Picture_02=Mood_Box,_Sons_et_Lumières_mood_box_gravure_laser.png
+
|Step_Picture_02=Mood_Box,_Sons_et_Lumières_DSC_0073_1528657590187.jpg
|Step_Picture_03=Mood_Box,_Sons_et_Lumières_mood_box_gravure_laser.png
+
|Step_Picture_03=Mood_Box,_Sons_et_Lumières_DSC_0108.jpg
 
}}
 
}}
{{ {{tntn|Tuto Step}}
+
{{Tuto Step
|Step_Title=Impression 3D
+
|Step_Title=<translate><!--T:44--> Impression 3D</translate>
|Step_Content=Toutes les impressions nécessaires au projet ont été réalisées sur une imprimante Prusa i3 MK2.
+
|Step_Content=<translate><!--T:45-->
 +
Toutes les impressions nécessaires au projet ont été réalisées sur une imprimante Prusa i3 MK3.
  
Ces éléments sont tous visibles sur la 1e photo ci-contre :
+
<!--T:46-->
* étage socle
+
Ces éléments sont tous visibles sur les photos ci-contre :
** trappe d'accès
+
* étage de base
** bouton cache pour la molette du potentiomètre
+
** trappe d'accès,
** cache pour le levier de l'interrupteur
+
** capot,
* étage mood box
+
* étage Mood Box
** support de la figurine
+
** supports de la figurine (fixe et tournant),
** figurine elle-même
+
** figurine,
|Step_Picture_00=Mood_Box,_Sons_et_Lumières_DSC_0064.JPG
+
** clips de fermeture (sur les côtés).</translate>
|Step_Picture_01=Mood_Box,_Sons_et_Lumières_DSC_0075.JPG
+
|Step_Picture_00=Mood_Box,_Sons_et_Lumières_DSC_0074.jpg
|Step_Picture_02=Mood_Box,_Sons_et_Lumières_DSC_0079.JPG
+
|Step_Picture_01=Mood_Box,_Sons_et_Lumières_DSC_0079.JPG
 +
|Step_Picture_02=Mood_Box,_Sons_et_Lumières_Capot.jpg
 +
|Step_Picture_03=Mood_Box,_Sons_et_Lumières_DSC_0024.jpg
 +
|Step_Picture_04=Mood_Box,_Sons_et_Lumières_DSC_0064.JPG
 +
|Step_Picture_05=Mood_Box,_Sons_et_Lumières_DSC_0067_1530540901573.jpg
 
}}
 
}}
{{ {{tntn|Tuto Step}}
+
{{Tuto Step
|Step_Title=Schéma du circuit
+
|Step_Title=<translate><!--T:47--> Schéma du circuit</translate>
|Step_Content={{Dont|À FAIRE
+
|Step_Content=<translate><!--T:48-->
Décrire brièvement le circuit de montage
+
Les différents capteurs et éléments sont branchés sur le shield implanté sur la carte Arduino sur les ports comme décrit ci-dessous.
Éventuellement ajouter une photo du montage réel s'il en existe ?}}
+
 
 +
==== Entrées ==== <!--T:49-->
 +
* Potentiomètre : entrée analogique A0 ;
 +
* Touche capacitive : entrée analogique A1 ;
 +
* Capteur BME280 :
 +
** Vin > 5V,
 +
** GND > GND,
 +
** CS > 10,
 +
** SDI > 11,
 +
** SD0 > 12,
 +
** SCK > 13.
 +
 
 +
==== Sorties ==== <!--T:50-->
 +
* LCD : port I2C ;
 +
* Lecteur MP3 : D2 ;
 +
* Ledring : D3.
 +
 
 +
==== Moteurs ==== <!--T:51-->
 +
* Moteur pas-à-pas :
 +
** IN 1 > 10 ;
 +
** IN 2 > 9 ;
 +
** IN 3 > 11 ;
 +
** IN 4 > 8.
 +
 
 +
==== Alimentation ==== <!--T:74-->
 +
Il est à noter que l'ensemble des éléments sont assez gourmands en énergie, l'alimentation délivrée par un USB est ainsi trop faible (~5V), idem pour une pile 9V embarquée, elle se décharge relativement vite.
 +
 
 +
<!--T:75-->
 +
Nous avons donc opté pour une alimentation avec un transformateur réglable.
 +
{{Warning|Penser à régler l'alimentation sur 9V en sortie afin d'avoir la puissance nécessaire à des affichages/actions claires.}}</translate>
 +
|Step_Picture_00=Mood_Box,_Sons_et_Lumières_Montage_de_base.JPG
 +
|Step_Picture_01=Mood_Box,_Sons_et_Lumières_DSC_0025_1530543841923.jpg
 +
|Step_Picture_02=Mood_Box,_Sons_et_Lumières_DSC_0049_1529863456451.jpg
 +
|Step_Picture_03=Mood_Box,_Sons_et_Lumières_DSC_0048_1529863457571.jpg
 
}}
 
}}
{{ {{tntn|Tuto Step}}
+
{{Tuto Step
|Step_Title=Programmation Arduino
+
|Step_Title=<translate><!--T:52--> Programmation Arduino</translate>
|Step_Content=La programmation a posé quelques difficultés du fait du fonctionnement séquentiel natif de l'Arduino.
+
|Step_Content=<translate><!--T:53-->
 +
La programmation a posé quelques difficultés du fait du fonctionnement séquentiel natif de l'Arduino.
  
 +
<!--T:54-->
 
Des contournements ont dus être trouvés afin d'animer plusieurs des composants de façon simultanée et non plus seulement séquentielle.
 
Des contournements ont dus être trouvés afin d'animer plusieurs des composants de façon simultanée et non plus seulement séquentielle.
  
 +
<!--T:55-->
 
Les 3 premières images ci-contre montrent les déclarations pour chacun des éléments constituant la boîte et son étage Mood Box.
 
Les 3 premières images ci-contre montrent les déclarations pour chacun des éléments constituant la boîte et son étage Mood Box.
  
 +
<!--T:56-->
 
Le programme principal consiste en une boucle exécutant la séquence demandée en fonction des interactions avec l'utilisateur. Chaque séquence est identifiée par un chiffre :
 
Le programme principal consiste en une boucle exécutant la séquence demandée en fonction des interactions avec l'utilisateur. Chaque séquence est identifiée par un chiffre :
 
* 0 : séquence au cours de laquelle il ne se passe rien ;
 
* 0 : séquence au cours de laquelle il ne se passe rien ;
Ligne 201 : Ligne 261 :
 
* 3 : séquence musicale.
 
* 3 : séquence musicale.
  
 +
<!--T:57-->
 
La gestion des temps d'attente, notamment pour la surveillance du nombre d'appuis sur la barre, a été faite en utilisant la fonction millis() afin d'éviter la fonction delay() qui met en pause tout le programme.
 
La gestion des temps d'attente, notamment pour la surveillance du nombre d'appuis sur la barre, a été faite en utilisant la fonction millis() afin d'éviter la fonction delay() qui met en pause tout le programme.
  
C'est grâce à cette fonction millis() qu'a été écrite la fonction "void Task_Wait(int waiting_time, boolean Moteur)". Celle-ci (voir photo ci-contre) permet de faire tourner le moteur alors même que l'on est en train de surveiller une éventuelle action de l'utilisateur.
+
<!--T:58-->
 +
Pour contourner le fonctionnement séquentiel, l'utilisation de la bibliothèque AccelStepper.h et l'implantation des commandes, associées au cœur même des routines appelées séquentiellement par la boucle principale, permet d'avoir la simultanéité des actions principales, à savoir : les animations de l'anneau de LEDs et la rotation du moteur pas-à-pas.
  
{{Idea|C'est cette astuce dans le code qui permet de ne pas arrêter le moteur le temps dédié à la surveillance d'une interaction avec la barre.}}
+
<!--T:59-->
 +
{{Idea|C'est cette astuce dans le code qui permet de ne pas arrêter le moteur pendant le temps dédié à la surveillance d'une interaction avec la barre.}}
 +
 
 +
==== Bibliothèques ==== <!--T:72-->
 +
Le programme s'articule autour de bibliothèques spécifiques aux composants utilisés, en voici la liste :
 +
* LCD : "rgb_lcd.h"
 +
** https://github.com/Seeed-Studio/Grove_LCD_RGB_Backlight
 +
* Ledring : "FastLED.h"
 +
** https://github.com/FastLED/FastLED
 +
* MP3 : "SoftwareSerial.h" et "MP3Player_KT403A.h"
 +
** https://github.com/Seeed-Studio/Grove_Serial_MP3_Player_V2.0/archive/master.zip
 +
* Moteur : "AccelStepper.h"
 +
** https://github.com/adafruit/AccelStepper
 +
* Capteur BME280 : "SPI.h", "Adafruit_Sensor.h" et "Adafruit_BME280.h
 +
** https://github.com/adafruit/Adafruit_BME280_Library
 +
** https://github.com/adafruit/Adafruit_Sensor</translate>
 
|Step_Picture_00=Mood_Box,_Sons_et_Lumières_pgm_aruino_init_1.png
 
|Step_Picture_00=Mood_Box,_Sons_et_Lumières_pgm_aruino_init_1.png
 
|Step_Picture_01=Mood_Box,_Sons_et_Lumières_pgm_aruino_init_2.png
 
|Step_Picture_01=Mood_Box,_Sons_et_Lumières_pgm_aruino_init_2.png
Ligne 211 : Ligne 288 :
 
|Step_Picture_03=Mood_Box,_Sons_et_Lumières_pgm_arduino_fonction_task_wait.png
 
|Step_Picture_03=Mood_Box,_Sons_et_Lumières_pgm_arduino_fonction_task_wait.png
 
}}
 
}}
{{ {{tntn|Tuto Step}}
+
{{Tuto Step
|Step_Title=Assemblage, tests et finitions
+
|Step_Title=<translate><!--T:60--> Assemblage, tests et finitions</translate>
|Step_Content=La carte Arduino, le potentiomètre ainsi que l'interrupteur relié au bloc d'alimentation sont installés dans l'étage socle de la boîte (étage inférieur).
+
|Step_Content=<translate><!--T:61-->
 +
La carte Arduino, le potentiomètre ainsi que l'interrupteur relié au bloc d'alimentation sont installés dans et sur l'étage de base de la boîte (étage inférieur).
  
 +
<!--T:62-->
 
L'écran LCD est installé dans l'étage éponyme (étage intermédiaire).
 
L'écran LCD est installé dans l'étage éponyme (étage intermédiaire).
  
L'étage mood box (étage supérieur, cf. 1e photo ci-contre), quant à lui, comprend les composants et éléments suivants.
+
<!--T:63-->
 +
L'étage Mood Box, quant à lui, comprend les composants et éléments suivants.
  
 +
<!--T:64-->
 
Sur les parois de la boîte sont fixés :
 
Sur les parois de la boîte sont fixés :
 
* le moteur servant à animer la figurine avec sa carte contrôleur (la carte contrôleur est visible sur la gauche de la boîte sur la photo) ;
 
* le moteur servant à animer la figurine avec sa carte contrôleur (la carte contrôleur est visible sur la gauche de la boîte sur la photo) ;
Ligne 229 : Ligne 310 :
 
Sur le couvercle de l'étage sont fixés :
 
Sur le couvercle de l'étage sont fixés :
 
* le support de la figurine, juste au-dessus de l'anneau de LEDs pour en diffuser la lumière (et la rendre moins agressive à l'oeil étant donné la puissance des LEDs) ;
 
* le support de la figurine, juste au-dessus de l'anneau de LEDs pour en diffuser la lumière (et la rendre moins agressive à l'oeil étant donné la puissance des LEDs) ;
* la figurine elle-même, sur l'axe du moteur de façon à être entraînée lorsque celui-ci tourne.
+
* la figurine elle-même, sur l'axe du moteur de façon à être entraînée lorsque celui-ci tourne.</translate>
 
|Step_Picture_00=Mood_Box,_Sons_et_Lumières_DSC_0105.JPG
 
|Step_Picture_00=Mood_Box,_Sons_et_Lumières_DSC_0105.JPG
|Step_Picture_01=Mood_Box,_Sons_et_Lumières_DSC_0108.JPG
+
|Step_Picture_01=Mood_Box,_Sons_et_Lumières_DSC_0100.JPG
|Step_Picture_02=Mood_Box,_Sons_et_Lumières_DSC_0109.JPG
+
|Step_Picture_02=Mood_Box,_Sons_et_Lumières_DSC_0103.JPG
 +
|Step_Picture_03=Mood_Box,_Sons_et_Lumières_DSC_0051_1529863454850.jpg
 +
|Step_Picture_04=Mood_Box,_Sons_et_Lumières_DSC_0091.jpg
 
}}
 
}}
{{ {{tntn|Tuto Step}}
+
{{Tuto Step
|Step_Title=Now let's dance!
+
|Step_Title=<translate><!--T:65--> Now let's dance!</translate>
|Step_Content=L'étage Mood Box est désormais terminé et fonctionnel.
+
|Step_Content=<translate><!--T:66-->
 +
L'étage Mood Box est désormais terminé et fonctionnel.
 +
 
 +
<!--T:67-->
 +
'''==== Activation de la Mood Box et comportement ===='''
 +
 
 +
<!--T:76-->
 +
La Mood Box est activée lorsque l'utilisateur appuie sur la barre de laiton située au sommet de la boîte (cette barre est une extension de la touche capacitive installée à l'intérieur de la boîte).
 +
 
 +
<!--T:77-->
 +
Cette activation est accompagnée d'une animation conjointe de la figurine, de l'anneau de LEDs et de l'écran LCD.{{Warning|Si aucun autre appui n'est effectué sur la barre dans les 5 secondes suivant l'activation, la Mood Box est désactivée et le mode veille reprend.}}Un nouvel appui déclenche le mode lecture.{{Idea|Pour faciliter l'utilisation de la barre, un affichage itératif de leds permet un comptage visuel direct des "clics" effectués.}}La première fois, la lecture de la musique démarre au tout début de la liste de lecture.
 +
 
 +
<!--T:78-->
 +
Le bouton du potentiomètre est alors actif et permet de régler le volume de la musique jouée.
 +
 
 +
<!--T:79-->
 +
La barre reste quant à elle disponible pour agir sur la musique jouée.
  
Se référer aux spécifications générales explicitées en introduction pour son bon usage !
+
<!--T:80-->
 +
Pendant la lecture, si la barre est touchée :
 +
* 1 fois : "pause/play", i.e. la musique est mise en pause ou en lecture suivant l'état précédent, avec un affichage spécifique sur l'écran LCD ;
 +
* 2 fois : "next", i.e. la lecture passe au titre suivant de la liste de lecture ;
 +
* 3 fois : "previous", i.e. la lecture repasse au titre précédent de la liste de lecture ;
 +
* 4 fois ou plus : retour au mode "veille", avec une animation conjointe de l'anneau de LEDs, de la figurine et de l'écran LCD.
 +
Remarque : chacune des actions pause/play/next/previous génère un changement de rotation de la figurine.
  
Merci pour votre intérêt :)
+
<!--T:81-->
 +
Pendant la lecture, l'anneau de LEDs est en mode "arc-en-ciel" et la figurine tourne sur elle-même.
 +
 
 +
<!--T:82-->
 +
'''==== Désactivation de la Mood Box ===='''
 +
 
 +
<!--T:83-->
 +
Après activation de la Mood Box ou après l'arrêt volontaire de la musique, si aucun appui n'est effectué dans les 5 secondes, le mode veille reprend et la Mood Box est désactivée.
 +
 
 +
<!--T:68-->
 +
Il est à noter que si l'on relance la lecture depuis le mode "veille", celle-ci va reprendre exactement là où on l'avait interrompue.
 +
Merci pour votre intérêt :)</translate>
 
|Step_Picture_00=Mood_Box,_Sons_et_Lumières_moodbox__cran_d_marrage.png
 
|Step_Picture_00=Mood_Box,_Sons_et_Lumières_moodbox__cran_d_marrage.png
|Step_Picture_01=Mood_Box,_Sons_et_Lumières_moodbox__cran_d_marrage.png
 
 
}}
 
}}
{{ {{tntn|Notes}}
+
{{Notes
|Notes=La figurine utilisée pour la présentation finale est issue de Thingiverse (https://www.thingiverse.com/thing:570654). Elle a été utilisée faute d'avoir eu le temps suffisant pour recréer en 3D le couple formé par l'hippopotame Hyacinth et son cavalier Ben Ali Gator dans Fantasia.
+
|Notes=<translate><!--T:69-->
 +
La figurine utilisée pour la présentation finale est issue de Thingiverse (https://www.thingiverse.com/thing:570654).  
 +
 
 +
<!--T:70-->
 +
Elle a été utilisée faute d'avoir eu le temps suffisant pour recréer en 3D le couple formé par l'hippopotame Hyacinth et son cavalier Ben Ali Gator dans Fantasia.
 +
 
 +
<!--T:71-->
 +
Projet "bentolux" accessible sur le site (à partir de juillet 2018).</translate>
 
}}
 
}}
{{ {{tntn|Tuto Status}}
+
{{Tuto Status
|Complete=Draft
+
|Complete=Published
 
}}
 
}}

Version actuelle datée du 9 décembre 2019 à 12:46

Auteur avatarFaB Team | Dernière modification 9/12/2019 par Clementflipo

Mood Box, Sons et Lumières DSC 0064.JPG

Introduction

Cette boîte modulaire est composée de 3 étages. Une fois allumée, elle fournit par les informations d'une mini-station météo (température/humidité/pression atmosphérique) mais se transforme en une "Mood box", à savoir en juke box, à la demande.

Préambule

Ce projet est un projet de groupe (FaB team) réalisé dans le cadre de la formation hybride "Fabrication Numérique", promotion juillet 2018.

Ce projet de fin de parcours met en œuvre une partie des savoir-faire acquis au cours de celle-ci et scelle la formation. Il vient donc en complément du projet "bentolux" qui sera bientôt documenté et référencé sur wikifab.org .

Les instructions de base étaient les suivantes :

  • concevoir un nouvel étage sur une boîte existante conçue au fil de la formation (3 étages possibles à disposition : 1 socle, 1 en plexiglas, 1 pour l'écran LCD) ;
  • utiliser pour ce nouvel étage les connaissances acquises : impression 3D, découpe laser, etc ;
  • programmer via Arduino au moins une interaction avec l'utilisateur (à nous de choisir cette dernière).

Spécifications générales

Après réflexion, notre groupe a décidé de créer l'étage musical "Mood Box" qui viendrait compléter la station météo déjà prévue avec l'étage socle et l'étage écran LCD.

Le comportement prévu est décrit dans les paragraphes ci-dessous.

Démarrage de la boîte

Une fois le bloc d'alimentation correctement branché, le démarrage de la boîte est réalisé par le biais de l'interrupteur en façade.

Ce démarrage déclenche les événements suivants :

  • la figurine au sommet de la boîte tourne sur son support ;
  • cette "danse" est agrémentée d'une animation lumineuse via l'anneau de LEDs situé sous le support de la figurine ;
  • l'écran LCD affiche un message de bienvenue.

S'il n'y a aucune autre action dans la foulée, la boîte passe en mode "veille".

Dans ce mode, l'écran LCD affiche la température et le taux d'humidité accompagnés d'un message.

Ces messages comme la couleur appliquée à l'anneau de Leds et au fond de l'écran LCD dépendent de la température détectée, à savoir :

  • la couleur (LCD/Led-ring) varie du bleu au rouge proportionnellement à la température ;
  • le led-ring scintille à une fréquence aléatoire pour donner de l'animation ;
  • un message variable par tranche est affiché sur l'écran LCD.

Matériaux

Les matériaux nécessaires ont été regroupés par catégorie.

Pour la boîte

  • panneau de contreplaqué en 3mm d'épaisseur pour la découpe laser ;
le peuplier n'est pas très cher, se découpe très bien et surtout très rapidement.
  • languette de laiton 80x7x2mm (Lxlxh), pour modifier et étendre la surface sensible de la touche capacitive ;
La tige laiton se trouve dans le commerce en barre d'un mètre (~7€). On peut la remplace par n'importe quel élément conducteur, de section et forme différente.
  • PLA transparent pour imprimer en 3D :
    • la trappe d'accès à la boîte contenant l'Arduino,
    • les supports de la figurine dont un qui va également diffuser la lumière du led-ring,
    • le bouton de volume,
    • les clips d'assemblage ;
  • PLA (couleur au choix) pour créer le décor animé placé au sommet de la boîte.

Pour l'électronique

  • 1 carte Arduino Uno Rev.3 ;
  • 1 alimentation électrique MW, modèle 1500mA Rotary Switch Adaptor ;
  • 1 inverseur KNX-1, 3A, 250V AC, pour servir d'interrupteur général ;
  • 1 potentiomètre Seeed Studio, modèle Grove Rotary Angle Sensor (P) ;
  • 1 touche capacitive Seeed Studio, modèle Grove Touch Sensor ;
  • 1 ledring Adafruit, modèle Neopixel Ring 12 x 5050 RGB ;
  • 1 lecteurMP3 Seeed Studio, modèle Grove MP3 v2.0 ;
  • 1 carte micro SD, pour stocker la bibliothèque musicale de son choix ;
  • 1 moteur Seeed Studio, type Gear Stepper Motor with Driver, modèle Step Motor 28BYJ-48 5V DC ;
  • 1 capteur BME280 Adafruit : T°, humidité, pression (ADA2652) ;
  • 1 "Base Shield V2" de marque Seeed Studio.

Autres

  • colle à bois, pour l'assemblage des différents étages de la boîte ;
  • colle cyanoacrylate ;
  • visserie pour fixer certains composants à la boîte ;
  • câbles et connecteurs.

Outils

Les outils utilisés sont répartis ci-dessous suivant leur nature.

CAO & PAO

  • Inkscape : logiciel de CAO 2D pour créer ou modifier le schéma de découpe et/ou de gravure des différents éléments de la boîte ;
  • TinkerCAD, Blender ou autre logiciel de CAO 3D de son choix pour créer ou modifier les éléments de décor et autres parties imprimées de la boîte ;
  • Arduino IDE : environnement de développement adapté à la carte Arduino pour créer le programme de commande de la boîte et gérer les différentes interactions entre les utilisateurs et les capteurs et autres composants.
Tous les fichiers 2D et 3D (.svg, .stl) sont mis à disposition dans l'onglet "fichier" de cette page.

Machines & outils

  • découpeuse laser, accessible dans un Fablab ;
Plus les panneaux à découper seront plans (et non cintrés), plus la découpe sera précise. Il peut être judicieux de mentionner au vendeur que les panneaux vont aller en découpe laser.
  • imprimante 3D, également accessible via un FabLab au besoin ;
  • fer à souder et matériel de soudure ;
Attention, en plus du risque de brûlure en cas de mauvaise manipulation du fer lui-même, certains composants électroniques sont sensibles à la chaleur et nécessitent de minimiser le temps de chauffe des différentes parties à souder. Il faut donc rester vigilant et procéder par étapes courtes (de 2 à 3 secondes maximum).
  • tournevis, pinces coupantes, scie, etc. ;
  • outil type Dremel.

Étape 1 - Conception 2D (nouvel étage de la boîte)

Le but était d'avoir un nouvel étage différent faisant la part belle à la découpe laser mais aussi à la gravure.

Un motif de gravure a donc été choisi sous forme d'image.

Il a ensuite été reproduit sous Inkscape au moyen de courbes de Béziers.

Pour finir, ce motif de gravure a été intégré au schéma de découpe du nouvel étage de la boîte.


Étape 2 - Conception des éléments pour l'impression 3D

Les éléments destinés à être imprimés en 3D sont les suivants :

  • trappe d'accès pour l'étage de base sur lequel l'Arduino est placé ainsi que l'interrupteur et le potentiomètre ;
  • bouton pour la molette de réglage du potentiomètre ;
  • l'embase sous le fantôme qui lui sert de support et diffuse la lumière du ledring ;
  • la figurine, ici le fantôme animé "Funkgeist" issu du site Thingiverse (https://www.thingiverse.com/thing:570654) et ses éléments de support ;
  • les clips de fermeture latéraux de la boite.

Pour cette étape, le travail a été réalisé à l'aide des logiciels Inkscape, TinkerCAD et Blender.

Étape 3 - Découpe laser et gravure du nouvel étage de la boîte

La découpe laser (avec la gravure) a été faite au sein du EdFab à Saint-Denis sous la houlette bienveillante de Lola et Arthur : un grand merci à eux deux !

Une fois la boîte découpée et assemblée, on peut laisser libre court à son imagination pour la peindre, la décorer, la personnaliser selon ses envies.


Étape 4 - Impression 3D

Toutes les impressions nécessaires au projet ont été réalisées sur une imprimante Prusa i3 MK3.

Ces éléments sont tous visibles sur les photos ci-contre :

  • étage de base
    • trappe d'accès,
    • capot,
  • étage Mood Box
    • supports de la figurine (fixe et tournant),
    • figurine,
    • clips de fermeture (sur les côtés).

Étape 5 - Schéma du circuit

Les différents capteurs et éléments sont branchés sur le shield implanté sur la carte Arduino sur les ports comme décrit ci-dessous.

Entrées

  • Potentiomètre : entrée analogique A0 ;
  • Touche capacitive : entrée analogique A1 ;
  • Capteur BME280 :
    • Vin > 5V,
    • GND > GND,
    • CS > 10,
    • SDI > 11,
    • SD0 > 12,
    • SCK > 13.

Sorties

  • LCD : port I2C ;
  • Lecteur MP3 : D2 ;
  • Ledring : D3.

Moteurs

  • Moteur pas-à-pas :
    • IN 1 > 10 ;
    • IN 2 > 9 ;
    • IN 3 > 11 ;
    • IN 4 > 8.

Alimentation

Il est à noter que l'ensemble des éléments sont assez gourmands en énergie, l'alimentation délivrée par un USB est ainsi trop faible (~5V), idem pour une pile 9V embarquée, elle se décharge relativement vite.

Nous avons donc opté pour une alimentation avec un transformateur réglable.

Penser à régler l'alimentation sur 9V en sortie afin d'avoir la puissance nécessaire à des affichages/actions claires.


Étape 6 - Programmation Arduino

La programmation a posé quelques difficultés du fait du fonctionnement séquentiel natif de l'Arduino.

Des contournements ont dus être trouvés afin d'animer plusieurs des composants de façon simultanée et non plus seulement séquentielle.

Les 3 premières images ci-contre montrent les déclarations pour chacun des éléments constituant la boîte et son étage Mood Box.

Le programme principal consiste en une boucle exécutant la séquence demandée en fonction des interactions avec l'utilisateur. Chaque séquence est identifiée par un chiffre :

  • 0 : séquence au cours de laquelle il ne se passe rien ;
  • 1 : séquence de démarrage ;
  • 2 : séquence de "réveil", soit au moins un appui sur la barre ;
  • 3 : séquence musicale.

La gestion des temps d'attente, notamment pour la surveillance du nombre d'appuis sur la barre, a été faite en utilisant la fonction millis() afin d'éviter la fonction delay() qui met en pause tout le programme.

Pour contourner le fonctionnement séquentiel, l'utilisation de la bibliothèque AccelStepper.h et l'implantation des commandes, associées au cœur même des routines appelées séquentiellement par la boucle principale, permet d'avoir la simultanéité des actions principales, à savoir : les animations de l'anneau de LEDs et la rotation du moteur pas-à-pas.

C'est cette astuce dans le code qui permet de ne pas arrêter le moteur pendant le temps dédié à la surveillance d'une interaction avec la barre.

Bibliothèques

Le programme s'articule autour de bibliothèques spécifiques aux composants utilisés, en voici la liste :


Étape 7 - Assemblage, tests et finitions

La carte Arduino, le potentiomètre ainsi que l'interrupteur relié au bloc d'alimentation sont installés dans et sur l'étage de base de la boîte (étage inférieur).

L'écran LCD est installé dans l'étage éponyme (étage intermédiaire).

L'étage Mood Box, quant à lui, comprend les composants et éléments suivants.

Sur les parois de la boîte sont fixés :

  • le moteur servant à animer la figurine avec sa carte contrôleur (la carte contrôleur est visible sur la gauche de la boîte sur la photo) ;
  • le lecteur mp3 dans lequel est inséré la carte microSD contenant les titres de la liste de lecture (en bas sur la photo) ;
  • la touche capacitive sur laquelle vient se brancher la barre de laiton (composant et fil de connexion orange visibles à droite sur la photo).

Dans le couvercle de cet étage sont fixés :

  • l'anneau de LEDs ;
  • le moteur mais seul son axe est visible de l'extérieur, au centre de l'anneau de LEDs ;
  • la barre de laiton.

Sur le couvercle de l'étage sont fixés :

  • le support de la figurine, juste au-dessus de l'anneau de LEDs pour en diffuser la lumière (et la rendre moins agressive à l'oeil étant donné la puissance des LEDs) ;
  • la figurine elle-même, sur l'axe du moteur de façon à être entraînée lorsque celui-ci tourne.

Étape 8 - Now let's dance!

L'étage Mood Box est désormais terminé et fonctionnel.

==== Activation de la Mood Box et comportement ====

La Mood Box est activée lorsque l'utilisateur appuie sur la barre de laiton située au sommet de la boîte (cette barre est une extension de la touche capacitive installée à l'intérieur de la boîte).

Cette activation est accompagnée d'une animation conjointe de la figurine, de l'anneau de LEDs et de l'écran LCD.
Si aucun autre appui n'est effectué sur la barre dans les 5 secondes suivant l'activation, la Mood Box est désactivée et le mode veille reprend.
Un nouvel appui déclenche le mode lecture.
Pour faciliter l'utilisation de la barre, un affichage itératif de leds permet un comptage visuel direct des "clics" effectués.
La première fois, la lecture de la musique démarre au tout début de la liste de lecture.

Le bouton du potentiomètre est alors actif et permet de régler le volume de la musique jouée.

La barre reste quant à elle disponible pour agir sur la musique jouée.

Pendant la lecture, si la barre est touchée :

  • 1 fois : "pause/play", i.e. la musique est mise en pause ou en lecture suivant l'état précédent, avec un affichage spécifique sur l'écran LCD ;
  • 2 fois : "next", i.e. la lecture passe au titre suivant de la liste de lecture ;
  • 3 fois : "previous", i.e. la lecture repasse au titre précédent de la liste de lecture ;
  • 4 fois ou plus : retour au mode "veille", avec une animation conjointe de l'anneau de LEDs, de la figurine et de l'écran LCD.

Remarque : chacune des actions pause/play/next/previous génère un changement de rotation de la figurine.

Pendant la lecture, l'anneau de LEDs est en mode "arc-en-ciel" et la figurine tourne sur elle-même.

==== Désactivation de la Mood Box ====

Après activation de la Mood Box ou après l'arrêt volontaire de la musique, si aucun appui n'est effectué dans les 5 secondes, le mode veille reprend et la Mood Box est désactivée.

Il est à noter que si l'on relance la lecture depuis le mode "veille", celle-ci va reprendre exactement là où on l'avait interrompue. Merci pour votre intérêt :)




Notes et références

La figurine utilisée pour la présentation finale est issue de Thingiverse (https://www.thingiverse.com/thing:570654).

Elle a été utilisée faute d'avoir eu le temps suffisant pour recréer en 3D le couple formé par l'hippopotame Hyacinth et son cavalier Ben Ali Gator dans Fantasia.

Projet "bentolux" accessible sur le site (à partir de juillet 2018).

Commentaires

Published