Smile Lamp
L'idée de départ est simple : créer une lampe qui s'active avec le sourire. Ce projet s'inscrit dans le cadre de mes recherches pratiques et théoriques autours des objets connectés, et leur réelle utilité au quotidien.
Le projet englobe à la fois le développement du programme interactif et la conception de la lampe en lui même. Je travaille avec un ami designer (Théo Leteissier) pour la création des pièces à imprimer en 3D et à découper au laser.
L'objet
La lampe est composé de 3 pieds : un principal sur lequel viennent se greffer deux pieds plus petits, grâce à deux pièces imprimés en 3D qui servent de jointures. L'abat-jour est relativement petit mais inclut des petites sur-élévations taillées sur mesure pour fixer un Arduino Uno. Cela permet de placer les diodes lumineuses têtes vers le bas et d'éclairer comme le fait une vraie lampe de bureau.
Le code
La partie interactive est gérée principalement avec Processing. Pour détecter les points du visage (via webcam), j'utilise FaceOSC. Celui ci envoie des paquets (OSC) contenant toutes les informations relatives aux éléments du visage (nez, bouche, sourcils, inclinaison...etc) à Processing. Pour détecter le sourire, j'utilise Wekinator, un logiciel qui utilise des algorithmes de Machine Learning pour créer des outputs à partir d'inputs (ici, les points du visages !). Wekinator renvoie un output en temps réel à Processing, qui renvoie à son tour une information à l'Arduino pour allumer ou éteindre la diode. Tout le code se trouve en ligne sur la page Github du projet.
Pré-requis : Wekinator, WekiInputHelper, Processing (+ librairie oscP5), FaceOSC, Webcam
Problèmes rencontrés
J'avais comme envie de créer une lampe "autonome", c'est à dire qui gère à la fois la reconnaissance faciale et l'activation de la lumière, via un Raspberry Pi et un module de caméra intégré. Malheureusement, j'ai surestimé la puissance du Raspberry et j'ai abandonné l'idée de travailler avec. J'ai donc opté pour une solution plus simple : branchez la lampe en USB via un Arduino, et gérer la reconnaissance faciale via la webcam de mon ordinateur. S'agissant d'une lampe de bureau, ce scénario reste plausible (surtout dans le cadre d'un prototype). L'arduino permet de gérer des LED qui vont s'activer via un sketch Processing qui reçoit et envoie des informations concernant le tracking du visage (via FaceOSC).
Technologies utilisées
- Laptop
- Webcam
- Processing, FaceOSC & Wekinator
- Arduino
- Rhino 3D
- Ultimaker 3D Printer
- Découpe Laser
Info
Date: February 2017
Last updated: May 2017