Jump to content
DroneBuilds
Jerome

Fake Live Audio (avec ou sans) DJI FPV System

Recommended Posts

Salut tout le monde,

Vous allez probablement me prendre pour un fou, mais je partage quand même, des fois que ça intéresse du monde 😉 

Un truc qui me faisait hésiter à passer sur le DJI FPV System, c’est l’absence de Live Audio, malgré les demandes des utilisateurs. Pour le moment, DJI semble privilégier la qualité du flux vidéo, pourtant de l’audio en très faible qualité ne consommerait pratiquement rien en bande passante et serait largement suffisant.

Avant d’entrer en détails sur le choix de la solution pour contourner ce problème et son implémentation, et pour ceux qui veulent aller à l'essentiel sans se taper 10 pages de lectures, voici une courte vidéo :

En attendant de recevoir tout le matos pour le build, je me suis attaqué à ce problème. J’ai imaginé plusieurs d’approches différentes (VTX analogique, mini talkie-walkie désassemblé et autres détournements…), finalement, j’ai écarté toutes les options qui impliquaient un signal RF, ne voulant pas perturber le signal de la radio ou du DJI FPV System, et tendre un fil entre le quad et mon oreille n’était pas une option non plus 😆

J’ai opté pour une autre approche : reproduire le bruit des moteurs à partir de la position du throttle sur la radio. Le port série de la radio ne permet que de récupérer une version « miroir » de la télémétrie. Il va donc falloir taper directement sur l’électronique. On va perdre la possibilité d’entendre les problème sur le quad, par contre, on ne perdra pas le son quand ça commence à glitcher, comme c’est le cas avec une liaison analogique classique.

Autre point : sur le masque DJI, la sortie casque est aussi l’entrée AV. Donc même si un jour le live audio est supporté par DJI, si on utilise un module analogique, on ne pourra de toute façon pas avoir le son. Cette solution permet donc d’avoir une émulation du régime moteur en toute circonstance, puisqu’il sera généré par la radio.

L’idée générale

On utilisera un petit Arduino Nano pour mesurer la tension au niveau de l’axe du throttle (qui varie en fonction de la position du stick) et générer une tonalité : plus la valeur de throttle est élevée, plus le son sera aigu.
Pour que ça ne soit pas désagréable, après qques essais, j’ai opté pour un range de 150 à 700 Hz, c’est un bon compromis.

Où se greffer ?

La première galère a été de trouver le moyen de récupérer l’alimentation pour le Arduino, sachant qu’il prend de 7 à 12V en entrée et que je ne veux pas me brancher en direct sur la batterie (sinon l’Arduino va vider la batterie quand la radio sera éteinte). La solution la plus simple a été de profiter du port série de la X9D qui propose un GND et un VBAT (switché). Par chance, la tension de la batterie de la X9D est dans le range de ce qu’attend l’Arduino 🙂 

06_IntegrationBatteryCase.jpg.a12594bc1c7cffe9e530e0d27f32ad6a.jpg

Ensuite, il faut récupérer la position du stick du throttle, j’ai constaté que sur ce pin (cf. photo), la tension variait de 0.32V à 2.75V en fonction de la position du throttle. Ca tombe bien, un Arduino peut lire directement une tension comprise entre 0 et 5V.

03_GimbalSensor.jpg.87243808994d710b29e0bc936bb671e0.jpg

Le circuit

C’est vraiment tout con finalement. Sachant que je suis une quiche en électronique, y a certainement de meilleure façon de faire, je suis allé au plus simple pour mon niveau. Voici le schéma :

SchemaLiveAudio.png.4586502167a88438d0360e4ed2790eb1.png

Quelques détails à prendre en compte :

  • Un pin Arduino peut fournir 20 mA par pin en 5V (40 mA en pic, mais on va rester sur les valeurs recommandées). Donc pour protéger l’Arduino, il nous faudra à minima une résistance de
    R = 5 / 0.02 = 250 Ohms
    A noter également que les écouteurs ont une résistance (ou plutôt impédance), en général aux alentours de 32 Ohms (valeurs vérifiée sur 3 paires que j’avais sous la main). Une résistance de 220 Ohms fera donc l’affaire.
  • Si on branche les écouteurs direct, ça gueule, il faut limiter le volume des écouteurs avec une autre résistance. C’est pas facile de trouver des infos, donc j’ai testé plusieurs valeurs jusqu’à trouver quelque chose de correct ==> 30-40 KOhm. Du coup j’ai mis un potentiomètre de 50 KOhm pour pouvoir faire varier le volume sur une plage assez large. J’ai ajouté un petit switch pour pouvoir couper l’Arduino Nano sans devoir ouvrir la radio.

Intégration

J’ai essayé de faire en sorte que le mod soit le moins intrusif possible :

  • L’alim est récupérée sur le connecteur série
  • Le switch et le potentiomètre pour le volume sont intégrés dans l’espace dispo sur la gauche de la batterie, sur un petit support en impression 3D.
  • J’ai remplacé un switch que je n’utilisais pas par le connecteur jack. Là j’ai dû un peu limer la case pour pouvoir bloquer le connecteur avec son écrou, mais c’est infime et invisible.

01_Support.jpg.576e7b21a7371bf56adcd31abc9b0336.jpg

02_ModuleBatteryCase.jpg.ea365ce9ae886df9721076c720a6fe64.jpg

04_ArduinoNano.jpg.878677b01c3ff68566d89cb81edbda0a.jpg

Vue d’ensemble du montage:
05_FullView.jpg.dbdd9a4f589e0eed7d2123fcf6e1a5e4.jpg

07_Jack.jpg.ac8f8cf9f44aba035ff1646bb64a4586.jpg

Le programme

Lui aussi il est tout con. On lit la tension sur le capteur à effet hall, on map cette valeur sur la plage de fréquences choisie et voilà ! Il est disponible ici : https://github.com/LordGG/PoCs/blob/master/FakeLiveAudio/FakeLiveAudio.ino

Deux petites subtilités :

  • Plutôt que de mettre en dur les valeurs min et max de l’axe du throttle, j’ai opté pour faire une calibration au démarrage : il suffit de bouger un coup le stick au min et au max. Si on oublie, ça se fera en vol de toute façon.
  • Quand il y a moins de 3% de gaz, on coupe le son
    A noter : plus on monte le throttle, plus la tension mesurée est faible, et inversement.

Evolutions possibles

  • J’utilise du matos ultra basic, en montant un peut en gamme, on pourrait carrément générer un bruit de moteur réaliste, plutôt qu’une simple fréquence.
  • Au début j’avais imaginé détourner un des 2 connecteurs jack déjà présent à l’arrière de la radio, j’ai lâché l’affaire parce qu’ils sont soudés sur le PCB de la radio. A voir si y a moyen de les utiliser quand même.
  • Adapter cette solution à d’autres radios/capteurs de gimbal. Le principe restera le même.

Sur ce, tout le matos étant enfin arrivé, c'est partie pour une bonne session build xD

08_Headphones.jpg

  • J'aime 2
  • Wow 3

Share this post


Link to post
Share on other sites
Il y a 2 heures, Jerome a dit :

Sachant que je suis une quiche en électronique

Ça se voit pas 😱

T'es un grand malade quand même 😆

Merci pour le partage mais je passe mon tour, d'autant plus que c'est compliqué à faire rentrer dans une X-Lite ou une Tango 2 😛 

Il y a 2 heures, Jerome a dit :

Sur ce, tout le matos étant enfin arrivé, c'est partie pour une bonne session build xD

Bon build, ça vaut vraiment le coup 😍

  • J'aime 1

Share this post


Link to post
Share on other sites

😆

il y a 5 minutes, Motard Geek a dit :

c'est compliqué à faire rentrer dans une X-Lite ou une Tango 2 😛 

Oula oui, je ne m'y risquerais pas 😉 

il y a 5 minutes, Motard Geek a dit :

Bon build, ça vaut vraiment le coup 😍

Merci, j'attaque tout juste, je viens de déballer le premier AK47 HD, et c'est vrai que le carbone est impressionnant, c'est beau, soyeux et hyper rigide !

Share this post


Link to post
Share on other sites

Je n'ai pas osé tout lire mais j'ai écouté ta douce voix 😁

Plus sérieusement, je ne suis pas convaincu par l'émulation pour moi c'est comme les clio qui émulent un bruit de F1, c'est vraiment useless. Mais si ça t'apporte un peu d'immersion pourquoi pas.

Edited by SupraDolph
  • Haha 1

Share this post


Link to post
Share on other sites
il y a 30 minutes, SupraDolph a dit :

Plus sérieusement, je ne suis pas convaincu par l'émulation pour moi c'est comme les clio qui émulent un bruit de F1, c'est vraiment useless. Mais si ça t'apporte un peu d'immersion pourquoi pas.

Le but c'est pas de faire le kéké avec un son de fusée hein 😉 Mais ca me fait bizarre de ne pas avoir de retour audio lié à l'image ou quand je m'éloigne un peu et que je met un coup de gaz, le son qui arrive en décalé par rapport à mes actions sur les commandes.

J'ai débuté le FPV avec le retour audio, donc c'est une aussi habitude. J'ai l'impression qu'on est assez peu à voler avec d'ailleurs.

Share this post


Link to post
Share on other sites
Youtube WE are FPV

Yep ! J'ai testé un peu sur simu et c'était pas mal, à voir en vrai. 

Vous pourrez tester, ça serait intéressant d'avoir d'autres avis.

Beaucoup de radios ont une prise casque et de l'électronique bien plus avancé que mon pauvre Arduino, je suis sûr que ça pourrait être intégré en standard de façon beaucoup plus efficace pour un coup pratiquement nul.

Share this post


Link to post
Share on other sites

J'ai refait une petit session sur simu.

J'ai remarqué un truc un peu con, je n'avais pas testé le switch pour couper l'Arduino. En fait quand il est éteint, le pin est flottant... et influe sur la valeur du throttle xD Bon, doit y avoir moyen de régler ça en tirant une grosse résistance sur le GND. De toute façon l'Arduino ne consomme pratiquement rien, donc pour le moment il restera allumé.

J'ai testé avec le son du simu seulement, puis avec le son émulé seulement et enfin les 2 en même temps. Il faut compter 5 minutes pour s'habituer au "nouveau son", après ça le fait bien.

Pour faire encore mieux, il faudrait que j'introduise un peu de latence : le son émulé par la radio est un peu plus "réactif" que le son des moteurs. Je ne pense pas que cette latence vienne de la transmission radio, mes sens ne sont pas assez aiguisés pour détecter qques millisecondes de décalage. La cause est certainement bien plus "physique" : un moteur ne change pas son régime de manière instantanée, il lui faut une fraction de seconde pour atteindre la vitesse demandée (et générer le bruit qui va avec).

  • J'aime 1

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...