Une solution Open Source pour le signalement électronique à distance à moins de 40 €

32
5268

La loi dite « drones » de 2016 et ses arrêtés et décrets d’application imposent le signalement électronique à distance à partir du 29 juin 2020 en France pour les appareils de plus de 800 grammes, avec un délai supplémentaire jusqu’au 29 décembre 2020 pour les appareils enregistrés sur AlphaTango avant le 29 juin 2020.

Comment se conformer ?

Si vous pilotez un appareil dépourvu de solution prévue par son constructeur, c’est à vous de vous équiper. Pierre Kancir de Hivebotics, ingénieur en robotique et expert ArduPilot, propose une solution logicielle en Open Source. Elle permet d’utiliser l’une des cartes électroniques disponibles dans le commerce pour y injecter le code nécessaire à la transformer en dispositif de signalement électronique à distance conforme avec la loi de 2016.

Je laisse le clavier à Pierre…

Ce signalement électronique repose sur l’envoi de trames « beacon » avec un équipement wifi en utilisant une structure et un protocole définis dans l’arrêté du 27 décembre 2019. La difficulté d’implémentation du signalement électronique vient de la technique d’envoi des trames. Contrairement à certaines idées reçues, l’utilisation de la trame « beacon » ne nécessite pas de créer un point d’accès wifi sur lequel on doit se connecter pour récupérer les informations. La trame « beacon » est justement une trame qui ne nécessite pas d’appairage d’équipement wifi. Lorsque vous utilisez votre gestionnaire réseau pour détecter et afficher les points d’accès wifi présents autour de vous, ce sont ces mêmes trames « beacon » qui s’affichent, indiquant les informations émises par les différents points d’accès wifi autour de vous.

Solution Open Source

La difficulté repose donc sur les connaissances nécessaires pour pouvoir faire transmettre cette fameuse trame par votre puce wifi. L’encodage des informations ne présente pas de réelles difficultés pour peu qu’on sache un minimum coder. Il existe peu de solutions actuellement sur le marché, notamment pour les budgets modestes. C’est pourquoi nous vous proposons une solution open source que j’ai réalisé avec le soutien d’Airbot Systems afin de vous permettre de faire vous même votre module de signalement électronique pour moins de 40€, sans savoir coder, ni souder !

A télécharger…

Quatre dépôts ont été mis en ligne :

Explications

La librairie C++ est un simple fichier .h qui permet de faire l’encodage des informations de la bonne façon. Le code Python est un exemple de code utilisable sous Linux pour générer et envoyer des trames d’identification avec un système MAVLink (comme le simulateur d’ArduPilot). Le code Python est séparé en deux. Un script permet de récupérer les informations MAVLink et d’envoyer la trame beacon. Le second script scanne les trames wifi reçu par votre ordinateur pour décoder les trames de signalement électronique drone. Ce code n’utilise que des outils standard et fonctionne sur Rasberry Pi. Vous trouverez aussi dans la documentation de ce dépôt comment utiliser un logiciel pour voir toutes les trames beacon qui sont captées par votre ordinateur.

Recommandations

Le dernier dépôt propose la création d’un module indépendant et autonome permettant de faire votre propre signalement électronique. La carte utilisée en exemple est une carte TTGO T-Beam que vous trouverez facilement pour moins de 40 € chez votre vendeur favori. Privilégiez une version 1.0 ou 1.1 de la carte si possible pour plus de performance GPS. Cette carte est basée sur une puce wifi ESP32, bien connu des communautés de développeurs et bricoleurs, et possède un GNSS ainsi qu’un support de batterie pour compléter le tout. Nous avons réalisé une documentation sur comment programmer la carte, et pour plus de facilité, le code a été réalisé avec le framework Arduino. Il ne vous reste qu’à changer le nom de point d’accès wifi que va créer la carte et l’ID drone, avec celui que vous a fourni AlphaTango ! (La DGAC a précisé que ce serait bientôt disponible sur leur site). Attention, si vous ne modifiez pas les valeurs par défaut vous aurez un réseau wifi nommé « ILLEGAL_DRONE_AP » et un ID drone : « ILLEGAL_DRONE_APPELEZ_POLICE17 »…

Sur d’autres matériels ?

Évidemment, ce code est portable à d’autres cartes basées sur l’ESP32. La carte TTGO T-BEAM a été choisie car elle possède directement tout l’équipement pour être autonome pour le signalement électronique. [elle est dispo sur Amazon et d’autres sources comme Banggood]. Nous proposerons plus tard un autre exemple avec juste une puce ESP32 branchée sur une carte type Pixhawk ou Cube avec ArduPilot. En combinant, les informations de l’exemple Python et de l’ESP32, vous ne devriez pas avoir de mal à faire vous-même la modification pour obtenir un module d’émission encore moins chère et / ou plus intégré dans votre drone. Malheureusement, nous ne connaissons pas les protocoles utilisés par les autopilotes BetaFlight et autres, et n’avons pas le temps de proposer d’implémentation d’exemple. N’hésitez pas à proposer d’autres exemples qui utilisent les protocoles LTM, MSP, etc. comme entrées de la librairie pour envoyer les bonnes données dans la trame beacon.

La FAQ ?

  • Est-ce légal ?
    OUI ! C’est même la finalité puisqu’il s’agit de rendre un drone conforme à la réglementation. Le dispositif
     a été testé avec succès avec le code que propose la Gendarmerie pour la détection des trames : https://github.com/GendarmerieNationale/ReceptionInfoDrone
  • Est-ce que je dois payer pour utiliser ce code ?
    NON ! Le code que nous proposons est en libre accès.
  • Est-ce que je peux vendre des modules basés sur ce code ?
    OUI ! Dans le respect de la licence GPL qui impose que vous proposiez à votre acheteur un accès au code utilisé.
  • Est-ce que vous vendez des modules tout fait ?
    NON ! Pour ma part, je ne vends rien. Veuillez voir avec Airbot Systems ou d’autres entreprises pour avoir une carte clé en main.
  • Est-ce que je peux utiliser une autre carte avec ce code ?
    OUI et NON. Si c’est une carte avec une puce ESP32, alors vous n’aurez simplement qu’à changer la définition des ports de votre carte pour faire fonctionner le tout. Avec une autre puce, la librairie C++ sera fonctionnelle, mais vous devrez faire appel aux bonnes API de votre puce wifi pour émettre la trame beacon.
  • Qu’est-ce que je risque à voler avec l’ID par défaut ou sans signalement ?
    Une amende de 4e classe, donc forfaire à 135 € selon le décret du 30 octobre 2019.
  • Est-ce que je suis obligé d’utiliser votre librairie ?
    NON ! Vous avez un code référence qui fonctionne, vous pouvez créer votre propre librairie et outils ou utiliser ceux d’autres personnes ou entreprises.
  • Je n’ai jamais codé, est-ce que c’est dur à utiliser ?
    Normalement NON. Mais cela dépend de votre capacité à suivre des informations techniques. N’hésitez pas à poser des questions sur vos forums drones favoris, voire vous déplacer sur un terrain de modélisme ou Fablab pour qu’on vous montre comment faire !

Pierre Kancir (Hivebotics)
Julien Queffélec (Airbot Systems)

32 COMMENTAIRES

  1. Si tu as un contrôleur de vol avec un GPS, prend juste un ESP32 et récupére les infos de la télémetrie. Tu aura juste une petite puce wifi pour 4€ à intégré.
    La je proposai juste une version autonome. Il existe d’autres cartes avec GNSS, à vous de jouer pour proposer un autre exemple !

  2. @khancyr , j’avais déjà réfléchie a cette solution esp32 ,maintenant le coté prog je suis une bitoss ,et là c’est cool ,je pense que je vais apprendre plein de truc , par contre ,au niveau propa wifi ,c’est pas terrible (par contre la radio c’est mon boulot ) . Et j’ai toujours pas compris la doctrine d’emplois de ce système là par la gendarmerie .

  3. Le choix a été fait du wifi pour simplifier les déploiements auprès des forces de l’ordre. Je trouve l’utilisation de la trame beacon assez astucieux en faite. Aprés c’est sur que j’aurai plus vu l’utilisation d’un LORA vers LORAWAN public. On aurait eu un U-Space facile et centralisé facilement !

  4. Il me semble que ces cartes ont 2 parties RF:
    – une pour le GNSS
    – une pour cibler la réception LORA et alors c’est du 433MHz, 868MHz, 915MHz ou 923MHz selon le choix.
    Même si le chip TTGO et son firmware supportent le protocole WIFI, je ne suis pas sûr que la partie RF permette de diffuser efficacement une trame BEACON en 2.4GHz.
    Quelqu’un peut infirmer mon feeling?

  5. Autant mettre des vraies sources à pas cher si tant est que mes commentaires passent une nouvelle fois

  6. Super 🙂 J’ai quelques questions sur le chois de l’ESP32
    – Quelle doit être la puissance légale de ce « beacon » ?
    – Pourquoi faut-il un ESP32 pour juste envoyer une trame en 2,4Ghz ? Quel est l’avantage sur un petit uC comme un petit PIC et un module radios genre NRF24L01 qui présente des versions 100mW pour moins de 10€ ?

    Merci d’avance.
    John3volts3

  7. La je ne comprends plus trop. La loi drone de 2016 n’est elle pas remplacée par la nouvelle loi Européenne? C’est le principe de toute nouvelle loi.

  8. J’avais la carte en stock, cà fonctionne et çà fera l’affaire… Par contre, ce sera sur le bord du terrain et toujours le même identifiant alphatango… quite à être ridicule, autant l’être jusqu’au bout…

  9. @ LeonZ : Cette loi de 2016 reste en vigueur tant que la suite n’est pas elle-même entrée en vigueur, et ça on ne sait toujours pas quand ce sera, dans les faits. D’ailleurs si tu as un complément d’info dans ton pays, je prends toujours 🙂

  10. @FerARepasser : Si ça fonctionne bien, c’est dans le standard Wifi pour les points d’accés de toute façon. Si tu regardes avec Wireshark, tu verra que le point d’accés spam des trames beacons ,par défault à 10Hz mais j’ai baissé à 1Hz

    @John3volts3: le choix de l’ESP32 c’est fait sur la simplicité d’approvisionnement et programmation. N’importe quelle puce Wifi avec une API fera bien l’affaire. Pour le NRF24L01, c’est peut être possible mais je pense que ça va être complexe de faire la bonne modulation pour matcher une trame bacon 802.11. Aprés juste l’ESP32 est pas chère, un ESP8266 fonctionnera aussi (avec une légère différence pour envoyer la trame).
    Il n’y a pas de spécification sur la distance, ils précisent juste au maximum de puissance alloué sur 2.4GHz soit 100mW. Aprés tu peux toujours joué au con et ne pas mettre d’antenne sur ta puce wifi, théoriquement c’est valide mais tu va porter à 2m et prend le risque que les forces de l’ordre neutralisent ton drone car il envoie pas de signalement suffisamment loin. Avec un ESP32 tu as bien au moins 50m même en ville, donc c’est plutot confortable.

  11. L’idée me plait, ne me voyant pas mettre 150 € pour un module tout prêt !

    Est-ce que quelqu’un pourrait faire une vidéo tuto, ou au moins un tuto pour expliquer comment modifier injecter le code dans la carte TTGO T-Beam ?
    Je connais un peu sous arduino, mais là, je ne connais pas du tout, et je ne pense pas être le seul.

    Merci et vraiment super idée.

  12. Pensez vous qu’il serait possible d intégrer ceci dans un contrôleur de vol avec inav et de piloter un esp32 ou une autre puce pour envoyer les trames? De plus une modification au niveau de inav configurator permettrait de modifier le nom du réseau wifi et l ID du drone. Je pense qu il faut ouvrir une demande sur le github d’inav:https://github.com/iNavFlight/inav/wiki
    Qu’en pensez vous?

  13. Si Inav est capable de sortir un protocol de télémétrie pour avoir accés aux données demandés, il n’y aura pas de problème.
    Le fait de ne pouvoir changer l’ID du drone que par programmation de la carte est intentionnel ! On pourrait tout à fait utilisé le point d’accés wifi pour changer l’ID mais ça deviendrait limite vis à vis de l’inviolabilité qu’ils demandent dans la loi. Personnellement, je ne le recommande pas

  14. @khancyr, merci des explications. Pour la partie radio, pratiquement tout est dans l’ESP32 ou un autre composant? Je veux parler du LNA, les filtres, DAC, ADC, Power Amp … Si en effet il n’y a pas de composant passif dans la chaine radio le 2.4GHz doit passer sans problème. Si par contre la partie radio est adaptée à la fréquence cible (433MHz, 868MHz, 915MHz ou 923MH), un signal étalé en OFDM sur une porteuse 2.4GHz risque d’être distordu non?

  15. @khancyr, pas la peine de répondre:-). Je suis allé chercher le esp32-s2_hardware_design_guidelines_en.pdf pour voir de quoi il en retourne.
    Le ESP32 fait bien toute la partie RF y compris analogique et la pin LNA_IN est raccordée à l’antenne physique au travers d’un simple filtre d’adaptation CLC. Il suffit donc de changer l’antenne par une antenne 2.4GHz pour que le module puisse travailler dans les bandes 2.4GHz.

  16. @FerARepasser : Je pense que tu a mal lu ce que fait la carte TTGO T-BEAM …
    la puce ESP32 est une puce intégré pour justement permettre de travailler avec un signal wifi. Généralement, elle a une antenne PCB mais on peut la trouver avec une antenne extérieure pour plus de portée.
    Sur la carte TTGO T-BEAM, il y a un récepteur GNSS (ça émet pas, juste de la réception), une puce WIFI (en l’occurrence l’ESP32) et une puce LORA (en 868MHz) avec une antenne externe. Le carte est capable de faire du LORA et du WIFI en même temps ! Il n’y a rien à changer.

  17. @khancyr, j’avais zappé cet aspect du WiFi tout en un. Il y a donc une antenne dédiée sur la carte TTGO T-BEAM pour le 2.4GHz. Elle est en microstrip ou c’est celle qui part derrière le PCB? Je pensais que celle là était pour la reception GNSS. Si c’est un microstrip, y a t’il un connecteur pour en rajouter une plus performante?

  18. Pour FerARepasser, oui il y a un connecteur d’antenne en bas à gauche de la photo du module en face Tx/Rx.

  19. Bonjour et merci pour cette implémentation.
    J’ai adapté le code sur un lolin32, mais lorsque je lance le python de ReceptionInfoDrone je n’obtiens en réponse que des “module object has no attribute ‘dumps’ “.
    Une idée ?
    Merci

  20. Bonjour,
    lorsque je regarde les modules LILYGO TTGO T-Beam ESP32, on voit qu’il y a 4 fréquences radio possible (433/868/915/923Mhz).
    Si j’ai bien compris, on n’utilise pas cette partie de la carte pour ce montage ; donc n’importe lequel de ces modules convient.
    Pouvez-vous me le confirmer ?
    Merci

  21. Je ne comprends pas pourquoi ils n’ont pas choisi le FLARM des planeurs sur 868mhz…
    Le réseau et le matériel existe déjà…
    Par contre ce n’est pas du Wi-Fi et ça impose un module mais le TTGO T-BEAM fait le taf pour moins de 50€…

  22. En fait, je n’avais rien compris, et la réponse a été donnée plus haut :
    “une puce WIFI (en l’occurrence l’ESP32) et une puce LORA (en 868MHz) avec une antenne externe. Le carte est capable de faire du LORA et du WIFI en même temps”

  23. Je n’y connais pas grand chose mais la question de Nicolas Pujol m’intéresse. La loi semble imposer une fréquence de fonctionnement à 2,4 Ghz (2400 à 2483,5 Mhz) et la carte TTGO T-Beam fonctionne sous 433/868/915/923 Mhz. Du coup, c’est bon ou pas? Je ne voudrais pas me lancer dans un dispositif qui ne soit pas conforme …

LAISSER UN COMMENTAIRE

Please enter your comment!
Please enter your name here

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.