(Enregistreur de vol : dernière mise à jour par Benjamin le 15 avril 2024)
Dans le but de vérifier la validité des systèmes AvionicsDuino, nous avons développé successivement deux enregistreurs de paramètres de vol, afin de pouvoir procéder aux nécessaires analyses des nombreux paramètres relevés lors des essais en vol.
Le premier enregistreur
Il est basé sur un ordinateur monocarte LattePanda sous Windows 10 (4G ram/ 64G SSD, modèle : DFR0419) équipé d’un écran IPS 7 pouces 1024×600 pixels, avec une surcouche tactile capacitive (Fig. 1). Cet enregistreur partage la même alimentation 5 volts que l’EFIS et l’EMS.
N’importe quel ordinateur portable sous Windows peut en fait être utilisé en lieu et place du LattePanda. Ce dernier a juste l’avantage de sa très petite taille. Plusieurs ports USB capables d’émuler un port série COM sont nécessaires.
Principe de fonctionnement
Il est basé sur l’enregistrement en continu des flux série UART ou RS232 émis par les systèmes avioniques. Ces derniers doivent donc être programmés pour émettre de tels flux. Ces flux sont reçus sur les différents ports USB du PC.
Ce premier enregistreur ne peut donc être utilisé qu’avec les versions logicielles AvionicsDuino qui exploitent la sortie série des systèmes (jusqu’à V2.5 pour l’EFIS et V1.5 pour l’EMS. Pour les versions ultérieures, il conviendra d’utiliser le deuxième enregistreur de vol, voir ci-dessous)
Le logiciel
Le programme sous Windows a été écrit à l’aide de l’environnement de développement Processing qui s’appuie sur le langage Java.
Téléchargement ici du code source Processing de cet enregistreur de vol. Ce programme tourne sans modification sous Windows. Compte tenu de l’environnement Processing, il est facilement adaptable à d’autres systèmes d’exploitation. L’environnement de développement Processing peut être téléchargé ici.
Ce programme permet donc d’enregistrer simultanément dans des fichiers texte les données issues de l’EFIS AvionicsDuino (jusqu’à la version 2.5 incluse du logiciel) et de l’EMS AvionicsDuino (jusqu’à la version 1.5 incluse), ainsi que les trames NMEA (au mieux, GGA, RMC et VTG) d’un GPS/GNSS connecté à un autre port COM USB disponible. Les trames NMEA peuvent ensuite être exportées vers n’importe quel format de trace GPS (GPX, KML…etc.) avec GPSBabel. Ces traces peuvent ensuite être visualisées et analysées dans Google Earth ou toute autre application similaire.
Ce premier enregistreur de vol permet également d’enregistrer la sortie série RS232 (avec l’adaptateur USB adéquat) de l’EFIS Dynon D10A installé dans le même avion que l’EFIS AvionicsDuino. Ce qui nous a permis de faire de nombreuses comparaisons entre les deux EFIS, voir la page EFIS.
Si cet enregistreur de données est lancé sous Windows en mode administrateur, et qu’un GPS/GNSS est connecté, l’heure système du PC est synchronisée avec l’heure GPS. Chaque ligne de chaque fichier enregistré peut être horodatée avec l’heure système du PC.
Personnalisation du logiciel
Quelques lignes du code source peuvent très facilement être modifiées et personnalisées pour adapter le programme à certains besoins particuliers. Pour utiliser et enregistrer les données issues d’un GPS connecté, il suffit de commenter les lignes 156 et 157. Pour activer l’horodatage des enregistrements par le PC, il faut dé-commenter la ligne 325.
Pour personnaliser l’emplacement du dossier et les noms des fichiers qui seront enregistrés, il faut éditer les lignes 83 et 84. Une version exécutable 64 bits du programme, utilisable sous Windows, est téléchargeable ici. Cet exécutable ne nécessite pas de GPS et ne réalise pas d’horodatage des données enregistrées. Si ces fonctionnalités sont nécessaires, il faut modifier le code source et le recompiler.
Le deuxième enregistreur de vol
Son principe est entièrement différent. Il enregistre l’ensemble du trafic du CAN bus de l’avion. Pour le développer et le mettre en œuvre, il a fallu préalablement étendre et modifier en profondeur l’architecture du CAN bus comme cela est exposé sur cette page.
Dans la première version de son architecture, le CAN bus ne connecte que quatre nœuds et véhicule uniquement quelques données utiles au fonctionnement des différents systèmes connectés. Par exemple le micro-EMS qui envoie le débit carburant à l’EMS ou le module magnétomètre qui envoie le cap magnétique à l’EFIS. Et l’AHRS n’est pas connecté au CAN bus, mais directement à l’EFIS par une liaison série UART.
Désormais, avec la deuxième version de l’architecture du CAN bus, six nœuds sont connectés (dont l’enregistreur), et toutes les informations concernant le vol ou le groupe motopropulseur sont envoyées en permanence et en temps réel sur le CAN bus, qu’il s’agisse des données brutes des capteurs ou des résultats des calculs qui sont affichés sur les écrans. Ainsi tous les paramètres de l’avion peuvent être enregistrés en continu, puis analysés ensuite à tête reposée. Une application pratique évidente de ces enregistrements concerne par exemple l’étude des performances de l’aéronef.
Ce deuxième enregistreur n’est donc utilisable qu’avec les versions logicielles qui exploitent la nouvelle architecture étendue du CAN bus à six nœuds : à partir de la V3.01 pour l’EFIS et V1.7 pour l’EMS. Pour les versions logicielles antérieures, il convient d’utiliser l’architecture initiale simplifiée du CAN bus (à quatre nœuds seulement) et le premier enregistreur de vol, voir plus haut.
Principe
Le nouvel enregistreur est basé sur une carte ESP32 couplée à un lecteur de carte micro-SD. Le but est de pouvoir récupérer en fin de vol, sans connexion filaire, les fichiers enregistrés pendant le vol. En utilisant un simple smartphone ou une tablette, via le point d’accès Wi-Fi généré par l’enregistreur. Le cœur du système est une carte Arduino Nano ESP 32 (voir la page sur les cartes microcontrôleur), couplée à un adaptateur microSD et un transceiver CAN. L’enregistreur est connecté au CAN bus de l’avion par une prise D-SUB 9 broches, comme n’importe quel autre nœud CAN.
Cette carte est la première de la gamme Arduino qui soit basée sur un microcontrôleur Espressif ESP32-S3, sous la forme d’un module u-blox® NORA-W106. La fréquence d’horloge est de 240 MHz, il y a 384 kB de ROM, 512 kB de SRAM et 16 MB de mémoire flash externe. La caractéristique principale de cette carte est sa connectivité Wi-Fi et Bluetooth LE, c’est la raison pour laquelle nous l’avons sélectionnée.
Réalisation pratique
Le schéma est représenté sur la figure 2 ci-dessous.
La figure 3 montre le circuit imprimé avec les composants. Pour gagner de la place, le transceiver CAN est placé sur la face opposée à la carte Arduino et au module lecteur de carte micro-SD.
La figure 4 montre l’enregistreur dans le prototype de boîtier utilisé pour les essais en vol.
Fichiers à télécharger
Le logiciel
Il est téléchargeable sur GitHub. Le principe est simple : les données binaires reçues du CAN bus sont converties au format texte, puis envoyées à un buffer circulaire. Ce buffer est ensuite écrit par paquets successifs de 512 octets sur une carte micro SD, ce qui optimise les opérations d’écriture, de façon à éviter les latences liées à la carte SD.
Le logiciel de l’enregistreur génère un point d’accès Wi-Fi sur lequel on peut connecter un smartphone ou une tablette. En ouvrant sur un navigateur internet l’application web crée sur le serveur de l’enregistreur de vol, on peut télécharger (ou supprimer) les fichiers enregistrés sur la carte micro-SD (fig. 5).
Les essais en vol ont été très satisfaisants, les fichiers enregistrés sont parfaitement conformes aux attentes et au trafic sur le CAN bus, il n’y a aucune perte de données.
Les possibilités d’analyses sont quasiment infinies. Par exemple, les fichiers textes enregistrés comportent tous les éléments nécessaires qui permettent de générer une trace GPS, visualisable par exemple dans Google Earth. Il faut pour cela importer les données texte brutes dans un tableur comme Microsoft Excel, puis sélectionner les colonnes souhaitées, et faire une exportation au format CSV.
Le fichier CSV peut ensuite être exploité par GPSBabel et converti, par exemple au format KML de Google Earth. Pour générer le fichier CSV, en particulier pour affecter les bons noms et les bonnes unités aux différents champs, le lecteur pourra utilement consulter cette page de l’aide de GPSBabel, où le format “Universal csv with field structure in first line (unicsv)” est décrit en détail.
On pourrait multiplier les exemples d’analyse. L’apport d’un tableur permettant d’importer des données textes avec des champs séparés par des points-virgules est inestimable. Toutes sortes de graphiques peuvent être tracés, pour montrer l’évolution de différents paramètres, ou pour les comparer d’un vol à l’autre, par exemple en fonctions de différents réglages apportés au moteur ou à la cellule, ou en fonction des conditions du vol, altitude, puissance moteur…etc.
Les premiers essais avaient montré qu’il n’est pas souhaitable d’enregistrer des données filtrées, mais plutôt des données brutes. En effet, les filtres améliorent beaucoup la stabilité des affichages, et donc la lisibilité des informations à l’écran mais ils induisent inévitablement un décalage chronologique préjudiciable à l’analyse des enregistrements (voir la page sur les techniques de filtrage numérique des données).
Des mises à jour des logiciels des différents nœuds ont donc été réalisées : sauf pour quelques données variant lentement comme des températures, les nœuds émetteurs transmettent désormais des données brutes au CAN bus, les filtres, quand ils sont nécessaires, sont appliqués par les nœuds destinataires. Les nœuds doivent tous utiliser les toutes dernières versions des logiciels publiées sur GitHub.
La seule déception liée à ce programme, c’est la grande lenteur du point d’accès Wi-Fi, qui rend assez fastidieuse la récupération sur un smartphone ou une tablette d’un fichier de seulement quelques mégaoctets (environ 5 Mo par heure d’enregistrement). Nous n’avons pas réussi à identifier les causes de cette lenteur, et encore moins à y remédier.
Pour cette raison, nous avons installé l’enregistreur dans un endroit très accessible du bus CAN (avec un velcro sous le tableau de bord dans notre cas, mais cela aurait pu être sous un siège, ou en fait en n’importe quel point sur le trajet du bus). Ce qui nous permet, en quelques secondes en fin de vol, de décrocher l’enregistreur et de déconnecter sa prise D-SUB pour l’emporter avec sa carte micro-SD.