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
Université des Sciences et de la Technologie Houari Boumediene (USTHB) - Master en électronique 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

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

 

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








"Il existe une chose plus puissante que toutes les armées du monde, c'est une idée dont l'heure est venue"   Victor Hugo