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

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 y a des temps ou l'on doit dispenser son mépris qu'avec économie à cause du grand nombre de nécessiteux"   Chateaubriand