Photobooth made for raspberry pi
Cette liste peut être adaptée selon les besoins, elle ne concerne que le matériel électrique/électronique
-
1 x Ecran avec alimentation (récupération)
-
1 x Cable écran avec adaptateur éventuel vers HDMI (dépend de la connectique de l'écran)
-
1 x Raspberry PI 3
https://www.amazon.fr/Raspberry-Pi-Carte-M%C3%A8re-Model/dp/B01CD5VC92
-
1 x Carte Micro SD classe 10
-
1 x Alimentation adaptée au Raspi (5V 3A)
https://www.amazon.fr/Aukru-Chargeur-Adaptateur-Alimentation-Raspberry/dp/B01566WOAG
- 1 x Pi Camera avec sa nappe
https://www.amazon.fr/Raspberry-Pi-1080p-Module-Cam%C3%A9ra/dp/B01ER2SKFS
- 1 x Relais 5V - 220V/10A
https://www.amazon.fr/dp/B019GTTS3K/
- 2 x lampes GU10 avec supports (par exemple mais peut être remplacé par l'éclairage de son choix, voir pourquoi pas une lampe extérieur, attention au courant consommé par les lampes qui doit être inférieur au courant que peut piloter le relais )
https://www.amazon.fr/Projecteur-Encastr%C3%A9-Douille-Ampoule-Halog%C3%A8ne/dp/B01JLNBVDQ
- 1 x connecteur c14 avec fusible et interrupteur
https://www.amazon.fr/alimentation-interrupteur-module-admission-broches/dp/B00F4MFMXE
- 1 x cable alimentation 220V PC C13
https://www.amazon.fr/Dexlan-Cordon-électrique-secteur-standard/dp/B0009M14YK
- 2 x boutons poussoirs type arcade
https://www.amazon.fr/Cewaal-Shaped-Convexity-Replacement-Illuminated/dp/B075SBK17G
- Des fils de cablage pour connecter sur le port GPIO du RPi
Autre matériel
- 1 x multiprise 220v (pour connecter l'écran et l'alimentation de raspberry)
- Du fil électrique 1.5mm² (cablage des lampes)
- Des dominos pour le raccordement électrique
- un fer à souder / de l'étain
Prérequis :
- J'ai choisi volontairement de ne pas rentrer dans les détails de l'utilisation d'un raspberry pi.
- Raccorder son raspberry Pi au réseau et à internet pour effectuer les mises à jours et autres installations
- Brancher clavier/souris et écran ou se connecter en SSH pour effectuer les manipulations
- Avoir quelques notions d'électricité (ATTENTION quand vous manipulez du 220v !)
- Avoir quelques notions d'électronique
-
Installer Raspbian sur la carte microSD et procéder à toutes les mises à jour
sudo apt-get update
sudo apt-get dist-upgrade
sudo rpi-update
( Je déconseille celle-ci car elle a ruiné la résolution de mon écran, j'ai du réinstaller rasbian pour retrouver un setup fonctionnel) Puis reboot -
Configurations sur raspbian La plupart de ces configurations se font soit depuis l'interface graphique soit via la console en tapant
sudo raspi-config
- Connexion au réseau internet
- Configuration du hostname (utile lorsqu'on ne connait pas à priori l'adresse IP)
- Clavier en FR
- Locale en FR / France/ UTF8
- Timezone Europe/Paris (très important étant donné que les photos seront horodatées avec l'heure système)
- (Wifi country FR)
- Enable Camera + reboot
- Enable SSH + reboot
- Enable I2C + reboot
- Underscan = disabled (j'avais des bordures inutilisées sur l'écran)
- Changement du mot de passe de l'utilisateur
pi
sudo passwd pi
puis saisie 2 fois du nouveau mot de passe
sudo reboot
- extension du filesystem pour occuper la totalité de la carte mémoire
sudo raspi-config
(pensez à vérifier régulièrement que les configurations sont correctement prises en comptesudo reboot
) - installation du driver v4l2 (Attention il s'agit de la lettre L minuscule entre le 4 et le 2)
sudo nano /etc/modules
Ajouter la ligne suivante :
bcm2835-v4l2
- Préserver la carte SD en installant des logs dans la mémoire
sudo nano /etc/fstab
ajouter
tmpfs /var/log tmpfs defaults,noatime,nosuid,mode=0755,size=100m 0 0
On peut ajouter également les dossiers suivants :tmpfs /tmp tmpfs defaults,noatime,nosuid,size=100m 0 0
tmpfs /var/tmp tmpfs defaults,noatime,nosuid,size=30m 0 0
``tmpfs /var/log tmpfs defaults,noatime,nosuid,mode=0755,size=100m 0 0
`tmpfs /var/spool/mqueue tmpfs defaults,noatime,nosuid,mode=0700,gid=12,size=30m 0 0`
- Installer/mettre à jour les librairies python : (version indicatives basées sur mon setup d'origine)
- pip pour installer les librairies (8.1.2) (déjà installé sur raspbian)
- dropbox (4.0)
sudo pip install dropbox
- facebook-sdk (2.0.0)
sudo pip install facebook-sdk
- piexif (1.0.8) !! ATTENTION !! La version 1.0.10 ne fonctionne pas
sudo pip install piexif==1.0.8
- qrcode (5.0.1)
sudo pip install qrcode
- pygame (1.9.2a0) (déjà installé sur raspbian)
- picamera (1.13) (déjà installé sur raspbian)
- Pillow (2.6.1) (déjà installé sur raspbian)
sudo pip install pillow
- RPi.GPIO (0.6.3) (déjà installé sur raspbian)
sudo pip install rpi.gpio
- twython (3.3.0) (déjà installé sur raspbian)
sudo pip install twython
-
installer le script photobooth
sudo git clone https://github.com/alexsolex/photobooth.git
-
enlever le fichier dummy.txt du répertoire shots (à corriger)
sudo rm dummy.txt
-
Tester la caméra
raspistill -o image.jpg
doit afficher la vue de la caméra pendant quelques secondes puis fermer -
Désactiver la led de la picamera(optionnel mais évite la chauffe)
Editer le fichier configsudo nano /boot/config.txt
Puis ajouter la ligne suivante à la fin :disable_camera_led=1
-
Désinstaller la suite libreoffice ainsi que d'autres applications inutiles.
sudo apt-get remove --purge libreoffice*
sudo apt-get clean
sudo apt-get autoremove
-
Aller sur https://www.dropbox.com/developers/
-
Créer une app :
- ChooseAPI : Dropbox API
- Choose the type of access you need : App folder
- Name your app : (doit être unique) mySuperPhotoboothDropbox
- [Create app]
- Chercher
Generated access token
, puis cliquer sur[Generate]
pour récupérer le token (chaine alphanumérique)
Configurer Dropbox pour votre photobooth :
Editer le fichier setup.py
, trouver et modifier les lignes comme suit
DROPBOX_UPLOAD = True
dropboxToken = "coller_ici_le_token_généré_précédemment"
- Lancer le photobooth automatiquement au démarrage (TODO)
Editer le fichier /etc/rc.local et ajouter les commandes :
cd /home/pi/photoboothfolder
sudo python photobooth.py
Je n'expliquerais pas ici la construction du boitier, chacun pouvant le réaliser selon ses compétences, ses besoins ... Cependant voici quelques remarques constaté avec l'usage :
- Pensez à la stabilité du photobooth. Il va être manipulé par plein de monde et certainement aussi des enfants !
- Pensez aux enfants : si les boutons sont trop haut, les enfants risquent de se mettre en danger (monter sur une chaise) ou encore de s'accrocher au photobooth pour pouvoir le manipuler
- Les utilisateurs regarderont l'écran pendant la prise de vue mais pas la caméra : La caméra devra être au plus proche de l'écran de manière à ce que le regard ne semble pas trop décalé sur la photo.
- Les lampes s'allumeront pendant la prise de vue (pour adapter l'autofocus) ce qui éblouira les utilisateurs. Pensez-y dans la conception et adaptez la position des lumières pour un compromis éclairage suffisant, mais pas trop éblouissant.
ATTENTION : vous trouverez sur le net des schémas de numérotation du port GPIO correspondant à votre raspberry.
Relais pour le flash (3 fils):
+ ---> pin #2 (5v PWR)
- ---> pin #14 (GND)
s ---> pin #15 (GPIO22)
Bouton rouge (prise de vue / annulation) :
Pin #6 (GND)
Pin #7 (GPIO4)
Bouton bleu (enregistrement / diaporama) :
Pin #8 (GPIO14)
Pin #9 (GND)
Les boutons ont été câblés avec une résistance de tirage en série et un condensateur (valeur à préciser) pour éviter les parasites et les rebonds de contact (debounce)
Ce paragraphe est indicatif afin de vous donner des pistes sur sa réalisation.
J'ai pour ma part réalisé le mien en DAO (autocad en licence etudiant/professeur). J'ai mesuré au pied à coulisse tous les encombrements des éléments à positionner (écran, boutons, lampes, prises usb et ethernet, prise femelle 200v et interrupteur), que j'ai redessiné sur autocad afin de prévoir les encombrement dans le boitier.
Les plans ont été réalisés afin d'être utilisés par une découpe laser.
J'ai pris soin de connaitre l'encombrement maximum supporté par la découpe laser afin de pouvoir faire les découpe en un seul morceau. J'ai également demandé au fablab l'épaisseur (kerf) du laser (0.1mm dans mon cas). Ceci est utile car j'ai fait un assemblage de type "cross fingers" et il faut prendre en compte l'épaisseur de la découpe afin que les morceaux s'assemblent en forcant pour assurer le maintien.
Pour dessiner les "cross fingers" j'ai utilisé un outil en ligne : https://makeabox.io ce qui est tout de même bien plus simple que le faire à la main :). Cet outil génère un fichier pdf qu'on peut réimporter dans autocad pour le modifier et y dessiner les autres parties à découper.
Remarque : J'ai utilisé du médium 6mm qui était la limite que pouvait découper le laser en épaisseur (j'ai donc eut de la chance mais le fablab a du réutiliser un medium certainement de meilleure qualité). A de telles épaisseurs de découpe, le faisceau laser qui est conique a tendance à bruler plus la partie supérieur que la partie inférieure, ce qui engendre des découpes en biseau assez visibles. Cependant cela n'a pas empêché le montage final.
Les plans que j'ai utilisé sont disponibles dans le dossier 'documentation' du dépôt.