Académique Documents
Professionnel Documents
Culture Documents
1
Abstract :
06.11.2023
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
3.2.8 Alimentation........................................................................................................... 16
3.2.9 Récepteur + Radiocommande + module ................................................................ 16
4
1. Introduction :
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 :
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 :
6
2. Structure générale et dynamique de vol :
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 :
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).
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.
En ajustant la vitesse des différents moteurs, il est possible de donner les mouvements
suivants au drone (permettant de bouger dans chaque direction) :
(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.
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
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 :
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.
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.
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.
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 é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
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é.
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.
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.
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.
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.
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.)
É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.
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.
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.
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 :
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.
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 :
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
23