Le forum français des radios FrSKY

[LUA / DOWNLOAD] Un testeur de batterie sur la radio.

Page 2 sur 7 Précédent  1, 2, 3, 4, 5, 6, 7  Suivant

Voir le sujet précédent Voir le sujet suivant Aller en bas

Re: [LUA / DOWNLOAD] Un testeur de batterie sur la radio.

Message par Kilrah le Dim 25 Oct 2015 - 14:13

On envoie 16 niveaux de gris à l'écran sur toutes les versions de Taranis.

Kilrah

Messages : 2175
Date d'inscription : 28/01/2014
Localisation : Suisse

Revenir en haut Aller en bas

Re: [LUA / DOWNLOAD] Un testeur de batterie sur la radio.

Message par Heisenberg le Dim 25 Oct 2015 - 15:11

Je viens d'updater encore le script (v3.20)

Il affiche les minimas et maximas, ça fait un outil 2 en 1, soit un testeur de batterie standard ET un indicateur de santé et de sous-dimensionnement d'un pack selon la conso d'un modèle.
C'est bien utile pour ceux qui n'ont pas de capteur de courant ou qui ne font pas d'analyse avec.


En utilisant du gris et les jauges sont plus facilement lisibles.
La table a changé aussi et est maintenant indexée sur la table qu'utilise le fabricant Allemand Robbe (J'ai toute confiance en ce fabricant).
Mon testeur d'accu affichait 70% quand la radio affichait 78% et l'ensemble de la courbe théorique est plus généreux que celle de Robbe. Une nuit de décharge d'un accu à intensité constante, une analyse de log de mon déchargeur et quelques lignes sur Excel pour arriver à ça.

Ajoutons 2h00 pour faire pas mal de tests de comparaison et c'est nickel l'affichage donne des valeurs comme le testeur à tout niveaux.

J'ai quand même laissé dans le script en commenté, la table standard pour ceux qui préfèreraient.



J'avais lu que l'écran de la Taranis n'avait que 4 niveaux de gris mais si Kilrah dit que non, alors, c'est compatible toutes radios Taranis qu'elles soient Plus ou pas.

Reste à savoir si ce script fonctionne sur un firmware 2.0.17 (?)
avatar
Heisenberg

Messages : 1458
Date d'inscription : 30/07/2015
Age : 44
Localisation : Lille

http://tinyurl.com/TARANIS-HEISENBERG

Revenir en haut Aller en bas

Re: [LUA / DOWNLOAD] Un testeur de batterie sur la radio.

Message par Eric84AMC le Dim 25 Oct 2015 - 20:57

Merci Heisenberg pour ce script, j'ai testé ce week-end la version 2.10 et c'est très bien. Alors là je m'empresse de mettre la dernière version.
avatar
Eric84AMC

Messages : 1274
Date d'inscription : 21/09/2013
Age : 43
Localisation : Monteux

http://www.amc-pernes-lesvalayans.com/index.php

Revenir en haut Aller en bas

Re: [LUA / DOWNLOAD] Un testeur de batterie sur la radio.

Message par Sacre100 le Dim 25 Oct 2015 - 22:51

Ca me parait super tout ça et je crois que je vais acheter 2 capteurs pour surveiller les 2 life que j'ai dans mon Janus équipé d'une double alim.

Mais je n'y connais pas grand chose alors j'ai besoin d'un peu d'aide :
- si j'ai bien compris, c'est ça que je dois acheter : [Vous devez être inscrit et connecté pour voir ce lien]
- et puis que signifient :
-> le petit trait, indicateur de santé, si oui comment ça doit se lire ?
-> la zone noir, le minimum, si oui, ça signifie quoi ?
-> la zone grise, le maximum, si oui, est-ce la charge qui reste disponible ?

Ca peut paraitre des questions stupides mais y'a des trucs que je connais et d'autres pas du tout, c'est comme ça.
avatar
Sacre100

Messages : 1888
Date d'inscription : 30/11/2013
Age : 59
Localisation : Blonay - Suisse

Revenir en haut Aller en bas

Re: [LUA / DOWNLOAD] Un testeur de batterie sur la radio.

Message par LapinFou le Dim 25 Oct 2015 - 23:11

Si tu veux brancher 2 FLVSS en même temps (= OpenTX 2.1.x obligatoire), il ne faut pas qu'ils aient la même ID. Donc il te faut aussi un SCC pour changer l'ID de l'un des 2 FLVSS.
avatar
LapinFou
Modérateur

Messages : 6486
Date d'inscription : 09/09/2014
Age : 42
Localisation : Falaise

http://falaisemodeleclub.fr/

Revenir en haut Aller en bas

Re: [LUA / DOWNLOAD] Un testeur de batterie sur la radio.

Message par nicephore le Lun 26 Oct 2015 - 0:09

bravo.

nicephore

Messages : 607
Date d'inscription : 14/06/2014
Localisation : Créteil

Revenir en haut Aller en bas

Re: [LUA / DOWNLOAD] Un testeur de batterie sur la radio.

Message par Sacre100 le Lun 26 Oct 2015 - 0:27

LapinFou a écrit:Si tu veux brancher 2 FLVSS en même temps (= OpenTX 2.1.x obligatoire), il ne faut pas qu'ils aient la même ID.

Ca, je savais, mais merci de me le rappeler.

LapinFou a écrit:Donc il te faut aussi un SCC pour changer l'ID de l'un des 2 FLVSS.

Avec la 2.1, ne peut-on pas le faire directement avec la radio ? (je croyais que cela avait été ajouté en même temps que le flashage des récepteurs)
avatar
Sacre100

Messages : 1888
Date d'inscription : 30/11/2013
Age : 59
Localisation : Blonay - Suisse

Revenir en haut Aller en bas

Re: [LUA / DOWNLOAD] Un testeur de batterie sur la radio.

Message par LapinFou le Lun 26 Oct 2015 - 9:42

Non, car les chti' gars d'OpenTX n'ont aucunes informations à ce sujet. Pour l'instant, la changement d'ID doit toujours se faire avec un SCC.

[Vous devez être inscrit et connecté pour voir ce lien]
avatar
LapinFou
Modérateur

Messages : 6486
Date d'inscription : 09/09/2014
Age : 42
Localisation : Falaise

http://falaisemodeleclub.fr/

Revenir en haut Aller en bas

Re: [LUA / DOWNLOAD] Un testeur de batterie sur la radio.

Message par Heisenberg le Lun 26 Oct 2015 - 11:47

LapinFou a écrit:Pour l'instant, la changement d'ID doit toujours se faire avec un SCC...
Ou sur le PC avec une interface série.

Sacre100 a écrit:.../...je vais acheter 2 capteurs pour surveiller les 2 life.../...
Il faut que je fasse une table pour les Li-Fe, elle n'est pas la même que pour les Li-Po.
Il va aussi falloir faire une détection d'un second FLVSS, ce qui me gêne, c'est la place de dispo sur l'écran, il n'est déjà pas très aéré, et les indications doivent êtres côte à côte pour que ce soit parlant.

On peut imaginer un script avec le bargraph sur l'écran 1 et les valeurs sur l'écran 2 (via appui sur un bouton).
En même temps, les valeurs les plus importantes sont l'élément le plus haut et l'élément le plus bas, les autres n'ont que peu d'importance tant qu'elles sont sur le bargraph. C'est à méditer.

J'essaierais de mettre ça au point dans les 10 jours.

Sacre100 a écrit:.../...si j'ai bien compris, c'est ça que je dois acheter : [Vous devez être inscrit et connecté pour voir ce lien]
Oui.

Sacre100 a écrit:le petit trait, indicateur de santé, .../... comment ça doit se lire ? .../... la zone noir, le minimum, si oui, ça signifie quoi .../... la zone grise, le maximum, si oui, est-ce la charge qui reste disponible ?
Il va falloir que je fasse un tuto là dessus.

Au départ, ce n'est qu'un indicateur de batterie, on branche le capteur, on ne touche pas au moteur et ça donne l'équilibrage d'un pack. Jusque là, tout va bien.

Ensuite, pour être honnête, un véritable indicateur de santé doit se faire avec un FLVSS et un capteur de courant FAS, on pourrait alors même afficher la résistance interne de chaque élément, le nombre de C réel par élément et en déduire si une batterie a un appairage correct de ses éléments. Le BattCheck donne une indication mais pas une mesure approfondie.
J'envisage de réaliser cet utilitaire basé sur les fondations du BattCheck avec la possibilité de rentrer dans un champ le nombre de C et la capa de la batterie (Pas tout de suite).

Bref, Pour te donner une idée de l'état de santé d'une batterie avec le BattCheck, ça se fait en 3 étapes :
1) Tu branches.
2) Tu mets plein gaz 3 ou 4 secondes, hélice tournante, suffisamment pour obtenir un pic de conso maxi du modèle.
3) Tu lis.

La hauteur totale de chaque jauge te donne les valeurs de départ au branchement du modèle.

La hauteur de chaque jauge jusqu'au haut du gris anthracite te donne la même chose en instantané.
C'est la fonction testeur de batterie qu'on connait. Si tu as tiré sur le moteur 3 ou 4 secondes, ça devrait être quasiment à la même hauteur que la hauteur totale de jauge puisque tu n'as presque rien consommé.

La hauteur des jauges gris clair seulement, c'est ce que tu as consommé, c'est le vide d'un réservoir.
Ça va te donner une idée de la contenance du réservoir de chaque élément et tu vas voir que certains éléments ont un réservoir qui se vide plus vite que les autres.

La hauteur des tirets te permet de voir la chute de tension de chaque élément quand tu es à ta conso maxi, manche des gaz à fond. Cette dernière indication est sympa car si tu vois un élément qui a chuté beaucoup plus que les autres, c'est que cet élément est à changer.

Soit une batterie 4S 1000mA 30C
Elle est théoriquement prévue pour offrir 30 ampères max en continu.
Sous consommation de 30A continu, elle est prévue (toujours théoriquement) pour varier de 16,8V à T0 jusqu'à 12V à T+60minutes.

Imagine maintenant cette batterie, bien équilibrée au départ avec tous ses éléments entre 4.17 et 4.20V.
Elle va te paraître en bien bonne santé c'te batterie là...
Si un des éléments ne fait plus que 10C, un indicateur standard ne te le diras pas.
Dans ce cas, ton contrôleur va rapidement détecter un pack tombé à 12V car cet élément qui n'est plus capable de fournir 30C va chuter plus fort que ses voisins (parfois bien en deçà de ses 3.0V mini) quand il sera soumit à 30C de décharge.
Par contre, dés que tu vas couper les gaz, ce même élément va remonter en tension ce qui ne te permettra pas de constater qu'il est malade (le li-po est fourbe et insidieux !)
Ce petit tiret va garder en mémoire la tension minimum de cet élément.

Si je ne suis pas clair, n'hésite pas à le dire, j'essaierais d'expliquer autrement.

Un autre exemple concret, je me suis mis il y'a 2 mois au offshore électrique.
Ma vitesse de rotation d'arbre a 4000 tr/min en dessous de ce que je devrais avoir, je n'arrive pas à la vitesse que je souhaite et cet utilitaire m'a vite démontré que mon pack de 6S 5800 30C avait 2 éléments incapables de fournir correctement plus de 80A.
Quand je suis à 130A, j'ai donc une perte de tension très significative.
Maintenant, je sais que ce n'est pas le moteur, l'hélice ou un autre paramètre qui est fautif, ce sont ces 2 fichus éléments.

En écrivant ces lignes, je pense qu'il est peut-être préférable que les tensions affichées en bas à droite soient les valeurs minimum plutôt que les valeurs instantanées... A méditer aussi.

Sacre100 a écrit:Ca peut paraitre des questions stupides mais y'a des trucs que je connais et d'autres pas du tout, c'est comme ça.
Mais, mais alors, tu n'es qu'humain ???

Wink


Dernière édition par Heisenberg le Lun 26 Oct 2015 - 11:57, édité 1 fois
avatar
Heisenberg

Messages : 1458
Date d'inscription : 30/07/2015
Age : 44
Localisation : Lille

http://tinyurl.com/TARANIS-HEISENBERG

Revenir en haut Aller en bas

Re: [LUA / DOWNLOAD] Un testeur de batterie sur la radio.

Message par dev.fred le Lun 26 Oct 2015 - 11:53

Heisenberg a écrit:
LapinFou a écrit:Pour l'instant, la changement d'ID doit toujours se faire avec un SCC...
Ou sur le PC avec une interface série.

C'est ici je crois, j'ai pas essayé : S.port tool


Dernière édition par dev.fred le Lun 26 Oct 2015 - 11:55, édité 1 fois

dev.fred

Messages : 557
Date d'inscription : 07/02/2014
Localisation : Paimpol (22)

Revenir en haut Aller en bas

Re: [LUA / DOWNLOAD] Un testeur de batterie sur la radio.

Message par LapinFou le Lun 26 Oct 2015 - 11:54

Heisenberg a écrit:
Sacre100 a écrit:Ca peut paraitre des questions stupides mais y'a des trucs que je connais et d'autres pas du tout, c'est comme ça.
Mais, mais alors, tu n'es qu'humain ???

Es-tu un Dieu ? Non ?? Alors… péris !
geek
avatar
LapinFou
Modérateur

Messages : 6486
Date d'inscription : 09/09/2014
Age : 42
Localisation : Falaise

http://falaisemodeleclub.fr/

Revenir en haut Aller en bas

Re: [LUA / DOWNLOAD] Un testeur de batterie sur la radio.

Message par Franck76 le Lun 26 Oct 2015 - 12:31

C'est ici je crois, j'ai pas essayé : S.port tool

Merci pour l'info  Very Happy

J'ai testé le tuto et ca a l'air de fonctionner : connexion, lecture, déconnexion
J'ai pas changé le numéro d'Id car pas besoin

Donc c'est intéressant pour ceux qui ont les câbles sous la main
avatar
Franck76

Messages : 179
Date d'inscription : 25/07/2013
Age : 46
Localisation : Rouen

Revenir en haut Aller en bas

Re: [LUA / DOWNLOAD] Un testeur de batterie sur la radio.

Message par Kilrah le Lun 26 Oct 2015 - 13:09

Heisenberg a écrit:Il faut que je fasse une table pour les Li-Fe, elle n'est pas la même que pour les Li-Po.
Est-ce possible d'avoir quoi que ce soit de valable avec un Li-Fe? Selon mon expérience leur courbe est tellement plate que c'est impossible d'avoir la moindre info sur la seule base de la tension.

Kilrah

Messages : 2175
Date d'inscription : 28/01/2014
Localisation : Suisse

Revenir en haut Aller en bas

Re: [LUA / DOWNLOAD] Un testeur de batterie sur la radio.

Message par Heisenberg le Lun 26 Oct 2015 - 14:43

La dernière fois que j'ai utilisé des Li-Fe, c'était il y'a 5 ou 6 ans, je pensais que c'était révolutionnaire. J'ai encore quelques éléments vampirisés d'une batterie DeWalt, je ne me souviens plus de ce à quoi ressemblaient les courbes. Si c'est si plat que ça, alors on ne risque pas de faire qqch de bon, mais mon petit testeur Robbe ayant une possibilité de sélectionner Li-Fe, c'est que ça doit être possible je vais quand-même voir à quoi ressemble cette courbe à l'occasion.
avatar
Heisenberg

Messages : 1458
Date d'inscription : 30/07/2015
Age : 44
Localisation : Lille

http://tinyurl.com/TARANIS-HEISENBERG

Revenir en haut Aller en bas

Re: [LUA / DOWNLOAD] Un testeur de batterie sur la radio.

Message par LapinFou le Lun 26 Oct 2015 - 15:02

Comme la LiPo, la LiFe as une courbe caractéristique de début/fin, mais entre les deux, c'est très très plat.
avatar
LapinFou
Modérateur

Messages : 6486
Date d'inscription : 09/09/2014
Age : 42
Localisation : Falaise

http://falaisemodeleclub.fr/

Revenir en haut Aller en bas

Re: [LUA / DOWNLOAD] Un testeur de batterie sur la radio.

Message par Kilrah le Lun 26 Oct 2015 - 16:10

J'en utilise au boulot, et en gros la tension (à vide) reste dans le même dixième de volt (9.9V pour un 3s) entre environ 95% et 5% de charge. Si on voit 10.2 on peut être confiant qu'il est plein, mais il suffit d'un test qu'on fait souvent qui tire 10A dessus pendant 10sec pour qu'il tombe à 9.9 et qu'on soit obligé de le mettre dans les "déchargés" pour être sûr de ne pas se gourer vu que si on perd la trace et qu'on le mesure à 9.9V on peut pas savoir s'il a juste fait un test ou s'il est quasi vide.

Kilrah

Messages : 2175
Date d'inscription : 28/01/2014
Localisation : Suisse

Revenir en haut Aller en bas

Re: [LUA / DOWNLOAD] Un testeur de batterie sur la radio.

Message par LapinFou le Lun 26 Oct 2015 - 16:22

@kilrah J'ai eu récemment une formation BMS/PMS et j'ai été surpris d'entendre le conférencier dire que les LiFe avec une résistante internet plus faible que les LiPos. Ce n'est clairement pas ce que j'ai observé dans les batteries de modélisme.
Tu as un avis éclairé la-dessus ?
avatar
LapinFou
Modérateur

Messages : 6486
Date d'inscription : 09/09/2014
Age : 42
Localisation : Falaise

http://falaisemodeleclub.fr/

Revenir en haut Aller en bas

Re: [LUA / DOWNLOAD] Un testeur de batterie sur la radio.

Message par Kilrah le Lun 26 Oct 2015 - 19:13

C'est pas mon expérience non plus.
Typiquement la batterie en question (3s 2100) quand je tire 5-10C dessus elle tombe à environ 9.2V quasi instantanément, et remonte à 9.9 quelques secondes après avoir arrêté.
D'où la difficulté de faire une mesure décente, la variation de tension due au courant tiré est quasi un ordre de magnitude plus grand que celle due à l'état de charge.

Kilrah

Messages : 2175
Date d'inscription : 28/01/2014
Localisation : Suisse

Revenir en haut Aller en bas

Re: [LUA / DOWNLOAD] Un testeur de batterie sur la radio.

Message par Sacre100 le Lun 26 Oct 2015 - 19:37

Merci à tous pour ces explications mais je constate que j'ai un gros problème, c'est que je n'ai pas de moteur, c'est grave docteur ???...

A part ça, je pensais éclater le script en 2, une partie commune (calculs et lcd.draw) et une partie spécifique à chaque capteur (initialisation et getValue principalement) comme ça, je pouvais avoir deux scripts différents pour la partie spécifique et pour 2 écrans de télémétrie différent tout en ayant qu'une seule fois la partie commune pour gagner en mémoire.
avatar
Sacre100

Messages : 1888
Date d'inscription : 30/11/2013
Age : 59
Localisation : Blonay - Suisse

Revenir en haut Aller en bas

Re: [LUA / DOWNLOAD] Un testeur de batterie sur la radio.

Message par LapinFou le Lun 26 Oct 2015 - 19:43

Kilrah a écrit:C'est pas mon expérience non plus.
Typiquement la batterie en question (3s 2100) quand je tire 5-10C dessus elle tombe à environ 9.2V quasi instantanément, et remonte à 9.9 quelques secondes après avoir arrêté.
D'où la difficulté de faire une mesure décente, la variation de tension due au courant tiré est quasi un ordre de magnitude plus grand que celle due à l'état de charge.
Cela confirme ce que j'ai vu aussi. Je pense qu'ils ont surtout choisi le techno LiFe pour des raisons de sécurités et de longévité (il font des packs de 20kW à 1000V affraid ).
avatar
LapinFou
Modérateur

Messages : 6486
Date d'inscription : 09/09/2014
Age : 42
Localisation : Falaise

http://falaisemodeleclub.fr/

Revenir en haut Aller en bas

Re: [LUA / DOWNLOAD] Un testeur de batterie sur la radio.

Message par Heisenberg le Lun 26 Oct 2015 - 19:46

Sacre100 a écrit:.../...je pensais éclater le script en 2, .../...tout en ayant qu'une seule fois la partie commune pour gagner en mémoire.
C'est ce que je compte faire aussi car j'ai 2 scripts qui n'arrivent pas à cohabiter ensemble.
avatar
Heisenberg

Messages : 1458
Date d'inscription : 30/07/2015
Age : 44
Localisation : Lille

http://tinyurl.com/TARANIS-HEISENBERG

Revenir en haut Aller en bas

Re: [LUA / DOWNLOAD] Un testeur de batterie sur la radio.

Message par dev.fred le Lun 26 Oct 2015 - 22:15

Avec, en partie basse, un SCRIPT PERSO LUA sous SCRIPTS/MIXES qui calcule les pourcentages, les passent par une variable globale (ici un tableau) au script de télémétrie.
Le plus, c'est sa sortie, ici le pourcentage de charge restant de l'accu, qui serait vu comme un capteur LUA dans la page d'INTERS LOGIQUES et serait capable de déclencher une alarme ou d'être lu à haute voix après appui sur l'inter SH dans FONCTIONS SPECIALES.
Tu vas finir pas y arriver à cette solution qui peut ajouter 2 fonctionnalités à ton super testeur

dev.fred

Messages : 557
Date d'inscription : 07/02/2014
Localisation : Paimpol (22)

Revenir en haut Aller en bas

Re: [LUA / DOWNLOAD] Un testeur de batterie sur la radio.

Message par dev.fred le Mer 28 Oct 2015 - 11:43

La partie acquisition de données du script à copier sous SCRIPTS\MIXES:

Code:
-- LUA Mix Script

local outputs = { "Perc" }

---- ###############################################################
---- Déclarations en variables globales pour une portée étendue au script de télémétrie
---- ###############################################################

cellfull, cellempty = 4.2, 3.00                                      --## Cellule Li-Po considérée pleine et vide sans charge appliquée.
cell = {0, 0, 0, 0, 0 ,0}                                                  --## Table des 6 éléments initialisés à 0
cellminima = {cellfull, cellfull, cellfull, cellfull, cellfull, cellfull}  --## Table des 6 minimas initialisés au maxima (en V)
cellmaxima = {0, 0, 0, 0, 0 ,0}                                            --## Table des 6 maximas initialisés à 0
cellsumfull, cellsumempty, cellsumtype, cellsum = 0, 0, 0, 0               --## Déclarations & inits simples
cellmin, cellmax, cellresult = cellfull, 0, 0                        --## Déclarations & inits simples


local myArrayPercentList =
-----## Table Robbe fiable modifiée pour départ à 3.0V                                                      --## Tableau de decharge LIPO
{{3, 0}, {3.093, 1}, {3.196, 2}, {3.301, 3}, {3.401, 4}, {3.477, 5}, {3.544, 6}, {3.601, 7}, {3.637, 8}, {3.664, 9}, {3.679, 10}, {3.683, 11}, {3.689, 12}, {3.692, 13}, {3.705, 14}, {3.71, 15}, {3.713, 16}, {3.715, 17}, {3.72, 18}, {3.731, 19}, {3.735, 20}, {3.744, 21}, {3.753, 22}, {3.756, 23}, {3.758, 24}, {3.762, 25}, {3.767, 26}, {3.774, 27}, {3.78, 28}, {3.783, 29}, {3.786, 30}, {3.789, 31}, {3.794, 32}, {3.797, 33}, {3.8, 34}, {3.802, 35}, {3.805, 36}, {3.808, 37}, {3.811, 38}, {3.815, 39}, {3.818, 40}, {3.822, 41}, {3.825, 42}, {3.829, 43}, {3.833, 44}, {3.836, 45}, {3.84, 46}, {3.843, 47}, {3.847, 48}, {3.85, 49}, {3.854, 50}, {3.857, 51}, {3.86, 52}, {3.863, 53}, {3.866, 54}, {3.87, 55}, {3.874, 56}, {3.879, 57}, {3.888, 58}, {3.893, 59}, {3.897, 60}, {3.902, 61}, {3.906, 62}, {3.911, 63}, {3.918, 64}, {3.923, 65}, {3.928, 66}, {3.939, 67}, {3.943, 68}, {3.949, 69}, {3.955, 70}, {3.961, 71}, {3.968, 72}, {3.974, 73}, {3.981, 74}, {3.987, 75}, {3.994, 76}, {4.001, 77}, {4.007, 78}, {4.014, 79}, {4.021, 80}, {4.029, 81}, {4.036, 82}, {4.044, 83}, {4.052, 84}, {4.062, 85}, {4.074, 86}, {4.085, 87}, {4.095, 88}, {4.105, 89}, {4.111, 90}, {4.116, 91}, {4.12, 92}, {4.125, 93}, {4.129, 94}, {4.135, 95}, {4.145, 96}, {4.176, 97}, {4.179, 98}, {4.193, 99}, {4.2, 100}}                
---- ###############################################################
---- Calcul du pourcentage de chaque élément ; Pas de virgule
---- ###############################################################
function percentcell(targetVoltage)
  result = 0
  if targetVoltage > cellfull or targetVoltage < cellempty then
    if  targetVoltage > cellfull then                                            --## trap for odd values not in array
      result = 100
    end
    if  targetVoltage < cellempty then
      result = 0
    end
  else
    for i, v in ipairs( myArrayPercentList ) do                                  --## method of finding percent in my array provided by on4mh (Mike)
      if v[ 1 ] >= targetVoltage then
        result =  v[ 2 ]
        break
      end
    end --for
  end --if
 return result
end

local function run()

  cellmin = cellfull
  cellmax = 0

  cellResult = getValue("Cels")                          --## Appel du tableau retourné par le capteur FLVSS
  if type(cellResult) == "table" then                    --## Vérif du format de valeur retournée (Table)
    cellsum = 0                                          --## Raz cellsum (évite addition infinie)
    for i = 1, #cell do cell[i] = 0 end                  --## Réinitialisation des 6 éléments à 0
    cellsumtype = #cellResult                            --## Nombre d'éléments détectés
    for i, v in pairs(cellResult) do                     --## Boucle for qui isole chaque valeurs de la table
      cellsum = cellsum + v                              --## Addition de chaque éléments pour valeur totale du pack
      cell[i] = v                                        --## Application des valeurs de 1 à x à chaque élément de 1 à x
      if cellmaxima[i] < v then                          --## On jette les 9 1eres mesures le temps que ça se stabilise
        cellmaxima[i] = v
      end
      if cellminima[i] > v then
        cellminima[i] = v
      end
      if cellmin > v then                                --## Valeur cellmin
        cellmin = v
      end
      if cellmax < v then                                --## Valeur cellmax
        cellmax = v
      end
    end -- end for
  end -- end if

                  
  cellsumpercent = percentcell(cellsum/cellsumtype)      --## Pourcentage du pack  
  
 return  cellsumpercent * 10.24
end

return { run=run, output=outputs }


Et à configurer dans l'écran SCRIPT PERSO de la radio:




Il n'y a pas d'onglet script perso permettant cette configuration dans Companion aussi il faut configurer depuis l'écran CUSTOM SCRIPTS 12/13 du simu lancé depuis Companion  :



La partie traitement/affichage du script à copier sous SCRIPTS\TELEMETRY et à configurer dans l'écran TELEMESURE du simu ou de la radio.
Là on peut également configurer l'onglet télémétrie de Companion ce qui permet de conserver la configuration du script de télémétrie:

Code:

---- ###############################################################
---- #                                                             #
---- #        Telemetry Lua Script for FrSky RC Taranis TX         #
---- #     LI-xx BATTCHECK v4.1  // Use it with OpenTX 2.1.x       #
---- #      Version  with ACCU LIPO discharge lookup table         #
---- #      Version in 2 parts: script MIX LUA & Telemetry         #
---- #                                                             #
---- #                                                             #
---- #  License: Share alike                                       #
---- #  Can be used and changed non commercial                     #
---- #                                                             #
---- #  Developped by Heisenberg.                                  #
---- #  Debugged by Sacre100 (the hardest job) who succeeded       #
---- #  decreasing GC and memory use for Taranis compatibility.    #
---- #  Improved by Dev.Fred to get correct percent li-po values   #
---- #                                                             #
---- #  Credits to Dev.Fred, Kilrah, and some of other members     #
---- #  from the french forum frskytaranis.forumactif.org/         #
---- #  And especially more to Sacre100 for his patience and       #
---- #  knowledge shares.                                          #
---- #                                                             #
---- ###############################################################

---- ###############################################################
---- ################ Changer si nécessaire FR ou EN ###############
---- ################ Choose your language FR or EN  ###############
---- ###############################################################

local language = "FR"    --## (FR or EN) Nothing else

local voltageword, averageword = "VOLTAGE", "AVERAGE"
if language ~= "EN" then
  voltageword, averageword = "TENSION", "MOYENNE"
end

---- ###############################################################
---- ################  NE RIEN MODIFIER CI-DESSOUS  ################
---- ################ DO NOT CHANGE ANYTHING BELOW  ################
---- ###############################################################

---- ###############################################################
---- Variables
---- ###############################################################

local version = "4.1"                                                           --## Version du script

local echX, ech100Y, ech0Y = 155, 2, 61                                          --## Position des axes X & Y de l'échelle de jauges
local echH = (ech0Y-ech100Y)                                                     --## Longueur de l'axe Y
local gaugeW, gaugeGap = 8, 1                                                    --## Largeur des jauges de cells et espacements
local i, precision, blink = 0,0,0                                                --## Déclarations & inits simples
local positions = {{3,36}, {3, 46}, {3, 56}, {44,36}, {44, 46}, {44, 56}}        --## Positionnement des icônes cels

local cellsumpercentminima, cellsumpercentmaxima = 100, 0                        --## En %
local percentDelta                                                               --## Déclaration simples

---- ###############################################################
---- #####################BOUCLE PRINCIPALE#########################
---- ###############################################################

local function run(event)
  lcd.lock()
  lcd.clear()

---- ###############################################################
---- Traitement des valeurs récupérées du script MIX LUA
---- ###############################################################
  if cellsumpercentmaxima < cellsumpercent then
    cellsumpercentmaxima = cellsumpercent
  end
  if cell[1]>0 then                                      --## évite un minima à 0 si la télémétrie est branchée après lancement du script
    if cellsumpercentminima > cellsumpercent then
      cellsumpercentminima = cellsumpercent
    end
  end

---- ###############################################################
---- Affichage du titre
---- ###############################################################
  lcd.drawText(24, 2, "[LI-PO BATTCHECK V", SMLSIZE)
  lcd.drawText(lcd.getLastPos(), 2, version ,SMLSIZE)                       --## Titre
  lcd.drawText(lcd.getLastPos(), 2, "]" ,SMLSIZE)                           --## Titre
  lcd.drawLine(2, 5, 21, 5, SOLID, 0)                                       --## Ligne 1 de titre
  lcd.drawLine(130, 5, 149, 5, SOLID, 0)                                    --## Ligne 2 de titre

---- ###############################################################
---- Affichage de la jauge horizontale du pack
---- Sans utiliser drawGauge pour l'ésthétique.
---- ###############################################################
  lcd.drawFilledRectangle(3, 11, cellsumpercentmaxima*44/100, 18, GREY(10) + FILL_WHITE )             --## Jauge maxima
  lcd.drawFilledRectangle(3, 11, cellsumpercent*44/100, 18, 0 )                                       --## Jauge instantanée
  if cellsumpercentminima < cellsumpercent and cellsumpercentminima > 0 then                          --## Evite une surimpression qui fausserait le visuel
    lcd.drawLine(3+(cellsumpercentminima*44/100), 11, 3+(cellsumpercentminima*44/100), 28, SOLID, 0 ) --## Jauge Minima
  end

  lcd.drawRectangle(2, 10, 46, 20)                                          --## Contour de jauge (x, y, width, height)
  lcd.drawFilledRectangle (48,15,2,10)                                      --## Nez de batterie

---- ###############################################################
---- Affichage du pourcentage restant du pack
---- ###############################################################
  lcd.drawText(55,14,cellsumpercent,MIDSIZE)
  lcd.drawText(lcd.getLastPos(),16,"%",0)

---- ###############################################################
---- Affichage du tableau bas gauche des valeurs de chaque élément
---- et affichage des jauges de chaque élément
---- ###############################################################
  lcd.drawLine(38, 33, 38, 61, SOLID, GREY_DEFAULT)                                         --## Affiche le séparateur vertical

  for i = 1, 6 do                                                                           --## Aff d'un tiret pour l'illusion d'icônes de batteries
    lcd.drawLine(positions[i][1] + 1, positions[i][2] - 3, positions[i][1] + 2, positions[i][2] - 3, SOLID, 0)
    lcd.drawNumber(positions[i][1], positions[i][2]-1, i, LEFT + SMLSIZE + INVERS)          --## Aff du numéro de l'élément

    if cell[i] ~= 0 then
      blink = cell[i] < cellempty and BLINK or 0                                            --## Aff de la valeur de l'élément
      lcd.drawNumber(lcd.getLastPos() + 3, positions[i][2], cell[i]*100, PREC2 + LEFT + SMLSIZE + blink)
      lcd.drawText(lcd.getLastPos(), positions[i][2],"V",SMLSIZE + blink)
      percent       = math.floor(percentcell(cell[i]) * (echH/100))                         --## Hauteur de la jauge de l'élément
      percentminima = math.floor(percentcell(cellminima[i]) * (echH/100))                   --## Hauteur de la surjauge du minima de l'élément
      percentmaxima = math.floor(percentcell(cellmaxima[i]) * (echH/100))                   --## Hauteur du marquage du maxima

  lcd.drawFilledRectangle(echX + 2 + (i - 1) * (gaugeW + gaugeGap), (ech100Y + echH - percentmaxima), gaugeW, percentmaxima, GREY(10) + FILL_WHITE )                                        --## Jauges maxima
  lcd.drawFilledRectangle(echX + 2 + (i - 1) * (gaugeW + gaugeGap), (ech100Y + echH - percent), gaugeW, percent, 0 )                                                                        --## Jauges instantanées
  if percentminima < percent and percentminima > 0 then                                                                                                                                     --## Evite une surimpression qui fausserait le visuel
    lcd.drawLine(echX + 2 + (i - 1) * (gaugeW + gaugeGap), ech100Y + echH - percentminima, (echX + 2 + (i - 1) * (gaugeW + gaugeGap)) + gaugeW-1,  ech100Y + echH - percentminima, SOLID, 0)--## Jauges minima
  end
  
    else
      lcd.drawText(lcd.getLastPos() + 3, positions[i][2],"****",SMLSIZE)                    --## Ou aff * si élément absent
      lcd.drawText (echX + 5 + (i - 1)*(gaugeW + gaugeGap), ech0Y-7, "*", SMLSIZE)
    end
  end

---- ###############################################################
---- Echelle
---- ###############################################################
  lcd.drawLine(echX, ech100Y, echX, ech0Y, SOLID, GREY_DEFAULT)                                                   --## Axe Y
  lcd.drawLine(echX+1, ech0Y, echX + gaugeGap + 5*(gaugeW + gaugeGap) + gaugeW, ech0Y, SOLID, GREY_DEFAULT)       --## Axe X

  i = 10                                                                                                          --## 10 divisions d'échelle
  while (i >= 0) do
    lcd.drawLine(echX-2, (ech100Y+echH)-((echH/10)*i), echX-1, (ech100Y+echH)-((echH/10)*i), SOLID, GREY_DEFAULT) --## Traçage des divisions
    i= i-1
  end

---- ###############################################################
---- Barre de séparation verticale 2
---- ###############################################################
  lcd.drawLine(79, 10, 79, 61, SOLID, GREY_DEFAULT)

---- ###############################################################
---- Milieu d'écran
---- ###############################################################
  lcd.drawText (83,14, "PACK : ", SMLSIZE)
  lcd.drawText (lcd.getLastPos(),14, cellsumtype, SMLSIZE)
  lcd.drawText (lcd.getLastPos(),14, "S", SMLSIZE)

  lcd.drawText (83,24, voltageword, SMLSIZE)
  lcd.drawText (lcd.getLastPos(),24, " : ", SMLSIZE)
  if cellsum > 10 then
    lcd.drawNumber (lcd.getLastPos()-1,24, cellsum*10, PREC1 + LEFT + SMLSIZE)
  else
    lcd.drawNumber (lcd.getLastPos()-1,24, cellsum*100, PREC2 + LEFT + SMLSIZE)
  end
  lcd.drawText (lcd.getLastPos(),24, "V", SMLSIZE)

  lcd.drawText (83,36, averageword, SMLSIZE)
  lcd.drawText (lcd.getLastPos(),36, " : ", SMLSIZE)
  if cellsum > 0 then
    lcd.drawNumber (lcd.getLastPos()-1,36, (cellsum / cellsumtype)*100, LEFT + PREC2 + SMLSIZE)
  else
    lcd.drawNumber (lcd.getLastPos()-1,36, "0", LEFT + SMLSIZE)
  end
  lcd.drawText (lcd.getLastPos(),36, "V", SMLSIZE)

  lcd.drawText (83,46, "DELTA : ", SMLSIZE)
  lcd.drawNumber (lcd.getLastPos()-1,46, (cell[1] > 0 and (cellmax * 1000) - (cellmin * 1000) or 0), LEFT + SMLSIZE)
  lcd.drawText (lcd.getLastPos(),46, "mV", SMLSIZE)

  lcd.drawText (83,56, "BALANCE : ", SMLSIZE)
  if cell[1] > 0 then
    percentDelta = math.floor(100 - (percentcell(cellmax) - percentcell(cellmin)))
    blink = percentDelta < 90 and BLINK or 0
    lcd.drawNumber (lcd.getLastPos()-1,56, percentDelta, SMLSIZE + LEFT + blink)
    lcd.drawText (lcd.getLastPos(),56, "%", SMLSIZE + blink)
  else
    lcd.drawText (lcd.getLastPos(),56, "N/A", SMLSIZE)
  end

  if (type(cellResult) ~= "table") then
    lcd.clear()
    lcd.drawText(53,1,"TARANIS BATTCHECK V",SMLSIZE + INVERS)
    lcd.drawText(lcd.getLastPos(),1,version,SMLSIZE + INVERS)
    
    if language ~= "EN" then
      lcd.drawText(42,15,"TELEMETRIE INDISPONIBLE", BLINK + 0)
      lcd.drawText(3,30,"VERIFIEZ LA CONNECTION DU PERIPH. FLVSS",0)
      lcd.drawText(29,40,"OU EFFACEZ LE CAPTEUR [Cels]",0)
      lcd.drawText(22,50,"ET REFAITES UNE AUTO-DETECTION",0)
    else
      lcd.drawText(47,15,"TELEMETRY UNAVAILABLE", BLINK + 0)
      lcd.drawText(61,30,"CHECK FLVSS LINK",0)
      lcd.drawText(47,40,"OR ERASE [Cels] SENSOR",0)
      lcd.drawText(10,50,"AND TRY ANOTHER SENSORS AUTODETECT",0)
    end
  end

end --End local function principale
return { run = run } --Retour au départ de boucle principale


Il fonctionne comme en avant, mais en apparence seulement  Wink



Et maintenant les PLUS de cette nouvelle version  

La création d'une inter logique L1 vrai si le % de charge restante < 30%



La création d'une alarme sur L1 et de la lecture de la valeur du % de charge restante à haute voix sur bascule de l'inter SH.
Cela permet de mettre les gaz à zéro et de faire une mesure de tension rapide avec un courant proche de zéro sans quitter le modèle des yeux (merci à Gandalf pour cette astuce):



Dernière édition par dev.fred le Mar 17 Mai 2016 - 1:14, édité 4 fois (Raison : PREC1*10 PREC2*100-> https://github.com/opentx/opentx/issues/3150)

dev.fred

Messages : 557
Date d'inscription : 07/02/2014
Localisation : Paimpol (22)

Revenir en haut Aller en bas

Re: [LUA / DOWNLOAD] Un testeur de batterie sur la radio.

Message par Heisenberg le Jeu 29 Oct 2015 - 11:38

Pas encore testé non-plus mais je vais en avoir besoin rapidement de cette version, ma radio étouffe et me réclame de l'oxygène. Very Happy

J'ai updaté le changelog avec un lien pointant directement sur ton message.

L'idée étant de fournir un utilitaire accessible à tous sans connaissance particulière, facile à utiliser mais aussi facile à installer, j'ai laissé la V3.20 en téléchargement principal, et j'ai fait mention de cette version spéciale. Un membre à l'aise avec le Lua saura faire la différence.
avatar
Heisenberg

Messages : 1458
Date d'inscription : 30/07/2015
Age : 44
Localisation : Lille

http://tinyurl.com/TARANIS-HEISENBERG

Revenir en haut Aller en bas

Re: [LUA / DOWNLOAD] Un testeur de batterie sur la radio.

Message par Eric84AMC le Lun 2 Nov 2015 - 22:33

Heisenberg, j'ai testé ton script en version 3.20 sur une Taranis "normale" (pas plus) et cela marche très bien. Bravo !

Par contre, je n'ai pas toutes les nuances de gris, du coup je vois seulement en gris clair le niveau actuel de la batterie, je ne vois pas la valeur max de départ !

Dans la version 2.10 le gris était plus foncé et donc plus visible, c'était mieux.

Voila mon retour d'expérience.

Si tu as envie de modifier ce script pour des Taranis de base je suis OK pour faire d'autres tests.
avatar
Eric84AMC

Messages : 1274
Date d'inscription : 21/09/2013
Age : 43
Localisation : Monteux

http://www.amc-pernes-lesvalayans.com/index.php

Revenir en haut Aller en bas

Page 2 sur 7 Précédent  1, 2, 3, 4, 5, 6, 7  Suivant

Voir le sujet précédent Voir le sujet suivant Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum