Photobooth : live slideshow

La projection sur grand écran des photos en simultané

Image à afficher sur la porte du photobooth
Image à afficher sur la porte du photobooth

Comme annoncé dans le premier article, nous allons revenir sur le projet du photobooth pour l’agrémenter d’un slideshow. En effet, dans ce second volet, il est question de diffuser en parallèle les photos prises par les utilisateurs de la machine à selfies. Pour cela, nous allons utiliser un second Raspberry (machine slideshow), connecté au photobooth par une liaison Wifi.

La connexion réseau sera réalisée à l’aide de la fonctionnalité « point d’accès mobile » d’un smartphone.

Continuer la lecture de « Photobooth : live slideshow »

Photobooth : inputs GPIO, affichage LCD et impression

LA GESTION DES INPUTS SUR LES GPIO

Les résistances Pull-up/Pull-down

Si une GPIO configurée en entrée n’est connectée à rien, alors elle sera « flottante ». Cela signifie que l’état de la GPIO est instable puisqu’elle n’est connectée à rien jusqu’à l’appui d’un switch réalisant le contact à la masse ou au +3.3v. Dans cet état instable, les interférences électriques induites par l’alimentation secteur influent fortement la valeur de la GPIO.

Pour éviter que la GPIO ne « flotte », il est nécessaire de la fixer à une valeur stable. Pour cela, on utilise une résistance (10Kohms est couramment utilisée) et deux options sont envisageables :

  1. Résistance pull-down : connectée à la masse par l’intermédiaire de la résistance, la GPIO est maintenue à l’état bas ;
  2. Résistance pull-up : connectée au +3.3v par l’intermédiaire de la résistance, la GPIO est maintenue à l’état haut.
Résistance pull-up et résistance pull-down permettant de maintenir une GPIO en INPUT à un état stable
Résistance pull-up et résistance pull-down permettant de maintenir une GPIO en INPUT à un état stable

Continuer la lecture de « Photobooth : inputs GPIO, affichage LCD et impression »

Photobooth : monnayeur, déparasitage et relais

Photobooth : le monnayeur et le relais

Photobooth : la machine à selfies
Photobooth : la machine à selfies

Une soirée à thème très prochainement ? Un mariage se profile dans quelques mois ? Le photobooth est la machine idéale pour animer vos évènements festifs. L’idée est la suivante…

Vous célébrez un évènement avec vos convives dans un espace de convivialité. A l’écart, dans une pièce isolée, le photobooth est disposé autour d’une décoration à thème. Avec les accessoires de déguisement mis à disposition au sein de cet espace intime, les conditions sont ainsi réunies pour favoriser la créativité des protagonistes et les inciter à se mettre en scène. En s’affranchissant du tarif abordable de 0.10€, l’utilisateur de cette machine à « selfies » à l’ancienne repart avec une photo instantanément imprimée sur papier thermique… mais ce n’est pas tout !

Les photos prises par le photobooth seront exportées vers un autre Raspberry chargé de les projeter sur écran afin de partager les clichés (en couleur et haute résolution) avec l’ensemble des convives !

C’est un projet ambitieux mais très enrichissant : les notions impliquées sont denses et les difficultés à surmonter sont assez complexes. Le challenge technique est de taille : de nombreuses lignes de code Python nous attendent alors démarrez le Raspberry et ouvrez le terminal en grand : il va y avoir du pulse sur les GPIOs !

Avant de se lancer, voici un aperçu des photos imprimées :

Photos imprimées sur papier thermique
Photos imprimées sur papier thermique

Eu égard au coût de revient de l’imprimante et du papier thermique, la qualité d’impression est tout à fait acceptable.

Continuer la lecture de « Photobooth : monnayeur, déparasitage et relais »

Shopping List Machine : Python, Code-barres EAN13, SQLite et imprimante thermique

A l’ère du « drive », l’intérêt de cette Shopping List Machine peut laisser dubitatif mais une chose est sûre : au travers de la réalisation de ce projet, vous en apprendrez beaucoup sur des notions variées. Les concepts impliqués sont denses et ne pourront être que survolés mais l’essentiel nécessaire pour se lancer est ici synthétisé.

La machine Shopping List composée d’un Raspberry, d’un scanner sans fil, d’une enceinte et d’une imprimante thermique

Mais avant d’entrer dans les détails techniques, formulons les exigences de la Shopping List Machine…

Continuer la lecture de « Shopping List Machine : Python, Code-barres EAN13, SQLite et imprimante thermique »

Caméra de vidéosurveillance avec motion

Motion
Un système de vidéosurveillance avec motion

On a vu comment ajouter la vision au Raspberry Pi dans l’article dédié au module Pi caméra. On dispose donc d’un périphérique de capture d’images/vidéos qu’on peut utiliser à l’aide de commandes éventuellement insérées dans un script shell ou Python : c’est chouette. Mais il y a encore plus chouette : créer un système de vidéosurveillance avec motion.

Les usages sont multiples et je ne vais pas philosopher là-dessus, je suis certain que vous saurez trouver l’utilité de ce système. En tout cas, à la fin de ce tutoriel, vous serez en mesure :

  • de visualiser en temps réel le streaming vidéo de votre Raspberry Pi depuis votre smartphone ;
  • déclencher l’enregistrement vidéo et/ou être alerté par mail sur détection de mouvements.

Motion est l’outil qui va permettre de diffuser le flux vidéo en streaming, de capturer des images et des vidéos provenant d’une ou plusieurs caméras.

Installation de motion

Commençez tout d’abord par mettre à jour Raspbian avec la commande :

Maintenant, installons motion et les paquets nécessaires :

Pour demander au noyau le chargement d’un module (le drivers broadcom (bcm) vidéo for linux (v4l)) , taper la commande :

Vous devriez normalement disposer du matériel /dev/video0. Pour que le module bcm2835-v4l2 soit automatiquement chargé au démarrage par le noyau, ajoutons le au fichier /etc/modules :

Oui, c’est une commande élégante pour ajouter bcm2835-v4l2 en fin de fichier /etc/modules.

Configuration de motion

Tout d’abord, pour que motion puisse s’éxécuter en tant que processus d’arrière plan, éditez le fichier /etc/default/motion et modifiez la ligne suivante à yes :

Ce paramètre modifié, motion pourra être lancé et l’essentiel de la configuration est à réaliser dans le fichier /etc/motion/motion.conf. Editez le fichier de configuration :

Dans ce fichier, on pourra apporter les modifications suivantes

Les principales modifications portent sur les paramètres suivants :

  • Décommenter la ligne logfile /tmp/motion.log pour enregistrer les logs ;
  • Effectuer une rotation de l’image selon les besoin (0, 90, 180 et 270), ici : rotate 180 ;
  • Ajuster la largeur/hauteur en pixels de l’image : width 1280 et height 720 ;
  • Le port d’écoute du serveur web offrant le flux viédo : stream_port 8081 ;
  • Ne pas restreindre l’accès au streaming à la machine locale uniquement :  stream_localhost off ;
  • Activer l’authentification Digest : stream_auth_method 2 ;
  • Configurer les credentials (login/password) : stream_authentication username:password ;
  • Afficher un texte en bas à gauche : text_left P3TCH CAMERA %t.

Pour lancer motion, taper la commande :

Désormais, un point rouge s’allume sur le module caméra… ça tourne ! Il est possible de se connecter à l’URL : http://192.168.1.123:8081. Après authentification, on visualise le flux vidéo en tant réel.

Si vous souhaitez désativer la LED rouge qui s’allume au démarrage de motion, c’est dans le fichier /boot/config.txt que ça se passe avec le paramètre : disable_camera_led=1.

Vous pourrez découvrir que le fichier de configuration permet un paramétrage assez fin de la caméra camera les zones de détection, la luminosité, les paramètres des enregistrements,… le site officiel Motion est exhaustif sur les options du fichier de configuration.

Remarque : A ce stade, cela fonctionne mais vous devriez rencontrer une erreur au premier mouvement détecté par la caméra. En observant les logs renseignés dans le fichier /tmp/motion.log, on s’apercoit qu’il s’agit d’un problème de permission lors de l’accès au répertoire /var/lib/motion (voir extrait ci-dessous).

Pour résoudre ce problème, il faut rajouter les droits adéquats à l’utilisateur sous lequel tourne motion. Pour cela, tapez la commande :

C’est donc l’utilisateur pi qui est utilisé. La commande suivante nous renseigne sur les permissions du répertoire en question :

Ajoutez à « other » le droit en écriture avec la commande :

Désormais, motion ne s’interrompera plus suite à la détection de mouvements puisqu’il pourra écrire dans le répertoire adéquat les vidéos d’enregistrements.

 

 

Chuck Norris Machine : script Python et GPIOs

Les concepts matériels étant présentés dans l’article 1/2, il est temps d’aborder le côté logiciel du projet. La lecture préliminaire du premier article est recommandée pour comprendre plus facilement le développement du script Python qui sera détaillé ici pour utiliser les GPIOs du Raspberry Pi.

L’utilitaire fortune au cœur du système

Avant d’entrer dans les détails du code, commençons par aborder la commande fortune sur laquelle s’appuie le script Python. La commande fortune affiche un message choisi au hasard parmi une source de citations. Il peut s’agir de proverbes, citations de célébrités , de blagues ayant attrait à l’informatique ou la programmation. On peut évidemment créer sa propre source. Continuer la lecture de « Chuck Norris Machine : script Python et GPIOs »