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
  

précédent sommaire suivant

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

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

précédent sommaire suivant






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








"Les esprits médiocres condamnent d'ordinaire tout ce qui passe leur portée"   François de la Rochefoucauld