8x32 PI : séquences jusqu'à 120 PNG, test du fil de données, montage A validé
- serveur_web.py : séquences limitées à 120 PNG (message clair au-delà), envois jusqu'à 200 Mo, fichiers temporaires sur la carte SD (et plus dans /run, trop petit), garde-fou si une séquence est envoyée dans le cadre « fichiers séparés ». - outils/test_fil_donnees.py : met GPIO 18 à 1 puis à 0 toutes les 10 s, pour suivre le signal au multimètre du Pi jusqu'à DIN. - README : montage A (Pi en direct, LED en 4,4 V) testé et validé ; montage B (transistor 2N3904) déconseillé, trop lent (temps de stockage ≈ 0,2 µs face à un « 0 » de 0,4 µs) ; mise en garde sur les convertisseurs HV/LV ; dépannage « seule la 1re LED s'allume ». - INTERFACE_WEB.md, CLAUDE.md : nouvelles limites, accès au Pi en Wi-Fi seul, lecteur activé au démarrage. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
+27
-5
@@ -160,6 +160,7 @@ inverse des aiguilles d'une montre : 1 à 7 en bas, de gauche à droite, puis
|
||||
### Pas de 74AHCT125 sous la main ? Deux solutions de dépannage
|
||||
|
||||
**Solution A : baisser la tension de la matrice (conseillée, aucun composant).**
|
||||
✅ *Testée et validée sur le Pi 3 du workshop (octobre 2026).*
|
||||
Le seuil du « 1 » vaut 70 % de la tension d'alimentation **des LED**. Si on
|
||||
alimente la matrice en **4,4 V** au lieu de 5 V, le seuil tombe à
|
||||
0,7 × 4,4 ≈ **3,1 V**, et les 3,3 V du Pi suffisent. Les WS2812B fonctionnent
|
||||
@@ -184,7 +185,10 @@ En résumé :
|
||||
matrice, et ne doit **jamais** toucher une patte du Pi.
|
||||
- Gardez le fil de données **court** (moins de 30 cm).
|
||||
|
||||
**Solution B : un transistor « inverseur » (si la solution A scintille).**
|
||||
**Solution B : un transistor « inverseur » (déconseillée).**
|
||||
❌ *Essayée pendant le workshop : la matrice ne s'allume pas, seule la 1re LED
|
||||
prend une couleur au hasard.* On la décrit quand même, pour comprendre
|
||||
pourquoi elle échoue.
|
||||
Avec un transistor NPN du kit, de préférence un **2N3904** (le plus rapide du
|
||||
kit ; un BC337 ou un S8050 peuvent convenir), on fabrique un adaptateur 5 V.
|
||||
Le transistor **inverse** le signal (un 1 devient un 0) : il faut le dire au
|
||||
@@ -209,8 +213,25 @@ Le même montage, en schéma électrique :
|
||||
```
|
||||
|
||||
Ici l'alimentation d'établi reste à **5,0 V**. Le 5 V n'atteint jamais le Pi :
|
||||
il s'arrête au collecteur du transistor. Ce montage est plus lent qu'un
|
||||
74AHCT125 : il marche souvent bien, mais c'est un dépannage.
|
||||
il s'arrête au collecteur du transistor.
|
||||
|
||||
> **Pourquoi ça ne marche pas : le transistor est trop lent.** Les LED lisent
|
||||
> des impulsions très courtes : un « 0 » est une impulsion de **0,4 µs**
|
||||
> (0,000 000 4 s), un « 1 » une impulsion de 0,8 µs. Or un transistor comme
|
||||
> le 2N3904, quand il conduit à fond (« saturé »), met environ **0,2 µs** à se
|
||||
> bloquer : c'est son *temps de stockage*. Chaque impulsion est raccourcie
|
||||
> d'autant, et la résistance de tirage arrondit encore les fronts. Le « 0 »
|
||||
> tombe sous ce que la LED accepte : elle reçoit du bruit, la première LED
|
||||
> affiche une couleur au hasard et ne transmet rien aux suivantes.
|
||||
> Un 74AHCT125 réagit en moins de 0,01 µs : 20 fois plus vite.
|
||||
>
|
||||
> On pourrait l'accélérer (condensateur de 100 pF en parallèle de la
|
||||
> résistance de base, résistance de tirage plus faible), mais le résultat
|
||||
> resterait fragile. **Préférez la solution A, ou la puce.**
|
||||
|
||||
> **Même problème avec les petits modules « convertisseurs de niveau »**
|
||||
> bidirectionnels (marqués HV / LV, à transistors BSS138) : ils sont faits
|
||||
> pour des signaux lents (I²C), pas pour les 800 000 bits par seconde des LED.
|
||||
|
||||
> Dans les deux cas, le reste (logiciel, installation, Krita) ne change pas.
|
||||
|
||||
@@ -532,7 +553,8 @@ En haut de [`serveur_web.py`](serveur_web.py) :
|
||||
|---|---|---|
|
||||
| `MOT_DE_PASSE` | `None` | ⚠️ sans mot de passe, **toute personne sur le réseau** peut ajouter ou supprimer des animations. Ex. `"pixels"` : le navigateur le demandera |
|
||||
| `PORT` | `80` | le port web habituel ; un autre port s'ajoute à l'adresse (`http://172.16.50.27:8080`) |
|
||||
| `TAILLE_MAX_MO` | `50` | taille maximum d'un envoi |
|
||||
| `TAILLE_MAX_MO` | `200` | taille maximum d'un envoi (tous les fichiers ensemble) |
|
||||
| `MAX_IMAGES_SEQUENCE` | `120` | nombre maximum d'images dans une séquence de PNG |
|
||||
|
||||
> **Avec la protection contre les coupures de courant** (overlay, voir
|
||||
> [MODE_VITRINE.md](MODE_VITRINE.md#4-survivre-aux-coupures-de-courant)), si la
|
||||
@@ -563,7 +585,7 @@ Le mode d'emploi détaillé, pour l'équipe design, est dans
|
||||
| **Ça marche, puis tout se fige ou scintille quand on branche un casque / lance un son** | La sortie audio utilise le même circuit que GPIO 18 | Vérifier `dtparam=audio=off` dans `/boot/firmware/config.txt`, redémarrer |
|
||||
| **Couleurs aléatoires, scintillement** | Puce absente ou de type HC (sans T) | Vérifier les lettres sur la puce |
|
||||
| | Montage sans puce (solution A) | Baisser encore un peu l'alimentation (4,2 V), raccourcir le fil vert, ou passer à la solution B |
|
||||
| **Rien ne s'allume avec le transistor** (solution B) | `INVERSER_SIGNAL` oublié, ou transistor à l'envers | `INVERSER_SIGNAL = True` dans `matrice.py` ; vérifier E-B-C |
|
||||
| **Seule la 1re LED s'allume, d'une couleur au hasard** | Signal déformé : convertisseur ou transistor trop lent (solution B), masse non commune | Passer à la solution A (sans convertisseur, LED en 4,4 V), vérifier le fil blanc |
|
||||
| | Masse mal serrée | Revérifier toutes les masses |
|
||||
| **Couleurs fausses** (rouge ↔ vert) | Ordre des couleurs | Dans `matrice.py`, remplacer `WS2811_STRIP_GRB` par `WS2811_STRIP_RGB` |
|
||||
| **Les couleurs sombres de mon dessin n'apparaissent pas** | Normal : correction gamma + luminosité faible | Voir [GUIDE_KRITA.md, partie 5](GUIDE_KRITA.md#5-ce-qui-change-entre-lécran-et-les-led) |
|
||||
|
||||
Reference in New Issue
Block a user