Photomaton

 

Photomaton composé d'une Arduino Uno, d'un Panneau de LEDs RGB, d'un téléphone en mode selfie et d'une carte d'adaptation qui simule au téléphone, par le port jack, un appui bouton "volume -"  permettant de déclencher un selfie à distance.


Les photomatons en  DIY (Do It Yourself) ou encore appelés Photobooth sont actuellement à la mode. En voici une version qui afin de gagner du temps a été réalisée à partir d'un téléphone (ici un Samsung Galaxy S3 de 2012) en mode Selfie. Ainsi le téléphone regroupe en un seul objet l'appareil photo, l'écran de prise de vue et le stockage des clichés.

 

Les clichés sont déclenchés par l'utilisateur par un bouton en façade (déclenchement à la main) ou au choix par une pédale (déclenchement au pied). L'objectif étant que l'utilisateur n'ai pas accès à l'écran tactile du téléphone, celui-ci étant protégé par une plaque de plexiglas.

 

Un flash est intégré au photomaton. L'utilisateur peut régler, par deux potentiomètres linéaires en façade, l'intensité lumineuse du flash ainsi que sa couleur.

Photomaton de plain pied
Photomaton de plain pied
Flash Bleu - Intensité moyenne
Flash Bleu - Intensité moyenne
Flash Rouge - Intensité forte
Flash Rouge - Intensité forte

Photo obtenue avec le photomaton - Flash rouge
Photo obtenue avec le photomaton - Flash rouge

Fonctionnement

Schéma du montage - potentiomètres - boutons - relais - Arduino - panneau de LEDs Néopixel
Schéma du montage - potentiomètres - boutons - relais - Arduino - panneau de LEDs Néopixel
Schéma du montage - potentiomètres - boutons - relais - Arduino - panneau de LEDs Néopixel
Schéma du montage - potentiomètres - boutons - relais - Arduino - panneau de LEDs Néopixel
Aduino Uno - NeoPixel AdaFruit - Samsung Galaxy S3
Aduino Uno - NeoPixel AdaFruit - Samsung Galaxy S3

Le Flash

J'ai utilisé un panneau de LEDs RGB adafruit Néopixel  5X8. Ce panneau permet de piloter individuellement chacune des 40 LEDs avec une couleur. Pour chaque LED, il est possible de lui adresser une valeur de rouge (de 0 à 255), une valeur de vert (de 0 à 255) et une valeur de bleu (de 0 à 255), ce qui donne une possibilité de 256^3 (16.7 millions) de couleurs par LED. Ce panneau permet également de régler la luminosité pour l'ensemble des 40 LEDs (la luminosité n'est pas réglable individuellement).

 

Ce panneau contient 3 broches :  le 5 Volts, la masse et la ligne de commande.

Pour le 5 Volts, j'ai opté pour un chargeur secteur usb de 2.4 Ampères. En blanc (c'est le pire cas) chacune des LEDs consomme 60 milliampères, ce qui fait au total 2.4 Ampères.

Pour la broche de commande, elle est reliée à une carte Arduino Uno. Le pilotage des couleurs et de l'intensité se fait facilement avec les librairies <Adafruit_GFX.h>, <Adafruit_NeoMatrix> et <Adafruit_NeoPixel.h>. 

 

Afin de connaitre la couleur et l'intensité à afficher, il y a deux potentiomètres linéaires en façade du photomaton. Les deux extrémités fixes des potentiomètres sont reliées à la masse et au 5 Volts (avec une résistance de sécurité en série entre le 5 Volts et le potentiomètre, pour ne pas créer un court-circuit lorsque le potentiomètre est à 0 Ohm). La partie mobile du potentiomètre est reliée à une entrée analogique de l'Arduino. Ainsi sur ces deux entrées analogiques on obtient en fonction de la position du potentiomètre une tension variant de 0 Volt à 5 Volts. J'ai défini (dans l'Arduino) des plages de tensions qui correspondent à une couleur ou à une intensité. Ainsi l'Arduino sait quelles informations sont à envoyer au panneau de LEDs.

NeoPixel Adafruit 5X8 - Leds RGB
NeoPixel Adafruit 5X8 - Leds RGB
Potentiomètres Linéaires
Potentiomètres Linéaires

Boutons de déclenchement

Il y a un bouton en façade et une pédale au sol pour déclencher une photo. Ces deux dispositifs sont des interrupteurs. Un côté de l'interrupteur est relié à la masse, l'autre à une entrée analogique de l'Arduino. Cette même entrée analogique est reliée au 5 Volts par l’intermédiaire d'une résistance afin d'éviter tout court-circuit lorsque l'interrupteur est en position ON.

Chaque interrupteur est donc relié à une entrée analogique. L’Arduino va scruter ces deux entrées. Lorsqu’une des deux est à 0 Volt, cela signifie qu'un des deux interrupteurs est à ON, et donc qu'un utilisateur a appuyé sur l'un des deux déclencheurs. Dans ce cas là, l'Arduino va demander le déclenchement d'une photo.

Déclenchement d'une photo

Lorsque l'Arduino a détecté un appui bouton, elle va alors piloter une sortie digitale pour déclencher une photo. Cette sortie digitale va actionner un petit relais (la pin micro a suffisamment de courant pour piloter directement le relais). Ce relais permet de modifier le niveau de tension d'un circuit que le téléphone va interpréter comme un appui bouton volume moins. En effet ce circuit est connecté à la prise jack du téléphone.

Schéma d'un kit main libre. Pour le photomaton, a été conservé la ligne MIC + et GND, la résistance de 220 Ohms et celle de 1.4KOhms. Le bouton REV a été remplacé par un relais piloté par l'Arduino. Les autres composants sont supprimés.
Schéma d'un kit main libre. Pour le photomaton, a été conservé la ligne MIC + et GND, la résistance de 220 Ohms et celle de 1.4KOhms. Le bouton REV a été remplacé par un relais piloté par l'Arduino. Les autres composants sont supprimés.

Lorsque le téléphone reçoit la commande par la prise Jack de prendre le cliché, l'application de photo du téléphone affiche un compte à rebours. Pendant ce compte à rebours, l'Arduino bloque toutes commandes provenant de sa façade (couleur, luminosité et appuis boutons). L'Arduino effectue le même compte à rebours que le téléphone et juste avant la prise de la photo, elle fait clignoter une fois le flash pour que visuellement l'utilisateur comprenne que la photo a été prise.

Divers

Les applications de photos sous Android se mettent en veille toutes les 10 minutes. Je n'ai trouvé aucun réglages permettant de garder l'écran allumé. Ceci est un vrai problème puisque le téléphone n'est pas accessible de l'extérieur (il est derrière une plaque de plexiglas). Pour contourner cela, l'Arduino mesure le temps écoulé depuis la dernière photo prise. Si l'on se rapproche des 10 minutes alors le photomaton décide de déclencher par lui-même un cliché afin d'éviter que le téléphone ne se mette en veille.

 

Le panneau de LEDs Adafruit est un "Shield" Arduino. Cependant j'ai choisi de ne pas le clipser à l'Arduino parce qu’il chauffe un peu trop à mon goût.

 

Toujours pour une question de chaleur, l'Arduino va automatiquement baisser l'intensité du flash (qui est allumé en permanence) lorsqu'elle détecte une inactivité. Dès qu'un utilisateur prend une photo ou touche à l'un des potentiomètres, l'Arduino remet automatiquement la dernière valeur d'intensité enregistrée.

 

L'Arduino est alimentée par un chargeur secteur USB de 500 milliampères.

 

Le téléphone est aussi alimenté par un chargeur secteur USB de 1 à 2 Ampères en fonction du téléphone.

 

Dans le photomaton j'ai installé une petite multi-prises pour accueillir les 3 chargeurs USB et n'avoir qu'un seul fil d'alimentation (220 Volts AC) qui sort de la boite. J'ai opté pour cette installation parce que j'avais de la place, sinon une alimentation à découpage 220 Volts AC vers 5 Volts DC aurait pu être ajoutée dans le photomaton.

 

Enfin toutes les masses des appareils sont reliées entre-elles.


Arduino - Code source

Le code source du photomaton est disponible sous Github : https://github.com/Projets-du-dimanche/photomaton


0 commentaires