Présentation du logiciel

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.

ComposantTechnologie
MCUESP32-S3 avec PSRAM
FrameworkArduino pour ESP32
Système de buildPlatformIO
LangageC++
Bibliothèque d’affichageTFT_eSPI
Pile BLENimBLE

Version du micrologiciel

ComposantVersion
Version majeure1
Version mineure0
Version du correctif24
Version complète1.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

ComposantBut
Machine à étatsGère les états de l'écran et le flux de navigation
Gestionnaire de périphériquesGère la découverte et la connexion des appareils Bluetooth
Pilote d'affichageRend l'interface utilisateur à l'aide de TFT_eSPI avec mise en mémoire tampon du canevas
Gestionnaire d'entréeTraite les entrées de l'encodeur, des boutons et des boutons latéraux
Système de rétroactionContrôle les LED, le buzzer et les vibrations
Registre des appareilsAssocie 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 configuration

Environnement de développement

Conditions préalables

Premiers pas

Cloner le dépôt

git clone https://github.com/researchanddesire/radr-wireless-remote.git
cd radr-wireless-remote/Software

Ouvrir 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 run

Flasher le micrologiciel sur l'appareil

Connectez RADR via USB-C et cliquez sur Upload, ou exécutez :

pio run --target upload

Principales 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 :

RegistreDescription
IntégréPrise en charge des appareils R+D codés en dur (OSSM)
DynamiqueDé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

FichierObjectif
platformio.iniConfiguration de build et dépendances
src/config.hDéfinitions et constantes des broches matérielles
data/registry.jsonMappages des UUID des appareils Buttplug.io

Référence technique

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.

Sur cette page