Modem Audio pour telemetrie et antenna tracking GPS

penpen77

Nouveau membre
Vu qu'on me le demande sur pas mal de forum et que ma boite mail commence à vraiment vraiment saturer et dans des langues que je pige pas, voilà de quoi faire un modem utilsant le canal audio de votre tx/rx fpv préféré et donc de retransmettre le flux NMEA de votre GPS en vol vers le sol, bref, antenna tracking, logging de votre parcours, etc.... La transmission est bufferisée, donc peu importe la bande passante entre le GPS et le modem et entre le modem et le sol, le flux sera juste un peu découpé....

(A) J'ai jamais fait de dev sur avr ni de traitement de signal, donc il est fortement possible que le code soit très moche ou que l'implementation soit bizarre, bref j'ai fait "à l'instinct", mais ça marche très bien en tout cas :cool:

A l'orgine ça tourne sur un attiny2313 avec le PB0 comme sortie son, mais c'est vraiment light, je recommande un atmega8, ça coute le meme prix, soit ~3/4 euro sur ebay à tout peter. A part ça, il faut juste 2/3 resistance/condo comme sur tous les montage atmel de base, rien de plus. Pour la partie demodulation -> pc + carte son (source fourni) ou quasiment le meme montage electronique a base d'atmel, par contre j'ai pas pris le temps de dev ce code là, mais ça revient à compter des bits (ahah...ahah...ahah.... la blague est faite)

Bon par contre, je suis encore toujours trop occupé (ecommerce, noel, tout ça...) pour bien expliquer/rentrer dans les détails, etc... donc je balance juste une archive "en vrac", pour ceux qui ont déjà taté le terrain ça devrait etre parlant, pour les autres, bah.... wait, desolé pour la faim dans le monde, etc...

L'archive contient les sources en C pour le modem "atmel", c'est en bfsk, mais en decommentant les bons truc, en passe en qfsk (2 bits/4 états par train d'impulsion). Idem, la taille du buffer c'est un define et le double buffering s'active en decommentant 2/3 truc.

L'autre partie, c'est un proj java au format netbeans pour fournir de quoi demoduler le signal, reconstruire le flux NMEA, le valider et extraire les opcodes qui vont bien et puis d'autre truc pour l'antenna tracking que je n'ai pas fini. C'est un peu le bordel, mais normalement c'est clair. Y a juste les fichiers à la racine du package qui servent a rien, pour le reste, faut check le main de DebugAudioModemStream et de DebugGPSAnalysis (attention au implementation "SIM" qui sont juste des classes de test simulant des flux)

Voilà, je ferai un vrai sujet quand j'aurais le temps, avec des photos, des shema elec, du code propre et compilé, etc... promis

PS: à toutes les eventuelles questions du type "pourquoi", je vous invite à lire la partie (A) pour le "parce que" :p
 

Fichiers joints

  • starlet_grande.jpg
    starlet_grande.jpg
    56 KB · Vues: 66
sur du stripboard, attiny2313 a gauche, atmega8 a droite

l'un comme l'autre, faut compter moins de 10€ de composant
 

Fichiers joints

  • 2011-12-11 11.51.57.jpg
    2011-12-11 11.51.57.jpg
    96,6 KB · Vues: 75
Super boulot !
Merci pour ce partage !

Quel débit d'informations (bit/sec) peut-on obtenir en utilisant le canal audio d'un émetteur vidéo ?
Ca dépend directement de l'échantillonnage audio de l'émetteur, n'est-ce pas ?
Il est de combien avec nos émetteurs FPV généralement ? 10kHz à 20kHz ?

J'ai un projet pour lequel j'aurais besoin d'un débit d'au moins 2.4kbps (mais le plus sera le mieux !).
Pour l'instant j'évalue encore les différentes possibilités, mais je commence à pencher pour un canal numérique dédié de type XBee ou équivalent.
J'avais exposé mes réflexions ici : http://www.modelisme.com/forum/aero-radio-electronique/168381-reception-telemetrie-sur-pc.html

Note pour les intéressés : certains émetteurs vidéo transmettent en stéréo, soit deux canaux audio ce qui nous permet de doubler le débit (mais nous prive de son).
 
Oula.... j'ai l'impression de revivre un partiel là....

dans mes souvenir (a prendre avec des pinces à cornichons géante donc) la bande passante "voix/rtc" c'est ~3/4khz quelque chose comme 300-4000hz, là j'ai fait un truc qui s'approche du bfsk, on module la frequence sur 2 trains différents en fonction des 0/1 (enfin si je me plante pas, toujours les pinces à cornichons, le pifometre et tout...) J'echantillonne à 1.5/2khz, donc on va dire une bande passante de 2000bps max soit 250 o/s max, disons 200 o/s vu qu'on transmet du ascii-alpha qui est stocastiquement plus "lourd" en 0, donc majoritairement des impulsion courtes. En faisant de la modulation de phase,transformée en Z, nyanyanyanya on peux facilement isoler 4 états au lieux de 2 et donc faire du qfsk/qpsk ou qqchose du genre et doubler la bande passante. Idem doit y avoir moyen d'ameliorer l'échantillonnage pour augmenter le débit et in fine, si on n'est pas trop avenant niveau latence et que l'on a assez de mémoire, on peu faire de la compression (arithmétique, rle, ce genre de truc qui fonctionne bien sur des chaines courtes) et puis le multiplexage stéréo aussi

Il y a aussi moyen de scouater une partie du flux vidéo, faire une sorte de filigramme digital

mais c'est clair que le zigbee est le plus simple/pratique/efficace avec une bande passante largement plus élevée, mais c'est un poil plus cher aussi (entre un avr à 4$ et un kit rfbee/xbee à 100€ clef en main, bah....) Il y a du 900Mhz et 2.4Ghz de dispo, mais je ne sais pas quels sont les impact niveaux brouillage sur les tx rc/video qu'on utilise ici.

Et puis il y a la bande 433 aussi, mais là, je connais pas du tout du tout
 
Haut