2024-09-12 12:40:21 +02:00
# Stopi2
2025-01-04 11:51:16 +01:00
## Branche libcamera
2025-01-11 14:54:17 +01:00
**Ceci est la branche qui restaure la possibilité d'utiliser des périphériques compatibles rpi-libcamera (Modules Raspicam v1,v2 et v3).**
2025-01-12 10:29:04 +01:00
**En utilisant la [branche correspondante pour la télécommande picote ](/arthus/picote/src/branch/picamera ), vous pouvez régler la mise au point du module caméra avec un [codeur rotatif ](https://fr.wikipedia.org/wiki/Codeur_rotatif ).**
2025-01-04 11:51:16 +01:00
2024-12-14 19:22:35 +01:00
< a style = "max-height: 300px;display: inline-block;" href = "./stopi2/raw/branch/master/stopi_station.jpg" > < img src = "./stopi_station.jpg" / > < a / >
2024-12-14 19:18:05 +01:00
2025-01-11 14:54:17 +01:00
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 ).
2024-09-12 12:40:21 +02:00
2025-01-04 11:51:16 +01:00
Cette version utilise opencv et libcamera.Elle fonctionne avec une webcam ou un module vidéo Picamera (v1,v2 ou v3).
2024-09-12 12:40:21 +02:00
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, )
* Auto configuration de la camera au démarrage (exposition et balance des blancs)
* Prévisualisation de l'animation
* Exportation vidéo avec [ffmpeg ](https://ffmpeg.org/ )
* Interface localisée (anglais et français disponible pour le moment.)
## Banc de test
2025-01-04 11:51:16 +01:00
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/ ).
2024-11-10 18:51:07 +01:00
Les contributions et rapports de bugs sont les bienvenus !
2024-09-12 12:40:21 +02:00
## Installation
Dans un terminal :
0. (Utilisateurs Windows) Activer le [sous système Linux **version 2** (WSL2) ](https://learn.microsoft.com/fr-fr/windows/wsl/install ) et installer Debian.
1. Installer les dépendances suivantes :
```
# Avec une distribution basée sur Debian (Ubuntu, Mint...)
2024-12-15 12:28:40 +01:00
sudo apt install --no-install-recommends --no-install-suggests git ffmpeg python3-tk python3-pip python3-venv libtiff5-dev libtopenjp2 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
```
2024-09-12 12:40:21 +02:00
- (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`
2024-11-10 18:51:07 +01:00
2. Cloner le dépôt dans le dossier de votre choix : `git clone https://git.arthus.net/arthus/stopi2.git`
2024-09-12 12:40:21 +02:00
3. Aller dans répertoire du projet : `cd stopi2`
4. Créer un environnement virtuel (venv) Python : `python -m venv ./`
2024-12-14 19:18:05 +01:00
- (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` .
2024-09-12 12:40:21 +02:00
5. Activer l'environnement virtuel avec `source bin/activate`
2024-12-14 19:18:05 +01:00
6. Installer les dépendances python (~150Mo) : `pip install -r requirements.txt`
7. Activer l'éxécution du script : `chmod +x stopi2.sh`
8. Lancer le script : `./stopi2.sh`
2024-09-12 12:40:21 +02:00
2024-11-01 09:40:25 +01:00
## 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.
2024-11-09 17:35:27 +01:00
| Fonction | Boutton | Clavier |
| --- | --- | --- |
| Capturer une image | 🟢 | touche Espace ou 0 sur le clavier numérique |
| Supprimer une image | 🔴 | touche Suppr, touche Backspace ou touche - sur le clavier numérique |
2024-11-10 18:51:07 +01:00
| Lecture de l'animation | Alt + 🟢 | touches Entrée |
| Exporter l'animation | Alt + 🔴 | touche E ou * sur le clavier numérique |
2024-11-09 17:35:27 +01:00
| Image suivante | 🔵 | touche flèche droite ou 6 sur le clavier numérique |
| Image précédente | 🟡 | touche flèche gauche ou 4 sur le clavier numérique |
| Aller à la dernière image | Alt + 🔵| touche flèche bas ou 2 sur le clavier numérique |
2024-11-10 18:51:07 +01:00
| Aller à la première image | Alt + 🟡 | touche flèche haut ou 8 sur le clavier numérique |
2024-11-09 17:35:27 +01:00
| Activer/Désactiver onionskin | ⚫ | touche O ou / sur le clavier numérique |
2024-11-10 18:51:07 +01:00
| Quitter le logiciel | n/a | touche Échap, Alt-F4 ou Ctrl-C |
| **Réglages de la caméra (compatible showmewebcam seulement)** | | |
2024-11-09 17:35:27 +01:00
| Réinitialiser la caméra | Alt + ⚫ | touche R ou 9 sur le clavier numérique |
| Changer le mode de balance des blancs | ① | touche W ou 7 sur le clavier numérique |
2024-11-09 17:42:28 +01:00
| Changer le mode d'exposition | Alt + ① | touche X ou 1 sur le clavier numérique |
2024-12-10 10:41:08 +01:00
| 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 |
2024-11-01 09:40:25 +01:00
2024-09-12 12:40:21 +02:00
## Installation Kiosque
Pour créer un kiosque d'animation à partir d'une installation minimale de Debian :
2024-11-01 17:58:08 +01:00
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.
2024-09-12 12:40:21 +02:00
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
2024-11-01 17:58:08 +01:00
/home/$USER/stopi2.sh &
2024-09-12 12:40:21 +02:00
```
Au redémarrage, la session graphique devrait démarrer automatiquement.
# 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`
2025-01-11 14:54:17 +01:00
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`
``