WOW !! MUCH LOVE ! SO WORLD PEACE !
Fond bitcoin pour l'amélioration du site: 1memzGeKS7CB3ECNkzSn2qHwxU6NZoJ8o
  Dogecoin (tips/pourboires): DCLoo9Dd4qECqpMLurdgGnaoqbftj16Nvp


Home | Publier un mémoire | Une page au hasard

 > 

Conception et réalisation d'un quadrotor UAV


par Abdelhak Amine Zitouni
University Of Science And Technology Houari Boumediene USTHB - Masters Degree 2018
  

Disponible en mode multipage

Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy

    REPUBLIQUE ALGERIENNE DEMOCRATIQUE ET POPULAIRE
    Ministère de l'Enseignement Supérieur et de la Recherche Scientifique

    Université des Sciences et de la Technologie Houari Boumediene

    Faculté d'Electronique Et Informatique

    Département Instrumentation et Automatique

    Mémoire de Projet de Fin d'Etudes
    Master en Electronique

    Option : Ingénierie de L'Electronique et Photonique Appliquée

    THEME

    Conception et Réalisation d'un quadrotor UAV

    Proposé par : Présenté par :

    Mr. BOUDJIT KAMEL. ZITOUNI Abdelhak Amine.

    Examinateurs: Président de jury:

    Dr. T.BERABAR. Mr. M.Derras.

    Dr. B.LEHOUIDJ.

    Promotion : JUIN 2018

    Remerciements

    Je remercie Dieu, le tout puissant, pour m'avoir donné, le courage, la patience, la volonté et la force nécessaire, pour affronter toutes les difficultés et les obstacles, qui se sont hissés au travers de mon chemin d'études. Mes plus profonds remerciements vont à mes parents. Tout au long de mon cursus, ils m'ont toujours soutenu, encouragé et aidé. Ils ont su me donner toutes les chances pour réussir. Qu'ils trouent, dans la réalisation de ce travail, l'aboutissement de leurs efforts ainsi que l'expression de ma plus affectueuse gratitude.

    J'adresse mes sincères remerciements à tous mes enseignants de L'université, notamment à mon promoteur Mr. Boudjit Kamel, d'avoir proposé le sujet sur lequel j'ai travaillé, et qui a assuré la direction et l'encadrement du travail présenté dans ce mémoire.

    Je tiens aussi à exprimer mes remerciements à mon oncle Pr. Tahraoui Abdelatif (Professeur En Faculté De physique), d'avoir bien voulu de me faire profiter pleinement de ces compétences scientifiques et de ses idées durant mes années d'étude en USTHB.

    Cette page ne serait être complète sans remercier mes meilleurs collègues et frères :

    T. Idriss, T. Boualem, Z. Krimo, T. Zakou et sans oublier ma grande soeur Kheznadji.S, sans leurs soutiens je n'aurais sûrement pas pu mener à bien ce projet.

    Enfin, Je tiens notamment, à adresser l'expression de ma sincère reconnaissance aux membres du jury d'examen, pour l'intérêt qu'ils ont porté à ce travail. Mes remerciements vont à tous ceux qui m'ont soutenu de près ou de loin à réussir ce travail.

    Mes vives salutations.

    Sommaire

    Sommaire

    Liste des figures

    Introduction générale 1

    Chapitre I : Généralité sur les drones 3

    I.1. Introduction aux drones (U.A.V.) 3

    I.2. L'historique des drones 3

    I.3. Les différentes catégories des drones 4

    I.3.1. Les drones militaires de longue endurance 4

    · Les drones MALE « le General Atomics MQ-9 » 4

    · Les drones HALE « RQ-170 Sentinel » 5

    I.3.2. Les drones tactiques (Tactical Unmanned Air Vehicle) 6

    I.3.3. Le drone solaire « Aquila» 7

    I.3.4. Les drones miniatures 7

    I.3.1. Le robot animal volant « BAT BOT B2 » 8

    I.4. Domaines d'application des quadrotors 9

    I.4.1. Domaine de sécurité 9

    I.4.2.Domaine civil 10

    I.5. Description général du quadrotor 10

    I.6. Les mouvements du quadrotor 11

    I.7. Conclusion 15

    Chapitre II : Modélisation dynamique d'un quadrotor 16

    II.1. Introduction 16

    II.2. Modèle dynamique du quadrotor 16

    II.2.1. Angle d'Euler 17

    II.2.2. Vitesses angulaires 18

    II.2.3. Vitesses linéaires 18

    III.5. Contrôleur de vol du quadrotor : 43

    III.5.1. Lecture des signaux du récepteur RF : 45

    Sommaire

    II.2.4. Effets physiques agissants sur le quadrotor 18

    II.2.4.1. Les forces 18

    II.2.4.2. Les moments 19

    II.2.4.3. Effet gyroscopique : 20

    II.2.5. Développement du Modèle mathématique selon Newton-Euler 20

    II.2.5.1. Equations de mouvement de translation : 22

    II.2.5.2. Equation de mouvement de rotation : 22

    II.2.6. La représentation d'état du système : 24

    II.7. La dynamique des rotors 25

    II.3. Conclusion : 27

    Chapitre III : Conception et mise en oeuvre du fonctionnement 28

    III.1. Introduction : 28

    III.2. Description du hardware utilisé : 28

    III.2.1. Arduino Uno : 28

    III.2.2. Gyroscope MPU-6050 : 29

    III.2.3. Les moteurs sans balais « Brushless » : 29

    III.2.4. Electronique Speed Controller « ESC » : 30

    III.2.5. Batterie LIPO : 31

    III.2.6. Les hélices : 32

    III.2.7. Arduino Nano : 32

    III.2.8. Module radio NRF24l01 2.4GHz : 33

    III.2.9. Les joysticks : 34

    III.2.10. La carcasse du quadrotor et du transmetteur RF: 34

    III.3. Réalisation du transmetteur RF : 36

    III.3.1. Schéma électronique : 36

    III.3.2. Algorithme du transmetteur RF : 38

    III.4. Récepteur RF 2.4 GHz : 40

    III.4.1. Circuit et schéma électronique : 40

    III.4.2. Algorithme du récepteur RF 2.4GHz : 41

    III.4.3. Test des signaux de sortie du récepteur RF : 43

    Sommaire

    III.5.2. Unité de mesure de l'inertie gyroscopique MPU-6050 : 48

    III.5.3. Le contrôleur PID : 53

    III.5.4. Contrôle des ESC : 58

    III.6. Conclusion : 63

    Chapitre IV : Tests et résultats 64

    IV.1. Introduction : 64

    IV.2. Test des signaux du récepteur RF : 64

    IV.3. Test des données angulaires du Gyroscope : 67

    IV.4. Identification des gains PID : 67

    IV.5. Test de vol en zone ouverte: 69

    IV.6. Conclusion : 70

    Conclusion générale 71

    Références Bibliographiques

    Annexe

    Liste des figures

    Liste des figures

    Figure 1.1 : le General Atomics MQ-9. 5

    Figure 1.2 : RQ-170 Sentinel. 5

    Figure 1.3 : Le drone Tactique RQ-7 Shadow. 6

    Figure 1.4 : Le drone solaire Facebook « Aquila ». 7

    Figure 1.5 : Le drone miniature (nano drone UAV). 8

    Figure 1.6 : Robot chauve-souris volante « BAT BOT B2 ». 8

    Figure 1.7 : Les mouvements de bases du quadrotor. 10

    Figure 1.8 : Illustration du mouvement vertical (Throttle). 12

    Figure 1.9 : Illustration du mouvement de roulis (Roll). 12

    Figure 1.10 : Illustration du mouvement de tangage (Pitch). 13

    Figure 1.11 : Illustration du mouvement de lacet (Yaw). 13

    Figure 1.12 : Illustration du mouvement de translation horizontale. 14

    Figure 3.1 : la carte Arduino Uno. 28

    Figure 3.2 : Unité de Mesure de l'Inertie gyroscopique MPU-6050. 29

    Figure 3.3 : Moteur Brushless EMAX XA2212 1400Kv 30

    Figure 3.4 : Composantes interne du Moteur Brushless . 30

    Figure 3.5: variateur de vitesse « Hobbywing OPTO ESC 20A ». 31

    Figure 3.6 : Batterie de Lithium-Polymère « LIPO » 11.1V 70C 2.2Ah. 31

    Figure 3.7 : Hélices DJI 8045. 32

    Figure 3.8 : Arduino Nano. 33

    Figure 3.9 : NRF24l01 Radio module 2.4GHz. 33

    Figure 3.10 : Joystick de haute qualité ..34

    Figure 3.11 : Commandes de vol du drone .. ..34

    Figure 3.12 : Les carcasses construites avec logiciel SOLID WORKS en 3D. 35

    Figure 3.13 : Circuit imprimé du plat inferieur réalisé avec logiciel Eagle CAD soft. 35

    Liste des figures

    Figure 3.14 : Schéma électronique du transmetteur RF 2.4 GHz. 36

    Figure 3.15 : Schéma du circuit imprimé du transmetteur RF 2.4 GHz. 37

    Figure 3.16 : Transmetteur RF 2.4 GHz durant la réalisation. 37

    Figure 3.17 : Valeurs analogiques affichées sur le moniteur série de l'Arduino IDE. 38

    Figure 3.18 : Schéma électronique du récepteur RF 2.4 GHz 40

    Figure 3.19 : Schéma du circuit imprimé du récepteur RF 2.4 GHz 41

    Figure 3.20 : Valeurs correspondantes aux signaux PWM afficher sur le moniteur série 43

    Figure 3.21 : Schéma électronique du contrôleur de vol du quadrotor. 44

    Figure 3.22 : Schéma électronique global du quadrotor. 44

    Figure 3.23 : Pulsations PWM de fréquence 50 Hz pour deux canaux du récepteur RF. 45

    Figure 3.24 : Diagramme des broches de l'ATmega328p. 46

    Figure 3.25 : Les mouvements de base. 48

    Figure 3.27 : Signal de sortie du Gyro dans l'état stationnaire pour l'axe de mouvement Yaw 53

    Figure 3.28 : Schéma de la boucle de contrôleur PID. 53

    Figure 3.29 : Schéma montre le principe du PID utilisé dans ce contrôleur de vol. 54

    Figure 3.30 : Algorithme utilisé dans le sous-programme PID du contrôleur de vol pour un axe 56

    Figure 3.31 : Disposition des ESCs et direction de rotation du quadrotor 59

    Figure 3.32 : Algorithme du PID conduit le quadrotor de revenir À l'état voulu 60

    Figure 3.33 : Retour à l'état de consigne désiré par le pilote 0°. 60

    Figure 3.34 : Simulation des impulsions PWM de fréquence 250 Hz à envoyer pour deux ESCs 61

    Figure 4.1 : Image du quadrotor réalisé. 64

    Figure 4.2 : Connexion du récepteur RF à l'oscilloscope digital. 65

    Figure 4.3 : Signal PWM 50Hz de la commande Throttle. 65

    Figure 4.4 : Largeur d'impulsion 1ms. 66

    Figure 4.5 : Largeur d'impulsion 2ms. 66

    Figure 4.6 : vérification des angles de Gyro sur l'Arduino IDE. 67

    Figure 4.7 : Réglage des paramètres PID. 68

    Figure 4.8 : Test de vol dans un espace ouvert. 69

    1

    Introduction générale

    Introduction générale

    Ces dix dernières années, les avancées technologiques et les nombreuses applications potentielles ont suscité un intérêt croissant pour la robotique aérienne. La problématique sur la programmation et le contrôl de vol des véhicules aériens sans pilote ou les drones est d'actualité. Les drones ont des applications commerciales

    évidentes dans l'inspection d'ouvrages d'art comme les ponts, les barrages ou les lignes hautes tensions, l'exploration d'environnements dangereux comme des forêts en feu ou des zones radioactives, les missions militaires de reconnaissance et d'autres divers applications. La recherche dans le domaine des drones est essentiellement pluridisciplinaire, en effet elle fait intervenir des domaines très variés tels que l'aérodynamique, le traitement du signal et de l'image, la commande automatique, la télécomunication, les matériaux composites, l'informatique temps réel... etc.

    Techniquement les drones n'ont pas les mêmes capacités. Tout d'abord, ils peuvent avoir toute sorte de taille qui peut aller de celle d'un avion de ligne à celle d'une mouche. il y a celle qui pèsent quelques grammes volent des centènes de mèttres à des altitudes basses et avec des durés de vole de quelque minutes et d'autres qui peuvent atteindres des tonnes, volent des centaines de kilomètres à des altitudes très élevés. Dans ce mémoire, nous nous intéressons en particulier aux robot volant de type véhicules aériens miniatures et plus particulièrement à un quadrotor (micro hélicoptère à quatre hélices). Les quadrotors ont la capacité d'effectuer un vol stationnaire, ils sont parmi les plus complexes des objets volants, La difficulté dans le pilotage de ces types des véhicules est d'assurer une bonne performance de suivi de la trajectoire voulue tout en garantissant une résistance aux perturbations aérodynamiques, parce que leur dynamique de vol est intrinsèquement non linéaire.

    L'objectif de ce projet traite alors la réalisation d'un drone de type quadrotor piloté via une radiocommande, la conception du contrôleur de vol du drone se fait en utilisant des composants électroniques peu coûteux comme l'Arduino Uno et un module 3-axes gyroscope MPU6050. Le bon fonctionnement de ce système nécessite la réalisation d'une unité de commande émetteur / récepteur radio fréquence, basé d'un Arduino Nano et un module radio (NRF24L01) à 2.4 GHz pour servir à transmettre les différentes commandes au contrôleur de vol, nous voulons donc construire le Transmetteur Radio Fréquence et aussi bien le contrôleur de vol du quadrotor en se basant beaucoup plus sur la programmation des Arduino.

    2

    Introduction générale

    Dans ce projet, le contrôleur de vol du quadrotor utilise le gyroscope pour extraire les données de mouvements du drone dans l'espace, puis les traités par l'Arduino Uno afin de contrôler les angles d'inclinaison du quadrotor. Le programme sur lequel j'ai travaillé utilise trois contrôleurs PID pour les trois axes de mouvements essentiels (PITCH), (ROLL) et (YAW). Les consignes pour le contrôleur PID sont les signaux de l'émetteur / récepteur et les variables de sortie du gyroscope. La sortie du contrôleur PID est utilisée pour contrôler la vitesse des moteurs brushless du quadrotor et pour assurer l'équilibre. Après avoir étudié des sous-programmes sur le Gyro MPU6050 et essayer de comprendre comment lire ces données angulaires à partir des registres de sortie, j'ai trouvé qu'il devait y avoir un moyen très simple de créer une IMU pour un quadrotor. L'astuce est juste d'examiner les données du gyroscope et puis j'ai essayé plusieurs façons d'obtenir le bon algorithme en se référant à l'open source. Mon mémoire est structuré comme suit :

    Chapitre 1 : généralité sur les drones.

    Chapitre 2 : modélisation d'un drone quadrotor.

    Chapitre 3 : conception et mise en oeuvre du fonctionnement.

    Chapitre 4 : teste et résultats.

    Chapitre 1

    généralité sur les drones

    Chapitre I Généralité sur les drones

    3

    Chapitre I : Généralité sur les drones

    I.1. Introduction aux drones (U.A.V.) :

    Plusieurs termes sont utilisés pour les véhicules aériens sans pilote, qui se réfèrent généralement au même concept. Un véhicule aérien sans pilote U.A.V. (UNMANNED AIRCRAFT VEHICLE) ou R.P.A.S. (Remotely Piloted Air System), communément connu sous le nom de drone, C'est un avion qui ne porte pas d'opérateur humain à bord. Les UAV sont des composantes d'un système d'aéronef sans pilote U.A.S. (Unmanned Aircraft System); Qui comprennent un UAV, un contrôleur terrestre et un système de communication entre les deux. Les drones utilisent des forces aérodynamiques pour fournir un ascenseur de véhicule, ils peuvent voler de façon autonome et être piloté à distance, ils peuvent être récupérables grâce à un système de navigation programmable et effectuer des vols dans des différents environnements, ils sont capables aussi de porter un camera de liaison de données, permettant la transmission direct des vidéos. Le vol des drones UAV peut se fonctionner avec de différents degrés d'autonomie: soit sous contrôle à distance par un opérateur humain, soit par ordinateur embarqué de manière autonome.

    Par rapport aux avions équipés, les drones UAV étaient à l'origine utilisés pour des missions trop dangereuses pour les humains. Bien qu'ils proviennent principalement d'applications militaires, leur utilisation s'étend rapidement aux applications commerciales, scientifiques, récréatives, agricoles et autres, telles que la police et la surveillance, la livraison de produits, la photographie aérienne et d'autres diverses applications. Les drones civils sont maintenant beaucoup plus nombreux que les drones militaires, avec des dépenses de plus d'un million de vends pendant ces dernières années.

    I.2. L'historique des drones :

    Les innovations de l'UAV ont commencé au début des années 1900 et se sont initialement concentrées sur la mise en place d'objectifs de formation pour former du personnel militaire. Le développement de l'UAV s'est poursuivi pendant la Première Guerre mondiale, lorsque Dayton-Wright Compagnie d'avion a inventé une torpille aérienne sans pilote qui exploserait à un moment préétabli. En 1920 en France, à la suite de la première guerre mondiale George Clémenceau Président de la Commission sénatoriale de l'Armée, lance un projet « d'avions sans pilote » : le capitaine Max Boucher met au point un système de pilotage automatique qui fait voler sur plus de cent kilomètres un avion Voisin BN3. Ainsi, dans les années 1920, des avions sans pilote radiocommandés voient le jour, avec les tentatives de torpilles aériennes télécommandées par des ondes de télégraphie sans fil. Le premier drone français stricto sensu a été conçu, réalisé et expérimenté dès 1923 à Etampes par l'ingénieur Maurice Percheron et le capitaine Max Boucher. Toutefois, l'armée française n'y voyait

    Chapitre I Généralité sur les drones

    4

    pas encore d'intérêt militaire. Le drone a été développé de façon confidentielle par les Etats-Unis comme un moyen de supériorité stratégique et de rupture de capacité devant permettre la surveillance et l'intervention militaire chez l'ennemi sans encourir les risques humains que l'opinion ne supportait plus. En outre, il est utilisé pour larguer des tracts dans le cadre de la guerre psychologique. L'Allemagne nazie a produit et utilisé divers avions UAV pendant la guerre. Les moteurs à réaction sont entrés en service après la Seconde Guerre mondiale dans des véhicules tels que le GAF australien Jindivik et Teledyne Ryan Firebee de 1951, alors que des entreprises comme Beechcraft ont offert leur modèle 1001 pour la marine américaine en 1955. Néanmoins, ce ne sont que des avions télécommandés Jusqu'à la guerre du Vietnam. Les drones sont engagés pour la première fois pendant la guerre du Viet Nam, puis lors de la guerre du Kippour. Ils font désormais partie des moyens tactiques et stratégiques du champ de bataille. L'absence de pilote permet d'opérer à l'intérieur des lignes ennemies pour des missions à risque, sans crainte de pertes humaines. Après cette introduction historique nous allons à présent citer quelque type des drones actuels.

    I.3. Les différentes catégories des drones :

    Tous les drones n'ont pas les mêmes capacités. Selon les besoins, ils peuvent avoir toute sorte de taille qui peut aller de celle d'un avion de ligne à celle d'une mouche. La classification des drones dépend de plusieurs critères tels que leurs longueurs, leurs auteurs et leurs durées de vol. Ainsi que leurs poids changent également. On distingue donc plusieurs classes de drones [9-10] :

    I.3.1. Les drones militaires de longue endurance:

    Le drone militaire est utilisé pour des missions de reconnaissance, généralement à hauts risques pour les soldats. Il est très en vogue chez les grandes puissances militaires comme les Etats-Unis, la France et l'Angleterre. En effet actuellement des drones patrouillent au moyen orient pour démanteler des réseaux de terroristes. Avec des durées de vol comprises entre 12 et 48 heures, on entre ici dans la catégorie des «grands» drones, dont la taille est essentiellement dictée par une charge utile lourde et une quantité élevée de carburant, nécessaire à la mission. Cette catégorie se divise elle-même en deux parties, en fonction de l'altitude de vol des machines : comme pour les avions, plus on vole haut, plus on va vite et plus on parcourt de la distance. On distingue ainsi les drones dits «MALE» (Moyenne Altitude Longue Endurance) des drones «HALE» (Haute Altitude Longue Endurance).

    · Les drones MALE « le General Atomics MQ-9 » :

    Ce type de drone de combat Figure 1.1 peut atteindre une vitesse de 480km/h, il peut être commandé jusqu'à 1850 kilomètres par ses deux contrôleurs au sol ou par liaison satellite. Il pèse un peu plus de 2 tonnes et peut atteindre 15 kilomètres d'altitudes avec une autonomie de vol de 30 heures. Aussi il peut transporter six missiles et deux bombes, en temps de guerre ce type de drone est

    Chapitre I Généralité sur les drones

    5

    utilisé pour l'espionnage mais peut également servir comme lance-missiles. Un modèle non armé mais bourré de capteurs et de caméras est également utilisé par la Nasa et destiné à des recherches scientifiques.

    Figure 1.1 : le General Atomics MQ-9.

    Les Américains ont d'emblée conçu des systèmes MALE à la dimension de leurs théâtres d'opérations en vue, non seulement de missions de reconnaissance, mais aussi de désignation et de destruction d'objectifs au sol.

    · Les drones HALE « RQ-170 Sentinel » :

    Le RQ-170 Sentinel Figure 1.2, est un véhicule aérien sans pilote de haute altitude et de longue endurance. C'est un drone furtif développé par Lockheed Martin et exploité par la Force aérienne des États-Unis (USAF), on atteint dans cette catégorie les dimensions d'un avion civil (Airbus A320 par exemple) pour des autonomies de 10 000 kilomètres et plus parcourues en volant largement au-dessus des trafics aériens courants, La masse au décollage des drones HALE peut largement dépasser les 10 tonnes, dont quelque 10% pour la charge utile.

    Figure 1.2 : RQ-170 Sentinel.

    Environ 90% de l'avion est composé de matériaux composites pour diminuer son poids total. Le RQ-170 peut offrir à ses opérateurs des données de renseignement en temps réel en exécutant des

    Chapitre I Généralité sur les drones

    6

    opérations de surveillance sur une vaste zone. Ce drone peut capturer des images en temps réel puis les transférés à une station de contrôle au sol à travers des lignes de communication. Le RQ-170 a été déployé aux zones hostiles pour des missions d'observation et de renseignements et pour l'exploitation de la liberté durable, les capacités de ces drones HALE sont à rapprocher et à comparer à celles des avions pilotés du type de l'avion espion U2 (Fantôme) ou des avions de renseignement électronique Signet, ainsi qu'à celles des satellites d'observation ou d'alerte.

    I.3.2. Les drones tactiques (Tactical Unmanned Air Vehicle) :

    Les drones tactiques Figure 1.3 sont des drones militaires capables de s'envoler et d'atterrir sur courte distance propulsé par un moteur bicylindre. Ils sont propulsés pour le décollage par une catapulte pneumatique.

    Figure 1.3 : Le drone Tactique RQ-7 Shadow.

    L'atterrissage se fait à l'aide d'un parachute et de coussins gonflables de sécurité placés sous les ailes. Ils peuvent volés 5 à 8 heures et à des vitesses environ 175 km/h et volant à une altitude de 3 à 5 kilomètres, pour un rayon d'action de 30 à 500 kilomètres. On distingue plusieurs catégories des drones tactiques tels que l'AEROSTAR "AERONAUTICS DEFENSE SYSTEMS", RQ-7 Shadow, Sperwer, Hermes, Watchkeepere...etc. Ce types de drones comportent un ensemble de caméras gyrostabilisées et thermiques qui permettent la prise d'images aériennes en lumière visible et en infrarouge, il sert à la reconnaissance, la surveillance, l'acquisition de cibles et l'évaluation des dommages de combats.

    Chapitre I Généralité sur les drones

    7

    I.3.3. Le drone solaire « Aquila» :

    En juillet 2016, Facebook dévoilait son prototype de drone solaire destiné à diffuser l'Internet haut débit dans des zones non desservies ou disposant d'un accès de mauvaise qualité, le réseau social vient d'annoncer avoir accompli avec succès le premier vol d'essai d'un modèle à taille réelle.

    Figure 1.4 : Le drone solaire Facebook « Aquila ».

    Baptisé Aquila (nom latin signifiant « aigle ») Figure 1.4, l'engin se présente le drone avec une aile de 42 mètres d'envergure, plus grande que celle d'un Airbus A320 et pour un poids de 1468 kg. Ce drone alimenté par des cellules photovoltaïques est censé pouvoir voler durant 90 jours à des altitudes comprises entre 18 à 27 kilomètres en diffusant un accès Internet au sol dans un rayon d'un peu moins de 100 kilomètres.

    Facebook indique que le drone, qui volait à une vitesse d'environ 40 km/h, dissipait un peu moins de 2000 watts. Une puissance qui, selon l'équipe en charge du projet Aquila, valide ses simulations aérodynamiques et ses choix techniques pour le système de propulsion. Aquila devrait servir à fournir une connexion internet dans les zones reculées du monde, les ingénieurs de Facebook espèrent faire voler ce type d'avion pendant plusieurs mois sans aucun ravitaillement, grâce à une très faible consommation d'énergie, l'équivalent de trois sèche-cheveux.

    I.3.4. Les drones miniatures :

    La course à la miniaturisation n'a de cesse d'augmenter, la catégorie des drones miniatures recouvre globalement tous les drones dont l'envergure est inférieure à 50 centimètres, on parle dans ce cas des mini-drones.

    Chapitre I Généralité sur les drones

    Figure 1.5 : Le drone miniature (nano drone UAV).

    Ils sont généralement peu autonomes, mais qui jouent souvent le rôle de jumelles déportées, par exemple pour observer au-dessus d'un obstacle ou dans une zone à risque. Les micro-drones dont les dimensions sont inférieurs à 15 cm, pèsent environ 50 grammes avec une vitesse de croisière de l'ordre de 50 Km/h et un rayon d'action d'une dizaine de kilomètres. Ces micro-drones sont dédiés à la transmission d'images, de jour comme de nuit. Les missions envisagées sont par exemples l'évaluation de dommages ou l'observation d'une cible fixe...etc.

    I.3.5. Le robot animal volant « BAT BOT B2 » :

    En 2016, une équipe nord-américaine a développé un drone qui imite avec précision le vol de la chauve-souris.

    Une avance qui devrait aider à étudier étroitement que possible le formidable système musculo-squelettique de cet animal, mais aussi à concevoir des robots volants plus sûrs et efficaces. Reproduire la cinématique des ailes d'un oiseau en robotique est un défi technique complexe. Mais ils ont simplement présenté la dernière version de leur drone appelé « Bat Bot B2 », Figure 1.6.

    Figure 1.6 : Robot chauve-souris volante « BAT BOT B2 ».

    8

    Chapitre I Généralité sur les drones

    9

    Il pèse seulement 93 grammes pour 47 centimètres d'envergure, « Le Bat Bot » est contrôlé par des moteurs miniatures logés dans la colonne vertébrale, les ailes sont recouvertes d'une membrane en silicone de 56 microns d'épaisseur spécialement développée et qui reproduit l'élasticité naturelle des ailes des chauves-souris.

    Les chercheurs disent avoir identifié cinq mouvements dominants dans l'aile battant de la chauve-souris qu'ils ont mis en oeuvre pour reproduire environ 57% de la cinématique originale. Au cours des essais, le Bat Bot B2 a volé à environ trente mètres, fait des virages inclinés et plonge. Tant de mouvements supposés reproduire en partie les techniques de chasse d'une chauve-souris.

    Le but principal de ce drone est de servir à étudier plus précisément le vol de la chauve-souris. Les concepteurs du « Bat Bot » ajoutent que cette configuration offrirait également une meilleure sécurité que les drones quadri rotors dans des environnements où il y a risque de collision avec des personnes ou des objets. Le développement du « Bat Bot » continuera, dans le but notamment de reproduire la capacité des chauves-souris à se percher verticalement vers le bas.

    I.4. Domaines d'application des quadrotors :

    L'utilisation des quadrotors n'a cessé de progresser ces dernières années, notamment dans les applications de loisir. Mais dans les domaines professionnels cette progression est encore plus flagrante [12]. Avec ses 4 moteurs, le drone quadrotor apporte des possibilités d'embarquement de caméras, appareils photos et autres capteurs pour réaliser des missions aériennes d'acquisition de données, là où des moyens conventionnels sont trop onéreux ou trop compliqués voire impossibles à mettre en oeuvre.

    Par ses capacités à rester en vol stationnaire ou à évoluer selon des trajectoires complexes, le drone quadrotor devient un outil privilégié utilisé dans plusieurs domaines tel que:

    I.4.1. Domaine de sécurité :

    ? Les quadrotors sont utilisés par Les services de secours (police, sapeurs-pompiers et gendarmerie) pour l'évaluation des dégâts en cas de catastrophe naturelle afin de prendre des informations stratégiques sur des interventions en hauteur et délicates (exemples: victimes d'avalanches, victimes d'inondations et de tremblement de terre, repérage des feux de forêts, l'exploration des zones radioactives, les volcans etc...)

    ? Inspection des ouvrages d'art tels les ponts, les viaducs, les barrages.

    ? La surveillance maritime (voies maritimes, trafic de drogue, détection des pollutions par hydrocarbures, la surveillance urbaine, des manifestations, ainsi que les frontières).

    ? missions militaires de reconnaissance et support de combat.

    Chapitre I Généralité sur les drones

    10

    I.4.2. Domaine civil :

    ? Dans le domaine civil, les quadri-rotors sont conçue pour explorer des situations difficiles d'accès, comme des montagnes, des canyons. Ils serviraient à faire prises de vue aériennes inédites et des vidéos pour des chaînes télé comme (des reportages sur des lieux isolés de la terre, des documentaires, films, etc..).

    ? Inspection des ouvrages d'art tels les ponts, les viaducs, les barrages.

    ? Etudes scientifiques (topographie et cartographie, Étude de l'atmosphère, des sols (géologie) et des océans).

    ? Transport et livraisons des produits légères sur de courtes distances comme (Les colis postaux, boites de pizza, etc...).

    I.5. Description général du quadrotor :

    Un quadrotor est un robot mobile aérien à quatre rotors définit par six degrés de liberté dans l'espace (3 axes X, Y, Z) Figure 17. [1-2]. Ces 4 rotors sont généralement placés aux extrémités d'une croix, et l'électronique de contrôle est habituellement placée au centre de la croix. Afin d'éviter à l'appareil de tourner sur lui-même sur son axe de lacet, il est nécessaire que deux hélices tournent dans un sens, et les deux autres dans l'autre sens. Pour pouvoir diriger l'appareil, il frauder que chaque couple d'hélice tournant dans le même sens soit placé aux extrémités opposées d'une branche de la croix. Le fonctionnement d'un quadrotor est assez particulier.

    Figure 1.7 : Les mouvements de bases du quadrotor.

    En faisant varier astucieusement la puissance des moteurs, il est possible de le faire monter/descendre, de l'incliner à gauche/droite (roulis) ou en avant/arrière (tangage) ou encore de le faire pivoter sur lui-même (lacet) [3], le quadrotor a six degrés de libertés, trois mouvements de rotation et trois mouvements de translation, ces six degrés doivent être commandés à l'aide de quatre déclencheurs

    Chapitre I Généralité sur les drones

    11

    Chapitre I Généralité sur les drones

    12

    seulement; Donc c'est un système sous actionné (le nombre des entrées inférieure au nombre des sorties).

    I.6. Les mouvements du quadrotor :

    Dans les hélicoptères classiques, quand le rotor principal tourne, il produit un couple réactif qui inciterait le corps de l'hélicoptère à tourner dans la direction opposée si ce couple n'est pas contrarié. Ceci est habituellement fait en ajoutant un rotor de queue qui produit une poussée dans une direction latérale. Cependant, ce rotor avec son alimentation électrique associée ne fait aucune contribution à la poussée. Par contre, en cas de quadrotor, le rotor droit et le rotor gauche tournent dans le sens des aiguilles d'une montre et dans la direction opposée les rotors avant et arrière, ceci neutralise effectivement le couple réactif non désiré et permet au véhicule de planer sans tourner hors de la commande. D'ailleurs, différemment aux hélicoptères classiques, toute l'énergie dépensée pour contrecarrer le mouvement de rotation contribue à la force de poussée [4-11].

    Les mouvements de base de quadrotor sont réalisés en variant la vitesse de chaque rotor changeant de ce fait la poussée produite. Le quadrotor incline vers la direction du rotor plus lent, qui tient compte alors de la translation le long de cet axe. Par conséquent, comme à un hélicoptère classique, les mouvements sont couplés, signifiant que le quadrotor ne peut pas réaliser la translation sans roulement ou tangage, ce qui signifie qu'un changement de la vitesse d'un rotor se traduit dans un mouvement en au moins trois degrés de liberté. Par exemple, augmentant la vitesse de propulseur gauche aura comme conséquence un mouvement de roulis (le quadrotor incline vers le rotor plus lent, vers la droite), un mouvement de lacet (l'équilibre entres les rotors qui tourne dans le sens des aiguilles d'une montre et les rotors qui tourne dans le sens inverse est perturbé ayant pour résultat un mouvement de rotation horizontal), et une translation (le mouvement de roulis incline l'armature et avec lui, l'orientation de la force de poussée). Cet accouplement est la raison pour laquelle nous pouvons commander les six degrés de liberté de quadrotor avec seulement quatre commandes (le couple appliqué par les moteurs sur chaque propulseur).

    Le quadrotor a cinq mouvements principaux :

    Mouvement vertical (Throttle), Mouvement de roulis (Roll), Mouvement de tangage (Pitch), Mouvement de lacet (Yaw) et Translations horizontales.

    I.6.1. Le mouvement vertical (Throttle) :

    Afin de planer, toute la force de portance devrait seulement être le long de l'axe z avec une grandeur exactement opposée à la force de pesanteur. D'ailleurs, la force de portance crée par chaque rotor doit être égale pour empêcher le véhicule de renverser plus. Par conséquent, la poussée produite par chaque rotor doit être identique.

    Figure 1.8 : Illustration du mouvement vertical (Throttle).

    Le mouvement ascendant et descendant est obtenu par la variation de la vitesse de rotation des moteurs (par conséquence la poussée produite), si la force de portance est supérieure au poids du quadrotor le mouvement est ascendant, et si la force de portance est inférieure au poids du quadrotor le mouvement est descendant.

    I.6.2. Le mouvement de roulis (Roll) :

    La Figure 1.9 montre bien comment un mouvement de roulis est obtenu. Dans ce cas, on applique un couple autour de l'axe x, c'est-à-dire en appliquant une différence de poussée entre les rotors (1, 2) et les rotors (3, 4). Ce mouvement (rotation autour de l'axe x) est couplé avec un mouvement de translation selon l'axe y.

    Figure 1.9 : Illustration du mouvement de roulis (Roll).

    I.6.3. Le mouvement de tangage (Pitch) :

    La Figure 1.10 montre comment un mouvement de tangage est obtenu. Dans ce cas, on applique un couple autour de l'axe y, c'est-à-dire en appliquant une différence de poussée entre le rotor (1, 4) et les rotors (2, 3). Ce mouvement (rotation autour de l'axe y) est couplé avec un mouvement de translation selon l'axe x.

    Chapitre I Généralité sur les drones

    13

    Figure 1.10 : Illustration du mouvement de tangage (Pitch).

    I.6.4. Le mouvement de lacet (Yaw) :

    La Figure 1.11 montre comment le mouvement de lacet est obtenu. Dans ce cas, nous voulons appliquer un couple autour de l'axe z, qui est fait en appliquant une différence de vitesse entre les rotors (1,3) et (2,4). Ce mouvement n'est pas un résultat direct de la poussée produit par les propulseurs mais par les couples réactifs produits par la rotation des rotors.

    La direction de la force de poussée ne décale pas pendant le mouvement, mais l'augmentation de la force de portance dans une paire de rotors doit être égale à la diminution des autres paires pour s'assurer que toute la force de poussée demeure la même.

    Figure 1.11 : Illustration du mouvement de lacet (Yaw).

    Chapitre I Généralité sur les drones

    14

    I.6.5. Le mouvement de translation horizontale :

    La Figure 1.12 montre comment la translation horizontale est réalisée. Dans ce cas, nous voulons appliquer une force le long de x ou de y qui est fait en inclinant le corps (par le tangage ou le roulement) et en augmentant toute la poussée produite pour garder l'importance du composant de z de la poussée égale à la force de pesanteur.

    Figure 1.12 : Illustration du mouvement de translation horizontale.

    Chapitre I Généralité sur les drones

    15

    I.7. Conclusion :

    Ce chapitre permet au lecteur d'avoir des concepts préliminaires sur les différentes catégories des robots volants plus particulièrement les quadrotors et leur principe de fonctionnement. Dans le chapitre suivant nous donnons plus de détaille sur les paramètres dynamiques affectant l'orientation du quadrotor, les équations mathématiques et la modélisation de Newton-Euler.

    Chapitre 2

    Modélisation dynamique d'un quadrotor

    Chapitre II Modélisation dynamique d'un quadrotor

    16

    Chapitre II : Modélisation dynamique d'un quadrotor

    II.1. Introduction :

    Afin de concevoir un contrôleur de vol, on doit d'abord comprendre profondément la dynamique de l'avion, par conséquent son modèle dynamique. Cette compréhension est nécessaire non simplement pour la conception du contrôleur, mais aussi pour s'assurer que le comportement de véhicule est plus proche que possible de la réalité lorsque la commande est appliquée.

    Le quadrotor est classé dans la catégorie des systèmes volants les plus complexes vu le nombre d'effets physiques qui affectent sa dynamique à savoir les effets aérodynamiques, la gravité, les effets gyroscopiques, les frottements et le moment d'inertie. Cette complexité résulte essentiellement du fait que l'expression de ces effets diffère pour chaque mode de vol. En effet les modèles dynamiques du quadrotor proposés changent en fonction des taches planifiées et en fonction des milieux de navigation définis à priori par l'opérateur.

    II.2. Modèle dynamique du quadrotor :

    La modélisation des robots volant est une tâche délicate puisque la dynamique du système est fortement non linéaire et pleinement couplée. Afin de pouvoir comprendre au mieux le modèle dynamique développé ci-dessous, voilà les différentes hypothèses de travail :

    · La structure du quadrotor est supposée rigide et symétrique, ce qui induit que la matrice d'inertie sera supposée diagonale,

    · Les hélices sont supposées rigides pour pouvoir négliger l'effet de leur déformation lors de la rotation.

    · Le centre de masse et l'origine du repère lié à la structure coïncident.

    · Les forces de portance et de traînée sont proportionnelles aux carrés de la vitesse de rotation des rotors, ce qui est une approximation très proche du comportement aérodynamique.

    Pour évaluer le modèle mathématique du quadrotor on utilise deux repères, un repère fixe lié à la terre Rb et un autre mobile Rm. Le passage entre le repère mobile et le repère fixe est donné par une matrice dite matrice de transformation T qui contient l'orientation et la position de repère mobile par rapport au repère fixe. On choisit la convention d'axes suivants :

    Chapitre II Modélisation dynamique d'un quadrotor

    17

    Figure 2.1 : Géométrie du quadrotor.

    (1)

    Avec R la matrice de rotation (décrit l'orientation de l'objet mobile), æ = [x Y Z]T est le vecteur de position. Pour déterminer les éléments de la matrice de rotation R, on utilise les angles d'Euler.

    II.2.1. Angle d'Euler :

    Au début le repère mobile est coïncide avec le repère fixe, après le repère mobile fait un mouvement de rotation autour de l'axe x d'un angle de roulis(- 2 < ç < 2), suivi d'une rotation

    Autour de l'axe y d'un angle de tangage(- 2 < ç < 2), suivi d'une rotation autour de l'axe z d'angle de lacet(-7r < i < 7r). Donc on a la formule de la matrice de rotation R :

    ci -si 0 ce 0 se 1 0 0

    R = Rots (i ) × Roty(e) × Rot, (ç) = ~si ci 0 ~× ~0 1 0 ~× ~0 cç-sç ~ (II.2)
    0 0 1 -se 0 ce 0 sç cç

    R = ~ci ce sçseci - sci ???? cçseci + si sç si ce sçsesi + ci ce cçsesi - cçci ~ (II.3)
    -se sçce cçce

    Avec : c = cos et s = sin

    Chapitre II Modélisation dynamique d'un quadrotor

    II.2.2. Vitesses angulaires :

    Les vitesses de rotations Ù1, Ù2,Ù3dans le repère fixe sont exprimées en fonction des vitesses de rotations ?????, ?????, ????? dans le repère mobile, on a :

    Ù = ~Ù10 0
    Ù2~ = ~?????0~ + ????????????????(????)-1 ~????? ~+ (????????????????(????)????????????????(????))-1 ~????0~ Ù3 0 0

    (II.4)

     

    En effet, la rotation en roulis a lieu lorsque les repères sont encore confondus. Puis, en ce qui concerne le tangage, le vecteur représentant la rotation doit être exprimé dans le repère fixe: il est donc multiplié par ????????????????(????)-1. De même, le vecteur représentant la rotation en lacet doit être exprimé dans le repère fixe qui a déjà subites deux rotations. On arrive ainsi à:

    Ù???? ????? 0 -????????????? ????? - ?????????????

    Ù = ~ Ù???? ~ = ~ ?????????????

    0 ~ + ~ ~ + ~ ????????????????????? ~ = ~ ????????????? + ????????????????????? ~ (II.5)

    Ù???? 0 -????????????? ????????????????????? ????????????????????? - ?????????????

    1 0 -????????

    Ù = 0 ???????? ???????????????? ~ × ~(id (II.6)

    0 -???????? ????????????????

    Quand le quadrotor fait des petites rotations, on peut faire les approximations suivantes:

    cö =cè =cø =1, et sö = sè = sø = 0.

    Donc la vitesse angulaire sera:

    Ù = [????? ????? ?????] (II.7)

    II.2.3. Vitesses linéaires :

    Les vitesses linéaires ????????????, ????????????, ???????????? dans le repère fixe en fonction des vitesses linéaires ???????????? , ???????????? , ???????????? dans le repère mobile sont données par :

    18

    ???? ????

    (II.8)

    ???????? ????????

    ???? = ~????????????~ = ???? × ~????????????~

    ???? ????????

    ????????????

    II.2.4. Effets physiques agissants sur le quadrotor : II.2.4.1. Les forces :

    Les forces agissant sur le système sont :

    Le poids du quadrotor: il est donné par P = mg, où : m est la masse totale et g la gravité.

    Chapitre II Modélisation dynamique d'un quadrotor

    19

    Les forces de poussée: qui sont des forces provoquées par la rotation des moteurs, elles sont perpendiculaires sur le plan des hélices. Ces forces sont proportionnelles au carrée de la vitesse de rotation des moteurs :

    FL = bwL2 (II.9)

    Avec i = 1: 4, et b est le coefficient de portance, il dépend de la forme et le nombre des pales et la densité de l'air.

    Les forces de traînée : la force de traînée est le couplage entre une force de pression et la force de frottement visqueux, dans ce cas on a deux forces de traînée agissant sur le système qu'elles sont :

    · La traînée dans les hélices : elle agisse sur les pales, elle est proportionnelle à la densité de l'air, à la forme des pales et au carré de la vitesse de rotation de l'hélice, elle est donnée par la relation suivante :

    Th = dw2 (II.10)

    Avec d est le coefficient de drag il dépend de la fabrication de l'hélice.

    · La traînée selon les axes (x, y, z): elle est due au mouvement du corps du quadri-rotor

    Ft = Kfty (II.11)

    Avec : K ft le coefficient de traînée de translation et V la vitesse linéaire.

    II.2.4.2. Les moments :

    Il y a plusieurs moments agissants sur le quadrotor, ces moments sont dus aux forces de poussée et de traînée et aux effets gyroscopiques.

    Moments dus aux forces de poussée :

    · La rotation autour de l'axe x : elle est due au moment crié par la différence entre les forces de portance des rotors 2 et 4, ce moment est donné par la relation suivante :

    Mx= l(F4 - F2) = lb(w42 - w2 2) (II.12)

    Avec l, est la longueur du bras entre le rotor et le centre de gravité du quadrotor.

    · La rotation autour de l'axe y : elle est due au moment crié par la différence entre les forces de portance des rotors 1 et 3, ce moment est donné par la relation suivante :

    My= l(F3 - F1) = lb(w32 - w12) (II.13)

    Moments dus aux forces de traînée :

    · La rotation autour de l'axe z : elle est due à un couple réactif provoqué par les couples de traînée dans chaque hélice, ce moment est donné par la relation suivante :

    Chapitre II Modélisation dynamique d'un quadrotor

    20

    ???????? = ????(????1 2 - ????2 2 + ????3 2 - ????42) (II.14)

    (II.15)

    s Moment résultant des frottements aérodynamiques, il est donné par :

    ???????? = ????????????Ù2

    Avec ???????? ????: Le coefficient des frottements aérodynamiques et ? est la vitesse angulaire.

    II.2.4.3. Effet gyroscopique :

    L'effet gyroscopique se définit comme la difficulté de modifier la position ou l'orientation du plan de rotation d'une masse tournante. L'effet gyroscopique est ainsi nommé en référence au mode de fonctionnement du gyroscope, appareil de contrôle de mouvement utilisé dans l'aviation (du grec Gyro qui signifie rotation et scope, observer).

    Dans notre cas il y a deux moments gyroscopiques, le premier est le moment gyroscopique des hélices, l'autre est le moment gyroscopique dû aux mouvements de quadrotor.

    s Moment gyroscopique des hélices : il est donné par la relation suivante :

    ????????h = ? 4 Ù ? ???????? [0 0 (-1)????+1 ????????]???? (II.16)

    1

    Avec ???????? est l'inertie des rotors.

    s Moment gyroscopique dû aux mouvements de quadri-rotor : il est donné par la relation suivante :

    ???????????? = Ù ? ???? Ù (II.17)

    Avec J est l'inertie du système.

    II.2.5. Développement du Modèle mathématique selon Newton-Euler [5-6-7-8]:

    En utilisant la formulation de Newton-Euler, les équations sont écrites sous la forme suivante:

     

    (II.18)

    Avec æ : est le vecteur de position du quadri-rotor

    m : la masse totale du quadri-rotor

    ? : La vitesse angulaire exprimée dans le repère fixe

    R : La matrice de rotation

    ? : Le produit vectoriel

     

    Chapitre II Modélisation dynamique d'un quadrotor

    ???????? ????????, ???????? ????????, ???????? ????????: Les coefficients des frottements aérodynamiques.

    21

    J : matrice d'inertie symétrique de dimension (3x3), elle est donnée par :

    ???????? 0 0

    ???? = ~0 ???????? 0 ~ (II.19)

    0 0 ????????

    ????(Ù) : est la matrice antisymétrique; pour un vecteur de vélocité Ù = [????1 ????2 ????3] ???? , elle est donnée par:

    0 -Ù3 Ù2

    ????(Ù) = ~Ù3 0 -Ù1 ~ (II.20)
    -Ù2 Ù1 0

    ???????? : est la force totale générée par les quatre rotors, elle est donnée par :

    ????????= ????× [0 0 ? ????????

    4 ????=1 ]???? (II.21)

    ???????? = ????????????2 (II.22)

    ???????? : La force de traînée selon les axes (x, y, z), elle est donnée par :

    -???????????????? 0 0

    ???????? = ~0 -???????????????? 0 ~ ????? (II.23)

    0 0 -????????????????

    ????????????????, ????????????????, ???????????????? : Les coefficients de traînée de translation, ???????? : Force de gravité, elle est donnée par :

    0

    ???????? = ~0 ~ (II.24)
    -????????

    ???????? : Moment provoqué par les forces de poussée et de traînée.

    ????(????4 - ????2)

    ???????? = ~????(????3 - ????1) ~ (II.25)

    2

    ????(????12 - ????22 + ????32 - ????4)

    ????????: Moment résultant des frottements aérodynamiques, il est donnée par :

    ???????? ????????????? 2~????????

    ?????????????????????

    ???????? ???????? ?????2

    =

    2 (II.26)

    Chapitre II Modélisation dynamique d'un quadrotor

    22

    II.2.5.1. Equations de mouvement de translation :

    On a:

    ·

    ???????? = ???????? + ???????? + ???????? (II.27)

    On remplace chaque force par sa formule, on trouve :

    ????

    ????· ????????????????????????+

    ~ ????· ~ = ~ ???????????????????????? -

    ????· ????????????????

    ????????????????

    ???????????????? ~

    4

    ? ????=1

    ????????

    -

    ???????? ?????????????

    ~ ???????? ????????????? ~

    ???????? ???????????? ?

    -

    0

    ~ 0 ~

    ????????

    (II.28)

     

    On obtient alors les équations différentielles qui définissent le mouvement de translation :

    II.2.5.2. Equation de mouvement de rotation :

    On a:

    ????Ù? = -????????h - ????????h - ???????? + ???????? (II.30)

    On remplace chaque moment par la formule correspondant, on trouve :

    On obtient alors les équations différentielles définissants le mouvement de rotation :

    Chapitre II Modélisation dynamique d'un quadrotor

    23

    Avec : fr

    = W1 - W2 + W3 - W4 (II.33)

     

    En conséquence, le modèle dynamique complet qui régit le quadrotor est le suivant :

    Avec :

    Et :

    A partir de (II.35), on trouve :

    Chapitre II Modélisation dynamique d'un quadrotor

    24

    II.2.6. La représentation d'état du système :

    Pour un système physique il existe une multitude de représentations d'état, dans notre cas on choisit le vecteur d'état comme suit [ ] :

    On obtient la représentation d'état suivante :

    Avec :

    Chapitre II Modélisation dynamique d'un quadrotor

    ????~???? (II.43)

    ~?

    ????????

    ????

    ????????

    ???? =

    25

    II.7. La dynamique des rotors [1-2] :

    Généralement les moteurs utilisés dans les quadrotors sont des moteurs à courant alternatif.

    La dynamique du rotor est donc approximée à celle d'un moteur à courant alternatif, elle est donnée par les équations différentielles suivantes :

    Avec : ???????? est le couple d'entrée, et ???????? = ????????????2 est le couple résistant généré par le rotor i.

    Pour atteindre les objectifs de la commande d'un quadrotor, une boucle d'asservissement en vitesse est souvent nécessaire. D'abord, nous avons besoin de déterminer les vitesses désirées ????????,????

    correspondantes aux valeurs des commandes fournies par le contrôleur, ces vitesses peuvent être calculées comme suit :

    ????~???? = ????-1???? (II.40)

    Avec: ????~???? = (????????12 , ????????22 , ????????32 , ????????4

    2 ), ???? = (????1,????2,????3, ????4)????, et ???? est une matrice non singulière, elle est obtenu à partir de (II.36).

    L'objectif est de synthétisé un contrôleur pour que ???????? ? ????????,???? lorsque ???? ? 8 en utilisant les couples???????? .

    On définit l'erreur de vitesse :

    ?b??~???? = ???????? - ????????,???? (II.41)
    Une loi de commande est développée dans [1-2], elle est donnée par :

    ???????? = ???????? + ?????????????????,???? - ????????????~???? (II.42)
    Avec ????????, i ?{1, 2, 3,4}sont des gains positifs.

    On remplace la loi de commande dans (II.39), on obtient :

    Chapitre II Modélisation dynamique d'un quadrotor

    26

    Cette relation représente la dynamique de l'erreur, elle nous montre la convergence exponentielle de

    toi vers toi lorsquet - 00. Sa signifier la convergence des commandes du quadrotor vers ces valeurs désirées, ce qui assure la stabilité du quadrotor.

    En réalité le quadrotor est commandé par les tensions d'alimentation de ces quatre moteurs. Pour commander ces moteurs, nous avons besoin d'obtenir la tension d'entrée de chaque moteur. Supposant que l'inductance du moteur est petite, et considérant que les moteurs utilisés sont identiques, nous pouvons obtenir la tension d'entrée de chaque moteur comme suit :

    (II.43)

    ????????

    KmKg

    Avec : Ra est la résistance du moteur, Km est la constant du couple de moteur, Kg est le gain du réducteur.

    Vi = Ti + KmKgtoi

    Chapitre II Modélisation dynamique d'un quadrotor

    27

    II.3. Conclusion :

    Ce chapitre permet au lecteur de comprendre les bases physiques utilisées pour déterminer les équations de la cinétique et la dynamique des quadrotors, ainsi que les forces et les moments agissantes. L'utilisation du formalisme de Newton-Euler nous a permet d'établir le modèle dynamique du quad rotor. La complexité du modèle, La non linéarité, et l'interaction entre les états du système, peuvent se voir clairement. Les résultats des formules précédentes sont utilisés généralement pour établir un modèle mathématique permettant de décrire avec précision le comportement du système. Dans le prochain chapitre, je vais expliquer brièvement le hardware et le software utilisé dans la réalisation du quadrotor.

    Chapitre 3

    Conception et mise en oeuvre Lu

    Fonctionnement

    Chapitre III Conception et mise en oeuvre du fonctionnement

    Chapitre III : Conception et mise en oeuvre du fonctionnement

    III.1. Introduction :

    Le but de ce chapitre est de donner une description globale du principe de fonctionnement des différentes parties de notre système, en expliquant le hardware que j'ai utilisé pour ce projet et comment je me suis installé avec des outils et des instruments électroniques de base pour réaliser le contrôleur de vol du drone, le transmetteur RF et le récepteur. Je vais également donner une explication détaillée sur la partie software utilisé pour ce projet, passant au processus de construction étape par étape.

    III.2. Description du hardware utilisé :

    Les quadrotors sont des systèmes complexes, qui exigent des composants et une instrumentation varié qui doit être à la fois de haute performance et de poids allégés. Ici on va introduire les plus importants :

    III.2.1. Arduino Uno :

    Un Arduino Uno Figure 3.1, c'est le composant le plus simple pour commencer avec, il me donne beaucoup de couvert pour continuer à développer mon propre contrôleur de vol du quadrotor car il s'agit d'un PCB à double face professionnelle avec des faibles interférences et bruits, donc il convient bien pour le vol. Alors je pourrais utiliser un Arduino pro mini pour cela, mais le problème c'est que l'alimentation sur un pro mini est basée d'un régulateur MIC5205, qui ne peut fournir qu'un 150mA avec un bon refroidissement. Donc pour garder les choses sur le côté sûr, j'ai utilisé un Arduino Uno pour la réalisation du contrôleur de vol.

    28

    Figure 3.1 : la carte Arduino Uno.

    Arduino Uno, est une carte de développement "Open-Source Hardware" peu coûteuse, ce qui signifie que tout le monde est libre de télécharger les fichiers de conception et de tourner sa propre

    Chapitre III Conception et mise en oeuvre du fonctionnement

    29

    Chapitre III Conception et mise en oeuvre du fonctionnement

    Chapitre III Conception et mise en oeuvre du fonctionnement

    version du conseil de développement populaire. Il est basé sur un microcontrôleur ATmega en 8-bit et Il contient tout le nécessaire pour supporter le microcontrôleur; Il suffit de le connecter à un ordinateur avec un câble USB ou de l'alimenter avec un adaptateur AC-DC ou une batterie pour le démarrer. Dans le cadre de ce projet le traitement séquentiel des instructions de programme est important, on utilise souvent les interruptions des pates d'entrés de l'Arduino Uno pour lire les signaux de commande venant du récepteur radio aussi en utilise les sorties PWM de l'Arduino Uno pour commander la rotation des moteurs brushless via les ESC. Finalement l'utilisation du protocole de communication I2C permet de lire les données provenant de Gyro, de sorte que nous pouvons agir sur la stabilité du drone.

    III.2.2. Gyroscope MPU-6050 :

    Nous avons seulement besoin de corriger le mouvement indésirable du quad rotor, le Gyro c'est le capteur idéal de notre projet. J'ai choisi le MPU-6050 Figure 3.2, car il est très facile à obtenir, il est également très bon marché et il détient d'un accéléromètre et un gyroscope à la fois, ceci est très pratique lors de la programmation d'une IMU. La centrale inertielle ou l'IMU est un ensemble de capteurs qui peut être installé au bord de n'importe quel corps mobile pour lire les données des mouvements de ce corps. Ce type de puce est en réalité ce qu'on appelle un micro système électromécanique ou un MEMS pour abrégé, ceci est rien d'autre que des capacités qui varient en fonction de l'accélération et de la vitesse angulaire. Donc pour notre cas, nous pourrons déterminer et traité les mouvements du quad rotor dans l'espace. L'interface du module MPU-6050 avec Arduino se fait aux broches (SCL et SDA) à l'intermédiaire d'une liaison I2C.

    Figure 3.2 : Unité de Mesure de l'Inertie gyroscopique MPU-6050.

    Le mouvement angulaire sur le quadrotor est partout le même. Donc, peu importe où se trouve le gyroscope. Mais c'est toujours une bonne idée de monter le gyroscope au centre de gravité du quad où les vibrations sont les plus faibles.

    III.2.3. Les moteurs sans balais « Brushless » :

    Dans le cadre de ce projet, j'ai besoin des moteurs de petite masse et à la fois de très haute vitesse avec un rapport couple-masse élevée. Pour cela je suis obligé de travaillé avec les moteurs sans balais ou "Brushless BLDC motor". Comme le montre la Figure 3.3.

    30

    Les moteurs brushless sont en fait un type de moteur synchrone à aimants permanents tourne avec un courant alternatif triphasé AC. Ils présentent de nombreux avantages par rapport aux moteurs DC classiques à savoir, leurs longues durées de fonctionnement et leurs insensibilités aux parasites en plus leurs réponses dynamiques élevées. Ce type de moteur, c'est ce qui fait tourner et générer de la poussée pour permettre au drone de voler. Dans le cas des multirotors, les moteurs génèrent une poussée vers le haut qui maintient le drone comme un quadcopter volant. Autrement dit, un moteur sans balai contient un ensemble d'électroaimants (bobines) qui sont reliés ensemble dans des paires spécifiques. Ces électroaimants sont connectés en trois sections principales, de sorte que le moteur brushless comporte trois fils sortants, Figure 3.4.

    Figure 3.3 : Moteur Brushless EMAX XA2212 1400Kv. Figure 3.4 : Composantes interne du Moteur Brushless.

    Le moteur sans balais se compose de deux sections principales :

    · Rotor : la partie qui tourne et a les aimants montés sur un motif radial.

    · Stator : la partie qui ne tourne pas, et dispose d'électroaimants.

    J'utilise pour ce projet quatre moteurs de la marque EMAX XA2212 1400Kv, ces moteurs ont 27.9 mm de diamètre et 43.16 mm de longueur, ils pèsent 51g et ils consomment une puissance de 197 Watts avec un courant max de 16.4A. Le KV veut dire la vitesse de rotation du moteur pour 1 volt. Il indique le nombre de tour/minute/volt du moteur à vide. Dans notre cas, le circuit de puissance qui contient les moteurs fonctionne sur un voltage nominal de 11.1 volts, donc pour cela avec 1400 KV sous 11.1 volts chaque moteur peut effectuer jusqu'à 15540 tours/minute s'il est à vide c'est ce qui est appeler rotation par minute RPM.

    III.2.4. Electronique Speed Controller « ESC » :

    ESC signifie Electronique Speed Controller Figure 3.5, c'est un circuit électronique qui gère la vitesse des moteurs brushless. Sur un multi-rotor, chaque moteur obtient son propre ESC, dont chacun se connecte au contrôleur de vol. Les ESC converties les séquences des signaux de commande

    31

    PWM venant du contrôleur de vol ou du récepteur radio en un signal alternatif triphasé, et entraîne le moteur brushless en fournissant le niveau d'énergie électrique approprié.

    Figure 3.5: variateur de vitesse « Hobbywing OPTO ESC 20A ».

    Les ESCs utilisés pour ce projet sont de la série hobbykings 20A spécialement conçus pour les multirotors, ils ont un large éventail de fonctions de programmation combinés avec une courbe d'accélération linéaire. L'ESC doit supporter un ampérage au moins égal à l'ampérage max des moteurs. Généralement on prend un ESC d'ampérage un peu supérieur afin qu'il ne chauffe pas. Dans mon cas les moteurs brushless consomment 16.4A pour une max poussée « Thrust », j'ai choisie à prendre un ESC de 20A afin de garder un peu de marge de sécurité.

    III.2.5. Batterie LIPO :

    Notre système quadrotor besoin beaucoup d'énergie et a besoin d'une source d'alimentation puissante et en plus légère, pour cela je suis obligé de travailler avec la batterie du Lithium-Polymère Figure 3.6. Les batteries Lithium-Polymère sont des batteries chimiques très puissantes et assez légère pour le bon vol du quadrotor, en plus elle inclut un circuit de protection (PCM) qui protège la batterie contre les charges et décharges excessives et des court-circuités ou d'explosée [14].

    Figure 3.6 : Batterie de Lithium-Polymère « LIPO » 11.1V 70C 2.2Ah.

    J'ai utilisé pour ce projet une batterie LIPO de 3 cellules et d'une capacité de 2200mAh à 11.1 volts avec un Taux de décharge « C Rating » de 70C et un poids de 225g.

    Le Taux de décharge est une façon informelle de décrire la quantité de courant que la batterie peut fournir en toute sécurité, Le C se réfère à la capacité de la batterie et à l'amplitude des heures. Dans notre cas cette batterie de 70C peut fournir jusqu'à 70 × 2.2Ah = 154 ampères dans une heure.

    Chapitre III Conception et mise en oeuvre du fonctionnement

    32

    III.2.6. Les hélices :

    Concernant les hélices, il faut les choisir en fonction de la taille des moteurs et du châssis du quadrotor utilisé. J'ai choisi les DJI 8045 comme le montre la Figure 3.7. Ces hélices sont fabriquées avec la fibre de carbone qui est une matière résistante et légère, elles ont 8 pouces (20 cm) de diamètre et un pas de tangage de 4.5 pouces (un pas de tangage signifie combien de distance que le quadrotor va aller de l'avant pour une révolution à 360 degrés de l'hélice).

    Figure 3.7 : Hélices DJI 8045.

    Comme déjà dit dans le chapitre 1, on prendra deux de sens horaire et deux de de sens anti horaire en direction de la palme, ces hélices seront fixé aux moteurs et leur rôle sera de brassé l'aire pour générer la force de poussée. La taille de l'hélice varie avec la puissance du moteur, pour bien comprendre voici quelques règles à respecter pour le bon choix des différents accessoires :

    Plus une hélice est petite, plus elle a besoin de tourner vite pour être efficace, plus elle est grande, moins elle a besoin de tourner vite. Sur un gros modèle d'avion par exemple, une petite hélice même tournant très vite (beaucoup de KV), il ne suffira pas à le faire voler correctement (pas assez puissante). Donc il faudra l'équiper d'une grande hélice, qui aura besoin de tourner moins vite (moins de KV). Les grandes hélices consommant plus que les petites hélices, une grande hélice devra être montée sur un moteur puissant (beaucoup de watt) et vice versa. P(Watt) = U(Volt) X I(A)

    I(A) : le courant max qui doit être délivré par l'ESC au moteur brushless.

    U(Volt) : la tension continue de la batterie LIPO.

    P(Watt) : la puissance max admise par le moteur brushless.

    En général : un moteur avec fort KV, prévue pour petite hélice qui consomme peut a peu de Watts ; et inversement : moteur avec faible KV, prévu pour grande hélice qui va consommer beaucoup a beaucoup de Watts.

    III.2.7. Arduino Nano :

    L'Arduino Nano est une carte petite, complète et facile à utiliser basée sur l'ATmega328 Figure 3.8. Il a plus ou moins la même fonctionnalité de l'Arduino Uno, mais dans un package différent. Il ne dispose que d'une prise d'alimentation DC et fonctionne avec un câble USB Mini-B au lieu d'un câble standard pour se connecté au PC. L'Arduino Nano peut être alimenté via une alimentation externe non régulée 6-20V (broche 30) ou Alimentation externe régulée 5V (broche 27).

    Chapitre III Conception et mise en oeuvre du fonctionnement

    33

    La source d'alimentation est automatiquement sélectionnée pour la source de tension la plus élevée. Il est généralement destiné pour des réalisations qui nécessitent la miniaturisation et à l'installation semi-permanente dans des objets ou des expositions, on l'utilise souvent dans la réalisation du transmetteur RF.

    Figure 3.8 : Arduino Nano.

    III.2.8. Module radio NRF24l01 2.4GHz :

    Notre système quadrotor reçoit des données de contrôle en temps réel, il a donc besoin d'avoir un système radio de bonne qualité. Le transmetteur RF a besoin d'un module puissant pour envoyer le signal assez loin, mais le récepteur peut avoir un type normal d'antenne PCB. Le module radio que j'ai utilisé est celui avec l'antenne à puissance amplifiée, Figure 3.9.

    Figure 3.9 : NRF24l01 Radio module 2.4GHz.

    L'NRF24l01 est un module émetteur-récepteur qui utilise la bande de 2,4 GHz et peut fonctionner avec un débit de 250 Kbps à 2 Mbps à l'air libre. La consommation d'énergie de ce module est juste d'environ 12 mA au cours de la transmission et la tension de fonctionnement est de 1,9 Volts à 3,3 Volts. Le module NRF24L01 envoi et reçoit des données dans des «paquets» de plusieurs octets à la fois et la communication avec le microcontrôleur se fait via le protocole de communication SPI. L' NRF24L01 peut utiliser jusqu'à 125 canaux différents, ce qui permet d'avoir un réseau de 125 modems indépendants en un seul module. Ces unités ont beaucoup de complexité interne, mais certaines personnes talentueuses ont écrit des bibliothèques Arduino qui nous facilitent la tâche et nous donne beaucoup de liberté en programmation.

    Chapitre III Conception et mise en oeuvre du fonctionnement

    III.2.9. Les joysticks :

    Les parties les plus importantes du contrôleur radio sont les joysticks, mieux dits, les potentiomètres. Un joystick Figure 3.10, est un dispositif de contrôle du curseur utilisé dans les jeux informatiques et la technologie d'assistance basé sur des potentiomètres. Le joystick qui a obtenu son nom du bâton de contrôle utilisé par un pilote pour contrôler les ailerons et les ascenseurs d'un avion, c'est un levier à main qui pivote sur une extrémité et transmet ses coordonnées par l'intermédiaire d'un microcontrôleur.

    Les émetteurs radiocommande des quadrotors comportent deux potentiomètres de précision dans chaque joystick, dont ils varient la valeur de la résistance en fonction des accès de contrôle pour les mouvements Pitch, Roll, Yaw et Throttle, Figure 3.11.

    34

    Figure 3.10 : Joystick de haute qualité. Figure 3.11 : Commandes de vol du drone.

    Dans ce contexte, on utilise l'Arduino Nano pour convertir le signal d'entrée de chaque potentiomètre en un signal numérique, puis le module radio NRF24101 permettra d'envoyer les variations de ces valeurs au récepteur du drone. En fait, ces valeurs numériques correspondent à la position du bâton de contrôle de chaque joystick.

    III.2.10. La carcasse du quadrotor et du transmetteur RF:

    Le châssis c'est l'élément central du drone qui détermine son envergure totale. La réalisation d'un quadrotor de petite taille exige l'utilisation d'un cadre léger, rigide et harmonique. Ainsi pour le transmetteur RF, il faut couvrir le circuit imprimé avec une carcasse confortable pour faciliter l'utilisation et pour le protégé. L'impression en 3D m'a permis de construire les carcasses voulus à base de nylon ultra polyamide (PLA) en utilisant les fichiers sources du logiciel SOLID WORKS [15] Figure 3.12.

    Chapitre III Conception et mise en oeuvre du fonctionnement

    Figure 3.12 : Les carcasses construites avec logiciel SOLID WORKS en 3D.

    L'architecture du châssis du quadrotor est optimisée permettant de dégager beaucoup d'espace pour que les composants soient installés sans difficulté, pour cela j'ai construit un circuit imprimé permettant de faire le câblage des ESC et le contrôleur de vol avec la batterie plus facilement comme le montre la Figure 3.13.

    Figure 3.13 : Circuit imprimé du plat inferieur réalisé avec logiciel Eagle CAD soft.

    35

    Chapitre III Conception et mise en oeuvre du fonctionnement

    36

    III.3. Réalisation du transmetteur RF : III.3.1. Schéma électronique :

    Le circuit électronique de l'émetteur radio 2,4 GHz Figure 3.14, est basé d'un microcontrôleur Atemega328, NRF24l01 et deux joysticks. Il avait 6 canaux de transmission qui corresponds aux commandes (Pitch, Roll, Yaw, Throttle et les deux commutateurs SW1 et SW2).

    Figure 3.14 : Schéma électronique du transmetteur RF 2.4 GHz.

    Au niveau de l'alimentation nous devons fournir les 12 volts de la batterie à l'entrée de l'Arduino Nano et au régulateur de tension 3.3V. Ce dernier est nécessaire pour faire chuter la tension de 12V à 3.3V, parce que le module NRF24 fonctionne à cette tension et en plus il absorbe trop de courant ainsi que l'Arduino ne pourra pas fournir autant de courant. La sortie négative de la batterie est connecté à l'une des broches GND de l'Arduino et la sortie positive à l'interrupteur ON / OFF, l'autre broche du commutateur ira directement à la broche Vin de l'Arduino et à l'entrée du régulateur de tension 3.3V. Les broches CE et CSN de la NRF24 doivent être branchées sur les pins numériques de l'Arduino Nano qui correspondent aux même sens déclaré dans le programme principale. Même pour les auteurs broches MISO, MOSOI et CLK qui sont dédiés pour la communication SPI.

    Chacun des 4 potentiomètres est connecté aux entrées analogiques A0, A1, A2 et A3 de l'Arduino Nano. Nous devons d'abord fournir 5 volts à la broche droite de chaque potentiomètre et la masse à la broche gauche. De cette manière, nous aurons 0 volts aux entrées analogiques quand le potentiomètre est dans la plus basse position et 5 volts quand il est dans la plus haut et n'importe

    Chapitre III Conception et mise en oeuvre du fonctionnement

    quelle tension (de 0 à 5 volts) dans l'intervalle. L'Arduino Nano a un convertisseur analogique numérique (ADC) de 10 bits qui nous donnera des valeurs de 0 à 1024 unités. Les deux canaux de commutateurs SW1 et SW2 sont des canaux numériques et ne sont pas identiques à celles des potentiomètres, car ils n'ont que des valeurs de 0 et 1 logique. Le circuit imprimé double face du transmetteur RF Figure 3.15 est réalisé à l'aide du logiciel Eagle CAD soft.

    Figure 3.15 : Schéma du circuit imprimé du transmetteur RF 2.4 GHz.

    Figure 3.16 : Transmetteur RF 2.4 GHz durant la réalisation.

    37

    Chapitre III Conception et mise en oeuvre du fonctionnement

    38

    III.3.2. Algorithme du transmetteur RF :

    Au début, il est nécessaire de définir la librairie de l'NRF24 et l'adresse du canal de transmission radio, la même adresse doit apparaître dans les instructions du programme du récepteur pour assurer le cryptage de nos informations. Avant de commencer par le programme principal, il faut calibrer les joysticks en utilisant L'ADC de l'Arduino Nano. L'utilisation de la fonction AnalogRead permet de lire les valeurs analogiques de chaque potentiomètre des deux joysticks qui corresponds aux commandes à envoyer, puis les affichés sur le moniteur série de l'Arduino IDE à l'aide de l'instruction Serial.print (" ") en faisant varier la position des joysticks dont chaque colonne représente la valeur d'un canal "une commande" Figure 3.17.

    Figure 3.17 : Capture d'écran des valeurs analogiques affichées sur le moniteur série de l'Arduino IDE.

    Ces valeurs analogiques sont codées sur 10 bits, de sorte que le taux des potentiomètres peut aller de 0 à 1024 en décimale. On note ensuite les valeurs correspondantes aux positions (minimal, centrale et maximal) des joysticks pour les utilisées dans le programme principal du transmetteur RF, j'ai trouvé :

    Throttle = min : 115 centre : 645 max : 989 Yaw = min : 62 centre : 622 max : 980 Pitch = min : 25 centre : 594 max : 929

    Roll = min : 75 centre : 612 max : 974

    Comme l'NRF24l01 envoi les données dans des paquets de 8bit/s, alors l'utilisation de la fonctions prédéfinie map(, , , , ); dans le programme principale du transmetteur RF permet de coder les valeurs précédentes à des grandeurs de 8 bits (0 à 255) afin de les envoyer aux récepteur RF

    en utilisant la fonction prédéfinit radio.

    write(&data, sizeof(MyData)).

     

    Chapitre III Conception et mise en oeuvre du fonctionnement

    La lecture des valeurs numérique des commutateurs SW1 et SW2 sera une valeur booléenne de 0 ou 1 logique (ON/OFF). L'NRF24L01 peut envoyer jusqu'à 32 canaux différents de 8 bits chacun, dans ce cas nous enverrons que les 6 canaux de 8 bits qu'il correspond enfaite aux valeurs des commandes: (Tangage, Roulis, Lacet, Gaz et les deux switches). Le programme Principal du transmetteur RF est expliqué dans cet organigramme:

    Sous-programme mapJoystickValues :

    Déclaration des
    librairies SPI &
    NRF24l01
    Pins direction

    Déclaration des
    variables 8 bits:
    Throttle, Yaw,

    Pitch, Roll,

    SW1, SW2

    Non

    Val< centre

    Oui

    Void setup :

    Codé val de 128 jusqu'à 255

    Initialisation des instructions de la

    Radio

    Déclaration des
    variables sur 10
    bits:
    min, centre,
    max val

    Codé val de 0 jusqu'à 128

    Void loop :

    Déclaration du sous-programme
    mapJoystickValues

     

    Codé les valeurs de 10 bits et les Affectés aux variables à envoyer En utilisant le sous-programme mapJoystickValues Throttle = mapJoystickValues (lire de A0, 115, 645, 989) Yaw = mapJoystickValues (lire de A1, 62, 622, 980) Pitch = mapJoystickValues (lire de A2, 25, 594, 929) Roll = mapJoystickValues (lire de A3, 75, 612, 974)

    SW1 = lire la valeur digitale du pin 7

    SW2 = lire la valeur digitale du pin 8

    39

    Transmettre DATA :

    radio.write

    (&data,

    sizeof(MyData))

     

    Chapitre III Conception et mise en oeuvre du fonctionnement

    40

    III.4. Récepteur RF 2.4 GHz :

    Tout émetteur a besoin d'un récepteur. Habituellement, les récepteur radio génèrent des signaux de sortie PWM qui varie de 1000 à 2000 microsecondes, parce que c'est les largeurs d'impulssion nécessaire pour le fonctionnement des ESCs. Dans ce contexte, l'utilisation des registres de Timer de l'Arduino Nano permet facilement de généré les signaux PWM pour les 6 différents canaux qui correspondent enfaite aux mêmes valeurs de 8 bits envoyés par le transmetteur.

    III.4.1. Circuit et schéma électronique :

    Le circuit électronique du récepteur radio 2,4 GHz est basé sur les mêmes composants que le transmetteur l'Arduino Nano, NRF24l01 et la socket-8-pin pour NRF24 qui détient d'un régulateur de 3.3v ASM1117. Les connexions de l'Arduino Nano au NRF24l01 sont les mêmes que dans le transmetteur radio, comme il est illustré dans le schéma ci-dessus Figure 3.18.

    Les connexions au module radio sont les mêmes que dans le cas du transmetteur. Pour alimenter le récepteur nous pourrions obtenir 11.1 volts directement de la batterie Lipo du drone. Les broches D2, D3, D4, D5, D6 et D7 sont utilisés comme canaux de sortie PWM car ils peuvent générer ces signaux et proviennent du même registre de PORT (DDRD).

    (CH1: D2, CH2: D3, CH3: D4 et CH4 : D5) sont les canaux qui corresponds respectivement aux commandes (Throttle, Yaw, Pitch et Roll) tandis que (CH5: D6) et (CH6: D7) sont les deux canaux auxiliaires numériques destinés pour les switches.

    Figure 3.18 : Schéma électronique du récepteur RF 2.4 GHz

    Le circuit imprimé double face du récepteur RF Figure 3.19 est réalisé à l'aide du logiciel Eagle CAD soft.

    Chapitre III Conception et mise en oeuvre du fonctionnement

    Figure 3.19 : Schéma du circuit imprimé du récepteur RF 2.4 GHz

    III.4.2. Algorithme du récepteur RF 2.4GHz :

    Nous commençons le code en initialisant la configuration de l'interruption PWM et la bibliothèque du module NRF24, au début on utilise la même adresse du canal que dans l'émetteur radio. L'Arduino nano reçoit chaque paquet de données de 8 bits dans chaque canal, ce qui nous donne des valeurs décimales au maximum de 255, pour lire ces valeurs dans l'Arduino Nano du récepteur

    il suffit d'utiliser la fonction prédéfinie radio.

    read(&data,

    sizeof(MyData)). L'utilisation de la

     

    fonction prédéfinie map (, , , ,);permet de codées ces valeurs de 8 bits pour que les signaux s'arrange entre 1000ìs et 2000ìs. La fonction prédéfinie du comptage writeMicroseconds (); permettent de gérer les périodes des signaux PWM avec précision.

    L'algorithme du transmetteur RF est expliqué ci-dessous:

    Déclaration des librairies SPI &
    NRF24.
    Initialisation du registre Timer à 0.
    Définir la fréquence des signaux
    PWM à 50 Hz.
    Définir PWM_period.
    Déclaration des 6 variables
    « PWM_largeur » pour les sorties
    (2, 3, 4, 5, 6 et 7).

    Déclaration des variables de 8
    bits à être reçu : Throttle, Pitch,
    Roll, Yaw, SW1 et SW2.
    Activer le compteur millis.
    Déclaration du variable 32 bits de
    comptage : « PreviousMillis ».
    Définir les broches D2, D3, D4,
    D5, D6 et D7 du Port D comme
    sorties.

    Déclaration du variable
    32 bits de réception des
    données :
    « LastRecvTime »

    41

    Void setup :

    Chapitre III Conception et mise en oeuvre du fonctionnement

    Commencer la
    communication radio

    Sous-programme de réception des données

    Oui

    Voir si le signal radio est disponible : radio.available ( )

    Lire et recevoir les données de 8 bits

    Non

    Void loop :

    Non

    Vérifier si le signal est perdu

    Oui

    Réinitialiser les données

    Codé les valeurs reçues de 8 bits sur 1000 à 2000 et les Affectés aux
    variables PWM_largeur en utilisant la fonction prédéfinie map

    ch1_value = map(received_data.Throttle,0,

    255,1000,2000);

    ch2_value = map(received_data.Yaw,0,255,1000,2000);
    ch3_value = map(received_data.Pitch,0,255,1000,2000);
    ch4_value = map(received_data.Roll,0,255,1000,2000);

    ch5_value = map(received_data.SW1,0,1,

    1000,2000);

    ch6_value = map(received_data.SW2,0,1,

    1000,2000);

    Générer les signaux PWM avec la fonction prédéfinie
    writeMicroseconds (); pour chaque canal
    channel_1.writeMicroseconds(ch1_value);
    channel_2.writeMicroseconds(ch2_value);
    channel_3.writeMicroseconds(ch3_value);
    channel_4.writeMicroseconds(ch4_value);
    channel_5.writeMicroseconds(ch5_value);
    channel_6.writeMicroseconds(ch6_value);

    42

    Chapitre III Conception et mise en oeuvre du fonctionnement

    43

    III.4.3. Test des signaux de sortie du récepteur RF :

    Après la construction de l'émetteur RC et du récepteur, nous devons tester les signaux de contrôle PWM sortant du récepteur car ce sont les impulsions de commande à introduire au contrôleur de vol. On peut connecter les broches numériques de sortie du récepteur RF au canal d'entré d'un oscilloscope afin que nous puissions visualiser un seul signal PWM puis on fait varier les positions des joysticks.

    Pour voir la variation des quatre signaux tous à la fois, j'ai utilisé un petit programme de test pour Arduino qui apporte les valeurs des signaux de commandes PWM sur le moniteur série de l'Arduino IDE, ces valeurs vont de 1000ìs jusqu'à 2000ìs avec une impulsion centrale de 1500ìs, Figure 3.20.

    Figure 3.20 : Valeurs correspondantes aux signaux PWM afficher sur le moniteur série de l'Arduino IDE.

    III.5. Contrôleur de vol du quadrotor :

    Dans le schéma de la Figure 3.21, j'ai mis la diode D1 pour protéger le port USB de l'ordinateur lorsque l'Arduino est connecté à l'ordinateur lors de la programmation. Les résistances R2 = 1kÙ et R1 = 1,5kÙ divisent la tension de la batterie de vol par 2,5. De cette façon, il est possible de mesurer la tension de la batterie pendant le vol en utilisant AnalogRead à partir de la broche A0 de Arduino Uno. La LED est mise pour l'indication d'état de la batterie, elle s'allumera lorsque la tension de la batterie devienne basse.

    Chapitre III Conception et mise en oeuvre du fonctionnement

    44

    Figure 3.21 : Schéma électronique du contrôleur de vol du quadrotor.

    IMU

    (Gyro& Accéléromètre) MPU-6050

    2C

    PWM

    PWM

    PWM

    PWM

    PWM

    Récepteur Radio 2.4Ghz

    Figure 3.22 : Schéma électronique global du quadrotor.

    Chapitre III Conception et mise en oeuvre du fonctionnement

    III.5.1. Lecture des signaux du récepteur RF :

    Dans cette partie, je montre comment lire et calculer les largeurs des impulsions PWM venant du récepteur RF afin qu'ils puissent être utilisés pour contrôler le mouvement du quadrotor, et pour mieux comprendre le fonctionnement du contrôleur de vol, j'aime montrer au début les principes de base pour les signaux du récepteur.

    Les ESC sont contrôlés par des trains d'impulsions PWM variant de 1000ìs à 2000ìs avec une amplitude de 5v, c'est à dire que la position d'arrêt de l'ESC est généralement atteinte avec une impulsion de 1000ìs et une accélération maximale est atteinte avec une impulsion de 2000ìs, la longueur de l'impulsion change lorsque nous changeons la position du joystick sur l'émetteur RC Figure 3.23. Les systèmes multicopters sont très instables et la stabilité est obtenue par d'énormes corrections par seconde, par exemple le contrôleur de vol de ce projet fait 250 correction / seconde ceci est également connu comme le taux de rafraîchissement ou la fréquence du contrôleur, en bref cela signifie que les quatres ESC sont corrigés tous les 4ms (la fréquence des signaux PWM à fournir au ESCs par le contrôleur de vol est de 250 Hz).

    Figure 3.23 : Simulation des pulsations PWM de fréquence 50 Hz pour deux canaux du récepteur RF.

    45

    Chapitre III Conception et mise en oeuvre du fonctionnement

    46

    Dans notre cas, la fréquence des signaux PWM du récepteur RF (50 Hz) est cinq fois plus faible que la fréquence du contrôleur de vol (250 Hz), cela signifie que le quadrotor ne peut pas attendre les signaux du récepteur lors du vol.

    Malgré tout cela, le processeur de l'Arduino Uno "ATmega328p" nous donne des outils pour faire résoudre à ce problème en utilisant les interruptions de changement d'état de broche «Pin Change Interrupt Register PCI0». Ça signifie que nous pouvons interrompre le programme en cours pour effectuer une tâche spéciale lorsque l'état logique de la broche numérique change, après cette interruption le processeur continue l'exécution du programme d'une façon normal. Cependant cette méthode nécessite moins de boucles CPU donc il faut garder la routine d'interruption aussi courte que possible, sinon on va gâcher l'exécution du programme en cours.

    L'interruption de changement de broche « PCI0 » se déclenchera si l'une des broches PCINT7 à PCINT0 se bascule d'état, les bits (PCINT0, PCINT1, PCINT2 et PCINT3) qui correspondent au registre d'interruption « PCI0 » se réfèrent respectivement aux broches numériques (8, 9, 10 et 11) de l'Arduino Figure 3.24, selon le schéma du contrôleur de vol Figure 3.21 les entrées du récepteur sont connectées aux broches numériques 8 à 11.

    Figure 3.24 : Diagramme des broches de l'ATmega328p.

    Dans le programme du contrôleur de vol, on peut créer des sous-programmes d'interruption qui serait toujours exécutées chaque fois que les broches numériques 8 à 11 changent d'état logique, ceci consiste à mesurer le temps entre les fronts montants et descendants des impulsions PWM venant du récepteur. L'organigramme suivant explique une partie du sous-programme de l'interruption pour lire un seul canal « canal 1 » du récepteur, la même partie se répète pour les autres canaux sauf que les différents canaux du récepteur sont liées à des différentes broches du registre PORTB.

    Chapitre III Conception et mise en oeuvre du fonctionnement

    Voir si on a un front Non Voir si on a un front

    Montant Descendant

    Précédente_canal 1=0

    La même routine se répète pour les autres canaux {canal 2 (PINB1), canal 3 (PINB2) et canal 4 (PINB3)}, le sous-programme de l'interruption est appelé chaque fois dans le programme principal du contrôleur de vol si l'une des entrées 8, 9, 10 ou 11 change d'état. Les variables d'entrées du

    Affecter la variable Time 1 dans la variable Temp actuelle (Time 1 =Temp actuelle)

    Se souvenir de l'état actuel du variable (Précédente_canal 1=1)

    Oui

    Le bit 0 du
    PORTB
    (PINB0=1)?

    Oui

    Non

    Calculer la longueur de l'impulsion du canal 1 Reciver_input 1 = Temp_actuelle - Time1

    Se souvenir de l'état actuel du variable (Précédente_canal 1=0)

    Précédente_canal 1=1

    L'entrée PINB0 se Bascule de 1 à 0

    Oui

    Non

    47

    Sous-programme d'interruption :

    Activer le registre de L'interruption de changement de broche « PCI0 »

    Affecter le compteur us dans la variable Temp actuelle = micros ( );

    Chapitre III Conception et mise en oeuvre du fonctionnement

    48

    récepteur (Reciver_input 1, 2 et 4) de la routine d'interruption sont destinées pour le calcul des points de consigne (Pitch, Roll et Yaw) du contrôleur PID afin de contrôler les impulsions PWM des ESC. L'entrée « Reciver_input 3 » qui correspond à la commande «Throttle », est mise comme un signal de base pour accélérer les moteurs. Cette image Figure 3.25, représente les axes du roulis (Roll), tangage (Pitch) et lacet (Yaw) d'un aéronef.

    Figure 3.25 : Les mouvements de base.

    L'angle de roulis positif soulève l'aile gauche et abaisse l'aile droite, l'angle de tangage positif soulève le nez et abaisse la queue et l'angle de lacet positif déplace le nez vers la droite. Ceci est la norme utilisé pour ce contrôleur de vol du quadrotor.

    Pour plus d'informations sur les registres utilisés dans le programme, voir le manuel du datasheet pour l'ATMEGA328p dans l'annexe de ce mémoire.

    III.5.2. Unité de mesure de l'inertie gyroscopique MPU-6050 :

    Dans cette partie, je montre comment lire et traiter les données venant du Gyroscope. Plus précisément, nous allons extraire les données du Gyro afin que le contrôleur de vol puisse calculer les angles parcourus par le quadrotor pour les axes de mouvements (Pitch, Roll et Yaw) en utilisant des opérations mathématiques simples, puis les transformer en instructions algorithmiques adaptées à Arduino.

    Le Gyro est un capteur de taux d'angle à trois axes (x, y et z), il mesure la vitesse angulaire en degrés par seconde de ces axes en même temps. Les données d'entrées du Gyro sont couplées linéairement avec sa sortie, signifie que la longueur de l'impulsion de sortie change proportionnellement lorsque le Gyro est tourné autour de ces axes. Pour connaître la valeur de sortie exacte de l'MPU-6050, nous devons jeter un coup d'oeil sur la fiche technique du Gyro MPU6050 mentionnée dans la page (12 of 52) de l'annexe de ce mémoire. La sortie sera de 65,5 en décimal lorsque la vitesse angulaire du Gyro est de 1°/sec, car nous utilisons 500°/sec comme vitesse angulaire maximale pour les trois axes du Gyro.

    Chapitre III Conception et mise en oeuvre du fonctionnement

    Par exemple si le Gyro fait tourner autour de son axe de lacet (Yaw) et que nous terminons le tour complet (360°) exactement à une minute (60 sec), la sortie du Gyro à n'importe quel moment de ce parcourt sera de 6°/sec × 65.5 = 393, car à chaque seconde le Gyro tourne 6°. Dans le programme Arduino il sera donc : Angle°/sec = sortie Gyro / 65,5. Le résultat « Angle°/sec » sera déclarée comme une variable flottante et la sortie du Gyro est une valeur signée de 16 bits (la sortie du gyroscope est une valeur de complément de 16 bits deux) qui est similaire à un entier « Int » dans l'Arduino. Cela signifie que la variable « sortie Gyro » doit être déclarée comme un entier car elle peut atteindre 32750 si la vitesse angulaire du Gyroscope atteint les 500°/sec (sortie Gyro = 500°/sec × 65.5 = 32750). La plupart des Gyro ont un petit décalage moyen (offset) qui provoque la dérive du quadrotor donc le Gyroscope doit être calibré avant d'utiliser ces données de sortie. Pour obtenir les meilleurs résultats, la sortie du Gyro doit être mise à zéro et ceci est simplement fait en prenant l'offset pour plusieurs lectures et en les soustrayant des plusieurs valeurs de la sortie du Gyro. Ceci est expliquer dans cet organigramme de boucle for (;;) qui paresse dans le void setup :

    Variables entiers 16 bits : Int_cal = 0
    Initialiser les Variables 8 bits : lowByte, highByte
    Initialiser les Variables 64 bits : gyro_pitch,
    gyro_roll, gyro_yaw, cal_axe_x, cal_axe_y,
    cal axe z

    Int_cal < 2000 ?

    Pour exécuter Non

    Le code 2000 fois Oui

    L'axe Pitch

    L'axe Roll

    L'axe Yaw

    Ajouter la valeur lue gyro_pitch
    de l'axe x du Gyro à la variable
    cal_axe_x

    Ajouter la valeur lue gyro_roll
    de l'axe y du Gyro à la variable
    cal_axe_y

    Ajouter la valeur lue gyro_yaw
    de l'axe z du Gyro à la variable
    cal_axe_z

    Incrémenter par 1
    Int cal + +

    Sous-programme de lecture des
    données du Gyro MPU-6050

    Tarder 3 ms

    49

    Diviser la variable
    cal_axe_x par 2000 pour
    obtenir l'offset de l'axe x

    Diviser la variable
    cal_axe_y par 2000 pour
    obtenir l'offset de l'axe y

    Diviser la variable
    cal_axe_z par 2000 pour
    obtenir l'offset de l'axe z

    Reste du programme.

    Chapitre III Conception et mise en oeuvre du fonctionnement

    50

    Cet organigramme calcule l'offset moyenne de 2000 lectures de Gyro pour les 3 axes, puis il stocke chacune de ces valeurs d'offset dans les variables (cal_axe_x, cal_axe_y et cal_axe_z). Après cette étape l'offset est soustraite de chaque mesure du Gyro dans le reste de la boucle du programme.

    · Sous-programme de lecture des données du Gyro :

    L'Arduino Uno du contrôleur de vol lit les données des angles parcouru par le Gyro à partir des registres de sortie d'adresses 0x69 et 0xA8 qui sont à 16 bits en utilisant le protocole de communication I2C. Par exemple pour lire l'axe « Yaw » on lit les 8 bits du poids fort du registre 16 bit à part, puis les 8 bits du poids faible et on fait un décalage pour avoir les 16 bit puis on affecte le résultat au variable « gyro_yaw ».

    Toutes les autres parties intéressantes pour la communication I2C avec le Gyro sont gérées par la librairie "wire" qui nous facilitent la tâche.

    L'organigramme qui explique le processus est situé dans la page suivante.

    Chapitre III Conception et mise en oeuvre du fonctionnement

    Commencer la communication I2C
    avec le Gyro (registre d'adresse 0x69)

    Commencer à lire du registre
    d'adresse 0xA8

    Fin de transmission

    Demander 6 octets du
    registre d'adresse 0x69

    Attendre jusqu'à les 6 octets Soient reçus

    Octets valables < 6 ?

    Non

    Oui

    Réception du 1ier
    Byte du poids
    faible des données
    angulaire lowByte

    Compenser l'offset Après le calibrage Jusqu'à Int_cal = 2000

    Int_cal = 2000?

    Non

    Oui

    gyro_roll =
    cal_axe_y -
    gyro_roll

    Int_cal = 2000?

    Oui Non

    gyro_pitch =
    cal_axe_x -
    gyro_pitch

    Non

    Oui

    gyro_yaw =
    cal_axe_z -
    gyro_yaw

    Fin du
    sous-
    programm

    Int_cal = 2000?

    Réception du 2nd
    Byte du poids fort
    des données
    angulaire highByte

    gyro_pitch =
    (highByte X 256) +
    lowByte

    gyro_roll = (highByte X 256) + lowByte

    Décalage de highByte

    Par 8 positions

    gyro_yaw = (highByte X 256) + lowByte

    51

    Après l'étape de calibrage, il est nécessaire de calculer l'angle total parcouru par le Gyro afin que le contrôleur de vol puisse reconnaître la position exacte du quadrotor dans l'espace. Pour cela il suffit simplement d'intégrer au fil de temps tous les valeurs de sortie Gyro (les données de la vitesse angulaire des axes Pitch, Roll et Yaw) par exemple pour l'axe Yaw :

    Chapitre III Conception et mise en oeuvre du fonctionnement

    52

    Angle parcouruya11, =E sortie Gyroya11, x At.

    Dans le cas de notre contrôleur de vol, la fréquence de rafraîchissement est de 250 Hz, on peut donc extraire les angles parcouru par le Gyro pour chaque axe toutes les 4 ms au lieu de 1s. Cela signifie également que nous devons diviser les données de sortie Gyro sur 65,5 et ensuite diviser à nouveau sur 250 pour obtenir l'angle parcouru par le quadrotor chaque 4 ms.

    J contrôleur de vol = 250 Hz - At = 4 ms

    Angle parcouruyau, = 1(sortie Gyroyau, /(250/65.5))

    = E(sortie Gyroyau, x 0.0000611)

    L'intégrale en mathématique signifie la sommation d'une fonction sur un intervalle donné, donc dans le code Arduino on fait la somme de toutes les données gyroscopiques de sortie pour chaque axe à part dans un intervalle de 4ms, par exemple pour l'axe z « Yaw » se traduire par cette instruction :

    Angle parcouruyau, est : Angle_yaw_entrée += gyro_z * 0.0000611;

    C.à.d. : Angle_yaw_entrée = Angle_yaw_entrée précédente + (gyro_z x 0.0000611) Vérifions la validité de cette relation avec le dernier exemple pour une rotation complète (360°) du Gyro autour de son axe (Yaw) dans 60s, on aura :

    · La sortie du Gyro en décimal à n'importe quel moment pendant la rotation est : sortie Gyroyau, = 393.

    · Pendant la rotation, les données du Gyro sont ajoutées 250 fois par seconde donnant un total de 15000 lectures : 250lecture P/s x 60s = 15000 lecture

    · Pour une minute on aura donc :

    Angle parcouruyau, = 15000 lecture x 393 x 0.0000611

    = 360.18° 360°

    Ce qui est assez proche pour un tour complet, d'où la formule est juste.

    L'inconvénient du Gyro MPU6050 c'est que le signal de sortie est très bruyant Figure 3.27.

    L'utilisation d'un simple filtre complémentaire permet de réduire le bruit qui accompagne le signal

    de sortie du Gyro, alors l'instruction précédente devienne:

    Angle_yaw_entrée = (Angle_yaw_entrée * 0.7) + (gyro_z * 0.0000611);

    C.à.d. : Angle_yaw_entrée = (Angle_yaw_entrée précédente x 0.7) + (gyro_z x 0.0000611)

    Chapitre III Conception et mise en oeuvre du fonctionnement

    Figure 3.27 : Signal de sortie du Gyro dans l'état stationnaire pour l'axe de mouvement Yaw afficher sur le moniteur série de l'Arduino IDE.

    Enfin, l'instruction Angle_yaw_entrée détermine le taux angulaire ou l'angle parcourus « Yaw » à introduire pour l'entrée de la boucle PID. La même instruction sera appliquer pour les autres axes de mouvement Pitch et Roll.

    III.5.3. Le contrôleur PID :

    Le contrôle par PID est la méthode la plus simple à programmer sur un processeur et elle est souvent employée pour les asservissements [16].

    Cette méthode est basée sur une structure qui délivre un signal de commande à partir de l'erreur existante entre la référence et la mesure de son intégrale et de sa dérivée Figure 3.28.

    Figure 3.28 : Schéma de la boucle de contrôleur PID.

    53

    Chapitre III Conception et mise en oeuvre du fonctionnement

    54

    Chapitre III Conception et mise en oeuvre du fonctionnement

    Le contrôle par PID est souvent utiliser dans l'industrie car il est très simple à mettre en place et s'avère efficace à réduire les erreurs pour la plupart des systèmes réels non linéaires. Dans notre cas le principe de base du contrôleur PID est simple, lorsque le drone se trouve déséquilibré à cause du vent ou de la turbulence, l'algorithme envoie une commande vers les ESC qui provoque une réaction dont le sens est opposé à celui qui a conduit au déséquilibre, afin que le drone retrouve l'état souhaité. Plus précisément, il faut garder les valeurs mesurées du Gyro (données angulaires réel du système) identique au point de consigne désiré par le pilote (données d'entrée du récepteur de la routine d'interruption) Figure 3.29.

    Données d'entrées du récepteur Données d'entrée du Gyro

    (Reciver_input 1, 2 et 3) (Taux angulaire)

    Sens antihoraire

    Données du Récepteur

    Sens horaire Sens antihoraire

    Moteur 4

    Moteur 3

    Conversion en °/ sec

    Contrôleur PID

    Données du Gyroscope

    Moteur 1

    Moteur 2

    Sens horaire

    Figure 3.29 : Schéma montre le principe du PID utilisé dans ce contrôleur de vol.

    Par exemple si le pilote ne veut aucun mouvement, le taux angulaire Gyro doit être également nul, donc l'erreur du système « ???? » pour un axe de mouvement est la différence :

    ???? = (Données d'entrée du Gyro - Données d'entrées du récepteur).

    Le contrôleur PID calcule les corrections nécessaires pour les trois axes (Pitch, Roll et Yaw), Les consignes pour le contrôleur PID sont les signaux d'entrée du récepteur et les variables des mouvements angulaires mesurées par le gyroscope, Les sorties du contrôleur PID sont destinées pour contrôler la vitesse des moteurs du quadrotor afin d'assurer l'équilibre. L'utilisation des opérateurs mathématiques (Proportionnel, Intégrateur et Dérivateur) permet de produire une sortie de commande adéquate pour le système. Le modèle mathématique du contrôleur PID est décrit comme suit :

    ????????????(????)

    ????(????) = ????????????(????) + ???????? ? ????(????)???????? + ???????? ???????? , Tel que :

    0

    55

    ????(????) : L'erreur du système.

    ????(????) : Variable de sortie du PID.

    ???????? : Gain proportionnel.

    ???????? : Gain d'intégration. ???????? : Gain de dérivation.

    · Effet proportionnel ???????? ???? (????) : Ce terme est proportionnel à l'erreur, il contribue à la stabilité et

    à la réactivité et permet une augmentation du temps de réponse du système, en fait le contrôleur seul n'est pas tout à fait suffisant pour stabiliser le drone [17].

    ????

    · Effet d'intégral ???????? ? ????(????)???????? : Ce terme est proportionnel à l'intégrale de l'erreur, il permet au ????

    système d'atteindre le point de consigne désiré, permet aussi d'éliminé l'erreur statique du système et de diminuer l'impact des perturbations [17], il en résulte un système précis.

    ????????(????)

    · Effet de la dérivée ???????? : Ce terme est proportionnel à la dérivée de l'erreur, il permet

    ????????d'accéléré la réponse du système et d'éliminé les oscillations autours du point de consigne [17].

    · Saturation du contrôleur PID et choix des gains [18] :

    Pour empêcher le PID de devenir incontrôlable, il est nécessaire de limiter la sortie PID à une valeur critique qui est le point de saturation du système et ça se détermine selon les caractéristiques du système et l'algorithme du contrôleur PID utilisé. Cette limitation est souvent appliquée pour la sortie globale du contrôleur PID. Chaque quadrotor est caractérisé par ces propres gains PID, généralement les gains PID varis d'un drone à l'autre en fonction du poids et du hardware utilisé. La

    mise en oeuvre de la commande PID exige d'abord une sélection adéquate des gains ???????? , ???????? et ???????? car la réponse de la sortie PID sera influencée en agissant sur ces trois gains. Pour notre système les gains seront déterminés expérimentalement.

    · Algorithme PID du contrôleur de vol :

    Dans le programme du contrôleur de vol, trois contrôleurs PID sont utilisés pour les trois axes de mouvement essentiels (Pitch, Roll et Yaw). Au début, il est nécessaire de transférer les variables des canaux d'entrée du récepteur (de la routine d'interruption) en degrés / seconde pour avoir les trois points de consigne de mouvement, identiques en grandeurs que les données d'entrée du Gyro. L'organigramme suivant explique l'étape de conversion des variables du récepteur en degrés / seconde pour un axe de mouvement « Roll », la même routine se répète pour les deux autres axes «Pitch et Yaw ».

    Chapitre III Conception et mise en oeuvre du fonctionnement

    Initialiser la variable flottante point
    de consigne Roll à zéro :
    Pid_Roll_consigne = 0

    Du récepteur par 3 Permet d'obtenir

    Un taux de Roll max Approximatif à 166 ° / s

    Roll max = (2000 - 1500) ~ 3

    La division de signal

    166 ° / s

    Reciver_input 1 >= 1500 ?

    Pid_Roll_consigne =
    (Reciver_input 1 -1500) ~ 3

    Oui

    1500 (en décimal) est la valeur centrale du Reciver_input 1 Qui correspond à la position centrale du joystick "canal Roll"

    Non

    Reciver_input 1 < 1500

    Pid_Roll_consigne =
    (Reciver_input 1 -1500) ~ 3

    Roll max = (1000 - 1500) ~ 3

    -166 ° / s

    Les entrées du contrôleur PID {données du récepteur : (Pid_Roll_consigne, Pid_Pitch_consigne, Pid_Yaw_consigne) et les données angulaires du Gyro : (angle_roll, angle_pitch, angle_yaw)} sont connues, reste à déterminer les variables de sortie PID pour les mouvements (Pitch, Roll et Yaw). Dans le sous-programme PID les trois parties (proportionnel, intégral et dérivé) sont calculées simultanément et combinées à un seul signal de sortie pour chaque axe de mouvement Figure 3.30.

    Intégral

    Sortie (I) = Sortie (I) + [E × Gain (I)]

    Sortie (D) = (E - E????????é????é) × Gain (D)

    Proportionnel
    Sortie (P) = E × Gain (P)

    Dérivé

    Limiter la
    sortie au point
    de saturation

    +

    Sortie PID pour un axe de mouvement

    Limiter la
    sortie au point
    de saturation

    56

    Figure 3.30 : L'algorithme utilisé dans le sous-programme PID du contrôleur de vol pour un axe de mouvement.

    ·

    Chapitre III Conception et mise en oeuvre du fonctionnement

    Oui

    Limiter

    Oui

    La sortie Intégrale

    Sortie i roll = 400

    Sortie_ i _roll > 400

    Sortie i roll = - 400

    Sortie_ i _roll < -400

    400 c'est la valeur max du PID

    Non - 400 c'est la valeur min du PID

    Limiter la sortie Intégrale

    Non

    Oui

    Non

    Oui

    ????????????é????é = ????

    Pid_sortie_roll = (???? ???? X ????) + (Sortie_ i _roll) + ???????? X (???? - ????????????é????é)

    Pid_sortie_roll = 400

    Pid_sortie_roll > 400

    Limiter la sortie PID globale

    Pid_sortie_roll = - 400

    Pid_sortie_roll < -400

    Calcul du Sortie PID Pour l'axe Roll

    57

    Intégral de l'erreur statique ???? pour Roll: Sortie_ i _roll = Sortie_ i _roll + (???????? X ????)

    Sous-programme de sortie PID :

    L'organigramme suivant explique le calcul du sorties PID pour un axe de mouvement « Roll ».

    La même routine se répète dans le sous-programme PID du contrôleur de vol pour les deux autres axes «Pitch et Yaw ».

    Initialiser les variables flottantes à

    zéro : ???? ????????????é????é Sortie_i_roll
    pid sortie roll

    Calcul de l'erreur statique ???? pour Roll :

    ???? = Angle_roll_entrée - Pid_Roll_consigne

    Chapitre III Conception et mise en oeuvre du fonctionnement

    Eprécé = e L'erreur actuelle e devienne l'erreur précédente Eprécé Pour le prochain calcule.

    III.5.4. Contrôle des ESC :

    Dans cette partie, le but est de générer les impulsions de commande à envoyer pour les quatre ESCs en fonction des variables de sorties PID, afin de contrôler la vitesse des moteurs du quadrotor. Les ESC sont connectés à l'Arduino Uno du contrôleur de vol via les broches digitales (D4, D5, D6 et D7) du registre PORTD. Au début du programme principal, ces broches numériques doivent être déclarés en tant que sorties. Après avoir calculé les variables de sortie du contrôleur PID pour les axes de commande (Pitch, Roll et Yaw), il devient possible de calculer les largeurs d'impulsion à fournir pour les ESC toutes les 4 ms afin de corriger la position du quadrotor.

    Throttle est mis comme le signal
    De base pour le calcul des
    Impulsions des ESCs

    Affecter le signal Throttle à la variable entière d'accélération :
    Accélération = Reciver_input 3

    Non

    Accélération> 1800

    Oui

    Accélération = 1800

    Laisser 200us de gap pour garder le contrôle Total à plein vitesse

    Calcul des impulsions de correction :

    Largeurs d'impulsion esc 1 Largeurs d'impulsion esc 2 Largeurs d'impulsion esc 3 Largeurs d'impulsion esc 4

    58

    esc_1 = accélération - Pid_sortie_pitch + Pid_sortie_roll - Pid_sortie_yaw esc_2 = accélération + Pid_sortie_pitch + Pid_sortie_roll + Pid_sortie_yaw esc_3 = accélération + Pid_sortie_pitch - Pid_sortie_roll - Pid_sortie_yaw esc_4 = accélération - Pid_sortie_pitch - Pid_sortie_roll + Pid_sortie_yaw

    Au début, il est nécessaire de déclarer le signal d'entrée du récepteur Throttle « Reciver_input 3 » comme la variable de base d'accélération. Pour assurer que les trois contrôleurs PID ont suffisamment d'espace pour corriger le quadrotor à pleine vitesse, la variable d'accélération est limitée à 1800 ìs au lieu de 2000 ìs. De cette façon, chaque contrôleur PID peut ajouter 200 ìs supplémentaires en cas de besoin. Pour calculer les impulsions des ESC, il suffit de combiner les variables de sorties PID séparées (Pitch, Roll et Yaw) et de les ajouter ou les soustraire à la variable d'accélération suivant cet algorithme :

    Chapitre III Conception et mise en oeuvre du fonctionnement

    59

    La Figure3.31 représente les axes Roll, Pitch et Yaw du quadrotor, la correction des impulsions des ESCs se fait selon les quatre instructions de l'algorithme citées en haut.

    Figure 3.31 : Disposition des ESCs et direction de rotation du quadrotor

    Pour l'axe de Roulis, si le quadrotor penche vers la droite en raison du vent ou de la turbulence, cela conduit le Gyro d'envoyer un angle de roulis positif (Données d'entrée Roll du Gyro> 0), lorsque le pilote ne veut aucun mouvement (le joystick de l'émetteur est en position centrale) c'est à dire la variable roulis du récepteur est de 0 ° / sec (Pid_Roll_consigne= 0°) implique que la sortie roulis du contrôleur PID est positive (Pid_sortie_roll> 0) car l'erreur????> 0. Donc pour que le quadrotor puisse revient à l'état stable 0°, la vitesse du moteur avant droit doit augmenter et ceci est fait en ajoutant la sortie du contrôleur PID Roll (Pid_sortie_roll) à l'impulsion de l'ESC 1.

    Le même principe pour le tangage (Pitch), lorsque le front du drone est incliné en bas à cause d'une perturbation ou du vent, le Gyro envoie un angle de tangage négatif et la sortie du contrôleur PID Pitch devienne négative (Pid_sortie_pitch< 0), en soustrayant la sortie du PID Pitch de l'impulsion ESC 1 implique que la vitesse du moteur1 s'augmente et le quadrotor retrouve l'état stable 0°, cela est illustré dans la Figure 3.32 et la Figure 3.33 pour l'axe de roulis (Roll) et la même chose pour le tangage (Pitch).

    Le même principe se répète pour chaque combinaison moteur / ESC.

    Chapitre III Conception et mise en oeuvre du fonctionnement

    60

    Figure 3.32 : L'algorithme du PID conduit le quadrotor de revenir À l'état voulu en agissant sur les ESCs

    Figure 3.33 : Retour à l'état de consigne désiré par le pilote 0°.

    Selon les dernières instructions citées dans l'algorithme en haut :

    Si la sortie PID Pitch est (-) : les impulsions

    Si la sortie PID Roll est (-) : les impulsions

    Si la sortie PID Yaw est (-) : les impulsions

     
     

    et

    et

    et

     
     

    ESC 1

    ESC 4

    ESC 2

    ESC 3

     
     
     
     

    ESC 3

    ESC 4

    ESC 1

    ESC 2

     
     
     
     

    ESC 1

    ESC 3

    ESC 2

    ESC 4

    Chapitre III

    Conception et mise en oeuvre du fonctionnement

    Si la sortie PID Pitch est (+) : les impulsions

    Si la sortie PID Roll est (+) : les impulsions

    Si la sortie PID Yaw est (+) : les impulsions

     
     

    et

    et

    et

     
     

    ESC 1

    ESC 4

    ESC 2

    ESC 3

     
     
     
     

    ESC 3

    ESC 4

    ESC 1

    ESC 2

     
     
     
     

    ESC 1

    ESC 3

    ESC 2

    ESC 4

    L'étape suivante consiste à envoyer les impulsions calculées aux ESC, ceci est fait en maintien les sorties numériques du PORTD (D4, D5, D6 et D7) à un niveau logique haut avec un délai de temps correspond aux largeurs d'impulsions ESC calculées précédemment. Pour avoir le front descendant des impulsions, il suffit d'exécuter une boucle « while » jusqu'à ce que les quatre bits de poids fort du registre PORTD soient à zéro, ça signifie la fin de l'impulsion ESC.

    Pour s'assurer que la fréquence des signaux PWM est de 250 Hz, un temporisateur de boucle vide est employé pour s'exécuter jusqu'à ce que les 4 ms soient expirées. Finalement, il en résulte quatre trains d'impulsions PWM synchronisé avec une fréquence de 250 Hz, Figure3.34.

    Figure 3.34 : Simulation des impulsions PWM de fréquence 250 Hz à envoyer pour deux ESCs

    61

    Chapitre III Conception et mise en oeuvre du fonctionnement

    62

    Chapitre III Conception et mise en oeuvre du fonctionnement

    Toutes les données pour contrôler les moteurs sont disponibles. L'organigramme suivant explique l'algorithme utilisé pour générer des impulsions PWM aux ESC:

    Initialisation des variables flottantes :
    Boucle_temps, timer_ch 1, timer_ch 2,
    timer_ch 3, timer_ch 4,
    esc_boucle_temps

    On attend jusqu'à 4000 us le TIMER microseconde Micros ( ) est utilisé pour

    Sont écoulés. Calculer le temps écoulé.

    Micros ( ) - boucle_temps < 4000

    Non

    Oui

    La fréquence du contrôleur de vol est de 250Hz. Cela signifie que les ESCs ont besoin de leur Impulsions toutes les 4ms.

    Stocker le temps actuel du compteur
    pour la prochaine boucle :
    Boucle_temps = micros ( )

    Met à la fois les sorties numériques
    D4, D5, D6 et D7 haut :

    PORTD |= B11110000

     

    Calcule des largeurs d'impulsions à Fournir pour les ESCs.

    Restez dans cette boucle jusqu'à ce que D4, D5, D6 et D7 soient zéro. Non

    Oui

    Esc_boucle_temps = micros ( )

    Stocker le temps actuel du compteur Chaque fois que la boucle est exécutée.

    Si (timer_ch 1 = esc_boucle_temps) PORTD &= Si (timer_ch 2 = esc_boucle_temps) PORTD &= Si (timer_ch 3 = esc_boucle_temps) PORTD &= Si (timer_ch 4 = esc_boucle_temps) PORTD &=

     

    Rendre la sortie numérique

    B11101111

    B11011111

     

    B10111111

    À zéro pour chaque ESC si

    B01111111

    Le délai de temps de

     

    L'impulsion est expirée.

    Timer_ch 1= esc_1 + Boucle_temps Timer_ch 2= esc_2 + Boucle_temps Timer_ch 3= esc_3 + Boucle_temps Timer_ch 4= esc_4 + Boucle_temps

    PORTD = 16

    Fin de la boucle principale void loop.

    63

    III.6. Conclusion :

    Dans ce chapitre, les étapes de construction du quadrotor sont strictement illustré, le principe de fonctionnement du système et les instruments utilisés dans le hardware sont discutés, passant par la réalisation de l'émetteur et du récepteur puis le contrôleur de vol. Le software utilisé en transmission et en réception est présenté avec détail et les diverses étapes de programme du contrôleur de vol sont expliquées.

    Chapitre 4

    Tests et résultats

    Chapitre IV Tests et résultats

    64

    Chapitre IV : Tests et résultats

    IV.1. Introduction :

    Dans ce chapitre, le but est de donner une description des différents tests effectués sur le système tels que le test des angles du Gyro et les signaux de sortie du récepteur RF. Je présenterai également les techniques utilisées pour définir les gaines PID adapté à ce quadrotor puis les résultats obtenus seront utilisés dans le sous-programme de contrôleur PID, afin d'avoir la stabilité désirée.

    Figure 4.1 : Image du quadrotor réalisé.

    IV.2. Test des signaux du récepteur RF :

    Afin d'éviter tous problèmes de disfonctionnement et pour s'assurer qu'on a une bonne communication radio, il est donc nécessaire de tester les impulsions reçus par le récepteur RF du quadrotor.

    On commence par alimenter le récepteur RF avec 5v séparément au circuit du contrôleur de vol, puis on connecte le canal de sortie Throttle du récepteur au canal CH1 de l'oscilloscope digital pour visualiser le signal reçue Figure 4.2.

    Chapitre IV Tests et résultats

    65

    Figure 4.2 : Connexion du récepteur RF à l'oscilloscope digital.

    Le signal PWM qui correspond à la commande Throttle apparaisse sur l'écran de l'oscilloscope avec une période de 50Hz, Figure 4.3.

    Calibre de l'oscilloscope : Tension : 1 Div ? 2 volt Base de temps : 1 Div ? 2.5 ms.

    Figure 4.3 : Signal PWM 50Hz de la commande Throttle.

    Chapitre IV Tests et résultats

    66

    En agissant sur la position du joystick de la commande Throttle du transmetteur, on voie bien que la largeur de l'impulsion PWM varie de 1ms à 2ms, Figure 4.4 et Figure 4.5. La même procédure de test est effectuée pour les signaux de commande Roll, Pitch et Yaw.

    Figure 4.4 : Largeur d'impulsion 1ms.

    Figure 4.5 : Largeur d'impulsion 2ms.

    IV.3. Chapitre IV Tests et résultats

    67

    Test des données angulaires du Gyroscope :

    Nous vérifions les angles de l'IMU pour éviter les problèmes de commande et les mouvements non désirés, pour ce faire j'ai introduit l'instruction Serial.print ( ); dans le sous-programme de lecture des données Gyro MPU6050. Cette instruction permet d'afficher les angles d'inclinaison du quadrotor en degré pour les axes Pitch, Roll et Yaw sur le moniteur série de L'Arduino IDE, le processus est illustré dans la Figure 4.6.

    Figure 4.6 : vérification des angles de Gyro sur l'Arduino IDE.

    Le quadrotor est incliné suivent les 3 axes de mouvement citées en haut. On vérifie si les angles correspondent au mouvement du quadrotor sont compatible avec la norme mentionné au Chapitre III page (48) que j'ai utilisée pour ce contrôleur de vol.

    IV.4. Identification des gains PID :

    Comme déjà dit dans le chapitre précédant, les gains K???? , K1 et Kd du contrôleur PID seront déterminées expérimentalement en agissant sur ces gains d'une manière à stabiliser le quadrotor pendant le vol et donc une convergence rapide de l'erreur e vers zéro.

    Pour éviter les dégâts et le comportement indésirable du quadrotor, il est nécessaire de varier les gains PID avec un ordre correct [19].

    C'était une pratique courante de commencer le réglage avec des valeurs de gain Kd très faible ou nulle. Mais en revanche, il est préférable de définir le gain K ???? pour les axes Pitch, Roll et Yaw à "1" et les autres à zéro, afin de voir comment le quadrotor réagit au début. Pour ajuster les gains du PID,

    Chapitre IV Tests et résultats

    68

    on maintient le quadrotor fermement dans la main, puis on augmente le Throttle jusqu'au moment où le quadrotor commence à osciller, Figure 4.7.

    Figure 4.7 : Réglage des paramètres PID.

    Au début, on fixe le gain ???? ???? de 4 et le gain ???????? de 0.02 pour l'axe de mouvement lacet (Yaw), car cette configuration de base empêchera le quadrotor de flotter quand nous essayons de le faire voler, le réglage du gain ???????? pour l'axe de lacet n'est pas nécessaire parce que le lacet a une traînée des hélices donc il reste à zéro ???????? = 0.

    Pour les deux axes de mouvement Pitch et Roll les gains PID seront les mêmes. On commence par incrémenter le gain ???????? avec un pas de 3, jusqu'à ce que le quadrotor semble agité. Dans ce cas j'ai trouvé ???????? = 18. On fixe ???????? à 18 puis on augmente le gain ???? ???? avec un pas de 0.2 et on continue l'incrémentation jusqu'à ce que le quadrotor cesse d'osciller. Après, on diminue le gain ???? ???? de 50% et le résultat devrait être le gain ???? ???? de base, j'ai trouvé ???? ???? = 1.3.

    Enfin, nous commençons à incrémenter le gain ???????? avec un pas de 0,01 et on continue à augmenter et tester (chaque fois en introduit le nouveau gain en compilant le code du contrôleur de vol) jusqu'à ce que le quadrotor commence à osciller lentement. Quand cela arrive, on diminue le gain ???????? de 50% et le résultat devrait être le gain ???????? de base, j'ai trouvé ???? ???? = 0.04.

    Chapitre IV Tests et résultats

    69

    Suivent ces procédure, j'ai réussi à obtenir une bonne stabilité du quadrotor pendent le vol. Les valeurs des gains PID du quadrotor pour les 3 axes de mouvement sont représentées comme suit :


    ·

    Tangage (Pitch) :

    K ????

    =

    1.3

    K1 = 0.04

    Kd = 18


    ·

    Roulis (Roll) :

    K ????

    =

    1.3

    K1 = 0.04

    Kd = 18


    ·

    Lacet (Yaw) :

    K ????

    =

    4

    K1 = 0.02

    Kd = 0

    Enfin, ces gains sont introduits dans le programme principal du contrôleur de vol du quadrotor.

    IV.5. Test de vol en zone ouverte:

    Une fois que le drone semble assez stable pour voler en toute sécurité, nous serons capables d'effectué un premier vol prudent dans un espace ouvert, voici quelque photos du premier vol effectué dans l'USTHB Figure4.8.

    Figure 4.8 : Test de vol dans un espace ouvert.

    Chapitre IV Tests et résultats

    70

    IV.6. Conclusion :

    Dans ce chapitre, les tests effectués sur le système ont été décrits à l'étape. Les gains PID ont été déterminés expérimentalement et la stabilité a été atteinte. Les tests de communication radio et d'orientation du quadrotor ont été menés. Les résultats obtenus sont bonnes.

    71

    Conclusion générale

    Le développement des véhicules aériens sans pilote a connu une croissance rapide ces dernières années grâce aux progrès de la technologie des capteurs et actionneurs miniatures. Ces progrès ont également entraîné la production de composants et de systèmes embarqués qui représentent les outils de base pour les robots volants et la mise en oeuvre de l'intelligence artificielle, d'où l'avantage d'effectuer et de couvrir un large éventail de missions. Dans ce contexte, le travail effectué dans le cadre de ce projet consiste à réaliser un drone de type quadrotor avec une radiocommande à six canaux de transmission.

    Durant cette étude, j'ai mentionné tous les étapes pour la mise en oeuvre de ce système, après une bref introduction sur les drones, avec la citation des différents normes et travaux de recherche effectués dans ce domaine, j'ai entamé à la modélisation dynamique du quadrotor, Ensuite, j'ai présenté le principe de fonctionnement des différentes parties du système à travers l'instrumentation qu'il contient le quadrotor et l'unité de la radiocommande avec l'illustration des diagrammes et des figures nécessaires. En ce qui concerne la partie software, j'ai d'abord expliqué les algorithmes utilisés dans l'émetteur et le récepteur RF afin d'avoir une réaction adéquate du quadrotor aux commandes envoyées par le pilote. Après ça, j'ai donné une explication détaillée sur les diverses étapes qui contient le programme principale du contrôleur de vol tels que:

    La lecture des signaux PWM venants du récepteur.

    La lecture des données angulaire venant du Gyroscope.

    Le calcul des corrections PID.

    Le calcul des impulsions pour chaque ESC.

    L'envoie des impulsions calculées aux ESC.

    Enfin, les résultats des essais effectués sur les différentes parties du système ont montré une

    grande efficacité vis-à-vis des défauts, notamment en ce qui concerne le contrôleur PID qui préserve les performances du quadrotor ainsi que sa stabilité pendant la perturbation. Le seul problème que j'ai remarqué est que le quadrotor glisse un peu en vol stationnaire, ça arrive sur le quadrotor car le moteur tourne, les vibrations qui sont encore présentes sont de petites accélérations qui vont rendre l'accélération du drone un peu fiable. Donc, ce problème sera résolu avec l'utilisation des données de l'accéléromètre de l'MPU6050. Mais malheureusement, le temps ne me suffit pas pour apporter de telles améliorations à l'algorithme du contrôleur de vol. Enfin, ce projet ma permet de découvrir l'environnement des robots volant aériennes et il me permet d'amélioré mes capacités en programmation.

    Références et Bibliographie

    Références bibliographiques

    Références Bibliographiques

    > [1] A. Tayebi, and S. Mcgilvray «Attitude stabilisation of a four rotor aerial robot», Proceedings of the 43rd IEEE Conference on Decision and Control, Atlantis, Paradise Island, Bahamas, December 2004.

    > [2] A. Tayebi, and S McGilvray «Attitude stabilisation of a VTOL Quadrotor Aircaft», IEEE Transactions on Control Systems Technology, Vol. 14, No. 3, pp. 562-571, May 2006.

    > [3] L. Gautier, B. Hamilton, J. Hazebrouck, and T. Tourrette «Pilotage d'un quadri-rotor via un FPGA», Tuteur ESIEE engineering, Journées pédagogiques, 2008.

    > [4] L. Besnard «Control of à quadrotor vehicle using sliding mode disturbance observer», Master Thesis, Alabama university, 2006.

    > [5] H. Bouadi, M. Bouchoucha, and M. Tadjine «Sliding Mode Control Based on Backstepping Approach for an UAV Type-Quadrotor», International Journal of Applied Mathematics and Computer Sciences, Barcelona, Spain, Vol. 4, No. 1, pp. 12-17, 2007.

    > [6] H. Bouadi, M. Bouchoucha, and M. Tadjine «Modelling and Stabilizing Control Laws Design Based on Backstepping for an UAV Type-Quadrotor» Proceeding of 6 th IFAC Symposium on IAV, Toulouse, France ,2007.

    > [7] H. Bouadi, M. Bouchoucha, and M. Tadjine «Modelling and Stabilizing Control Laws Design Based on Sliding Mode for an UAV Type-Quadrotor» Engineering Letters, London, England, Vol. 15, No. 2, pp. 15-24, 2007.

    > [8] H. Bouadi, and M. Tadjine «Nonlinear observer design and sliding mode control for four rotors helicopter» Proceedings of World Academy of Science, Engineering and Technology, Venise, Italy, Vol. 25, pp. 225-230, 2007.

    > [9] http://drone-zone.e-monsite.com/pages/les-differents-types-de-drones.html

    > [10] All the World's Rotorcraft - the biggest helicopter collection in the world, more than 700 helicoptersand autogyros.

    > [11] http://www.geekmag.fr /quadricoptere-fonctionnement-configuration-et-pilotage-rc/

    > [12] Conférence Mieux connaître les drones Avant-propos - Onera

    > [13] Inertial Measurement Unit - Browse Our Vast Inventory - vectornav.com

    > [14] https://www.mondrone.net/fabriquer-quadricoptere-la-propulsion/

    > [15] https://www.thingiverse.com/

    Références bibliographiques

    ? [16] Henri Bourlès, Systèmes linéaires - De la modélisation à la commande, Hermes Science Puplishing, 2006, 510 p. (ISBN 2746213001).

    ? [17] Henri Bourlès et Hervé Guillard, Commande des systèmes. Performance et robustesse, Ellipses, 2012 (ISBN 2729875352).

    ? [18] http://www.machinedesign.com/sensors/introduction-pid-control

    ? [19] https://myfirstdrone.com/blog/how-to-tune-a-quadcopter

    ? [20] https://github.com/

    Annexe

    Annexe

    1. Carcasse Auto CAD :

    Voici quelques photos correspondant aux fichiers source conçus avec le logiciel Auto CAD puis imprimés par une fraiseuse numérique. Cette carcasse de plexiglass transparente est mise sur la molette exacte pour protéger l'Arduino Uno du contrôleur de vol.

    Annexe

    2. Caractéristiques du moteur brushless utilisé :

    La description:

    Nom de marque: emax

    Nom de l'article: moteur brushless de xa2212

    Kv: 1400kv

    Diamètre: 3mm

    Diamètre de l'arbre: 28.5mm

    Compatible taille d'hélices: 1147.1047.9060.8040.8060

    kv1400: propice pour les avions de FPV poussoir prop, ailes à grande vitesse

    Annexe

    Diamètre du moteur :

    Annexe

    3. Caractéristiques de l'ESC Hobbywing XRotor 20A OPTO :

    ÉÕ?ÎÑ ÑÇÚÔÊÓÇ ÉÒÌæ É?äæÑÊßáÅ ÊÇäæßã ãÇÏÎÊÓÇÈ ÑÕáÇ äã ÚÏáÇ É?ÚÇÈÑ ÑÇ?Ø äæÏÈ æ ÑÇ?Ø äæÏÈ ÉÑÆÇØ ÁÇÔäÇ æ áãÚáÇ ÇÐ äã ÏáÇ äÇß :ÕÎáã

    ÉßÑÍ ?? ãßÍÊáÇ äã äßãÊáá ÒÊÑÇÛ?Ì 2.4 ÊÇÈÐÈÐ ??? áãÚÊ Éäã?Ç É?ßáÓ?áÇ Ê?ÇÕÊ?á æ?ÏÇÑ ÉÏÍææ ÑæÇÍã Ë?Ë æÐ ÈæßÓæ Ñ?Ì æä?æÏÑ?Ç áËã äãËáÇ

    ?? íæ?ÏÇÑáÇ

    ãßÍÊáÇ ÉÏÍæ äã

    ?????? ÁÇÒÌ ÌÐæãä

    ã?ãÕÊ

    ??

    ÊÏÈæ ãÇÙäáÇ ÇÐ

    Ð?äÊ áÍÇÑã

    ???? ÊÍÖæ ÉÑøßÐãáÇ åÐ ?? .ãáß

    2 íáÇæÍ ÏÚÈ äÚ ÉÑÆÇØáÇ

    ÏÑ ÉÑÆÇØáá

    äæß? ??? íæ?ÏÇÑáÇ áÇÈÞÊÓ?Çæ áÇÓÑ?Ç

    ??

    ÉãÏÎÊÓãáÇ

    ÊÇ?ãÒÑÇæÎáÇ

    ÊÍÑÔ

    ÉÌãÑÈáÇ ÁÒÌá ???????

    Çã

    .ÉãÒ?áÇ

    áÇßÔ?Çæ

    É?äÇ?ÈáÇ ãæÓÑáÇ Í?ÖæÊ

    ÌãÇäÑÈáÇ

    ???

    íæÊÍÊ

    íÊáÇ

    ÊÇæØÎáá

    ????

    ÇÍÑÔ

    Ê?ØÚ

    ßáÐ

    ÏÚÈ ÑÇ?ØáÇ ÑØ äã ãÏÎÊÓãáÇ æ?ÏÇ øÑáÇ ãßÍÊã äã ÉÑÏÇÕáÇ ÑãÇæ?Ç äã

    ÈÓÇäã

    áÚ

    ÈæßÓÑ?ÌáÇ äã ÉÑÆÇØáÇ ÇÑÍäÇ Ç?ÇæÒ ÊÇäÇ?È ÉÁÇÑÞ Þ?ÑØ äÚ ÉÑÆÇØáÇ ÇÑÍäÇ Í?ÍÕÊæ ÈÇÓÍ áËã ÉÑÆÇØáÇ ÉáÍÑ ?? ãßÍÊáá É?Ó?ÆÑáÇ ÊÇø?ãÒÑÇæÎáÇæ .ÉáÍÑáÇ ÉÁÇß ??? áæÕÍáÇæ ÉÑÆÇØáÇ ÚÖæãÊ ÁÇØÎ ?????? íæ?ÏÇÑáÇ ãßÍÊãáÇ ÑãÇæ ÊÇäÇ?ÈÈ ÇÊäÑÇÞãæ

    Abstract: This work was carried out as part of the master's thesis, which the objective was the design and production of a quadrotor UAV drone with the six-channel radio controller, using only inexpensive electronic components such as the Arduino, a 3-axis gyroscope MPU6050 and a radio module (NRF24L01) at 2.4 GHz for the realization of the appropriate transmitter and RF receiver. The Both of quadrotor and transmitter frames were built with ultra polyamide nylon using a 3D printer. In this thesis, I mentioned all the stages of the implementation of this system, after a brief introduction on drones, with the citation of the different standards and research work carried out in this area, I started to model the different parts of the system through the instrumentation it contains the quadrotor and the radio control unit with the illustration of the diagrams and figures required. Regarding the programming part, I first explained the algorithms used in the RF transmitter and receiver in order to have an adequate reaction from the quadrotor to the commands sent by the pilot. After that, I gave a detailed explanation on the different stages which contains the main program of the flight controller such as: Reading the PWM signals coming from the receiver, Reading the angular data coming from the Gyroscope, Calculating the PID corrections, Calculates pulses for each ESC and sends calculated pulses to the ESCs.

    Résumé: Ce travail a été réalisé dans le cadre de la thèse de maîtrise, dont l'objectif était la conception et la production d'un drone quadrotor UAV avec le contrôleur radio à six canaux, en utilisant uniquement des composants électroniques bon marché tels que l'Arduino, un gyroscope 3 axes MPU6050 et un module radio (NRF24L01) à 2,4 GHz pour la réalisation de l'émetteur et du récepteur RF appropriés. Les deux cadres du quadrotor et de l'émetteur ont été construits en nylon ultra polyamide à l'aide d'une imprimante 3D. Dans cette thèse, j'ai évoqué toutes les étapes de la mise en oeuvre de ce système, après une brève introduction sur les drones, avec la citation des différentes normes et travaux de recherche menés dans ce domaine, j'ai commencé à modéliser les différentes parties du système à travers l'instrumentation contient le quadrotor et la radiocommande avec l'illustration des schémas et figures nécessaires. Concernant la partie programmation, j'ai d'abord expliqué les algorithmes utilisés dans l'émetteur et le récepteur RF afin d'avoir une réaction adéquate du quadrotor aux commandes envoyées par le pilote. Après cela, j'ai donné une explication détaillée sur les différentes étapes qui contiennent le programme principal du contrôleur de vol telles que: lecture des signaux PWM provenant du récepteur, lecture des données angulaires provenant du gyroscope, calcul des corrections PID, calcul des impulsions pour chaque ESC et envoie des impulsions calculées aux ESC.

    Zusammenfassung: Diese Arbeit wurde im Rahmen der Masterarbeit durchgeführt, deren Ziel das Design und die Produktion einer Quadrotor-UAV-Drohne mit dem Sechs-Kanal-Funkcontroller war, wobei nur kostengünstige elektronische Komponenten wie das Arduino, ein 3-Achsen-Gyroskop MPU6050 und verwendet wurden ein Funkmodul (NRF24L01) mit 2,4 GHz zur Realisierung des entsprechenden Senders und HF-Empfängers. Die Quadrotor- und Senderrahmen wurden unter Verwendung eines 3D-Druckers aus Ultra-Polyamid-Nylon hergestellt. In dieser Arbeit erwähnte ich alle Phasen der Implementierung dieses Systems. Nach einer kurzen Einführung in Drohnen und unter Berufung auf die verschiedenen Standards und Forschungsarbeiten in diesem Bereich begann ich, die verschiedenen Teile des Systems zu modellieren Die Instrumentierung enthält den Quadrotor und die Funksteuereinheit mit der Abbildung der erforderlichen Diagramme und Abbildungen. In Bezug auf den Programmierteil habe ich zunächst die im HF-Sender und -Empfänger verwendeten Algorithmen erläutert, um eine angemessene Reaktion des Quadrotors auf die vom Piloten gesendeten Befehle zu erzielen. Danach gab ich eine detaillierte Erklärung zu den verschiedenen Stufen, die das Hauptprogramm des Flugreglers enthalten, wie zum Beispiel: Lesen der vom Empfänger kommenden PWM-Signale, Lesen der vom Gyroskop kommenden Winkeldaten, Berechnen der PID-Korrekturen, Berechnen von Impulsen für jeder ESC und sendet berechnete Impulse an die ESCs.

    Özet: Bu çaliþma, sadece Arduino, 3 eksenli bir jiroskop MPU6050 gibi ucuz elektronik bileþenler kullanilarak, alti kanalli radyo kontrolörü ile bir quadrotor HA uçaðinin tasarimi ve üretimi olan yüksek lisans tezinin bir parçasi olarak gerçekle°tirildi. uygun verici ve RF alicisinin gerçekle°tirilmesi için 2,4 GHz'de bir radyo modülü (NRF24L01). Dörtlü ve verici çerçevelerinin her ikisi de bir 3D yazici kullanilarak ultra poliamid naylon ile yapilmi°tir. Bu tezde, bu sistemin uygulanmasinin tüm a°amalarindan bahsetmi°tim, dronlar üzerine kisa bir giri°ten sonra, bu alanda yapilan farkli standartlarin ve ara°tirma çali°malarinin gösterilmesi ile sistemin farkli bölümlerini modellemeye ba°ladim. enstrümantasyonda gerekli diyagramlari ve °ekilleri gösteren dörtlü ve radyo kontrol ünitesini içerir. Programlama kismi ile ilgili olarak, önce kuadrotordan pilot tarafindan gönderilen komutlara yeterli bir tepki vermek için RF vericisi ve alicisinda kullanilan algoritmalari açikladim. Bundan sonra, uçu° kontrolörünün ana programini içeren farkli a°amalarda ayrintili bir açiklama yaptim: Alicidan gelen PWM sinyallerinin okunmasi, Jiroskoptan gelen açisal verilerin okunmasi, PID düzeltmelerinin hesaplanmasi, her ESC ve hesaplanan darbeleri ESC'lere gönderir.






Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy








"Là où il n'y a pas d'espoir, nous devons l'inventer"   Albert Camus