Do it Yourself : construire son drone - Partie 3

Si vous avez bien suivi les deux premières parties de cet article, votre drone est désormais quasiment prêt pour le décollage ! Vous pouvez ainsi le contrôler manuellement, et ses capacités par défaut en font un appareil autonome dans certaines situations. Dans cette troisième et dernière partie, vous découvrirez comment choisir et installer votre batterie, et enfin, comment interagir avec le multicopter.

Si vous avez bien suivi les deux premières parties de cet article, votre drone est désormais quasiment prêt pour le décollage ! Vous pouvez ainsi le contrôler manuellement, et ses capacités par défaut en font un appareil autonome dans certaines situations. Dans cette troisième et dernière partie, vous découvrirez comment choisir et installer votre batterie, et enfin, comment interagir avec le multicopter.

Une LiPo et ça décolle...

Afin d’alimenter l’ensemble des systèmes de l’appareil, vous devez équiper votre drone d’une batterie. L’idéal, particulièrement lorsque l’on utilise des moteurs de type brushless, est d’utiliser le Lithium Polymère, plus communément appelé LiPo. Ce type de batterie a pour avantage de conserver l’intégralité de sa puissance tout au long de la décharge sans avoir d’effet palier.

Les cellules (“S”)

Les batteries de type LiPo sont composées d’une ou plusieurs cellules nommées “S”. Chacune de ces cellules a une tension nominale (c’est-à-dire une tension minimale utile, soit 80% de la décharge de la batterie) de 3,7V. Par exemple, pour une batterie LiPo de type 3S, la tension nominale est de 3 cellules x 3,7V soit 11,1V.

Soyez vigilants : la tension maximale d’une cellule d’une batterie LiPo est de 4,20V lorsque la batterie est chargée à 100%. Au-delà de cette tension ou si la tension d’une cellule est trop basse (en général en dessous de 3,3V), vous risquez d’endommager la batterie.

J’insiste sur ce point car il est important de comprendre que l’utilisation de batterie de type LiPo n’est pas anodin : un dépassement de la charge maximale peut entraîner un incendie de la batterie. A l’inverse, une décharge trop importante peut rendre inutilisable la batterie ou entraîner un phénomène de surchauffe qui endommagerait l’appareil sur lequel elle est fixée. Pour ces différentes raisons, je conseille d’utiliser un chargeur spécifique pour charger une batterie LiPo, mais j’y reviendrai un peu plus tard. Attention enfin, soyez précautionneux lors de sa manipulation : une batterie qui a reçu un choc peut devenir inutilisable.

Le nombre de cellules de votre batterie dépendra des moteurs que vous avez choisis. Vous trouverez dans les caractéristiques de ceux-ci le nombre de cellules qu’il leur faut pour fonctionner. Dans mon cas, les moteurs que j’ai choisis doivent fonctionner avec une batterie ayant au minimum 4 cellules et au maximum 8 (4S – 8S). J’ai choisi d’utiliser une batterie LiPo 4S car le système que j’utilise pour alimenter mon contrôleur de vol ne supporte pas des tensions supérieures à ce que fournissent les batteries avec plus de 4 cellules.

La capacité, la clé de votre autonomie

La deuxième caractéristique pour choisir votre batterie est sa capacité, exprimée en mAh. Plus la capacité est élevée, plus l’autonomie de votre batterie sera grande… et plus elle sera lourde. A vous de jouer pour trouver le bon compromis entre autonomie et poids. Pour ma part, j’ai fait le choix d’une batterie d’une capacité de 5100 mAh et je pense, d’après mes calculs, pouvoir dépasser les 10 minutes d’autonomie. En effet, partant du principe que la consommation des systèmes électroniques tels que le contrôleur de vol et autres GPS ne représente qu’un infime pourcentage de la consommation réelle du drone (et donc que les moteurs consomment 99% de l’électricité) je fais le calcul suivant :

  • un moteur (T-Motor Mt4008-18) qui tourne à 85% de sa puissance avec une hélice de 15” de diamètre consommera 5,6A selon les données du constructeur.
  • Mon drone est composé de 4 moteurs donc la consommation totale sera d’environ 4 x 5,6A = 22,4A.
  • Si on prend la formule temps(t) = Capacité(Q) / Intensité(I) on obtient le calcul t = 5,1(Ah) / 22,4(A) = 0,23(h), ce qui nous donne en minute : 13,8 minutes (0,23 x 60).

Cette durée n’est évidemment que théorique : chaque moteur ne vas pas forcément tourner constamment à 85% de sa puissance maximum et surtout la batterie ne doit pas être déchargée à plus de 85% de sa capacité.

Le taux de décharge

La dernière caractéristique à prendre en compte dans le choix de votre batterie est son taux de décharge. Il est, en général, indiqué sur la batterie en C (capacité), mais il est aussi parfois exprimé explicitement en Ampère. Il correspond au courant (A) que la batterie peut fournir en continu lors de sa décharge. Ma batterie LiPo de 5100 mAh de capacité, dont la valeur est de 35C, fournit un courant égal à 35 fois sa capacité soit 178,5A (35 x 5100 mA = 178,5A).

Le taux de décharge est un élément à prendre en compte car il permet de s’assurer que la batterie sera capable de fournir un courant continu suffisant pour faire fonctionner les moteurs et l’électronique. En effet, imaginez la mauvaise surprise en vol si la batterie ne peut plus fournir suffisamment de courant !

Vous trouverez chez les différents vendeurs des batteries de toutes les marques avec des connecteurs différents. Veillez à vérifier quel type de connecteur est soudé sur votre batterie afin de pouvoir adapter votre montage avec le bon connecteur. En général, vous avez deux choix qui s’offrent à vous si votre batterie a un connecteur différent du reste de votre montage : soit vous coupez et soudez un nouveau connecteur que vous aurez pris le soin d’acheter, soit vous achetez un adaptateur qui fera la jonction entre les deux types de connecteurs différents.

En ce qui concerne les marques de batterie, les mieux réputées mais aussi les plus chères sont les marques Tattu, Hyperion et Kypom. Ces batteries ont une bonne durée de vie et les valeurs annoncées au niveau de la capacité et du taux de décharge sont fiables. D’autres marques très répandues car moins chères comme Turnigy ou Zippy semblent avoir un bon rapport qualité / prix, mais il semblerait que les valeurs annoncées soit un peu surestimées. Je vous conseille donc de vous renseigner avant d’acheter une batterie d’une marque inconnue afin d’éviter les mauvaises surprises.

Un chargeur sachant charger…

Pour charger votre batterie LiPo, équipez-vous d’un chargeur spécifique, permettant au notamment de surveiller le voltage au fur et à mesure de la charge, ceci afin de ne pas dépasser les limites critiques d’une part, et d’équilibrer la charge entre les cellules de la batterie d’autre part.

Il existe de nombreuses marques de chargeur avec plus ou moins de fonctionnalités et de sécurité, pour toutes les bourses. Pensez, lors de l’achat, à vérifier deux aspects :

  • le chargeur doit être compatible avec votre batterie, autrement dit capable de charger le nombre de cellules de votre batterie,
  • la connectique doit être la bonne si par défaut votre chargeur n’a pas les bonnes fiches.

La charge doit s’effectuer de préférence en 1C, c’est-à-dire que l’ampérage lors de la charge doit correspondre à la capacité de la batterie. Pour ma batterie d’une capacité de 5100 mAh, je charge à 5,1A. Certains constructeurs annoncent que l’on peut charger jusqu’à 5C. Cependant, il est conseillé de ne pas le faire afin préserver la durée de vie de votre batterie.

Enfin, gardez toujours un œil sur le processus de charge afin de pouvoir agir en cas de problème : n’oubliez pas que l’utilisation de ces batteries n’est pas sans risque !

4...3...2...1… Décollage !

Désormais équipés d’une batterie chargée, vous devez lui trouver une place sur (ou sous) votre multicopter. Vérifiez bien les dimensions de votre batterie d’une part, et les dimensions de la place que vous lui avez réservée d’autre part. Ayant mal anticipé ce point, j’ai dû improviser un bricolage pour pouvoir installer la batterie sous mon drone.

Une fois la batterie fixée, il est temps de vous préparer pour votre premier vol ! Voici les étapes-clés de calibrage et paramétrage à respecter :

  • Assurez-vous que tous les éléments électroniques ont bien été calibrés (Accéléromètre, boussole, gyroscope, etc.),
  • Vérifiez que le calibrage de la radio commande à bien été réalisé et vérifiez si vous avez besoin ou non d’inverser la commande correspondant au pitch. En effet, selon les modèles de contrôleurs de vol, il est possible que le drone entame un déplacement vers l’arrière lorsque vous pousserez la manette pour avancer,
  • Vérifiez que les ESC sont tous bien calibrés : lorsque vous jouez avec la manette des gaz, les moteurs doivent réagir en même temps et tourner à la même vitesse. On peut le voir facilement lorsque l’on remet les gaz à zéro : si les ESC ne sont pas tous calibrés de la même façon, un ou des moteurs tourneront pendant que les autres seront à l’arrêt. Si votre contrôleur de vol le permet, effectuez le calibrage sur les 4 ESC simultanément. Sinon, faites le ESC par ESC. Des tutoriels disponibles sur Internet vous aideront à réaliser le calibrage, des différences existent selon que vous passiez par le contrôleur de vol ou que vous branchiez le récepteur de la radio commande directement sur l’ESC à calibrer.
  • Si votre contrôleur de vol implémente les fonctions Return To Launch (RTL) ou Loiter, paramétrez-les sur votre radio commande : lors des premiers vols, ces deux fonctions peuvent vous être très utiles en cas de perte de repère ou si le contrôle devient un peu trop difficile.

Ainsi, vous êtes prêts pour votre premier vol de test ! Si vous voulez voir le mien, ça se passe à l’adresse suivante : http://youtu.be/xLndW0gOq5o

Allo Houston, ici le drone !

Dès lors que notre drone se retrouve dans les airs, on ne peut se fier qu’à nos yeux pour le diriger et évaluer les situations dans lesquelles il se trouve. De plus, construire un drone implique une recherche d’autonomie. J’aborde donc dans cette partie le sujet de la télémétrie, qui nous permettra non seulement d’avoir un feedback du contrôleur de vol, mais également de créer des missions autonomes… et de faire un peu de programmation !

Il existe plusieurs façons de recevoir et d’envoyer des informations à votre drone depuis votre contrôleur de vol. Je n’en évoquerai que deux, en lien avec le contrôleur de vol que j’ai décidé d’utiliser, en l’occurrence le contrôleur Pixhawk. Je vous invite à vous renseigner sur les possibilités qu’offre le contrôleur que vous aurez choisi.

Ceci étant dit, voici les options de télémétrie qui s’offrent à nous :

  • Le module de télémétrie radio : ce module est composé de deux parties, une première partie destinée à être installée sur votre multicopter et qui se branche sur le port “Telem 2” de votre controleur Pixhawk. Ce module sera alimenté par le contrôleur et vous n’aurez rien d’autre à faire que de le brancher et de le fixer. La deuxième partie est équipée d’une prise USB à brancher sur votre ordinateur. Lorsque les deux parties sont alimentées respectivement par le drone et par l’ordinateur, l’appairage se fait automatiquement et vous aurez ainsi un canal de communication ouvert entre les deux. Libre à vous d’utiliser un logiciel dédié ou de tenter de programmer directement via le langage MavLink via ce canal. Une chose importante à savoir sur ce module est qu’il existe deux versions avec des fréquences différentes. Une version à 915 Mhz pour les États-Unis et une version à 433 Mhz pour le reste du monde. Ce n’est pas un détail : j’ai fait l’erreur de commander un module avec une mauvaise fréquence, et je possède donc des appareils que je ne peux utiliser sous peine de brouiller certaines fréquences de téléphonie portable.
  • Un Raspberry Pi : cette carte a de nombreux avantages et permet, par son interface GPIO, de se connecter elle aussi au port “Telem 2” afin d’échanger avec le contrôleur de vol. De préférence, utilisez un module USB wifi pour communiquer avec un ordinateur au sol. Vous pouvez également communiquer avec un autre type de périphérique tel qu’un smartphone, lui aussi équipé du wifi (la procédure pour se connecter et communiquer est un peu plus complexe dans ce cas).

Raspberry Pi, Wifi, Ordinateur : équipez votre station de contrôle

Pour faire communiquer notre drone avec notre ordinateur (sur lequel on aura préalablement pris le soin d’installer le logiciel “Mission Planner” offrant toutes les fonctionnalités d’une station de contrôle), 5 grandes étapes sont nécessaires.

Pré-requis :

  • Un dongle USB wifi opérationnel
  • Un  Raspbian wheezy minimum d’installé
  • Une connexion internet
  • Des câbles breadboard, Arduino, Pi.
  • Un connecteur DF13 de 6 positions

Etape 1 : la fabrication du câble de connexion

La première étape consiste à fabriquer le câble qui va relier le contrôleur de vol avec la carte Raspberry. Pour le réaliser, j’ai utilisé des câbles classiques avec connecteur femelle pour breadboard pour réaliser les branchements sur les pins du Raspberry, et de l’autre côté un câble avec un connecteur DF13 (6 positions) pour le branchement dans le connecteur du contrôleur de vol. Vous n’aurez besoin que de 4 positions sur les 6. Pour le sens de branchement, il faut respecter les branchements suivants :

  • Pour le connecteur DF13 (6 positions) :
  • GPIO raspberry pi :

Pour résumer ces branchements, le fil rouge correspond à la sortie 5V du contrôleur qui vient se brancher sur l’entrée 5V du Raspberry. Dans ce cas, c’est le contrôleur qui alimente la carte. Le fil noir correspond au ground, et les fils jaune et vert correspondent respectivement au signal de transmission et de réception.

Une fois votre câble fabriqué, place désormais à l’installation des librairies qui permettront au Raspberry de communiquer avec le contrôleur de vol, mais aussi de renvoyer l’information vers l’ordinateur distant.

Etape 2 : la désactivation du contrôle du port série par l’OS

Pour réaliser la désactivation du contrôle du port série par l’OS, vous devez vous connecter en SSH à votre Raspberry, puis entrer la commande suivante :

sudo raspi-config

Lorsque la fenêtre de configuration s’affiche, sélectionnez la 8ème ligne : “Advanced Option”.

Dans l’écran suivant, sélectionnez également la 8ème ligne “A8 serial”.

Sélectionnez ensuite ”No” dans l’écran suivant.

Un reboot s’impose maintenant pour prendre en compte le nouveau paramétrage.

Etape 3 : la récupération et l’installation des librairies MAVLink et  MAVproxy

Cette étape nécessite en premier lieu de mettre à jour la liste des librairies :

sudo apt-get update

Puis installez les librairies et utilitaires nécessaires à l’installation de MAVLink et MAVproxy :

sudo apt-get install screen python-wxgtk2.8 python-matplotlib python-opencv python-pip python-numpy python-dev libxml2-dev libxslt-dev

Enfin, récupérez et installez les librairies MAVLink et MAVproxy :

sudo pip install mavproxy

Etape 4 : le test de connexion

Vous êtes désormais prêts à faire un test de connexion entre le Raspberry Pi et le contrôleur de vol. Pour cela, il est nécessaire de connecter la carte au contrôleur sur le port “Telem 2” grâce au câble précédemment fabriqué, puis de mettre sous tension le drone et par la même occasion le contrôleur de vol et le Raspberry.

Une fois connectés en SSH au Raspberry, entrez la ligne de commande suivante : sudo -s mavproxy.py --master=/dev/ttyAMA0 --baudrate 57600 --aircraft monDrone Si tout se passe bien, vous obtiendrez le résultat suivant :

Dans la commande précédente, l’argument master correspond au port utilisé pour se connecter au contrôleur de vol. Dans le cas d’un Raspberry, on utilise le port serie qui est  /dev/ttyAMA0. L’argument baudrate correspond à la vitesse de transmission sur le port. N’essayez pas de mettre plus 57600 lorsque vous utilisez le port série du Raspberry car cela ne fonctionne pas ! Le dernier argument correspond au nom de dossier qui sera créé pour stocker les logs et données de télémétrie.

Etape 5 : l’envoi des données vers Mission Planner

La connexion étant fonctionnelle, vous allez pouvoir faire transiter les informations du contrôleur vers le logiciel Mission Planner en passant par la carte Raspberry Pi.

Quelques mots sur Mission Planner en préambule : ce logiciel, si vous avez choisi d’utiliser un contrôleur de vol de type Pixhawk ou APM, s’avère indispensable car il vous permet, entre autres choses, de mettre à jour le firmware du contrôleur, de faire les calibrages de l’accéléromètre, du compass, de la radio commande, etc. C’est une véritable « boite à outils » qui implémente aussi les fonctionnalités relatives à une station de contrôle, c’est-à-dire qu’il affiche plusieurs paramètres concernant votre drone, comme son assiette, son altitude, sa vitesse, son orientation, sa position GPS, etc. Son seul défaut est qu’il n’est disponible que sous Windows !

Voici le lien de téléchargement du logiciel, si vous voulez vous faire une idée de ses fonctionnalités : http://ardupilot.com/downloads/?did=82

Pour pouvoir rediriger les informations vers l’ordinateur distant où Mission Planner est installé, il faut récupérer son adresse ip avec une invite de commande par exemple et la commande ipconfig

Une fois l’adresse ip récupérée, connectez-vous en SSH sur le Rapberry connecté au contrôleur de vol, puis tapez la commande suivante :

mavproxy.py –master=/dev/ttyAMA0 –baudrate 57600 –out 192.168.1.11:14550 –aircraft MonDrone

Ici l’argument “out” correspond à l’adresse ip de l’ordinateur distant sur lequel Mission Planner est installé.

Sur l’ordinateur distant, lancez Mission Planner, puis en haut à droite de la fenêtre, sélectionnez dans le menu déroulant “UDP”, laissez la vitesse par défaut puis cliquez sur “Connect”. Une fenêtre popup vous demandera le numéro de port UDP, il suffit alors d’entrer le port 14550.

Votre drone est ainsi connecté à la station de contrôle. Vous pouvez prendre votre drone dans vos mains et le bouger pour voir l’indicateur d’assiette évoluer en même temps !

 

Pour aller plus loin…

Le fait de pouvoir communiquer avec le contrôleur de vol sans passer par la radio-commande nous donne la possibilité de faire des scripts, voire des programmes, pour diriger notre multicopter. La société qui développe le contrôleur de vol Pixhawk a décidé de mettre à disposition une API afin de multiplier les possibilités d’usage de notre drone. Je vous propose ici de voir ensemble un exemple très simple d’utilisation de cet API, avant de vous laisser la main pour des projets plus complexes.

Le principe

L’exercice vise à utiliser l’API DroneKit en Python, dont vous trouverez la documentation complète à l’adresse suivante : http://dronekit.io Avec cette API, vous pourrez réaliser un script qui fera décoller le multicopter pour atteindre une altitude donnée, puis déplacer le drone à 2 points GPS différents, puis à le faire atterrir. Pour réaliser ce vol, il est évidemment nécessaire que votre multicopter soit équipé d’un GPS. L’API DroneKit est utilisable pour plusieurs plateformes : Cloud, Android, et Python. Puisque le programme a pour vocation d’être exécuté sur un Raspberry, il me paraissait logique d’utiliser la librairie Python pour réaliser le script.

La récupération et l’installation de l’API DroneKit

Connectez-vous en SSH sur le Raspberry puis entrez la commande suivante : sudo pip install dronekit

La création du script python

La connexion étant fonctionnelle, vous allez pouvoir faire transiter les informations du contrôleur vers le logiciel Mission Planner en passant par la carte Raspberry Pi.

Quelques mots sur Mission Planner en préambule : ce logiciel, si vous avez choisi d’utiliser un contrôleur de vol de type Pixhawk ou APM, s’avère indispensable car il vous permet, entre autres choses, de mettre à jour le firmware du contrôleur, de faire les calibrages de l’accéléromètre, du compass, de la radio commande, etc. C’est une véritable « boite à outils » qui implémente aussi les fonctionnalités relatives à une station de contrôle, c’est-à-dire qu’il affiche plusieurs paramètres concernant votre drone, comme son assiette, son altitude, sa vitesse, son orientation, sa position GPS, etc. Son seul défaut est qu’il n’est disponible que sous Windows !

Voici le lien de téléchargement du logiciel, si vous voulez vous faire une idée de ses fonctionnalités : http://ardupilot.com/downloads/?did=82

Pour pouvoir rediriger les informations vers l’ordinateur distant où Mission Planner est installé, il faut récupérer son adresse ip avec une invite de commande par exemple et la commande ipconfig

Une fois l’adresse ip récupérée, connectez-vous en SSH sur le Rapberry connecté au contrôleur de vol, puis tapez la commande suivante :

mavproxy.py –master=/dev/ttyAMA0 –baudrate 57600 –out 192.168.1.11:14550 –aircraft MonDrone

Ici l’argument “out” correspond à l’adresse ip de l’ordinateur distant sur lequel Mission Planner est installé.

Sur l’ordinateur distant, lancez Mission Planner, puis en haut à droite de la fenêtre, sélectionnez dans le menu déroulant “UDP”, laissez la vitesse par défaut puis cliquez sur “Connect”. Une fenêtre popup vous demandera le numéro de port UDP, il suffit alors d’entrer le port 14550.