diff --git a/readme.md b/readme.md index 2d6d367..20e8c59 100644 --- a/readme.md +++ b/readme.md @@ -8,12 +8,14 @@ Seconde version du script python [stopi](https://git.arthus.net/arthus/stopi) destiné à être utilisé avec une télécommande [picote](/arthus/picote/src/branch/picamera). -Cette version utilise opencv et libcamera.Elle fonctionne avec une webcam ou un module vidéo Picamera (v1,v2 ou v3). -Encore une fois, l'objectif est de créer un logiciel simple et minimaliste dans son interface, dont les caractéristiques sont les suivantes : +Cette version utilise opencv, libcamera et gphoto. +Elle fonctionne avec une webcam, un module vidéo Picamera (v1,v2 ou v3) ou un réflexe numérique. + +Encore une fois, l'objectif est de créer un logiciel simple et minimaliste dans son interface, dont les caractéristiques sont les suivantes : * Affichage des images en plein écran sans interface : toutes les fonctions utilisent quelques touches du clavier. * [Pelure d'oignon](https://fr.wikipedia.org/wiki/Pelure_d'oignon#Sciences_et_techniques) entre la dernière image et le flux vidéo. - * Un seul fichier de configuration permet de régler les options (résolution, images/secondes, mirroir vertical/horizontal, ) + * Un seul [fichier de configuration](/arthus/stopi2/wiki/configuration) permet de régler les options (résolution, images/secondes, mirroir vertical/horizontal, ) * Auto configuration de la camera au démarrage (exposition et balance des blancs) * Pilotage de certains réglages de la caméra depuis la télécommande/clavier (balance des blancs, rotation de l'image, mise au point (picam V3), exposition...) * Prévisualisation de l'animation @@ -22,13 +24,14 @@ Encore une fois, l'objectif est de créer un logiciel simple et minimaliste dans ## Banc de test -Ce script a été testé avec une webcam compatible V4L2, une ["showmewebcam"](https://github.com/showmewebcam/showmewebcam) à base de rpi 0 et d'un module caméra v2 (8Mp), et un ordinateur classique sous [Debian](https://debian.org) et un [RPI 4B](https://www.raspberrypi.com/products/raspberry-pi-4-model-b/) munis d'un module [Picamera V3](https://www.raspberrypi.com/products/camera-module-3/). +Ce script a été testé avec une webcam compatible V4L2, une ["showmewebcam"](https://github.com/showmewebcam/showmewebcam) à base de rpi 0 et d'un module caméra v2 (8Mp), et un ordinateur classique sous [Debian](https://debian.org), ainsi qu'avec un [RPI 4B](https://www.raspberrypi.com/products/raspberry-pi-4-model-b/) munis d'un module [Picamera V3](https://www.raspberrypi.com/products/camera-module-3/). Voici un récapitulatif des tests effectués : | Machine \ Type de Caméra | Webcam | [Showmewebcam](https://github.com/showmewebcam/showmewebcam) | RPI Caméra module V1 (5MP) | [RPI Caméra module V3](https://www.raspberrypi.com/products/camera-module-3/) (12MP) | [Réflexe numérique](http://gphoto.org/doc/remote) (Nikon D3000/D40x)| | --- | --- | --- | --- | --- | --- | -| Raspberry Pi 4B (Debian 12) | | | ✓ | | | +| Raspberry Pi 3B+ (Debian 12) | À faire | À faire | ✓ | À faire | À faire | +| Raspberry Pi 4B (Debian 12) | À faire | À faire | ✓ | ✓ | À faire | | PC Linux (Debian, Manjaro) | ✓ | ✓ | N/A | N/A | ✓ | ## Feuille de route @@ -49,22 +52,24 @@ Dans un terminal : 1. Installer les dépendances suivantes : ``` # Avec une distribution basée sur Debian (Ubuntu, Mint...) - sudo apt install --no-install-recommends --no-install-suggests git ffmpeg python3-pip python3-venv libtiff5-dev libopenjp2-7 libopenjp2-7-dev zlib1g-dev libfreetype6-dev liblcms2-dev libwebp-dev tcl8.6-dev tk8.6-dev libharfbuzz-dev libfribidi-dev libxcb1-dev python3-tk python3-dev libopenblas-dev libatlas-base-dev libhdf5-dev libhdf5-serial-dev libatlas-base-dev libjasper-dev libqtgui4 libqt4-test v4l-utils + sudo apt install --no-install-recommends --no-install-suggests git ffmpeg python3-pip python3-venv libtiff5-dev libopenjp2-7 libopenjp2-7-dev zlib1g-dev libfreetype6-dev liblcms2-dev libwebp-dev tcl8.6-dev tk8.6-dev libharfbuzz-dev libfribidi-dev libxcb1-dev python3-tk python3-dev libopenblas-dev libatlas-base-dev libhdf5-dev libhdf5-serial-dev libatlas-base-dev libjasper-dev v4l-utils ``` - (Optionnel) Pour installer un environnement graphique minimal sur une [installation console](https://debian-facile.org/doc:install:installation-minimale) : `sudo apt install --no-install-recommends --no-install-suggests openbox xserver-xorg xinit pcmanfm gmrun lxterminal hsetroot unclutter plymouth plymouth-themes` 2. Cloner le dépôt dans le dossier de votre choix : `git clone https://git.arthus.net/arthus/stopi2.git` 3. Aller dans répertoire du projet : `cd stopi2` 4. Créer un environnement virtuel (venv) Python : `python -m venv ./` - - `pip install -vvv --upgrade pip setuptools wheel` + - Mise à jour de l'environnement pypi: '`MAKEFLAGS="-j$(nproc)" pip install -vvv --upgrade pip setuptools wheel` - (Optionnel) Dans le cas de l'utilisation d'une "raspicam", il faudra ajouter le paramètre `--system-site-packages` pour avoir accès au module picamera2, et installer la librairie correspondante `python3-picamera2`. 5. Activer l'environnement virtuel avec `source bin/activate` 6. Installer les dépendances python (~150Mo) : `MAKEFLAGS="-j$(nproc)" pip install -r requirements.txt` 7. Activer l'éxécution du script : `chmod +x stopi2.sh` 8. Lancer le script : `./stopi2.sh` +[Voir le wiki pour plus de détails](/arthus/stopi2/wiki/python_environnement) + ## Fonction par touches -L'idéal est d'utiliser une télécommande [picote](/arthus/picote) mais le logiciel est aussi pilotable via un clavier/clavier numérique. +L'idéal est d'utiliser une télécommande [picote](/arthus/picote) mais le logiciel est aussi pilotable via un clavier/clavier numérique. | Fonction | Boutton | Clavier | | --- | --- | --- | @@ -85,75 +90,18 @@ L'idéal est d'utiliser une télécommande [picote](/arthus/picote) mais le logi | Afficher seulement le flux vidéo | ② | touche L ou 3 sur le clavier numérique | | Rotation de 180° de la capture vidéo | Alt + ② | touche F ou 5 sur le clavier numérique | +Si vous utilisez une télécommande [picote avec un encodeur rotatif (ou potar)](/arthus/picote/src/branch/picamera), les fonctions suivantes sont également disponibles : + +| Fonction | Boutton | Clavier | +| --- | --- | --- | +| Mise au point - | ↶ | touche A | +| Mise au point + | ↷ | touche Z | +| Mode anti-flicker | Alt+↶ | touche Q | ## Installation Kiosque -Pour créer un kiosque d'animation à partir d'une installation minimale de Debian : - 1. Installer Debian pour un environnement console avec environnement graphique minimal, par exemple: -```sudo apt install --no-install-recommends --no-install-suggests openbox xserver-xorg xinit hsetroot unclutter``` - 2. Suivre les [étapes d'installation](#installation) ci-dessus. - 3. Activer le login automatique de votre utilisateur au démarrage : - ``` -sudo systemctl edit getty@tty1.service -# Ajout du contenu suivant dans le fichier créé: -[Service] -ExecStart= -ExecStart=-/sbin/agetty -o '-p -f -- \\u' --skip-login --nonewline --noissue --noclear --autologin arthus %I $TERM -``` - 4. Ajouter ce contenu à '~/.bash_login' : -``` -if [ -z "$DISPLAY" ] && [ "$XDG_VTNR" = 1 ]; then - exec startx &>/dev/null -fi -``` - 5. Ajouter ce contenu à '~/.xinitrc' : -``` - #!/bin/sh - -# /etc/X11/xinit/xinitrc -# -# global xinitrc file, used by all X sessions started by xinit (startx) - -# invoke global X session script -. /etc/X11/Xsession - -exec openbox-session -``` - 6. Ajouter ce contenu à '~/.config/openbox/autostart.sh' : -``` -#!/bin/env bash -# Change X keyboard mapping -setxkbmap fr -# Set background color -hsetroot -solid "#8393CC" -# Hide mouse after 0.2 seconds -unclutter -idle 0.2 & -# Start script -/home/$USER/stopi2.sh & -``` - -Au redémarrage, la session graphique devrait démarrer automatiquement. +[Voir le wiki](/arthus/stopi2/wiki/kiosk) # Démarrage 'silencieux' -Pour un démarrage sans aucun texte avant la session graphique, ajouter les lignes suivantes à `/etc/default/grub` : -``` -GRUB_HIDDEN_TIMEOUT=5 -GRUB_HIDDEN_TIMEOUT_QUIET=true -GRUB_GFXMODE=1920x1080 -``` -et modifier la ligne : -`GRUB_CMDLINE_LINUX_DEFAULT="quiet` -en : -`GRUB_CMDLINE_LINUX_DEFAULT="quiet splash loglevel=3` - -Puis configurer plymouth : `sudo plymouth-set-default-theme` - -Appliquer les modifs avec `sudo update-grub`. - -## Raspberry Pi OS - -Avec Raspberry Pi OS, il suffit d'ajouter les options suivantes dans '/boot/firmware/cmdline.txt': -`loglevel=3 vt.global_cursor_default=0 logo.nologo consoleblank=3 quiet` - -`` +[Voir le wiki](/arthus/stopi2/wiki/demarrage_silencieux)