DIY GnuVario : variomètre opensource - openhardware Arduino

Hello
pour moi l’auto start fonctionne bien, par contre pas l’autostop !

Salut, il n’y a pas d’autostop d’implémenté. Cela pourrait être une petite amélioration sympa. Arrêt automatique à la fin du vol, avec affichage des statistiques - temps de vol, altitude max, … A voir

Je suis sur le développement, de la gestion des paramètres dans un fichier txt. L’idée, ne plus avoir à recompiler le code, pour modifié un paramètre. Pour les non informaticien, il deviendra facile de paramétrer le vario sans devoir créer son FIRM.HEX

les paramètres du fichier config.txt

VOLUME = 3

SINKING_THRESHOLD = -2.0
CLIMBING_THRESHOLD = 0.2
NEAR_CLIMBING_SENSITIVITY = 0.5

ENABLE_NEAR_CLIMBING_ALARM = TRUE
ENABLE_NEAR_CLIMBING_BEEP = TRUE

VARIOMETER_SPEED_FILTER_SIZE = 5

UTC_GMT = 2

RATIO_MAX_VALUE = 30.0
RATIO_MIN_SPEED = 10.0

PILOT_NAME = Magali
GLIDER_NAME = MAC-PARA MUSE 3

VARIOSCREEN_CONTRAST = 60

FLIGHT_START_MIN_TIMESTAMP = 15000
FLIGHT_START_VARIO_LOW_THRESHOLD = -0.5
FLIGHT_START_VARIO_HIGH_THRESHOLD = 0.5
FLIGHT_START_MIN_SPEED = 10.0
VARIOMETER_RECORD_WHEN_FLIGHT_START = TRUE

Je m’inspire de ta mise à jour de l’entête ICG, Prunkdump. FIRM.HEX setvarioparameter + fichier config.txt. Impossible de faire rentrer la lecture du fichier config.txt dans le peu de mémoire qu’il reste

Prunkdump, pense tu que l’on a assez de mémoire EEPROM pour stocker l’ensemble des valeurs ? Notre petit arduino n’a pas beaucoup de mémoire et nous beaucoup d’idées :bang: :vrac:

C’était peut-être une blague :smiley: Et oui le vario n’a pas encore de fonctions “communautaires” :stuck_out_tongue:

Mais c’est très bien qu’il y ait plein d’idées ! C’est ça qui permettra de faire évoluer le code !

Pour le manque de place :

C’est un peu technique mais en fait j’ai fait une erreur de conception dès le départ. Dans le code il y a beaucoup trop d’utilisation des flottants (double) qui prennent 32 bits en mémoire et que demandent beaucoup d’instructions au microcontrolleur. Il faudrait réécrire le code en utilisant un maximum les entiers.

Sur un cas concrêt : Par exemple pour ton code du niveau de la batterie. Lorsque tu mesure la tension tu optients un entier. Cet entier tu ne normalise pour optenir une valeur en Volts. Tu es donc passé à un flottant. Mais en fait ce flottant il ne sert qu’à faire des comparaisons. On pouvait directement faire ces comparaisons avec l’entier de départ et se passer complètement des doubles. Alors que là on ajoute :
-> la conversion en double (instruction en plus)
-> les calculs avec les doubles (lourd)
-> la place en mémoire cela prend (4 octet par double)

Il se passe la même chose avec la bibliothèque du beepper. On stocke les seuils de déclenchement en double alors que l’on a pas besoin du tout de cette précision. On pourrait tout refaire avec des entiers.

Pour la lecture des paramètres dans un fichier :

Ce qui est délicat c’est de “lire” les valeurs dans le fichier. Faire un interprêteur ça prends pas mal de code effectivement. Je dirais qu’il faut stocker dans l’EEPROM le nom des variables :
“VOLUME =”
“SINKING_THRESHOLD =”

Afin de pouvoir chercher les valeurs dans le fichier texte.

Autrement il y a une solution un peu “brutale”. C’est de compter les retours à la ligne. Les valeurs se trouvent entre le “=” et le n-ième retour à la ligne. Mais du coup cela obligerait l’utilisateur à ne surtout pas ajouter des “Entrer” et à ne pas changer l’ordre des variables.

Mais amuses toi ! Enlève le bluetooth ou l’acceleromètre pour tester ton code et on verra après pour l’optimisation.

Une idée :

Dans ton affichage de l’heure il me semble que tu “sacrifie” l’affichage de la finesse. Peut-être qu’on pourrait fait deux écran d’affichages complets diférents :

-> un avec tout ce qui doit être affiché dynamiquement : alti, vario, vitesse, finesse + (ce qui rentre)

-> un avec tout ce qui est des infomations de long terme : heure, temps de vol, courbe des dernière alititudes ( petit défi pour toi ! :ange: )

Ensuite le vario pourrait faire toute les 2 min un petit bip signalant qu’il va afficher les infos de long terme. Ou alors lorsque j’aurais implémenté le “tap”. Un pourra faire une petite frappe sur le vario pour afficher ces infos.

A+

Pour la lecture du fichier sur la carte SD, le code est écrit, malheureusement comme j’utilise la bibliothèque string.h pour traiter les chaînes, comparaison, conversion, le code explose. 1,5ko pour strcpy et strcomp si je ne me trompe pas

je pensais stocké tout les paramètres à une position dans la mémoire. Ce que je ne sais pas, c’est combien de place on dispose.

mon idée par exemple pour

VOLUME = 3

SINKING_THRESHOLD = -2.0
CLIMBING_THRESHOLD = 0.2
NEAR_CLIMBING_SENSITIVITY = 0.5

je pense stocker tout en entier signé x10 et en char pour les chaines
30,-20,2,5

Je vais déjà faire le setVarioParameter en lecture sur la carte SD - nom du pilote et voile, rajouter le reste après

Pour les double effectivement on va gratté pour faire de la place. Je dois pouvoir tout multiplier par 1000 pour avoir un calcul en entier et du coup ne rien perdre.

J’ai essayé de jouer au mieux mon rôle de Béta testeur en emportant le GNUVario avec moi en vol
Le BT n’était pas activé
mes remarques :

1- Le principal inconvénient est bien sur le temps bien trop important pour faire le fix. J’en arrive à douter que cela provienne de la position de l’antenne derrière l’écran car quand le fix est fait il est de bonne qualité ce qui n’est pas très logique. Elle ne peut pas avoir une mauvaise réception uniquement pendant l’allumage?
Bon bref, si on attends suffisamment longtemps, il fini par se faire (plus de 10 min quelquefois).

2- test à vérifier
On roule en voiture à 60 km/h, tout se passe bien. On pile brusquement à un feu rouge, le gps fait un reset et repart, à la fin je n’ai eu que l’enregistrement de la deuxième partie de la trace ???

3- on roule (40 km/h) sur une route de pente constante. le vario bib comme il se doit avec constance, mais de temps en temps il me fait une gros BHEEEEUUUU complètement injustifié ? pourquoi ???

4- j’essaye de déclarer une trace du GPS à la compète du mont Bouquet pour vérifier que c’est compatible avec Gargol, j’attends la réponse du DE.

5- J’ai emporté mon vario en SIV et j’ai de belles traces un peu bizarres et pas trop longues, voir ci-joint.

6- l’une de ces traces montre que le Vario a fait le fix alors que j’étais en vol. C’est la première fois qu’il arrive à faire le fix pendant un déplacement. peut-être le fait qu’il avait mémorisé les sat, car d’habitude il faut que je le laisse bien immobile pour qu’il puisse Fixer.

7- le son à 3 est bien suffisant, je vais essayer à 2

8- la durée du vol ne peut pas dépasser les 60 min … il n’y a pas l’affichage des heures

9- Il me manque l’affichage de la finesse.

10- J’ai besoin de plus d’autonomie :roll:

Pour compléter

2- J’ai constaté également que lors d’une brusque variation - une grosse rentrée en thermique avec tout le brassage qui va bien - le vario avait planté, je n’ai constaté le problème qu’une fois

8- La durée du vol dépasse les 60min, j’ai fais en sorte que si on dépasse 60min au lieu d’afficher MM:SS on affiche HH:MM. Je n’ai pas bien tester cette fonctionnalités, il est possible qu’il y ait un bug. Tu as volé plus d’une Heure Van Hurlu ?

9- Pour la finesse, Prunkdump a eu une idée, avoir 2 écrans avec un passage de l’un à l’autre toutes les X sec. Le soucis c’est la place, on est actuellement à 95%, après un peu d’optimisation, je pense que ça rentrera. En attendant que penserais tu si on affichait en alternance l’altitude et la finesse ? En gardant la possibilité pour ce que la finesse n’intéresse pas de ne pas l’afficher ou d’afficher une autre info - vario moyenné sur 10 sec, …

5- Très bon test le SIV, si le vario a supporté les autorots, décro, sat et autres, c’est bon signe

8- j’ai dépassé une heure et dans mon cas c’était toujours MM SS . Je n’ai peut être pas ta dernière version ?

9- Pour moi si on ne devait avoir que trois informations affichées en permanence en gros c’est : hauteur, vitesse et finesse
la hauteur pour décider
la vitesse par sécurité
la finesse pour pour savoir a quel barreau je pousse
Tout le reste peut clignoter
le vario on l’a au son, on ne le regarde pas et on fait tous la différence entre du +0.5 et du +6 :mrgreen:

5- J’y ai mis une frontale massive tenue une demie seconde, un départ en vrille violent et rapidement arrêté, des wings et plein d’autres gâteries et les traces sont parfaites. C’est pour ça que je pense que l’antenne fait bien son boulot.

remarque sup
le clignotement de l’heure et du temps de vol est encore bien trop lent, il faut une fréquence de moins de 2 s

l’idée de toucher l’écran pour changer d’affichage doit tenir compte du fait que on ne peut pas toujours lâcher les commandes,
:mrgreen: :mrgreen: :mrgreen:

Moi je confirme que niveau batterie, il tient 1h55. Après il se met à faire des reset en boucle.
Bluetooth et GPS activé.

Mais je tourne encore sur un code custom où j’utilise pas le GPS (mais il est alimenté quand même), pas écriture SD, et bluetooth qui envoie toutes des 1/2s les info vario.

Ça ma permis de faire un super vol en tout cas. J’adore le vivacité des infos du vario.
Le son, serait peut-être à rendre plus agréable (genre note bi-ton). J’ai fait quelques essais mais c’est pas probant.

(J’ai comparé à côté d’un reversale, la sensibilité est bluffante)

Ce fil de discussion est incroyable. Vous êtes très forts, c’est fascinant !

Dire qu’on trouve que les instruments sont chers… Quand on voit par quoi il faut en passer pour arriver à quelque chose d’abouti !

Ce qui rend l’info confuse car sujette a des valeurs parasites.

autre soucis, vu comment qu’il hurle quand tu rentre dans un plus trois je suis curieux du son qui va sortir avec un gros +8 à St André,
j’imagine que le buzer va exploser. :mdr: :mdr:

Il va falloir trouver un compromis d’affichage, mais tout est possible, car dans mon cas je fais ce vario pour ma compagne qui débute (j’ai perso un syride Nav). Dans son cas l’information de la finesse est peu utile mais elle apprécie de savoir combien de temps elle vole

Je vais modifié la fréquence d’affichage - c’est très simple

Je vous renvoi les derniers codes compilé après avoir vérifié ce problème d’affichage de l’heure

Suggestion : peut-être que pour être ergonomique il faut réfléchir autrement

il y a des infos qui sont très importantes au démarrage :

  • le nb de satellites
  • l’heure
  • l’altitude
  • le niveau de charge de la batterie

il y a des infos momentanées :

  • un gros bip pour signaler le fix des satellites
  • deux gros bib pour dir que l’enregistrement a commencé

il y a des infos qui sont très importantes en vol :

  • altitude
  • vitesse
  • finesse
  • vario

il y a des infos qui peuvent être intéressantes en vol, elles peuvent clignoter :

  • l’heure
  • le temps de vol

En vol on ne peut pas recharger la batterie, on s’en fout d’avoir son niveau de charge
En vol on s’en fout d’avoir le nb de satellites, on n’y pourra rien de toute façon.

vu comme ça on peut imaginer que l’affichage change suivant les états
1- démarrage
2- fix
3- démarrage de l’enregistrement
4- vol

Pour moi il n’y a pas de soucis avec un NON-arrêt automatique, l’extinction manuelle me convient très bien.

:+1: pour les bips, je regarde ça
La place prise par l’affichage de la batterie et du GPS ne suffise pas pour afficher d’autres infos - équivalent à 1,5 ou 2 caractères. Du coup c’est bien un problème de place pour tout afficher. Je vais réfléchir à une autre organisation de l’écran, il faut trouver la place pour la finesse
Déjà, Van Hurlu en mettant en commentaire HAVE_TIME tu peux avoir la finesse à la place de l’heure/durée comme avant, cela permet une personnalisation simple

Et oui c’est vrai qu’on se rend compte que dans le prix d’un vario, l’électronique c’est peanuts ! Je dirais pas plus d’une dizaine d’euro pour des series importantes. Même pour notre “GnuVario”, on en est à moins de 50 euros en achetant tout au détail. Par contre pour les boîtes de vario il doit y avoir un gros investissement “intellectuel” de conception et de test. C’est peut-être un peu moins vrai pour les parapentes mais je pense qu’il y a de ça aussi.

En tout cas si tu as en envie de te lancer tu sais où avoir des infos :wink:

En tout cas je suis très content ! :jump: Le côté collaboratif qui m’est cher fonctionne ! Vu les traces il y a déjà des super vols qui ont été rélisé par le vario. Et jpg63 et les autres codeurs progressent vite en programmation embarqué :shock: Mon espérance (secrête :D) est que sorte de cette émulation une idée qui n’a jamais été réalisé !

b Tout ceux qui ont volé avec le vario [/b]

C’est vraiment super vos retours sur les essais en vol :pouce: Il y en a vraiment besoin pour affiner et améliorer le comportement du vario ! Il faut vraiment que je me motive pour vous expliquer le paramétrage plus fin de son comportement.

-> Van Hurlu, si tu le trouves trop réactif c’est tout à fait possible de lisser un peu plus le vario . Il faut augmenter la valeur de : ACCELERATION_MEASURE_STANDARD_DEVIATION
-> Si la fréquence du bip monte trop vite, on peut changer : CLIMBING_BEEP_BASE_FREQ et CLIMBING_BEEP_FREQ_COEFF
-> Si l’alternance des bips monte trop vite, on peut changer : CLIMBING_BEEP_VELOCITY_FILTER_BASE, CLIMBING_BEEP_VELOCITY_FILTER_COEFF
-> On peut ajuster les fréquences des bips, leur longueurs etc …
Bref il faut faire un autre tuto…

@Pour les problèmes du vario qui bugge:

C’est bizarre parceque moi je n’ai jamais constaté ces soucis de vario qui reset tout seul :grat: Peut-être que les batteries LiPo que je vous ai commandé ne sont pas top niveau qualité … (moi je n’ai pas exactement la même ). En tout cas ce que vous décrivez peut faire penser au buzzer qui pompe trop de courant et qui empêche la batterie d’alimenter le reste. A voir si en baissant le volume ça résout le problème.

Van Hurlu pour que l’enregistrement de la trace débute il faut un minimum de vitesse verticale. C’est peut-être pour ça que tu n’a pas eu d’enregistrement de la trace au début dans une voiture.

Et pour le bip grave soudain, ça ne le fait pas dans mon cas… Il va falloir trouver d’où ça viens.

@Pour les problèmes de réceptions GPS:

Je constate exactement la même chose que Van Hurlu. Ca met du temps à fixer mais après c’est plutôt précis. C’est peut-être normal. Il ne faut peut-être pas beaucoup de sattellites pour avoir une bonne précision.

En tout cas sur mes 20 tests sans écran, ni boitiers, ni bluetooth au dessus de l’antenne. Le Fix s’est toujours fait en moins de 30 secondes. Je n’ai pas eu le temps encore de tester avec le boîtier mais sans écran ni bluetooth.

Pour l’affichage :

Tout a fait d’accord à part que je ne vois rien de génant à laisser en permanence l’affichage du niveau de batterie et de GPS. C’est tout petit de toute façon.

Je dirais donc :

Tous le temps :
-> Niveau Gps (+ bip signalant le fix)
-> Niveau Batterie (+ bip batterie faible)
-> Un rond (record) signalant le début de l’enregistrement de la trace (+bip début d’enregistrement, non encore implémenté)

Presque tout le temps : L’écran des informations dynamiques
-> L’altitude
-> Le vario
-> La vitesse
-> La finesse
-> Le compas ( j’ai un doute. C’est utile en permanence ? non encore implémenté)
-> La dérive due au vent ( J’ai un doute aussi, non encore implémenté)

En alternance : Signalé par un bip ou lancé par un frappe sur le vario
-> L’heure
-> La durée du vol
-> Le graphique des dernières alti (non encore implémenté)

Je continue de mon côté à bosser sur l’interraction avec la frappe. Pour pouvoir au moins couper le son de temps en temps.

A+

Je vais m’occuper des Bips et de l’affichage. Je reprendrais la config par fichier txt après - Je rajouterais au fichier de config les paramètres pour le son. Ne pas avoir à compiler un code pour modifier les paramètres permettra de simplifier les tests

l’idée même si je pense que je répète un post précédent
1 fichier config.txt + un FIRM.HEX pour modifier les paramettres
1 FIRM.HEX pour le programme - Problème de place, si on avait 1 ou 2M d’EEPROM :dent:

un simple copier coller du FIRM.HEX et 2 mise à jour est c’est bon pour le changement d’une option

Une idée qui n’a jamais été vu, une sonde à ultra son qui vise le sol (à voir sur une fixation aux élévateurs), qui mesure la distance sol, serait un super outil pour les débutants. Quant tu as 10 vols faire ton arrondi à 1m sol c’est juste la cratérisation assurée. Un outil pédagogique pour les écoles et les débutants dans les clubs. Un gros bip juste au posé

Une ficelle à la longueur que tu veux avec une cloche de vache au bout. Quand ça sonne, tu te réveilles et tu mets les deux mains en bas. :roll:

Edit : J’ai mieux ! Une suspente à la bonne longueur, fixée en V aux freins. A la pointe du V, un grappin bien acéré : lorsqu’il se plante dans le sol ça te fait le freinage automatique !

Bon je vois que j’ai dis une connerie, oublier. Je laisse aux pros ce qui est aux pros. Apprendre à poser

Non, c’était rigolo.
Ça me fait imaginer des trucs… Et puis ça fait flooder…

Rhoo, y a longtemps que j’étais pas passé par la, va falloir que je reprenne le fil, up-date ma liste de course, vois ce qui est deja en cours de developpement pour ajouter 2-3 idées qu’on avait eu avec des potes…
Y a une pages dedier ou on retrouve tout, de maniere plus synthetique, ou faut que je fasse les 33 pages?