Vous êtes sur la page 1sur 23

Construction et programmation d’un drone

Marc Sigl et Alessandro Diviani, 3M6


Suivis par Samuel Urfer
Novembre 2023 / Gymnase de Chamblandes

1
Abstract :

Construction et programmation d’un drone

Gymnase de Chamblandes Alessandro Diviani


Marc Sigl

Travail de maturité 2023


Répondant : M.Urfer

06.11.2023

L'objectif de ce travail de maturité effectué en binôme est de construire et de programmer


un drone à partir de zéro.
Nous avons commencé notre projet par la recherche des composants nécessaires. En
parallèle, nous nous sommes familiarisés avec la programmation. Une fois les étapes d'achat
et d'apprentissage terminées, nous avons commencé la construction du drone. Nous avons
soudé et connecté l'ensemble des composants précédemment achetés. Simultanément,
pendant la phase de construction, nous avons commencé la rédaction du rapport. Ce
document a été élaboré au fur et à mesure de notre progression et de l'expansion de nos
connaissances sur le sujet.
Finalement, nous avons obtenu un code opérationnel pour le drone, cependant, le vol du
drone lui-même ne s'est pas déroulé de manière optimale. Des ajustements sont nécessaires
pour améliorer sa performance en vol. Bien entendu, notre projet peut être perfectionné,
notamment en optimisant le code pour assurer un vol plus stable et en explorant des options
telles que l'intégration d'une caméra pour la capture vidéo ou l'ajout de capteurs de distance
afin d'améliorer la sécurité.

2
Remerciements :
Nous tenons tout d’abord à remercier toutes les personnes qui ont contribué à notre projet.

En premier lieu, nous tenons à remercier notre répondant M. Urfer de nous avoir bien
encadrés cette année, en prenant le temps de répondre à nos questions et en nous aidant à
résoudre les problèmes sur le drone.

En second lieu, nous remercions David du magasin de drone « Digital Kwad » pour nous
avoir appris à souder et à monter un drone. Et un grand merci aussi à Nathan, étudiant à
EPFL, pour nous avoir appris les bases de la programmation.

3
Table des matières
1. Introduction ...................................................................................................................... 5

1.1 Quesque les drones ? ...................................................................................................... 5

1.2 Objectif du TM ................................................................................................................ 5


1.3 Méthode de travail et planification : .............................................................................. 5
2. Structure générale et dynamique de vol ........................................................................... 7

2.1 Structure générale d’un quadricoptère (FPV) ................................................................. 7


2.2 Dynamique de vol ........................................................................................................... 8
3. Schéma de câblage et description des composants .......................................................... 9

3.1 Schéma de câblage ......................................................................................................... 9


3.2 Composants .................................................................................................................. 10
3.2.1 Châssis .................................................................................................................... 10
3.2.2 Moteurs .................................................................................................................. 11
3.2.3 ESC (Electronic Speed Controllers) ......................................................................... 12

3.2.4 PDB (Power Distribution Board) ............................................................................. 13


3.2.5 Hélices .................................................................................................................... 13

3.2.6 Arduino ................................................................................................................... 14


3.2.7 Accéléromètre + Gyroscope ................................................................................... 15

3.2.8 Alimentation........................................................................................................... 16
3.2.9 Récepteur + Radiocommande + module ................................................................ 16

4. Structure du programme tournant sur l'Arduino Nano : ................................................ 18


4.1 Partie du programme qui gère l’Initialisation ............................................................... 18
4.2 Partie du programme qui se répète (boucle) ................................................................ 18
5. Problèmes et solutions .................................................................................................... 21
6. Discussion et conclusion : ............................................................................................... 22
7. Bibliographie ................................................................................................................... 23

4
1. Introduction :

1.1 Quesque les drones ?

Les drones sont des véhicules aériens pilotés à distance avec une télécommande. Ils sont tous
équipés d’hélices sur des moteurs, pour générer la poussée suffisante pour voler.
Ils sont de plus en plus populaires ces dernières années et trouvent leur utilité dans de
nombreux domaines tels que la surveillance, la photographie aérienne, la livraison de colis, la
recherche et sauvetage, l'agriculture, et bien d'autres. Les drones peuvent être équipés de
divers capteurs pour collecter des données utiles et capturer des images aériennes
impressionnantes.
Il y a différents types de drones, allant des petits jouets aux drones professionnels de grande
taille. Les drones peuvent être classés en fonction de leur poids, de leur puissance et du
nombre de bras ou de moteurs. La plupart des drones ont quatre moteurs, ce qu'on appelle
un quadricoptère.
Les drones professionnels sont généralement plus grands et plus coûteux que les drones
récréatifs. Ceux utilisés pour le transport de colis et les drones de surveillance militaire sont
parmi les plus grands et les plus avancés.
Les drones de loisir sont devenus très populaires récemment. Ils sont disponibles à différents
niveaux de compétence et de budget, les rendant accessibles à un large public. Ils sont utilisés
pour la photographie aérienne, la vidéographie, la course de drones et le vol en FPV (vue à la
première personne). De plus en plus, ils sont également utilisés dans l'industrie
cinématographique pour des prises de vue aériennes spectaculaires.

1.2 Objectif du TM :

L’objectif de notre projet est d’assembler et de programmer un drone télécommandé,


contrôlé à l’aide d’un microcontrôleur nommé “Arduino”.

1.3 Méthode de travail et planification :

Construire et programmer un drone, pour un TM, est un projet ambitieux. Nous avons d’abord
commencé à établir un planning des étapes pour arriver à l’objectif. Ensuite, nous avons divisé
le travail en tâches que chacun pouvait accomplir en utilisant ses compétences. Par exemple
au début, l'un de nous s’est chargé de la programmation avec le kit Arduino fourni par notre
professeur (pour apprendre les bases de la programmation), tandis que l'autre s’est
concentré sur la recherche des composants nécessaires à l’assemblage du drone. Une
communication et une collaboration régulières sont essentielles pour s'assurer que le projet
avance comme prévu. Nous avons également planifié des séances de travail régulières et des
points de contrôle avec notre professeur superviseur.

5
Malgré l’apparence amusante, mais passionnante de construire un drone, il a fallu prendre
en compte les différents défis et risques que ce projet amène.
Le plus grand défi est la complexité du projet en soi, qui nécessite une maîtrise en matière de
matériel, d’électronique, de programmation et de soudure.
Pour surmonter ces défis, nous avons fait appel à l’aide de personnes compétentes ou de
notre professeur.

Afin de maintenir l'ordre et la structure tout au long de notre projet, nous avons élaboré un
planning sous la forme d'un échéancier.
Voici donc le plan général que nous avons établi pour l'organisation de notre TM :

Plan d’organisation de notre TM

6
2. Structure générale et dynamique de vol :

2.1 Structure générale d’un quadricoptère (FPV) :

La structure générale d'un quadricoptère est composée d’un châssis (ici Readytosky Martian
FPV frame), de quatre moteurs (ici F40 2600kv) et de leurs ESC (ici pré-soudés aux moteurs).
Ce sont ces composants essentiels qui travaillent ensemble pour permettre le vol. Voici un
schéma de ces composants :

Schéma des composants essentiels pour un quadricoptère

Ces composants de base forment la structure générale d'un quadricoptère, mais il manque
encore plusieurs autres composants très importants, qui indiquent aux ESC comment faire
tourner les moteurs : un récepteur radio (ici Crossifire), un gyroscope/accéléromètre (ici
MPU-6050) et un contrôleur programmable (ici Arduino Nano).

Schéma des autres composants importants

Nous reviendrons en détail sur ces composants au chapitre 3.


7
2.2 Dynamique de vol :

Un drone est nommé en fonction du nombre de moteurs qu'il possède. Comme son nom
l'indique, un quadricoptère en a quatre. Les moteurs sont montés sur les bras du drone de
manière équilibrée pour assurer la stabilité en vol. La disposition des moteurs forme un carré,
chaque moteur étant positionné à un coin du carré. Cette configuration permet un contrôle
précis de l'inclinaison et de la direction du drone en ajustant la vitesse de rotation des
moteurs.

La stabilité d'un quadricoptère est liée au sens de rotation de ses moteurs. Deux moteurs en
diagonale tournent dans le sens horaire (CW), tandis que les deux autres tournent dans le
sens anti-horaire (CCW). Cette configuration en paires opposées crée un couple égal et
empêche le drone de tourner sur lui-même involontairement.

Schéma du sens des moteurs sur un quadricoptère en X

En ajustant la vitesse des différents moteurs, il est possible de donner les mouvements
suivants au drone (permettant de bouger dans chaque direction) :

Schéma des manœuvres possibles d’un quadricoptère

(cfdflowengineering, s.d.)

8
Throttle (Gaz): Le throttle contrôle la puissance des quatre moteurs du quadricoptère.
Lorsque l’on augmente le throttle, il fait monter le quadricoptère, tandis que le réduire le fait
descendre. En ajustant le throttle de manière équilibrée sur les quatre moteurs, le
quadricoptère peut maintenir une altitude stable.

Pitch (Tangage) : Le pitch est le mouvement de bascule avant-arrière du quadricoptère. Il est


déterminé par la rotation des moteurs avant et arrière. Par exemple, si l’on incline le
quadricoptère vers l'avant, il avancera, et s'il est incliné vers l'arrière, il reculera.

Roll (Roulis) : Le roll est le mouvement de bascule latérale du quadricoptère, c'est-à-dire son
inclinaison de gauche à droite. Cette fois, le mouvement est déterminé par la vitesse de
rotation des moteurs sur les côtés gauches et droits. Si l’on incline le quadricoptère vers la
gauche, il se déplacera du côté gauche, et s'il est incliné vers la droite, il se déplacera du côté
droit.

Yaw (Pivotage): Le yaw est le mouvement de rotation du quadricoptère autour de son axe
vertical, ce qui permet de changer sa direction. Il est contrôlé en ajustant la vitesse de rotation
opposée des moteurs situés sur des coins opposés (par exemple, moteurs avant gauche et
arrière droit dans des directions opposées). En augmentant la vitesse de rotation d'un côté et
en la diminuant de l'autre, le quadricoptère tournera sur lui-même

3. Schéma de câblage et description des composants :


3.1 Schéma de câblage

Pour avoir un plan précis de toutes les soudures, il faut faire un schéma de câblage. Il définit
également les pins utilisés par chaque composant électronique.
Voici le schéma final de câblage avec toutes les connexions entre les composants :

Schéma de câblage entre tous les composants

9
3.2 Composants :

3.2.1 Châssis : Readytosky 220mm FPV Racing Drone Frame for Martian

Son rôle :

Support mécanique : Le châssis permet d’avoir une base stable pour monter tous les
composants du drone. Il maintient tous ces composants en place de manière que rien ne
bouge.

Protection : Le châssis joue aussi le rôle de bouclier et protège tous les composants de coups
ou de chocs. Il fonctionne comme une sorte de bouclier externe qui dévie une partie de la
force provoquée par des collisions mineures ou des impacts brusques.

Intégration : Il permet une intégration efficace et organisée de tous les composants du drone,
facilitant ainsi la configuration, la maintenance et les réparations.

Composant du Châssis (AliExpress, 2010)

10
3.2.2 Moteurs : F40 2600kv

Son rôle :

Propulsion : Les moteurs en tournant, génèrent une poussée, qui a une force suffisante pour
faire voler le drone. Les moteurs produisent cette poussée en faisant tourner les hélices du
drone à grande vitesse, créant ainsi un flux d'air vers le bas qui contrebalance la force de
gravité.

Contrôle de l'altitude : Selon la vitesse à laquelle les moteurs tournent, le drone va monter ou
descendre. Donc, lorsque on augmente la vitesse des moteurs, le drone monte, tandis que
lorsque on la baisse, il descend.

Manœuvrabilité : Les moteurs permettent au drone de se déplacer dans toutes les directions.
En adaptant la vitesse des moteurs sur différentes parties du drone, il peut pivoter, rouler,
incliner ou glisser latéralement, ce qui lui permet de réaliser des mouvements complexes.

Stabilité : Les moteurs sont essentiels pour maintenir la stabilité du drone en compensant les
perturbations telles que les rafales de vent. Les ajustements continus de la vitesse des
moteurs permettent au drone de rester en position et de réagir aux changements de
conditions.

Composant du Moteur (Totalrotor, s.d.)

11
3.2.3 ESC (Electronic Speed Controllers) : Quatre ESC pré-soudés pour chaque moteur

Son rôle :

Régulation de vitesse : L'ESC régule la vitesse des moteurs du drone en régulant la puissance
fournie aux moteurs. Cela permet au drone de monter et descendre, d’avancer et de reculer,
ou de pivoter.

Contrôle de direction : L'ESC modifie la vitesse des moteurs installés dans différentes parties
du drone, afin de mieux pouvoir contrôler la direction du vol. Par exemple, s’il voulait que le
drone tourne à gauche, l’ESC augmenterait la vitesse du moteur pour une rotation dans le
sens des aiguilles d’une montre et diminuerait la vitesse du moteur pour une rotation dans le
sens inverse des aiguilles d’une montre.

Stabilité et maintien de l'altitude : Il ajuste en permanence la vitesse du moteur pour que le


drone maintienne une altitude constante, même dans le cas où il y aurait du vent ou des
interférences, ce qui améliore ainsi la stabilité du drone.

Répondre aux commandes du pilote : L'ESC est connecté à la carte de vol du drone, qui reçoit
les commandes du pilote via la télécommande. L'ESC ensuite traduit ces commandes et va
ajuster en conséquence la vitesse du moteur pour que le drone réponde aux mouvements du
pilote en temps réel.

Sécurité : L'ESC dispose de fonctions de sécurité telles qu'une protection contre les
surintensités et la surchauffe pour éviter d'endommager le moteur et la batterie en cas de
surcharge.

Composant de l’ESC

12
3.2.4 PDB (Power Distribution Board): PDB de Readytosky

Son rôle :

Distribution de l'alimentation : La PDB reçoit la tension électrique de la batterie principale du


drone et la distribue proportionnellement vers tous les autres composants électriques du
drone, tels que les moteurs, les ESC (Electronic Speed Controllers), etc.

Distribution équilibrée : La PDB est conçue pour distribuer l'électricité de manière équilibrée,
ce qui signifie que toutes les ESC et les moteurs reçoivent une alimentation égale. Cela
garantit que le drone reste stable et que tous les moteurs fonctionnent de manière
cohérente.

Protection et régulation : Certaines PDB intègrent des fonctionnalités de protection telles que
des fusibles ou des circuits de régulation de tension pour éviter les surtensions et protéger
les composants du drone en cas de problèmes électriques.

Composant de la PDB

3.2.5 Hélices : Hélices de 4 pouces en plastique

Propulsion : En tournant, les hélices créent de la poussée qui projette de l'air vers le bas. Cette
poussée est générée par la différence de pression entre la surface supérieure et inférieure
des hélices lorsque celles-ci tournent. Cette force de poussée permet au drone de s'élever
dans les airs et de contrebalancer la force de gravité.

Stabilité : Les hélices contribuent à la stabilité du drone en compensant les perturbations


telles que les vents. Les variations de vitesse des hélices permettent au drone de rester en
position et de maintenir son équilibre.

Composant des hélices (RaceDayQuads, s.d.)

13
3.2.6 Arduino : Arduino Nano

Son rôle :

Contrôle des moteurs : L'Arduino Nano va contrôler les moteurs du drone, et en fonction des
conditions, il va modifier la vitesse des hélices, afin que le vol du drone soit stable.

Stabilisation : L’Arduino Nano a le rôle de stabiliser le drone et pour cela, il va utiliser des
capteurs comme le gyroscope et l’accéléromètre qui mesure son inclinaison et le drone va
donc ajuster les commandes des moteurs en conséquence.
Contrôle à distance : L'Arduino Nano va recevoir des commandes d'un contrôleur à distance,
dans notre cas une télécommande, et va ensuite décoder ces informations en mouvements
du drone.

Personnalisation : Selon les besoins de l’utilisateur, l'Arduino Nano peut être utilisé pour
ajouter des fonctionnalités personnalisées au drone, telles que des modes de vol spéciaux,
des caméras.

Composant de la carte Arduino Nano (Arduino, 2020)

14
3.2.7 Accéléromètre + Gyroscope : MPU-6050

Son rôle :

Mesure de l'accélération : Le MPU-6050 possède un accéléromètre à trois axes qui lui permet
de mesurer l’accélération linéaire et c’est ce qu’il va permettre au drone de savoir son
accélération.

Mesure de la vitesse angulaire : Le MPU-6050 mesure la vitesse angulaire du drone (vitesse à


laquelle il tourne autour de ses axes) grâce à un gyroscope à trois axes, et c’est ce qui va
permettre au drone de déterminer son taux de rotation.

Fusion des données : En combinant les mesures de l'accéléromètre et du gyroscope, le MPU-


6050 peut calculer l'orientation du drone dans l'espace. Ce processus est appelé la fusion des
données gyroscopiques et accélératrices. L'orientation est essentielle pour le pilotage
automatique du drone, le maintien de l'altitude, la stabilisation et la navigation.

Stabilisation : Le MPU-6050 est essentiel pour la stabilisation du drone, car grâce aux
informations qu’il mesure, il permet un ajustement précis de la part de l'Arduino Nano. Cela
permet au drone de rester dans la position souhaitée, de suivre un itinéraire prévu et d'éviter
les accidents.

Composant du Gyroscope (AliExpress, 2010)

15
3.2.8 Alimentation : LiPo 4s, 1500 mAh

Son rôle :

Alimentation du drone : La batterie Lipo 4s permet au drone une alimentation de tous ces
composants électroniques et laisse au drone une autonomie de vol d’environ 5 minutes.

Tension et capacité : La batterie LiPo est composée de quatre cellules en série, lui donnant
une tension de 16,8 volts (4 x 4,2 V). Cette tension est adaptée pour notre drone, car elle
fournit la tension nécessaire pour alimenter les moteurs et l'électronique de manière efficace.

Composant de la LiPo (ChinaHobbyLine, s.d.)

3.2.9 Récepteur + Radiocommande + module :


TBS Crossfire Nano RX + RadioMaster TX16s + TBS Crossfire

Le rôle du récepteur (TBS Crossfire Nano) :

Réception des signaux radio : Le Crossfire Nano RX est conçu pour recevoir les signaux radio
provenant de l'émetteur (télécommande) du pilote. Ces signaux sont généralement des
commandes de pilotage, telles que l'inclinaison, la direction, la puissance des moteurs, etc.

Longue portée : Le système Crossfire est réputé pour sa portée étendue, ce qui permet au
pilote de contrôler le drone à des distances considérables, bien au-delà de ce qui est possible
avec des systèmes de radio standard.

Fiabilité et faible latence : Le TBS Crossfire Nano RX offre une communication fiable avec une
latence minimale, ce qui est essentiel pour le pilotage précis d'un drone, en particulier lors de
courses de drones ou de vols acrobatiques.

16
Composant du Récepteur (TBS, s.d.)

Le rôle de la radiocommande (RadioMaster TX16s):

Émission des commandes : Le RadioMaster TX16S est la télécommande par laquelle le pilote
envoie des commandes au drone. Elle est équipée de joysticks et d'une multitude de boutons
et d'interrupteurs configurables pour contrôler le vol : les gaz, la direction, l'inclinaison.

Liaison avec le récepteur : Le RadioMaster TX16S communique avec le récepteur installé à


bord du drone par radiofréquence. Cela permet de transmettre en temps réel les commandes
du pilote au drone et de recevoir des informations (Throttle, Yaw, Pitch, Roll).

Composant de la Radiocommande (Banggood, s.d.)

Le rôle du TBS Crossfire :

Portée améliorée : Le TBS Crossfire offre une portée beaucoup plus longue que les systèmes
de communication de radiofréquence traditionnels, ceci permet donc au drone de voler à des
plus grandes distances tout en maintenant une connexion stable avec la radiocommande.

Fiabilité améliorée : Le TBS Crossfire est conçu pour minimiser les interférences et les
perturbations, ce qui garantit une communication fiable même dans des environnements
difficiles ou obstrués.

17
4. Structure du programme tournant sur l'Arduino Nano :
4.1 Partie du programme qui gère l’Initialisation :

Dans “void setup ()” qui est la routine initialisation voici les étapes importantes :

1) Nous définissons les broches de sortie pour contrôler les moteurs du drone.
2) Nous définissons les broches pour les interruptions des ordres de la radiocommande.
3) Nous initialisons le capteur MPU-6050 qui configuré en définissant les adresses
appropriées pour la lecture des données. Les sensibilités, les plages de mesure et les
fréquences d'échantillonnage sont configurées en fonction des besoins du
quadricoptère. Ensuite nous ajustons les paramètres de l’horloge et de l’échelle du
gyroscope et de l’accéléromètre.
4) Enfin une fonction va stopper les moteurs en fixant les impulsions de commande à la
valeur minimale.
5) Ensuite il y a une lecture des angles de roulis et de tangage du drone en fusionnant les
données du gyroscope et de l'accéléromètre, qui vont corriger les données et les
mettre à l’échelle.

4.2 Partie du programme qui se répète (boucle) :

Dans “ void loop” qui est la routine qui tourne en continue, voici les étapes importantes :

1) Calculs des angles : On utilise l'Arduino pour communiquer avec le MPU-6050 et lire
les données brutes des capteurs. En prenant en compte les accélérations linéaires sur
les différents axes (X, Y et Z), ainsi que les vitesses angulaires provenant des
gyroscopes. Comme déjà mentionné des offsets sont calculés à l’initialisation (dans
void setup) en effectuant des lectures lorsque le quadricoptère est immobile. Ces
offsets sont ensuite soustraits des données lues pour corriger les différentes erreurs.
Avec ceci sont calculés des angles par le gyroscope et l’accéléromètre. Le gyroscope
mesure la vitesse angulaire de rotation autour de chaque axe (roulis, tangage, lacet).
Ces valeurs de vitesse angulaire sont intégrées dans le temps pour obtenir les angles
d'orientation. Cela se fait en effectuant une somme des valeurs de vitesse angulaire.
Mais l’accéléromètre mesure l'accélération linéaire de chaque axe (x, y, z). Mais en
présence de la gravité, l'accéléromètre va donc non seulement mesurer l'accélération
due au mouvement, mais aussi l'accélération gravitationnelle. Donc il faut soustraire
l'accélération gravitationnelle.
Pour lisser les vitesses angulaires et éliminer les bruits électroniques ou mécaniques,
un filtre numérique doit être appliqué. Cette procédure permet de garantir des
données de vitesse angulaire stables sans perdre en réactivité.
Les données d'accélération sont également sujettes aux bruits. Pour obtenir des
données propres et réduire les variations indésirables, on applique alors des filtres
numériques similaires.

18
Ensuite, à partir des angles calculés par le gyroscope (angle_gyro) et les angles calculés
à partir de l’accéléromètre (angle_accel) sont fusionnées pour obtenir des angles
finaux du drone. Cela est fait en utilisant une méthode qui s’appelle "sensor fusion"
qui combine les données des deux capteurs. Et ces angles sont ajustés si besoin. Cette
fusion est essentielle pour obtenir des mesures d'orientation précises et stables, car
chaque capteur a ses propres avantages et inconvénients, et en les fusionnant, on
peut compenser les faiblesses de l'un par les forces de l'autre.

2) Mettre le drone en état Marche/ Armé ou arrêt :

Premièrement, le code vérifie si le quadricoptère est dans l'état "ARRET" et si les


commandes de GAZ et de YAW sont en dessous de certaines valeurs, le quadricoptère
passe à l'état "ARME", et active les moteurs.
Ensuite, il y a une transition de l'état "ARME" à l'état "MARCHE". Si le quadricoptère
est "ARME" et que les commandes de GAZ sont au minimum et que le YAW est en
position médiane, il passe à l'état "MARCHE". Le quadricoptère va donc démarrer les
moteurs, tout en réinitialisant les régulateurs PID pour éviter les problèmes au
démarrage. Enfin, il va y avoir un passage de l'état "MARCHE" à l'état "ARRET". Si le
quadricoptère est en "MARCHE" et que les commandes de GAZ sont au minimum tout
en poussant le YAW en bas à droite, il retourne à l'état "ARRET".

3) Consignes (Gaz, Roll, Pitch, Yaw) et routine d'interruption :

Pour "Roll", les consignes de vitesse angulaire en degrés par seconde sont calculées
en fonction des durées des impulsions reçues du canal 1 du récepteur. Deux plages de
durées d'impulsion sont prises en compte, chacune ayant sa propre formule de calcul.
Pour "Pitch", les consignes sont calculées en fonction des durées d'impulsion reçues
du canal 2 du récepteur.
Pour "Yaw", la consigne est calculée en fonction des durées d'impulsion reçues du
canal 4 du récepteur, mais seulement si la commande des gaz n'est pas nulle, car
“Yaw”, car il n’a pas de sens si le drone est arrêté.
Pour "Gaz", les consignes sont copiées depuis la durée d'impulsion reçue du canal 3
du récepteur, qui représente la puissance du moteur. Une limite supérieure (de 1700)
est imposée pour éviter des valeurs trop importantes qui pourraient compromettre le
vol du drone.
Ces consignes (Gaz, Roll, Pitch, Yaw) sont envoyées à la radiocommande à l’aide de
routines d'interruption (ISR), qui sont utilisées pour détecter les changements d'état
sur les canaux du récepteur. Elles permettent aussi de transmettre, via PWM
(modulation de largeur d’impulsion) des signaux de commande à la radiocommande.
Ces routines d'interruption sont essentielles pour capturer les impulsions PWM
envoyées par la radiocommande. Elles mettent à jour les durées d'impulsion pour
chaque canal, ce qui permet de lire les commandes et de contrôler les moteurs du
drone en conséquence. Cela permet au système de réagir rapidement aux commandes
du pilote.

19
4) Stabilisation PID :

Une fois les consignes reçues, on calcule le PID (Proportional-Integral-Derivative), qui


est un processus qui sert à maintenir la stabilité du drone en vol. Elle repose sur des
capteurs s tels que des gyroscopes, des accéléromètres. Ils fournissent des données
en temps réel sur l'orientation, la rotation et l'altitude du drone. Ensuite, le PID évalue
la position actuelle du quadricoptère par rapport à sa position souhaitée, que l’on
appelle "setpoint", et il calcule l'erreur qui sépare les deux positions.
Le contrôleur PID est composé de trois composantes :

• La correction proportionnelle (P) réagit en fonction de l'erreur actuelle, elle corrige


l'écart entre la position réelle du drone et le setpoint. Plus l'erreur est grande, plus la
correction est significative, ce qui assure un retour rapide vers la position souhaitée.
• La correction intégrale (I) tient compte des erreurs passées et intervient en cas
d'erreur qui se répète, comme une dérive constante du drone. Elle sert à éliminer les
erreurs systématiques.
• La correction dérivée (D) anticipe l'évolution future de l'erreur en fonction de son
taux de changement actuel. Elle atténue les oscillations ou les réactions brusques du
système, ce qui permet, par exemple, de ralentir en douceur un quadricoptère
lorsqu'il se rapproche rapidement de sa position souhaitée.

5) Calculer les impulsions ESC :


Le contrôleur collecte des données sur l’état du quadricoptère, grâce au consigne PID,
comme l’inclinaison, l’altitude, la vitesse angulaire, et les convertit en consignes de
vitesse pour chaque moteur. Les consignes sont ensuite utilisées pour déterminer la
durée des impulsions PWM (Pulse Width Modulation).
Ces impulsions varient d’une vitesse minimale à une vitesse maximale et sont
envoyées aux ESC correspondants pour ajuster la puissance des moteurs. Le processus
est constamment répété pour s'adapter aux changements en temps réel et maintenir
la stabilité du quadricoptère.

6) Génération des impulsions d'ESCs et de relecture des mesures du MPU-6050 :

Cette partie du code sert à coordonner la génération des impulsions électriques pour
contrôler les ESCs des moteurs du drone et pour ce faire la fonction
“genererImpulsionsESC ()”, qui est responsable de générer les impulsions électriques
pour contrôler les ESCs , c’est également à ce moment que les données du MPU-6050
sont relues.

20
5. Problèmes et solutions :
Dans cette partie, nous allons traiter les différents problèmes que nous avons rencontrés et
les solutions que nous avons trouvées pour y remédier.

1. Le premier problème que nous avons rencontré était que l'Arduino Uno, fourni par le
gymnase, était trop volumineux pour notre drone, et il n’y avait donc pas de place sur le
châssis. Alors pour y remédier, nous avons acheté un format réduit : l’Arduino Nano. Ce qui
nous a permis d’avoir la place suffisante sur le châssis pour pouvoir y attacher tous les
composants.

2. Ensuite lors de la connexion entre la radiocommande (RadioMaster TX16s) et le récepteur


(TBS Crossfire Nano RX), 3 des 4 canaux du récepteur qui devaient accueillir les commandes
(Throttle, Yaw, Pitch, Roll) n’étaient pas en PWM (Pulse Width Modulation). Ce qui empêchait
une bonne transmission des données. Alors il a fallu modifier tous les canaux pour les changer
en PWM.

3. Lorsque nous avons utilisé le code qui était censé contrôler les régulateurs de vitesse
électroniques (ESC), nous nous sommes rendus compte qu'un des moteurs tournait dans le
sens opposé à celui que nous avions souhaité, alors pour remédier à ce problème nous avons
dessoudé et ressoudé les câbles de l’ESC dans un ordre différent, ce qui nous a permis de
résoudre le problème instantanément.

4. Le dernier problème que nous avons rencontré était que lorsque nous avons téléversé la
version finale du code sur le contrôleur du drone et que nous l’avons démarré, le drone s’est
agité dans tous les sens et s’est crashé, alors pour y remédier nous avons essayé de modifier
le code et essayé de trouver des potentielles erreurs dans le code mais nous ne sommes pas
arrivés à un résultat satisfaisant. Nous pensons que le problème vient d’un moteur
défectueux, car lors d’essai de vol, un moteur ne tournait pas aussi bien que les autres.

21
6. Discussion et conclusion :
Ce projet était une réussite pour nous deux. Nous avons appris à planifier et organiser un
projet et à respecter les délais tout au long de son déroulement. La programmation s'est
avérée être le principal défi du projet, étant un domaine entièrement nouveau pour nous.
Cependant, avec l’aide de notre professeur et de notre ami Nathan, étudiant à l’EPFL, nous
avons pu relever ce défi.

En rétrospective sur tout ce projet, on remarque qu’on aurait pu améliorer différents aspects :

Premièrement, avec du temps supplémentaire, nous aurions pu approfondir nos recherches


sur une éventuelle solution pour le bon fonctionnement du quadricoptère. Nous pensons que
le problème provient d’un dysfonctionnement d’un des moteurs ou d’une erreur dans le code.

Deuxièmement, nous aurions pu améliorer le drone en y ajoutant des composants


supplémentaires telle qu’une caméra reliée à un casque FPV nous permettant d’être en
immersion dans le quadricoptère.

Pour donner notre avis personnel sur ce travail de maturité étant donné que le résultat de
notre projet a été un drone à peine fonctionnel, nous sommes un peu déçus, car notre objectif
initial était d'obtenir un drone à fonctions basiques en tant que résultat final.

22
7. Bibliographie

Aliexpress. (2010). Consulté le 20 octobre 2023, sur


https://pt.aliexpress.com/i/4000248684463.html?gatewayAdapt=glo2bra
Totalrotor. (s.d.). Consulté le 20 octobre 2023, sur https://shop.totalrotor.com/products/t-
motor-f40-pro-iii-2400kv-2600kv
RaceDayQuads. (s.d.). Consulté le 20 octobre 2023, sur
https://www.racedayquads.com/collections/4-props/products/hq-prop-durable-
t4x2x3-bi-blade-4-prop-4-pack
ChinaHobbyLine. (s.d.). Consulté le 20 octobre 2023, sur
https://chinahobbyline.com/products/cnhl-black-series-1500mah-14-8v-4s-100c-
lipo-battery-with-xt60-plug
TBS. (s.d.). Consulté le 20 octobre 2023, sur https://www.team-
blacksheep.com/products/prod:crossfire_nano_rx
Banggood. (s.d.). Consulté le 20 octobre 2023, sur https://pt.banggood.com/RadioMaster-
TX16S-Hall-Sensor-Gimbals-2_4G-16CH-Multi-protocol-RF-System-OpenTX-Mode2-
Radio-Transmitter-for-RC-Drone-p-1652191.html?cur_warehouse=HK
Brokking. (s.d.). Récupéré sur http://www.brokking.net/ymfc-al_main.html
Arduino. (s.d.). Premiers pas avec les produits Arduino. Récupéré sur
https://www.arduino.cc/en/Guide
Studiosport. (s.d.). De quoi est composé un drone? Récupéré sur
https://www.studiosport.fr/guides/drones/de-quoi-est-compose-un-
drone.html#:~:text=Selon%20les%20modèles%2C%20le%20châssis,Le%20quadricopt
ère%20(4%20bras).
Electronoobs. (s.d.). Connexions entre composants. Récupéré sur https://electronoobs.com
cfdflowengineering. (s.d.). working-principle-and-components-of-drone. Récupéré sur
https://cfdflowengineering.com/working-principle-and-components-of-drone/
Arduino. (2020). Consulté le 3 octobre 2023, sur
https://docs.arduino.cc/resources/datasheets/A000005-datasheet.pdf
Chau-Huu, O. (s.d.). Créez votre Drone Quadricoptère Arduino de A à Z.
David. (s.d.). Récupéré sur Digital Kwad: https://www.digitalkwad.ch
Ardupilot. (s.d.). Récupéré sur https://ardupilot.org/copter/docs/connect-escs-and-
motors.html

23

Vous aimerez peut-être aussi