ArduPilot : à la découverte de AP_Periph

Parce que l’univers ArduPilot est trop peu représenté sur Helicomicro, j’ai laissé le clavier à Pierre Kancir de Hivebotics, ingénieur en robotique et expert ArduPilot, spécialiste dans le domaine. Dans ce post, il vous présente le projet AP_Periph, basé sur ArduPilot

Andrew Tridgell (alias Tridge), chef de projet d’ArduPilot, vient de sortir la version 1.2.0 de AP_Periph. Cette nouvelle version apporte plusieurs améliorations notables comme :

●         La simulation Software-In-The-Loop (SITL) pour les périphériques AP_Periph.
●         Le support des modules batterie.
●         Le support du protocole MSP pour les autres autopilotes type Betaflight.
●         Ajout du support de plusieurs cartes disponible à la vente.

Super. Mais qu’est ce que c’est que AP_Periph ? 

Un exemple de carte AP_Periph : mRo CAN Node F303.

AP_Periph vient de ArduPilot Peripheric. L’idée principale était de fournir un socle logiciel de base pour créer plus simplement des périphériques utilisant le protocole UAVCAN. Le projet utilise maintenant l’ensemble des librairies logicielles disponibles dans ArduPilot, tant capteurs (capteur de distance, GNSS, etc.) qu’effecteurs (PWM, ESC, LED, etc) pour construire de nouveaux périphériques. 

Le logiciel est basé sur le système de construction mis en place pour le système d’exploitation embarqué Chibios, qui est utilisé par ArduPilot sur les cartes avec micro-contrôleurs comme les Cube ou les Pixhawk. Ainsi toute la configuration d’une carte avec AP_Periph se fait en utilisant un seul et unique fichier de configuration (hwdef.dat) qui va définir les entrées/sorties de la carte et les librairies logicielles à utiliser. Cela permet par exemple de définir un périphérique compatible avec UAVCAN avec seulement un micro-contrôleur de type STM32F103 et 128 Ko de mémoire flash.

Exemple de carte AP_Periph

Qu’est-ce qui est disponible actuellement comme librairies ?

●         Modules GNSS (dont  le support du RTK)
●         Magnetomètres (SPI ou I2C)
●         Baromètres (SPI ou I2C)
●         Capteurs de vitesse d’air (I2C)
●         Capteurs de distances (UART or I2C)
●         ADSB (Ping ADSB sur UART)
●         Moniteur de Batterie (Analog, I2C/SMBus, UART)
●         LEDs (GPIO, I2C or WS2812 serial)
●         Switch de sécurité et notification LED associés
●         Buzzer (tonealarm ou simple GPIO)
●         Sortie RC (Tous les protocoles standard)

La partie UAVCAN supporte les fonctionnalités suivantes :

●         Génération du bootloader
●         Mise à jour du bootloader par port série ou CAN
●         Mise à jour du firmware
●         Allocation de noeud CAN dynamique ou statiques
●         Stockage des paramètres dans la mémoire flash
●         Auto-diagnostique et sécurité : watchdog, CRC, autotest, etc.
●         Mise à jour avec MissionPlanner ou les outils UAVCAN comme uavcan-gui-tool

Les firmwares pour les différentes cartes maintenus par le projet se trouvent sur le site de firmwares d’ArduPilot.

Quelques revendeurs de cartes basées sur AP_Periph ?

La suite ? 

Beaucoup de projets sont en cours sur AP_Periph : Mavlink à travers UAVCAN, support Ethernet, AHRS sur UAVCAN, etc. 

Le code ?

Comme tout le code d’ArduPilot, le code AP_Periph est disponible sur le Github. Le code est sous licence GPLv3. Il n’est pas nécessaire de le mettre en ligne sur un dépôt public comme Github, mais si vous vendez un module basé sur AP_Periph, vous devez proposer le code à votre client ! On vous encourage aussi à proposer vos modules sur ArduPilot afin qu’ils profitent des améliorations continues du code du projet.

Plus de questions ?

Rendez-vous sur le serveur Discord d’ArduPilot !

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

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

×