8x32 PI : interface web, matrice verticale, compatibilité Raspbian 11
- Interface web (serveur_web.py, Flask, gabarits dans web/) : dépôt de GIF, PNG animés et séquences de PNG, aperçus animés, ordre de lecture, activer / désactiver, corbeille, « jouer maintenant » et « suivante ». Service systemd vitrine-web, activé par installer.sh. - Lecteur : réagit aux demandes de la page web (post-it dans /run/vitrine-pixels), écrit l'animation en cours, éteint la matrice proprement sur SIGTERM. - Matrice posée debout : réglage ROTATION (90 = image 8 × 32) dans matrice.py ; images couchées tournées automatiquement ; exemples, animations codées, aperçus et page web adaptés au format vertical. - Compatibilité Raspbian 11 Bullseye : partition /boot, Pillow 8.1, Flask 1.1. - Doc : nouveau guide INTERFACE_WEB.md ; README, GUIDE_KRITA, MODE_VITRINE, CODER_EN_PYTHON mis à jour (format 8 × 32, adresses Wi-Fi / câble du Pi). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
+24
-9
@@ -14,6 +14,8 @@ dessinées dans **Krita** sont jouées telles quelles, sans les traduire en code
|
||||
> pour la matrice). Pas besoin de toucher au matériel !
|
||||
> - **Pour la vitrine** : [MODE_VITRINE.md](MODE_VITRINE.md) (démarrage
|
||||
> automatique, changer les animations, coupures de courant).
|
||||
> - **Pour déposer et choisir les animations depuis un navigateur** :
|
||||
> [INTERFACE_WEB.md](INTERFACE_WEB.md) (adresse en Wi-Fi : `http://172.16.50.27`).
|
||||
> - **Pour qui veut coder** : [CODER_EN_PYTHON.md](CODER_EN_PYTHON.md).
|
||||
|
||||
---
|
||||
@@ -100,7 +102,8 @@ Côté **cerveau**, le Raspberry Pi fait tourner le programme
|
||||
[`lecteur.py`](lecteur.py), qui :
|
||||
|
||||
1. regarde ce qu'il y a dans le dossier `animations` ;
|
||||
2. ouvre chaque fichier (GIF, PNG…) et le découpe en images de 32 × 8 ;
|
||||
2. ouvre chaque fichier (GIF, PNG…) et le découpe en images de 8 × 32
|
||||
(la matrice est posée debout, voir partie 8) ;
|
||||
3. pour chaque image, **corrige les couleurs** pour que la matrice ressemble
|
||||
à l'écran de Krita (la « correction gamma »), applique la luminosité et la
|
||||
limite de courant ;
|
||||
@@ -347,13 +350,16 @@ sudo ~/vitrine-env/bin/python test_matrice.py
|
||||
|
||||
Le test se déroule en trois temps (voir [`test_matrice.py`](test_matrice.py)) :
|
||||
|
||||
**1. Les coins** (5 secondes). Posez la matrice **face LED vers vous** :
|
||||
**1. Les coins** (5 secondes). La matrice est **posée debout**, comme dans
|
||||
la vitrine, **face LED vers vous** (réglage `ROTATION = 90` dans
|
||||
[`matrice.py`](matrice.py)). On doit voir :
|
||||
|
||||
```
|
||||
ROUGE ●· · · · · · · · · · · · · · · · ● VERT
|
||||
· · · · · · · · · · · · · · · · ·
|
||||
· · · · · · · · · · · · · · · · ·
|
||||
BLEU ●· · · · · · · · · · · · · · · · ● BLANC
|
||||
ROUGE ● · · · · · · ● VERT
|
||||
· · · · · · · ·
|
||||
· · · · · · · · (32 lignes)
|
||||
· · · · · · · ·
|
||||
BLEU ● · · · · · · ● BLANC
|
||||
```
|
||||
|
||||
| Ce que vous voyez | Ce qu'il faut faire, dans [`matrice.py`](matrice.py) |
|
||||
@@ -361,7 +367,12 @@ Le test se déroule en trois temps (voir [`test_matrice.py`](test_matrice.py)) :
|
||||
| Rouge en haut à gauche, vert en haut à droite | rien, c'est parfait ✅ |
|
||||
| Rouge et vert inversés (gauche ↔ droite) | `INVERSER_X = True` |
|
||||
| Rouge et vert en bas | `INVERSER_Y = True` |
|
||||
| Les deux à la fois | les deux à `True` |
|
||||
| Les deux à la fois (image à l'envers) | les deux à `True` |
|
||||
| Les couleurs sont sur les **grands côtés** (la matrice affiche « couché ») | `ROTATION` n'est pas à 90 : corrigez-la |
|
||||
|
||||
> **Matrice couchée** (à l'horizontale, 32 de large × 8 de haut) : mettez
|
||||
> `ROTATION = 0`. Tout le reste (Krita, lecteur, page web) suit
|
||||
> automatiquement : les images se dessinent alors en 32 × 8.
|
||||
|
||||
Pour modifier le fichier sur le Pi : `nano matrice.py`, changez la ligne,
|
||||
puis **Ctrl + O**, **Entrée** (enregistrer) et **Ctrl + X** (quitter).
|
||||
@@ -404,7 +415,8 @@ animation, pause entre deux, horaires) et de [`matrice.py`](matrice.py) :
|
||||
|---|---|---|---|
|
||||
| `LUMINOSITE` | matrice.py | `40` | de 0 à 255 ; montez en plein jour, en vitrine |
|
||||
| `COURANT_MAX_MA` | matrice.py | `2500` | un peu **sous** la limite de l'alimentation |
|
||||
| `INVERSER_X`, `INVERSER_Y` | matrice.py | `False` | orientation (partie 8) |
|
||||
| `ROTATION` | matrice.py | `90` | `90` = matrice debout (image 8 × 32), `0` = couchée (32 × 8) |
|
||||
| `INVERSER_X`, `INVERSER_Y` | matrice.py | `False` | sens de l'image (partie 8) |
|
||||
| `GAMMA` | matrice.py | `2.2` | correction des couleurs (1.0 = aucune) |
|
||||
| `DUREE_MINIMUM` | lecteur.py | `10` | une animation courte est rejouée pendant au moins 10 s |
|
||||
| `HORAIRES` | lecteur.py | `None` | ex. `("09:00", "22:30")` |
|
||||
@@ -484,9 +496,12 @@ Pour voir ce que fait le lecteur quand il tourne tout seul (mode vitrine) :
|
||||
| [INSTALLATION_PI.md](INSTALLATION_PI.md) | électronique | préparer la carte SD et le Pi, pas à pas |
|
||||
| [GUIDE_KRITA.md](GUIDE_KRITA.md) | design | dessiner, exporter, vérifier pour la matrice |
|
||||
| [MODE_VITRINE.md](MODE_VITRINE.md) | tous | démarrage automatique, changer les animations, entretien |
|
||||
| [INTERFACE_WEB.md](INTERFACE_WEB.md) | tous | la page web : déposer, ordonner, activer, jouer les animations |
|
||||
| [CODER_EN_PYTHON.md](CODER_EN_PYTHON.md) | code | créer des animations en Python ; comparaison avec l'Arduino |
|
||||
| [`matrice.py`](matrice.py) | | le moteur : réglages, `XY()`, gamma, vraie matrice et simulateur |
|
||||
| [`lecteur.py`](lecteur.py) | | joue les animations du dossier en boucle |
|
||||
| [`serveur_web.py`](serveur_web.py) | | l'interface web (Flask) : dépôt et choix des animations |
|
||||
| [`web/`](web/) | | la page web : `page.html`, `infos.html`, `style.css` |
|
||||
| [`test_matrice.py`](test_matrice.py) | | test de branchement et d'orientation |
|
||||
| [`mes_animations.py`](mes_animations.py) | | les animations de l'Arduino, traduites en Python |
|
||||
| [`animations/`](animations/) | | exemples : GIF, séquence de PNG, APNG |
|
||||
@@ -495,7 +510,7 @@ Pour voir ce que fait le lecteur quand il tourne tout seul (mode vitrine) :
|
||||
| [`outils/verifier_animation.py`](outils/verifier_animation.py) | design | vérifie un export et crée un aperçu « façon LED » |
|
||||
| [`outils/generer_exemples.py`](outils/generer_exemples.py) | | recrée les exemples et la palette |
|
||||
| [`outils/schemas.py`](outils/schemas.py) | | redessine les schémas du dossier `schemas/` |
|
||||
| [`installation/`](installation/) | électronique | script d'installation et service de démarrage automatique |
|
||||
| [`installation/`](installation/) | électronique | script d'installation, services de démarrage automatique (lecteur et interface web) |
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user