8x32 PI : vitesse de lecture, QR code et affiche, sens de l'image sur la vitrine

- Vitesse de lecture : réglage VITESSE du lecteur et menu « Vitesse » sur la
  page web (×0,25 à ×2, gardé dans .vitesse.txt du dossier des animations).
- QR code d'accès à la page web et affiche A5 (outils/generer_qrcode.py →
  qrcode/) : une coulée inspirée de « cascade » en haut, une partie de
  « tetris » en bas, couleurs tirées des animations de l'équipe
  (qrcode/sources/), titre en pixels de couleur.
- Matrice de la vitrine : image retournée d'un demi-tour (INVERSER_X et
  INVERSER_Y) et nouveau réglage DECALAGE_X / DECALAGE_Y (ici 1 pixel vers
  la droite).
- Doc : README, INTERFACE_WEB.md et CLAUDE.md à jour.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
bach
2026-10-09 16:04:13 +02:00
co-authored by Claude Opus 5.5
parent 156f9ce438
commit 5b0e858abe
135 changed files with 434 additions and 11 deletions
+12
View File
@@ -22,6 +22,18 @@
<input type="hidden" name="action" value="suivante">
<button type="submit" class="bouton">Suivante ⏭</button>
</form>
{# Vitesse : le formulaire s'envoie tout seul dès qu'on change la valeur. #}
<form method="post" action="{{ url_for('action') }}" class="vitesse">
<input type="hidden" name="action" value="vitesse">
<label>Vitesse
<select name="vitesse" onchange="this.form.submit()">
{% for valeur, texte in vitesses %}
<option value="{{ valeur }}" {% if (valeur - vitesse)|abs < 0.01 %}selected{% endif %}>{{ texte }}</option>
{% endfor %}
</select>
</label>
<noscript><button type="submit" class="bouton">OK</button></noscript>
</form>
</div>
</header>
+5
View File
@@ -61,6 +61,11 @@ h1 { margin: 0; font-size: 1.3rem; display: flex; align-items: center; gap: 10px
}
.statut { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.statut form { margin: 0; }
.vitesse label { display: flex; align-items: center; gap: 6px; }
.vitesse select {
font: inherit; padding: 6px 8px; border-radius: 8px;
background: #2a2826; color: #f1ede6; border: 1px solid #3d3935;
}
.pastille {
width: 10px; height: 10px; border-radius: 50%;
background: #4cc283; box-shadow: 0 0 8px #4cc283;