Accueil

UTILISATION DE MODULES DE RADIOCOMMANDE

 

Ces modules sont analogues a ceux utilisés par les modéles réduits de voitures ou avions télécommandés , d'ailleurs vous pouvez trouver des documentations précises sur les sites d'aéromodélisme..

Les ondes de radio fréquences (RF) utilisées ont deux composantes : l'une magnétique et l'autre électrique qui est utile pour la transmission. Elles se déplacent a la vitesse de la lumiére (vers 300.000 km/seconde).

Nous utilisons des modules ER400TRS de marque EASYRADIO (=DEVANTECH) mais les modules d'autres fournisseurs (Radiometrix ou XBEE ) leur ressemblent.

Ces modules sont a la fois récepteurs et émetteurs on parle de transcievers.

Les modules EASYRADIO utilisent des ondes radio modulées a une fréquence de 433 mégahertz réglée grâce a un quartz (souvent appelé cristal par les radiomodélistes) intégré sur le module, elle correspondent a des longueurs d'onde d'environ 68 cm et l'antenne 1/4 d'onde conseillée par Easyradio fait 16,4 cm . Nous préférons cette fréquence a celle de 2,4 GHZ des modules XBEE , en effet les modules de transmission radio d'images de caméras vidéo utilisent souvent la bande des 2,4 GHZ . Donc, si on envisage de récupérer des images vidéo a partir d'une caméra embarquée sur le robot , il vaut mieux garder la bande des 2,4 GHZ pour cet usage.

Le module émétteur peut étre connecté sur un port USB d'un PC , mais un convertisseur intégré au module (de marque FTDI) le fait considérer comme un port série par le PC .

A l'aide d'un programme , assez facile a écrire en C# qui a une fonction de connection série intégrée, on envoie des messages qui seront reçus par le transciever enfiché sur le robot.Coté robot , le module a 9 pattes réparties comme suit:terre (pattes 2,4,7, 9) , antenne (patte 1) , reception signal (patte 6), émission signal (patte 5), alimentation en 3 a 5 volts (patte 8) et la patte 3 n'est pas connectée.

Pour le Propeller ce module radio est identifié comme un port série et on peut donc lire et écrire des messages sur ce port en utilisant un objet disponible sur la bourse d'échange de Parallax: fullduplexserialplus . Il fournit des fonctions toutes prétes pour lire et écrire sur le port série. On notera , au passage, que les programmes d'analyse d'image ROBOREALM comportent un module série qui leur permet d'envoyer directement au robot les coordonnées d'une tache de couleur donnée: c'est bien pratique pour faire suivre au robot une ligne ou un objet de couleur.

On récupére les messages dans des chaines de caractéres et on en extrait les commandes avec un petit programme en Spin.

Il est prudent de commencer les messages par 2 identificateurs : le premier indique que le message s'adresse bien au robot (il correspond a un numéro attribué au robot) et permet d'éviter des interférence . Le second correspond au numéro du message , ce numéro est utilisé pour un échange (un message du robot vers le PC suivi d'une réponse du PC vers le robot) il est incrémenté de une unité a chaque échange pour vérifier que la réponse correspond bien a la question (ici c'est le robot qui incrémente dans d'autres cas c'est le coté PC: il faut s'entendre au départ pour savoir qui commande : dans ces transmissions il y a toujours un poste "maître" et un poste "esclave".

En fait pour envoyer des messages simplement , nous considérons que tous les caractéres du message sont des lettres de l'alphabet et pour envoyer un chiffre nous envoyons la lettre qui correspond a son code ASCII : par exemple la lettre A pour 65. Nous avons donc 127 nombres possibles , donc pour certains chiffres qui dépassent 127 on sait qu'on enverra la moitié et qu'a l'arrivée on multipliera par 2.On notera qu'il y a quelques codes ASCII qu'il vaut mieux éviter éviter , notamment ceux de 0 a 10 dont certains correspondent a des commandes spéciales sur une liaison série (comme 3=ETX ,2= STX, 6=ACK,7=BEL).

Un message pourra être des types suivants:

Kna: K identifie le robot, n est le numéro de l'échange et a est le contenu du message (ici une commade Avancer pour le robot).

Knxy: ou x e y sont les valeurs x et y d'un joystick connecté au PC (comme elles vont de 0 a 255 on les divise par 2 avant envoi et on multiplie les codes ASII par 2 a la réception) ces deux valeurs permettent de changer la durée des impulsions envoyées aux deux servomoteurs qui pilotent les déplacements du robot.

 

Ensuite, selon la commande reçue on execute telle ou telle fonction écrite en spin.

Dans de nombreux cas les messages comportent des chiffres correspondant a des réglages a effectuer par l'intermédiaire du Propeller sur des périphériques.

Pour ne pas avoir a utiliser un PC on peut essayer d'utiliser des boitiers de radiocommande classiques pour envoyer les message au robot sans passer par un joystick et un programme en C# mais ils utilisent des codages particuliers.

NOTES CONCERNANT LES CONVERTISSEURS USB/SERIE de marque FTDI:

Ceux qui utilisent des Propeller trouvent ces modules FTDI insérés dans le Proplug qui permet le transfert de programmes en SPIN d'une prise USB du PC vers le Propeller.

Mais comme les modules Arduino (a processeur ATMEGA) utilisent les mêmes modules FTDI on peut trés bien utiliser une platine Arduino pour transférer un programme en SPIN vers un Propeller et se passer du Proplug.