[LUA / DOWNLOAD] Un testeur de batterie sur la radio.
+27
thefabrice
.AleX.
dahu-77
Ceeb182
Ben79
mobidick
CHACHA27
supseb
Totof1965
Eric84AMC
Heisenberg
Samy.p
dev.fred
cri.cri
Kilrah
3djc
grat450
marc.r
synergy41
Batfabe
pointu
diiity
rapy73
Franck76
nicephore
Sacre100
LapinFou
31 participants
Page 2 sur 9
Page 2 sur 9 • 1, 2, 3, 4, 5, 6, 7, 8, 9
Re: [LUA / DOWNLOAD] Un testeur de batterie sur la radio.
On envoie 16 niveaux de gris à l'écran sur toutes les versions de Taranis.
Kilrah- Messages : 2181
Date d'inscription : 28/01/2014
Localisation : Suisse
Re: [LUA / DOWNLOAD] Un testeur de batterie sur la radio.
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 (?)
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 (?)
Re: [LUA / DOWNLOAD] Un testeur de batterie sur la radio.
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.
Re: [LUA / DOWNLOAD] Un testeur de batterie sur la radio.
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 : http://frsky-rc.com/product/pro.php?pro_id=125
- 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.
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 : http://frsky-rc.com/product/pro.php?pro_id=125
- 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.
Sacre100- Messages : 1889
Date d'inscription : 30/11/2013
Age : 67
Localisation : Blonay - Suisse
Re: [LUA / DOWNLOAD] Un testeur de batterie sur la radio.
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.
_________________
Pas de support par MP !! Pour garder l'esprit communautaire, on partage tout sur le forum.
Maintenant que vous avez tout lu, vous pouvez poser vos questions !
OpenTX is user friendly!!! It's just selective about who its friends are....
nicephore- Messages : 612
Date d'inscription : 14/06/2014
Localisation : Créteil
Re: [LUA / DOWNLOAD] Un testeur de batterie sur la radio.
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)
Sacre100- Messages : 1889
Date d'inscription : 30/11/2013
Age : 67
Localisation : Blonay - Suisse
Re: [LUA / DOWNLOAD] Un testeur de batterie sur la radio.
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.
https://github.com/opentx/opentx/issues/2100
https://github.com/opentx/opentx/issues/2100
_________________
Pas de support par MP !! Pour garder l'esprit communautaire, on partage tout sur le forum.
Maintenant que vous avez tout lu, vous pouvez poser vos questions !
OpenTX is user friendly!!! It's just selective about who its friends are....
Re: [LUA / DOWNLOAD] Un testeur de batterie sur la radio.
Ou sur le PC avec une interface série.LapinFou a écrit:Pour l'instant, la changement d'ID doit toujours se faire avec un SCC...
Il faut que je fasse une table pour les Li-Fe, elle n'est pas la même que pour les Li-Po.Sacre100 a écrit:.../...je vais acheter 2 capteurs pour surveiller les 2 life.../...
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.
Oui.Sacre100 a écrit:.../...si j'ai bien compris, c'est ça que je dois acheter : http://frsky-rc.com/product/pro.php?pro_id=125
Il va falloir que je fasse un tuto là dessus.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 ?
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.
Mais, mais alors, tu n'es qu'humain ???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.
Dernière édition par Heisenberg le Lun 26 Oct 2015 - 11:57, édité 1 fois
Re: [LUA / DOWNLOAD] Un testeur de batterie sur la radio.
Heisenberg a écrit:Ou sur le PC avec une interface série.LapinFou a écrit:Pour l'instant, la changement d'ID doit toujours se faire avec un SCC...
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 : 760
Date d'inscription : 07/02/2014
Localisation : Paimpol (22)
Re: [LUA / DOWNLOAD] Un testeur de batterie sur la radio.
Heisenberg a écrit:Mais, mais alors, tu n'es qu'humain ???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.
Es-tu un Dieu ? Non ?? Alors… péris !
_________________
Pas de support par MP !! Pour garder l'esprit communautaire, on partage tout sur le forum.
Maintenant que vous avez tout lu, vous pouvez poser vos questions !
OpenTX is user friendly!!! It's just selective about who its friends are....
Re: [LUA / DOWNLOAD] Un testeur de batterie sur la radio.
C'est ici je crois, j'ai pas essayé : S.port tool
Merci pour l'info
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
Franck76- Messages : 189
Date d'inscription : 25/07/2013
Age : 53
Localisation : Rouen
Re: [LUA / DOWNLOAD] Un testeur de batterie sur la radio.
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.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.
Kilrah- Messages : 2181
Date d'inscription : 28/01/2014
Localisation : Suisse
Re: [LUA / DOWNLOAD] Un testeur de batterie sur la radio.
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.
Re: [LUA / DOWNLOAD] Un testeur de batterie sur la radio.
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.
_________________
Pas de support par MP !! Pour garder l'esprit communautaire, on partage tout sur le forum.
Maintenant que vous avez tout lu, vous pouvez poser vos questions !
OpenTX is user friendly!!! It's just selective about who its friends are....
Re: [LUA / DOWNLOAD] Un testeur de batterie sur la radio.
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 : 2181
Date d'inscription : 28/01/2014
Localisation : Suisse
Re: [LUA / DOWNLOAD] Un testeur de batterie sur la radio.
@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 ?
Tu as un avis éclairé la-dessus ?
_________________
Pas de support par MP !! Pour garder l'esprit communautaire, on partage tout sur le forum.
Maintenant que vous avez tout lu, vous pouvez poser vos questions !
OpenTX is user friendly!!! It's just selective about who its friends are....
Re: [LUA / DOWNLOAD] Un testeur de batterie sur la radio.
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.
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 : 2181
Date d'inscription : 28/01/2014
Localisation : Suisse
Re: [LUA / DOWNLOAD] Un testeur de batterie sur la radio.
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.
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.
Sacre100- Messages : 1889
Date d'inscription : 30/11/2013
Age : 67
Localisation : Blonay - Suisse
Re: [LUA / DOWNLOAD] Un testeur de batterie sur la radio.
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 ).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.
_________________
Pas de support par MP !! Pour garder l'esprit communautaire, on partage tout sur le forum.
Maintenant que vous avez tout lu, vous pouvez poser vos questions !
OpenTX is user friendly!!! It's just selective about who its friends are....
Re: [LUA / DOWNLOAD] Un testeur de batterie sur la radio.
C'est ce que je compte faire aussi car j'ai 2 scripts qui n'arrivent pas à cohabiter ensemble.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.
Re: [LUA / DOWNLOAD] Un testeur de batterie sur la radio.
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
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 : 760
Date d'inscription : 07/02/2014
Localisation : Paimpol (22)
Re: [LUA / DOWNLOAD] Un testeur de batterie sur la radio.
La partie acquisition de données du script à copier sous SCRIPTS\MIXES:
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:
Il fonctionne comme en avant, mais en apparence seulement
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):
- 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
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 : 760
Date d'inscription : 07/02/2014
Localisation : Paimpol (22)
Re: [LUA / DOWNLOAD] Un testeur de batterie sur la radio.
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.
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.
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.
Re: [LUA / DOWNLOAD] Un testeur de batterie sur la radio.
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.
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.
Page 2 sur 9 • 1, 2, 3, 4, 5, 6, 7, 8, 9
Sujets similaires
» Alerte batterie radio
» Utiliser deux capteurs FLVSS pour batterie Moteur et batterie Rx
» testeur servos ?
» Demande de testeur de la part de Frsky
» Mise à jour de la radio, d'un récepteur, ou d'un capteur télémétrique depuis une radio sous ETHOS (X20 et X18)
» Utiliser deux capteurs FLVSS pour batterie Moteur et batterie Rx
» testeur servos ?
» Demande de testeur de la part de Frsky
» Mise à jour de la radio, d'un récepteur, ou d'un capteur télémétrique depuis une radio sous ETHOS (X20 et X18)
Page 2 sur 9
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum