DIY GnuVario : variomètre opensource - openhardware Arduino

En parallèle de tes tests, je réfléchis à implémenter une table de valeurs comme xc tracer,

toutes les infos et les expériences seront utiles, pour avoir un jolie son sur notre GnuVario

ptitkiki toutes les infos sur xctracer me seront utiles, n’hésite pas à m’expliquer comment il réagit. Perso par exemple sur mon syride, je suis frustré de ne pouvoir paramétrer, que la fréquence. On s’en rend déjà compte avec les outils de paramétrage en ligne. En l’air je trouve le son du syride un peu agressif, plus agressif qu’un flymaster NAV (que j’ai pu tester), par contre je n’ai jamais volé avec un Xc tracer

Caremba! encore raté! :bang:
j’ai bien des fichiers IGC qui apparaissent sur la carte SD a chaque mise sous tension mais ils sont tous de 512 octets, a la date du 6 septembre 2016 a 17:14 et indépendamment des étapes 123 (date et heure, 2 barres de réception, triangle d’enregistrement clignotant). J’ai sorti le circuit du boitier pour les Pb de pression des vis sur le lecteur de carte… Je joins un exemple de fichier pour info… Est-ce que cela viendrait encore d’un Pb de droit d’accès a la partition???

Salut !

C’est le comportement normal à priori. Le GnuVario met toujours la même date sur le fichier.

  1. Si les deux tests de carte SD que je t’ai envoyé ont marché c’est que c’est bon. Ta carte est bien connectée.

  2. Si tes fichiers sont vides avec le dernier code du vario c’est peut-être juste que tu n’attends pas assez longtemps après le “début du vol”. Le vario réalise des écritures par bloc de 512 octets. Il faut donc attendre une minute ou deux pour que le fichier commence à se remplir.

(le fichier que tu as envoyé est un fichier des programmes de débuggage et non généré par le code du vario)

A+

EXACTEMENT
tu m’as précédé Prunkdump

Apparemment tu utilise un FIRM.HEX de test, il vérifie le bon fonctionnement de la carte SD, et la elle marche bien.
Il faut que tu utilise le FIRM.HEX officiel ou ma version 63.1 - regarde dans les posts précédents

Si tu as les triangles tu es juste avant le début du vol. Il te faut le carré clignotant. Si tu as le carré clignotant, l’enregistrement a débuté sinon tu dois dépasser les 10km/h et avoir un vario qui dépasse soit -0.5 soit +0.5m/s

bon courage

Hello
Grosse semaine pour moi aussi…
J’ai enfin pu monter mon module bt avec la gaine thermo d’origine transparente et toujours le même défaut: perte de sat (plus que 2 barres et affichage d’une vitesse à l’arrêt), confirmé par mes mesures.
Alors que tout rentre dans l’ordre dès que je coupe le bt :frowning:
J’ai même essayé d’y mettre un filtre ( c 10 nF et r 8 ohms) mais ca marche pas.
Je vais laisser tomber.
Ca à l’air sympa votre mise au point du son, je vais me remonter les pages de retard ! :jump:

hello,
Je suis en train de finaliser une petite appli PC de simulation du son. (un peu comme celle du xc tracer, en plus minimaliste, et basée sur les variables et la méthode de programmation actuelle du GNUvario.
(dans un second temps, j’essaierai de la brancher sur des vrais enregistrements de trace, si j’en trouve à assez haute fréquence d’enregistrement de la vz)

Pour le calcul de la fréquence du bip, c’est assez claire: une relation entre Vz et 2 variables:

par contre, pour la durée du bip, je ne suis pas sur de bien comprendre l’algo…
L’un de vous pourrait-il me le donner, en fonction des différente variables?

Ca doit se passer par la :

et un peu :

voir

mais des trucs m’échappent…

merci d’avance !

Hello,

en fait, je ne connais du XC tracer que l’appli en ligne, et quelques discussions glanées sur des forum… je ne l’ai même jamais eu en main…
Par contre, l’appli me semble assez clairz sur la manière dont c’est programmé (sauf la gestion des transitions , pour laquelle je ne suis d’ailleurs pas certain que l’appli soit fidéle à ce qui sort en vrai du produit…
Je ne serai pas surpris que dans la vrai vie ça soit moins smooth que sur le simulateur. Quelqu’un qui en a un pourrait nous dire?

Grace au testbeeper j’ai pu baisser la progression de la monté dans les tours

C’est loin de la perfection du Tone simulator, mais au moins on n’a plus l’impression qu’il va exploser passé les 2m/s

les valeurs que j’utilise en attendant que vous trouviez une solution plus agréable à l’oreille
dans le fichier librairies/beeper/beeper.h

[quote]/* climbing beep sound freq computation : BEEP_FREQ_COEFF * velocity + BEEP_BASE_FREQ */
#define CLIMBING_BEEP_BASE_FREQ 1000.0
#define CLIMBING_BEEP_FREQ_COEFF 40.0 /ori 150.0/

/* climbing beep velocity filter /
/
filteredVelocity = beepVelocity * BEEP_VELOCITY_FILTER_COEFF + BEEP_VELOCITY_FILTER_BASE */
#define CLIMBING_BEEP_VELOCITY_FILTER_BASE 0.1
#define CLIMBING_BEEP_VELOCITY_FILTER_COEFF 0.1 /*ori 0.5 */
[/quote]
:grat: l’alarme de descente commence à -2. Je ne trouve pas ou elle est ? je la préfère à -3
l’alarme de descente n’a aucune progression, c’est le même son de -2 à -10.

Merci pour tes tests Van Hurlu

la fréquence est calculer comme ça :

beepFreq = CLIMBING_BEEP_FREQ_COEFF * velocity + CLIMBING_BEEP_BASE_FREQ;

#define CLIMBING_BEEP_FREQ_COEFF 40.0 /ori 150.0/

si j’ai bien compris

fréquence du bip = 40 hertz * vario + 1000 Hertz

currentLength *= (beepVelocity * CLIMBING_BEEP_VELOCITY_FILTER_COEFF + CLIMBING_BEEP_VELOCITY_FILTER_BASE);

pour la durée c’est un peu moins clair

Salut !

J’ai eu le temps de regarder un petit peu les simulateurs ! Honnêtement je trouve le coup des tables avec 10 ou 15 valeurs vraiment excessif. Et puis ce n’est pas si facile à régler avec tous ces points sur le graphique :grat:

Juste deux points aux extrémités pour le bip de monté et deux points pour le bit de descente me semblent grandement suffisant. Après il suffit de faire une interpolation linéaire ou logarithmique entre les deux.

Je vous ai calculé les valeurs correspondant au réglage par défaut du XCTracer :


/* climbing beep sound freq computation : BEEP_FREQ_COEFF * velocity + BEEP_BASE_FREQ */
#define CLIMBING_BEEP_BASE_FREQ 386.0
#define CLIMBING_BEEP_FREQ_COEFF 141.0

/* length of beep in vertical meters */
#define CLIMBING_BEEP_HIGH_LENGTH 0.5
#define CLIMBING_BEEP_LOW_LENGTH 0.5

/* climbing beep velocity filter */
/* filteredVelocity = beepVelocity * BEEP_VELOCITY_FILTER_COEFF + BEEP_VELOCITY_FILTER_BASE */
#define CLIMBING_BEEP_VELOCITY_FILTER_BASE 1.62
#define CLIMBING_BEEP_VELOCITY_FILTER_COEFF 0.51

Principe actuel du bippeur :

Donc effectivement pour la fréquence c’est simple. Si “v” est la vitesse verticale on calcule la fréquence ainsi :

freq = BEEP_FREQ_COEFF * v + BEEP_BASE_FREQ

Pour l’alternance des bips il faut s’imaginer un genre d’échelle verticale. Par exemple avec :


#define CLIMBING_BEEP_HIGH_LENGTH 0.5
#define CLIMBING_BEEP_LOW_LENGTH 0.5

il faut imaginer une echelle verticale avec des barreaux de 0.5 mètres. Chaque fois que le vario passe devant un barreau de l’échelle il alterne entre “son” et “silence”. Ca me permettait de “visualiser” un petit peu l’influence des paramètres. Au départ je pensais que ça serait suffisant. Mais du coup si on en reste là on ne peut pas régler à quelle vitesse l’alternance des bips accelère.

C’est pour ça qu’il y a un aussi un “filtre” sur la vitesse qui marche comme cela :

vitesse filtré = vitesse * BEEP_VELOCITY_FILTER_COEFF + BEEP_VELOCITY_FILTER_BASE

Donc par exemple avec les paramètres que j’ai donné. A une vitesse de v=2.0m/s.

-> La vitesse est filtré est de vf = 2.0 * 0.51 + 1.62 = 2.64 m/s
-> comme les “barreaux de l’échelle” sont de 0.5m et que l’on monte à 2.64m/s la durée du bip est de :

t = d/v = 0.5/2.64 = 0.19 s

Et donc la durée du cycle est de 0.38 s.

Voilà ! J’espère que je ne vous ait pas trop embrouillé.

Principe futur du bippeur ?

Mais il va falloir que je reprogramme la bibliothèque “beeper” de toute façon alors autant repartir sur quelque chose de plus simple. On pourrait par exemple :

Avoir deux ensembles de courbes (linéaires dans un premier temps)

  1. un pour le bip de monté
  2. un pour le bip de dégeulante

Pour le bip de monté l’utilisateur choisit :
-> la fréquence du bip à 0m/s et à 10m/s
-> la durée du cycle à 0m/s et à 10m/s
-> le pourcentage de bip sur le cycle à 0m/s et à 10m/s

Pour le bip de degeulante l’utilisateur choisit :
-> la fréquence du bip à 0m/s et à -10m/s

Si certain sont motivé pour faire le simulateur :pouce: Mais peut être que ça serait possible de modifier celui de XCSoar pour qu’il n’y ai que 4 points.

A+

edit : VanHurlu pour régler le seuil de dégueulante c’est dans VarioSettings.h avec le paramètre “#define VARIOMETER_SINKING_THRESHOLD -2.0”

.
:pouce: merci
quand il sera progressif je le remettrai à 2.5

Je trouve que l’on pourrait gérer quelques valeurs intermédiaires pour permettre des réactions différentes pour les vitesses verticales basses, moyennes et hautes

on pourrait avoir des zones avec une courbe linéaire et 2 valeurs Frequences et durée

en fonction du vz on regarde entre quelles valeurs on se trouve, on calcule le coefficient directeur b l’ordonnée à l’origine pour la zone

exemple

{-10.00, 200, 100, 100}, 
{-3.00 , 280, 100, 100}, 
{- 0.51 , 300, 500, 100}, 
{- 0.50 , 200, 800, 5  }, 
{   0.9 , 400, 600, 10 }, 
{  0.10 , 400, 600, 50 }, 
{ 1.16 , 550, 552, 52 },
{ 2.67 , 763, 483, 55 },
{ 4.24 , 985, 412, 58 },
{ 6.00 ,1234, 322, 62 },
{ 8.00 ,1517, 241, 66 },
{10.00 ,1800, 150, 70 }

si on a +1.5
on prends pour la fréquence une courbe linéaire de 550 à 763 avec un vz qui varie de 1.16 à 2.67 avec freq = a * vz + b

on fait la même chose pour la durée

le simulateur est déjà réalisé et le calcul reste simple

hello,

merci prunkdump pour les explications :pouce:

Je suis assez d’accord qu’avoir plein de points est surement overkill.

Et même avec moins de points, on peut utiliser le simulateur du XCtracer, il suffit de ne gérer que les extrémités et distribuer linéairement entre les deux.
La seul condition, est de paramétrer les points sur 3 variables : frequence / durée / duty cycle.

Perso, je pense qu’il vaudrai mieux travailler sur les transitions (faire une sorte de blend progressif entre 2 frequences consécutive, et/ou éventuellement regarder les chirps)

je vais quand même finir pour le fun mon simulateur, avec l’algo actuel et le nouveau proposé par baptiste. On pourra comparer. J’enverrai ça ce soir si tout va bien.

Salut !

Je me suis amusé et j’ai fait un simulateur aussi :D.

Oui c’est vite fait en une heure :oops: juste pour montrer ce que pourrait être une version simplifiée. Si vous voulez le tester il suffit de télécharger Geogebra ici :

Windows :
https://download.geogebra.org/package/win-port
Mac :
https://download.geogebra.org/package/mac
Linux :
https://download.geogebra.org/package/linux-port

Et vous ouvrez le fichier en pièce jointe.

Je ferais quand j’aurais un peu de temps une version qui affiche les valeurs pour le vario.

A+

baptiste : globalement, c’est clair, juste un truc :

Dans ton exemple, tu parles de:
#define CLIMBING_BEEP_HIGH_LENGTH 0.5
#define CLIMBING_BEEP_LOW_LENGTH 0.5

mais pas de:
#define CLIMBING_BEEP_LENGTH (CLIMBING_BEEP_HIGH_LENGTH + CLIMBING_BEEP_LOW_LENGTH)

et ensuite tu écris:

t = d/v = 0.5/2.64 = 0.19 s

du coup, je ne sais pas si tu fait référence à high length ou low length, ni si à un moment tu utilise la somme des deux? (beep lenght)

pour être sur, tu peux redonner stp l’exemple avec
#define CLIMBING_BEEP_HIGH_LENGTH 0.5
#define CLIMBING_BEEP_LOW_LENGTH 0.25 ?

merci d’avance !

wow, t’es trop rapide !

merde, moi qui pensais enfin pouvoir faire un truc pour la communauté, tu m’as grillé, et multi OS en plus :expressionless: !
bon, je ne regrette pas, j’ai encore appris pas mal de truc dans l’opération. Je vais terminer le mien quand même :wink:

voici une petite video du draft de mon simulateur (basé sur le fonctionnement actuel du beeper).

C’est moins visuel car pas encore les courbes, mais ça permet de tester facilement l’effet de chacune des variables. (d’ailleurs, je confirme qu’il y en a surement trop pour l’instant…)
je vais faire un second onglet avec la config “futur beeper”

http://vimeo.com/223367277

Merci JPG63 et Baptiste, :dent:
Effectivement le fichier ne se créait pas pour 2 raisons: premièrement a cause du problème lorsque le boitier est fermé en serrant les vis a fond, et ensuite a cause des conditions de début d’enregistrement.
Du coup j’ai essayé de recompiler tout ca pour avoir un fichier IGC avec un entête propre avec mes infos car celui que j’avais chargé avec le FIRM.hex 631 direct de JPG63, ne contenait que des données GPS.
Reste encore un soucis de date car logfly l’interprétait comme un vol de l’an 2000… curieux non? J’avais cru lire que ce pb etait corrigé.
Bravo encore pour le projet et une grand MERCI pour le support! Vous etes au top les gars!

super nightrider,

je te confirme les derniers codes, corrigent le problème normalement

essai de récupérer les derniers sources sur le github et remplace les fichiers d’origines par mes dernières sources en version 63.1, sauf le variosetting.h qui contient tes paramètres et ré essais

Pour la gestion du son, je me demande si il ne serait pas intéressant d’avoir un son différent, donc une pente, pour les dégueulantes, car il est fort pratique de connaitre si on est à -2, -4 ou -6/-8
à -2m/s on descend plus vite que le taux de chute moyen (-1.5m/s) donc il ne faut pas trop rester dans la zone
à -4m/s on est certainement dans la partie descendante du thermique, il doit être devant, ça va remonter, un petit coup d’accélérateur
à -6/-8m/s la on est certainement coincé par l’effet bagnard, il va falloir contourner rapidement la zone et tout pousser à font sinon c’est le posé assuré

:pouce: testé et approuvé … c’est mieux que mes valeurs au pif :clown:

Prunkdump nous a annoncé que c’était prévu