mardi 1 juillet 2014

Communication radio : suite

La semaine dernière, j'étais dans une impasse face au problème de communication radio entre une IMU en l'air sur le cerf-volant et le sol.

Différentes solutions adaptées aux drones sont listés sur http://wiki.paparazziuav.org/wiki/Modems

La solution simple est d'utiliser un Xbee qui repose sur le protocole zigbee.
Différentes bandes de fréquences, différentes types d'antennes, et différents protocoles existent ce qui ne simplifie pas le choix. Une bonne documentation en français peut être trouvée ici http://jeromeabel.net/fr/ressources/xbee-arduino.
Mael de Stéréolux m'a prêté une paire pour faire des tests.

Des alternatives moins coûteuses existent à base du composant NRF24L01, dont la portée peut-être boosté par une antenne.

Une alternative est évidemment de réaliser la carte soit même pour ceux qui souhaiteraient quelque chose de plus open hardware, comme ce projet de la fabacademy http://fab.cba.mit.edu/content/projects/comm/hello_radio/

Un autre capteur qui pourrait être installé sur le cerf-volant est un anémomètre.
http://forum.arduino.cc/index.php/topic,53569.0.html

Cependant, avant de tester ces solutions, j'ai persévéré dans l'utilisation d'une paire émetteur/récepteur en 433MHz.

Un arduino nano connecté à l'émetteur d'un côté, un arduino uno connecté au récepteur de l'autre côté.


J'ai d'abord vérifié le bon fonctionnement de la paire émetteur/récepteur avec la bibliothèque VirtualWire puis avec la bibliothèque Radiohead (fichiers de test ici).

J'ai pu vérifier que d'ajouter la communication à relativement bas débit sur le programme lisant les valeurs de l'IMU engendrait une dépassement de la taille du tampon de l'unité de calcul du MPU6050.

J'ai d'abord testé une solution (http://diydrones.com/forum/topics/i-have-a-hard-time-using-mpu6050) sans succès.

J'ai ensuite cherché à ralentir la fréquence d'envoi des infos de l'IMU en modifiant le fichier MPU6050_6Axis_MotionApps20.h de la bibliothèque.
Et cela fonctionne ! En tout cas tant que l'on limite le nombre de données envoyés. J'arrive pour l'instant à tourner à 10Hz, mais j'aimerais maintenant utiliser une trame binaire pour envoyer les trois angles afin de voir jusqu'où je peux augmenter la fréquence.

A suivre...


Aucun commentaire:

Enregistrer un commentaire