Table des matières

Caractéristiques du drone

Structure

Nous avons imprimé, via les imprimantes 3D du PMCLab, une partie de notre structure, et utilisé de la fibre de carbone pour les deux grandes plaques (haut et bas) qui figurent au centre et qui rassemblent la plupart de l’électronique et la batterie du drone. Nous avons réalisé une première version des bras en décembre, puis une nouvelle version mi-janvier, comportant un petit allongement de la longueur ainsi qu’une nouvelle forme en nid d’abeille, à la fois résistante et légère. Les bras ont été réalisés en modélisation 3D par Gabin via le logiciel SolidWorks, ainsi que la forme des plaques de fibre de carbone découpées. Nous avons découpé le carbone en utilisant la fraiseuse à commande numérique.

Mécanique

Choix des composants mécaniques

Nous nous orientons vers un modèle de moteur assez classique pour un drone de diamètre 30 – 40cm et de poids d’environ 1Kg : le modèle D2822/14 Brushless Outrunner 1450kv.

Le kV est le nombre de tours par minutes que ferait le moteur à vide avec une tension d'un volt. L'influence de ce paramètre se traduit par le couple développé par le moteur et la taille de l'hélice que ce dernier pourra emporter. Un moteur avec un faible kV (en-dessous de 1000) signifie un plus grand couple, nécessitant de plus grandes hélices. Le moteur nécessitera plus de voltage et moins de courant. Globalement on peut associer un faible kV à un drone d'observation, portant des charges utiles “lourdes”, et un kV élevé (1200 et plus) à un quadricoptère donc les spécifications seraient basées sur la réactivité et la vitesse pure. Nous avons choisi d'utiliser un moteur avec un kV assez élevé afin d’optimiser la réactivité et la fluidité de l’appareil.

Nous allons également acheté plusieurs tailles d’hélices différentes pour les tester et déterminer la meilleure combinaison moteur – hélice. Nous utilisons actuellement des hélices 2 pales 8 pouces : 1 paire d’hélices CW (clockwise – tournant dans le sens des aiguilles d’une montre) et 1 paire d’hélices CCW (counter-clockwise – tournant dans le sens inverse). Les deux paires se croisent en formant un X.

Attention : Comme le drone comporte deux paires d’hélices en sens inverse, il faut aussi inverser le sens des moteurs. Les moteurs doivent suivre le mouvement pour lesquelles les hélices sont faites. Depuis l’ESC, on peut inverser le sens de rotation de chaque moteur simplement en inversant les fils rouge et jaune.

Electronique

L’électronique est composée de deux parties : une partie présente sur le drone et une partie au sol, pour le pilotage.

Le drone embarque notamment la carte STM32F3Discovery, comprenant une centrale inertielle câblée (magnétomètre, accéléromètre, gyroscope) à interfacer en SPI ou I²C, mais aussi un Arduino Pro Mini (un module Arduino miniature), et une carte de régulation 5V et d'adaptation entre STM32F3Discovery et Arduino Pro Mini.

Les deux parties communiquent avec des modules sans-fil 2.4Ghz.

Au sol, la solution se compose d'un Arduino Uno, d'un shield Arduino USB Host, d'une manette PS3 connectée en USB (une évolution pourra être possible plus tard avec l'ajout d'un dongle Bluetooth sur l'USB Host) et d'un module RF 2,4 Ghz.

Informatique

STM32 : ARM Cortex-M4

Nous programmons sur le STM32F3Discovery en langage C, grâce à l’IDE CooCox. Cet environnement de développement est complet, gratuit et open-source. Il embarque d’origine des librairies constructeur, ce qui permet de programmer plus rapidement. Cela étant, nous ferons remarquer qu’une grande difficulté sur ce microcontrôleur fût de comprendre l’architecture des librairies constructeur, de décoder le fonctionnement des principales procédures et fonctions, pour parvenir à discerner ce qui nous était utile ou pas. La documentation des librairies de STMicroelectronics nous a parue tout de même un peu légère, bien que des exemples soient fournis.

Nous développons un asservissement qui utilise des régulateurs PID (Proportionnelle Intégrale Dérivée) pour déterminer la puissance à fournir aux moteurs via les ESC et essayons de le perfectionner au maximum. Nous nous sommes notamment inspirés du mécanisme de MultiWii et du projet AQ32PlusF3. MultiWii, notamment, opte pour un mécanisme de transmission de la puissance aux moteurs très simple :

En apportant différents coefficients -1 ou +1 en X, Y et Z, en fonction des moteurs, on peut ainsi assez rapidement calculer la vitesse nécessaire à appliquer à chaque moteur.

Nous avons développé un filtre de Kalman pour obtenir des mesures fines des différents angles de référence du drone (yaw, pitch et roll).

Arduino

Nous développons, en parallèle, du code sur modules Arduino. Nous utilisons la librairie MiRF pour la transmission sans-fil entre la base au sol et le drone, et la librairie USB-Host pour le USB Host shield connecté au joystick PS3. On relève la valeur des sticks analogiques et on la convertit en des entiers de -127 à 127 (selon que l'on positionne le stick à gauche ou à droite, en bas ou en haut). Ainsi la base au sol envoie en permanence des trames d'informations (chaque valeur est sur 8 bits signés):