Réalisation du transmetteur RF et Récepteur RF 2.4 GHz
Réalisation du transmetteur RF
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 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.
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)).
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:
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.
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.
Figure 3.19 : Schéma du circuit imprimé du récepteur RF 2.4 GHz
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:
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.