Équipement de détection d’avalanche intelligent

Équipement de détection d’avalanche intelligent

Les amateurs de ski hors-piste sont généralement munis d’équipements de type ARVA / DVA destinés à les localiser en cas d’avalanche. Ces équipements sont relativement chers et ont une portée réduite.

Pour son stage de fin d’études chez ELSYS Design Grenoble, Selim a eu pour mission de concevoir un équipement de détection d’avalanche à coût optimisé basé sur une application smartphone et disposant d’une intelligence / assistance permettant de définir les victimes à secourir en priorité. Un système innovant et bon marché, susceptible d’être utilisé par des skieurs occasionnels.

Pour découvrir les offres de stages PFE chez ELSYS Design, rendez-vous sur notre site emploi (taper le mot-clé « stage »). Il est également possible de déposer une candidature spontanée.

Le contexte

Un équipement DVA (Détection de Victimes sous Avalanche) est un système utilisé par les sauveteurs pour retrouver les victimes d’avalanche. Il s’agit d’une nouvelle appellation ; par le passé, on appelait ces équipements ARVA (Appareil de Recherche de Victimes d’Avalanche).

De nombreux équipements DVA existent sur le marché, ils utilisent tous la même fréquence normalisée (457 kHz) et partagent un fonctionnement assez basique d’émission / réception. Leur coût est élevé (autour de 200€), leur portée maximale dépasse rarement les 80 mètres et ils sont difficiles à prendre en main. En effet, à cause de leurs basses portées, il est nécessaire d’employer des techniques complexes pour couvrir de manière optimale les zones de recherche et pour déterminer les positions exactes des victimes.

Ces caractéristiques rendent moins accessible cette technologie aux skieurs occasionnels, qui ne sont généralement pas prêts à investir une telle somme d’argent. En cas d’accident, ils bénéficient donc rarement d’équipements pour qu’on leur vienne en aide, ou pour secourir leurs proches.

L’idée du stage consistait ainsi à créer un système plus accessible. Pour ce faire, il a fallu répondre aux problématiques de portée, de prix et d’assistance aux sauveteurs pour optimiser la phase de secours.

Un système basé sur une application smartphone

Pour réduire le prix et augmenter l’accessibilité, le choix a été fait de concevoir un système basé sur une application smartphone. Le smartphone est ensuite relié à un module communicant intégrant un microcontrôleur radio, ce qui a permis d’atteindre des portées supérieures à 1 km.

L’équipement de la victime envoie des informations sur son état et sa position GPS. Ces informations peuvent ensuite être affichées sur une carte interactive au sein de l’application du sauveteur.

En cas de victimes multiples, le système est également capable d’assister sur le choix de la personne à secourir en priorité à partir de son état et de sa position, l’objectif étant de sauver un maximum de vies en un temps réduit.

Un autre aspect du stage a été le développement Rust embarqué : Selim a d’abord programmé les modules communicants en C, puis en Rust, afin de faire une comparaison des deux.

Introduction au développement logiciel en C, replay du webinaire

Organisation du projet

Après avoir étudié le choix du module communicant et les différents aspects de la communication radio avec Kévin, son tuteur de stage, Selim a rédigé les spécifications d’architecture des différents modules logiciels.

Une fois la documentation terminée, il a commencé par le développement du programme embarqué sur le microcontrôleur du module radio (CC1312R de Texas Instruments), avant de travailler sur l’application smartphone.

L’avancement du projet a été réalisé par l’intermédiaire de réunions hebdomadaires avec son tuteur de stage.

Des réunions mensuelles avec les responsables d’affaires rhônalpins lui ont également permis de recueillir leur opinion.

Enfin, tout au long du projet, Selim a enrichi une page sur le logiciel Confluence, dans laquelle il a partagé ses progrès ainsi que les difficultés rencontrées.

Réalisation

Le système est composé de deux hardware principaux : le smartphone du sauveteur / de la victime et le module communicant. Ce module est relié au smartphone par un câble USB. La communication entre le smartphone et le module se fait en UART.

Le standard USB mettant en œuvre un protocole maître-esclave, il ne permettait pas de réaliser de l’émission / réception librement. Pour résoudre ce problème, un adaptateur USB On-The-Go (FT231X) a été utilisé.

Pour relier le câble USB au microcontrôleur, un adaptateur USB vers UART a été ajouté, ce qui permet de relier les broches RX/TX de l’USB au microcontrôleur et d’échanger en UART.

Fonctionnement général du système

Fonctionnement général du système

Le smartphone relié au module communicant

Le smartphone relié au module communicant

En ce qui concerne l’architecture logicielle, trois modules distincts ont été développés pour ces deux hardware :

  • L’interface utilisateur, développée en Java sur Android Studio avec le SDK associé. Ce programme gère l’application et les activités Android ainsi que l’interface permettant à l’utilisateur d’interagir avec le système.

 

  • Le programme principal du système de détection de victime d’avalanche. Il gère les différents états (mode détection / initial, victime, sauvetage) et interagit avec le module communicant. Il dispose d’une fonction pour détecter une avalanche à partir des accéléromètres du smartphone, ainsi que d’un algorithme pour déterminer la victime à sauver en priorité. Pour des raisons de portabilité, il a été codé en C++. Ainsi, il peut aussi être exécuté et testé depuis un PC Windows et ensuite être interfacé avec l’application Android.

 

  • Le programme du module communicant. Il a pour but de transmettre / recevoir les paquets radios. Il est initialisé en mode sauvetage ou victime en fonction de l’état du programme principal. S’il est initialisé en mode sauvetage, il demeure en attente des paquets radios des modules victimes, chaque paquet reçu étant transmis par UART vers le programme principal. En mode victime, il dispose d’un tampon de mémoire dédié au paquet de la victime, qui est mis à jour par le programme smartphone via UART. Ce tampon est transmis périodiquement via le module radio. Selim l’a d’abord programmé en C, puis en Rust. Le plan de test a conclu que le temps de transmission sur la version en Rust du projet est environ trois fois plus court que la version en C. Cela s’explique en grande partie par le fait que la stack qui est utilisée en Rust (Easylink) est plus légère et ne dispose pas de couche MAC, contrairement au Ti Stack 15.4.

Conclusion

Pour la conclusion, écoutons Selim :

« Ce stage de fin d’études a été réalisé dans le contexte un peu particulier du covid.  J’ai appris à travailler en autonomie sur un projet avec mon tuteur de stage, j’ai pu expérimenter le télétravail et les réunions à distance.

L’aspect le plus enrichissant du stage a été la technique : j’ai réalisé un système basé sur plusieurs hardware et utilisant 4 langages de programmation (C, C++, Java, Rust) intégrés à différents modules logiciels interfacés entre eux.

Ce projet m’a également donné l’opportunité de découvrir le Rust, un langage de plus en plus populaire dans le monde du développement logiciel.

J’ai pu enrichir mes connaissances dans le domaine de la communication radio, ses différentes bandes passantes, leurs utilisations et leurs impacts sur la performance (puissance, portée etc.).

Je me suis familiarisé avec les environnements de développement de Texas Instruments, et pour finir j’ai aussi pu faire du développement Android pour créer mon application sur smartphone.

A l’issue de ce stage, j’ai rejoint avec plaisir ELSYS Design en tant qu’ingénieur développement logiciel. »

 

Envie de réaliser votre stage de fin d’études chez ELSYS Design ? Alors rendez-vous sur notre site emploi pour consulter nos offres (à partir du 4ème trimestre), ou déposer une candidature spontanée !