Plan d'implémentation du Bracelet (V1.2)

Documentation technique de la version française et du pilote de LED RGB (XL-2020RGBC-2812B)
Topologie de communication et brochage matériel
ENTRÉES / BOUTONS & RF Boutons (▲ / ▼ / SOS) P0.1: BOUTON_UP (▲) P0.3: BOUTON_DOWN (▼) P0.2: BOUTON_SOS Récepteur RF 433MHz P2.1: Données RF (RXD) P2.2: Mode veille (SHUT) P3.7: Alimentation RF MCU / Machine d'état Machine d'état principale ● STATE_NORMAL (Veille/Clock) ● STATE_PAIR (Appairage) ● STATE_ALARM (Alarme active) Ordonnancement & Stockage Timer 1: Anti-rebond 1ms Moteur / Logiciel LED IAP Flash: Stocke 16 capteurs SORTIES / AFFICHAGE & RETRO. Écran OLED RM69310 Résolution: 120 x 240 Police ASCII 8x16 & 16x32 Interface utilisateur française Actionneurs Physiques LED RGB (P0.0: Signal unique) Bus série 800Kbps (NZR) P2.5: Vibration Moteur
I. Table de configuration des broches et caractéristiques électriques
Catégorie de matériel Alias du port Broche STC32G Description de la logique de commande
🌈 LED RGB Adressable WS2812_DI P0.0 Signal de commande unique, protocole 800Kbps, initialisé à 0.
📳 Moteur de Vibration MOTOR P2.5 Commande tout-ou-rien. Sortie à 1 active la vibration, 0 l'arrête.
▲ Bouton de direction (Haut) KEY_UP P0.1 Entrée avec résistance de pull-up interne. Actif à l'état bas (0).
▼ Bouton de direction (Bas) KEY_DOWN P0.3 Entrée avec résistance de pull-up interne. Actif à l'état bas (0).
🆘 Bouton d'urgence / Appairage KEY_SOS P0.2 Entrée avec résistance de pull-up interne. Actif à l'état bas (0).
II. Décisions clés de conception (Design Decisions)
💡 Décision 1 : Interface utilisateur 100% en Français (French-only UI)
Conformément aux exigences actuelles, le système prend uniquement en charge l'affichage en langue française. Toutes les chaînes de l'interface ont été traduites pour tenir sur l'écran OLED de 120 pixels de largeur (maximum 15 caractères par ligne). Les coordonnées horizontales des icônes ont été ajustées en conséquence pour garantir un centrage parfait et éviter les chevauchements.
📡 Décision 2 : Intégration de la LED RGB Adressable (XL-2020RGBC-2812B)
Les trois LED d'origine sont remplacées par une unique LED intelligente utilisant un protocole de type WS2812B (800Kbps). Pour conserver la logique temporelle existante de clignotement et de contrôle d'état, nous émulons LED_R, LED_G, LED_B en tant que bits mémoire virtuels. Lorsque l'interruption détecte un changement d'état, elle génère dynamiquement la trame GRB 24 bits et l'envoie à la broche P0.0 par modification logicielle directe (bit-bang) avec désactivation temporaire des interruptions.
III. Rendu de l'interface et gestion de l'écran

1. Envoi séquentiel de trames binaires (`LCD_DrawMonoBitmap`)

Utilise l'interface SPI matérielle pour adresser une fenêtre rectangulaire, éliminant tout besoin de mémoire tampon en RAM (zéro allocation de frame buffer). Les performances de balayage d'écran sont ultra-rapides et optimales.

2. Définition des coordonnées d'affichage

L'affichage utile sur l'écran circulaire est optimisé dans les coordonnées suivantes :

IV. Liste de contrôle des validations (Task Checklist)