Contrôleur de vol du quadrotor et signaux du récepteur RF

Contrôleur de vol du quadrotor

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.

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

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).

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

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.

Diagramme des broches de l’ATmega328p
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.

Sous-programme d’interruption

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

Sous-programme d’interruption

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 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.

Les mouvements de base
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.

Pour citer ce mémoire (mémoire de master, thèse, PFE,...) :
📌 La première page du mémoire (avec le fichier pdf) - Thème 📜:
Le drone quadrotor UAV : conception du contrôleur de vol
Université 🏫: Université des Sciences et de la Technologie Houari Boumediene - Faculté d’Electronique Et Informatique
Auteur·trice·s 🎓:
ZITOUNI Abdelhak Amine

ZITOUNI Abdelhak Amine
Année de soutenance 📅: Mémoire de projet de fin d’études Master en électronique - Promotion : JUIN 2018
Rechercher
Télécharger ce mémoire en ligne PDF (gratuit)

Laisser un commentaire

Votre adresse courriel ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Scroll to Top