Architecture du micrologiciel et guide de développement pour la télécommande sans fil RADR
Cette section couvre le micrologiciel RADR, y compris l'architecture, l'environnement de développement et la manière de modifier ou de contribuer à la base de code.
Présentation du micrologiciel
RADR fonctionne sur un microcontrôleur ESP32-S3 avec un micrologiciel personnalisé écrit en C++ à l'aide du framework Arduino et de PlatformIO.
| Composant | Technologie |
|---|---|
| MCU | ESP32-S3 avec PSRAM |
| Framework | Arduino pour ESP32 |
| Système de build | PlatformIO |
| Langage | C++ |
| Bibliothèque d’affichage | TFT_eSPI |
| Pile BLE | NimBLE |
Version du micrologiciel
| Composant | Version |
|---|---|
| Version majeure | 1 |
| Version mineure | 0 |
| Version du correctif | 24 |
| Version complète | 1.0.24 |
Vérifiez régulièrement les mises à jour du micrologiciel pour accéder aux nouvelles fonctionnalités et à la prise en charge des appareils.
Code source
Le code source complet du micrologiciel est disponible sur GitHub :
RADR Firmware
Parcourez le code source et la documentation.
Présentation de l'architecture
Principaux composants
| Composant | But |
|---|---|
| Machine à états | Gère les états de l'écran et le flux de navigation |
| Gestionnaire de périphériques | Gère la découverte et la connexion des appareils Bluetooth |
| Pilote d'affichage | Rend l'interface utilisateur à l'aide de TFT_eSPI avec mise en mémoire tampon du canevas |
| Gestionnaire d'entrée | Traite les entrées de l'encodeur, des boutons et des boutons latéraux |
| Système de rétroaction | Contrôle les LED, le buzzer et les vibrations |
| Registre des appareils | Associe les UUID Bluetooth aux types d’appareils |
Services clés
├── BluetoothService # BLE scanning and connection
├── DisplayService # Screen rendering
├── InputService # Encoder and button handling
├── FeedbackService # LED, buzzer, vibration
├── DeviceService # Connected device control
├── WiFiService # WiFi and OTA updates
└── StorageService # LittleFS configurationEnvironnement de développement
Conditions préalables
- Visual Studio Code
- Extension PlatformIO
- Câble USB-C pour flasher
Premiers pas
Cloner le dépôt
git clone https://github.com/researchanddesire/radr-wireless-remote.git
cd radr-wireless-remote/SoftwareOuvrir dans VS Code
Ouvrez le dossier Software dans VS Code. PlatformIO détectera automatiquement la configuration du projet.
Compiler le micrologiciel
Cliquez sur le bouton PlatformIO Build ou exécutez :
pio runFlasher le micrologiciel sur l'appareil
Connectez RADR via USB-C et cliquez sur Upload, ou exécutez :
pio run --target uploadPrincipales fonctionnalités
Rendu basé sur un canevas
RADR utilise un rendu de canevas à double tampon pour des mises à jour d'affichage fluides :
- Les sprites plein écran empêchent le scintillement
- Mises à jour partielles pour les zones critiques en termes de performances
- Taux de rafraîchissement constant de l'interface utilisateur de 60 fps
Architecture de la machine à états
L'interface utilisateur utilise une machine à états hiérarchique :
- Transitions claires entre les écrans
- Logique d'état isolée pour chaque écran
- Gestion des entrées pilotée par les événements
Registre des appareils
RADR prend en charge plusieurs types d'appareils via un registre à deux niveaux :
| Registre | Description |
|---|---|
| Intégré | Prise en charge des appareils R+D codés en dur (OSSM) |
| Dynamique | Définitions de périphériques Buttplug.io basées sur JSON |
Le registre dynamique (registry.json) peut être mis à jour via des mises à jour du micrologiciel pour ajouter la prise en charge de nouveaux appareils sans modification du code.
Fichiers de configuration
| Fichier | Objectif |
|---|---|
platformio.ini | Configuration de build et dépendances |
src/config.h | Définitions et constantes des broches matérielles |
data/registry.json | Mappages des UUID des appareils Buttplug.io |
Référence technique
Web Flasher
Flashez le micrologiciel avec l’outil web.
Communication BLE
Détails du protocole Bluetooth et communication de l'appareil.
Contribuer
Lisez les directives de contribution avant de soumettre une modification sur la branche main.
Style de code
- Suivre le formatage du code existant
- Utiliser des noms de variables et de fonctions descriptifs
- Documenter les fonctions publiques et la logique complexe
- Tester les modifications sur le matériel réel avant de les soumettre
Licence
Le micrologiciel RADR est publié sous la CERN Open Hardware Licence Version 2 - Strongly Reciprocal (CERN-OHL-S v2). Consultez la licence du dépôt pour plus de détails.