RETOUR TARANIS

Procédure pour utiliser les scripts :

Un script est un fichier texte qui comporte des lignes de commandes de langage Lua. Un interpreteur de commande Lua est lancé par le programme principal du firmware de la radio si vous avez coché l'option Lua lors de la génération de votre firmware.

vous pouvez éditer un fichier .lua avec le bloc-notes Windows ou mieux avec l'utilitaire Notepad++

Pour apprendre à programmer en langage Lua, consultez le site : https://github.com/opentx/opentx/wiki/Lua-scripting-in-OpenTX  et éditer les différents scripts Lua présents dans le tableau pour les modifier.

Il existe plusieurs types de scripts :

Les scripts de télémétrie :

Ces scripts permettent de créer votre propre écran pour afficher des valeurs issues de la télémétrie.

Open Tx2.0 : Caractéristiques des scripts de télémétrie :

- nom du script : telem1 à telem7

- emplacement : à placer pour chaque modèle pour lequel on souhaite utiliser le script dans le répertoire /SCRIPTS/xxx de la carte SD ou xxx est le nom du modèle

- lancement : automatique (cyclique et continu)

- affichage : appui long sur PAGE

- exemple : télécharger un des scripts telem_xxxx du tableau, le renommer telem1 à telem7 et le placer dans le répertoire /SCRIPTS/modele

 

Les scripts de télémétrie permettent d'afficher les valeurs de tension A1 et A2. A1 est le plus souvent connecté en interne à l'alimentation servo via un diviseur de tension de ratio 4, hormis certains récepteurs comme les premières versions de DR8. Pour A2, si vous souhaitez lire la tension  de votre pack d'accu LiPo,  il est nécessaire de réaliser un diviseur de tension  pour relier la prise d'équilibrage du pack LiPo à l'entrée A2. Voir les explications sur la page consacrée  au module DHT-U.

 

Exemple : Telem1_Francois_6S.Lua (commentaire ajoutée en vert) :

 

-- Telem1-Francois_6S.lua    mettre -- pour indiquer des commentaires
-- Affichage A2 et chrono
-- Auteur Francois Pouvreau

local function run(event)

-- Pourcentage de 3,3v (O%) à 4,15v(100%) par élément
-- formule pour lipo 2S %=(T-6.6)/0,017
-- formule pour lipo 3S %=(T-9.9)/0,0255
-- formule pour lipo 4S %=(T-13.2)/0,034
-- formule pour lipo 5S %=(T-16.5)/0,0425
-- formule pour lipo 6S %=(T-19.8)/0,051

-- Pitts Python : Lipo 6S

local valA2 = getValue("a2")    Fonction getValue, variable a2 mise à jour par le firmware
local percent2 = (valA2-19.8)/0.051

if percent2 < 0 then 
percent2 = 0
end

-- Affichage Chrono2
timer = model.getTimer(1)    Fonction getTimer pour lire le chrono 2
lcd.drawRectangle(4, 3, 48, 20)    Trace un rectangle à la position X/Y en pixels 4/3 et de dimensions X/Y en pixels 48,20
lcd.drawTimer(5, 4, timer.value, DBLSIZE)    Affichage du chrono en police 10x14

-- Affichage A2
lcd.drawNumber(5, 28, 100*valA2 , LEFT+DBLSIZE+PREC2)   Affichage de A2 en police 10x14 avec 2 chiffres après la virgule
lcd.drawText(lcd.getLastPos(), 28, "v", DBLSIZE)    Affichage 'v' après A2

-- Affichage A2/6
lcd.drawNumber(80, 1, valA2/0.06, LEFT+XXLSIZE+PREC2)    Affichage de A2/6(tension d'un élément en police 22x38 avec 2 chiffres après la virgule

-- Affichage A2/6 mini
lcd.drawText(170, 20, "mini", 0)     Affichage 'mini' à la position X/Y en pixels 170/20
lcd.drawNumber(165, 28, getValue("a2-min")/0.06 , LEFT+DBLSIZE+PREC2)    Affichage de la tension mini (variable a2-min exportée par le firmware) en police 10x14 avec 2 chiffres après la virgule
lcd.drawText(lcd.getLastPos(), 28, "v", DBLSIZE)    Recupération de la position du curseur et affichage de 'v' après la valeur a2-min

-- affichage A2 en pourcentage et la réprésentation graphique
lcd.drawNumber(95, 45, percent2, LEFT+MIDSIZE)    Affichage du pourcentage de a2 en police 8x10 à la position X/Y en pixels 95/45
lcd.drawText(lcd.getLastPos(), 45, "%", MIDSIZE)     Recupération de la position du curseur et affichage de '%' après la valeur précédente
lcd.drawGauge(5, 45, 200, 18, percent2, 100)    Affichage d'un bargraph de dimensions 200,18 à la position X/Y en pixels 5/45
end

return { run=run }

 

Open Tx2.1 : Caractéristiques des scripts de télémétrie :

- nom du script : quelconque mais limité à 8 caractères

- emplacement : à placer dans le répertoire /SCRIPTS de la carte SD. Un script peut être utilisé par plusieurs modèle.

- lancement : automatique (cyclique et continu)

- affichage : appui long sur PAGE

- même exemple que ci-dessus mais pour fonctionnement en OpenTx2.1 :

 

-- Tel6S-2.lua
-- Telem1 modifie le 01/08/16 pour passage OpenTx2.0 à 2.1
-- Affichage A2 et chrono 2
-- pour LIPO 6S
-- Auteur Francois Pouvreau

local function getTelemetryId(name)
field = getFieldInfo(name)
if field then
return field.id
else
return -1
end
end

local function init()
A2Id = getTelemetryId("A2")
A2minId = getTelemetryId("A2-")
end

local function background()
valA2 = getValue(A2Id)
valA2min = getValue(A2minId)

end

local function run(event)

-- formule pour lipo 2S (n=2) %=(T-6.6)/0,017
-- formule pour lipo 3S (n=3) %=(T-9.9)/0,0255
-- formule pour lipo 4S (n=4) %=(T-13.2)/0,034
-- formule pour lipo 5S (n=5) %=(T-16.5)/0,0425
-- formule pour lipo 6S (n=6) %=(T-19.8)/0,051

local percent2 = (valA2-19.8)/0.051 -- à adapter au type de LIPO

if percent2 < 0 then 
percent2 = 0
end

lcd.clear()

-- Affichage Chrono2
timer = model.getTimer(1) -- à changer si chrono 1, 2 ou 3
lcd.drawRectangle(4, 3, 48, 20)
lcd.drawTimer(5, 4, timer.value, DBLSIZE)

-- Affichage A2
lcd.drawNumber(5, 28, 100*valA2 , LEFT+DBLSIZE+PREC2)
lcd.drawText(lcd.getLastPos(), 28, "v", DBLSIZE)

-- Affichage A2/n
lcd.drawNumber(80, 1, valA2/0.06, LEFT+XXLSIZE+PREC2) -- à adapter au type de LIPO

-- Affichage A2/n mini
lcd.drawText(170, 20, "mini", 0) 
lcd.drawNumber(165, 28, valA2min/0.06 , LEFT+DBLSIZE+PREC2) -- à adapter au type de LIPO
lcd.drawText(lcd.getLastPos(), 28, "v", DBLSIZE)

-- affichage A2 en pourcentage et la réprésentation graphique
lcd.drawNumber(95, 45, percent2, LEFT+MIDSIZE)
lcd.drawText(lcd.getLastPos(), 45, "%", MIDSIZE)
lcd.drawGauge(5, 45, 200, 18, percent2, 100)
end

return { init=init,run=run,background=background }

 

Open Tx2.2 : Caractéristiques des scripts de télémétrie : idem OpenTx2.1 sauf :

- nom du script : quelconque mais limité à 6 caractères

- même exemple que ci-dessus mais pour fonctionnement sur l'écran 128x64 pixels de la Taranis X7 :

-- Tl6S2.lua

-- Telem1 modifie le 19/07/17 pour Taranis X7 (OpenTx2.2)

-- ecran 128x64 au lieu de 212x64 sur la Taranis

-- Affichage élément A2 et chrono 2

-- pour LIPO 6S

-- Auteur Francois Pouvreau

local function getTelemetryId(name)

field = getFieldInfo(name)

if field then

return field.id

else

return -1

end

end

local function init()

A2Id = getTelemetryId("A2")

A2minId = getTelemetryId("A2-")

end

local function background()

valA2 = getValue(A2Id)

valA2min = getValue(A2minId)

 

end

local function run(event)

-- formule pour lipo 2S (n=2) %=(T-6.6)/0,017

-- formule pour lipo 3S (n=3) %=(T-9.9)/0,0255

-- formule pour lipo 4S (n=4) %=(T-13.2)/0,034

-- formule pour lipo 5S (n=5) %=(T-16.5)/0,0425

-- formule pour lipo 6S (n=6) %=(T-19.8)/0,051

 

local percent2 = (valA2-19.8)/0.051 -- à adapter au type de LIPO

 

if percent2 < 0 then

percent2 = 0

end

 

lcd.clear()

 

-- Affichage Chrono2

timer = model.getTimer(1) -- à changer si chrono 1, 2 ou 3

lcd.drawRectangle(1, 1, 44, 18)

lcd.drawTimer(3, 2, timer.value, DBLSIZE)

 

-- Affichage A2/n

lcd.drawNumber(46, 1, valA2/0.06, LEFT+XXLSIZE+PREC2) -- à adapter au type de LIPO

 

-- Affichage A2/n mini

lcd.drawText(8, 20, "mini", 0)

lcd.drawNumber(2, 28, valA2min/0.06 , LEFT+DBLSIZE+PREC2) -- à adapter au type de LIPO

lcd.drawText(lcd.getLastPos(), 28, "v", DBLSIZE)

-- affichage A2 en pourcentage et la réprésentation graphique

lcd.drawNumber(57, 45, percent2, LEFT+MIDSIZE)

lcd.drawText(lcd.getLastPos(), 45, "%", MIDSIZE)

lcd.drawGauge(1, 45, 127, 18, percent2, 100)

end

 

return { init=init,run=run,background=background }

 

OpenTx2.3 : Caractéristiques des scripts de télémétrie :

Organisation des scripts sous la carte SD dans différents répertoires en fonction du type de de script. Selon le répertoire de stockage ils seront visibles et donc accessibles dans différents menu de la radio selon le tableau suivant :

REPERTOIRE

ACCES depuis RADIO

SCRIPTS

Scripts qui seront exécutés une seule fois en navigant dans la carte SD depuis radio (Appui long sur MENU pour radio type X9d)

SCRIPTS/TOOLS

Scripts qui seront exécutés une seule fois. Ils apparaissent directement dans une page OUTILS après un appui long sur MENU pour radio type X9d.

NB : Ceci n’apparaît pas dans la doc de référence mais est implémenté en version 2.3.13 (et peut-être d'autres versions avant ?)

SCRIPTS/TELEMETRY

Scripts appelés et visibles depuis la page AFFICHAGE de chaque modèle

SCRIPTS/FUNCTIONS

Scripts appelés et visibles depuis la page FONCTIONS SPECIALES de chaque modèle

SCRIPTS/MIXES

Scripts qui seront visibles dans la page SCRIPTS PERSOS

NB : Cette page n'est pas présente sous COMPANION

SCRIPTS/WIDGET

A priori uniquement pour radio HORUS : script qui peuvent être appelés depuis l'écran TELEMETRIE et qui permettent d'ajouter des Widget.

 

 

 

Les scripts à executer une seule fois :

 

Ces scripts sont à executer manuellement :

    appui long sur MENU

    appui sur PAGE => Carte SD-HC

    appuis sur - pour se placer sur [SCRIPTS]

    appui sur ENT

    rechercher le script qui vous intéresse par appui sur + et -

    appui long sur ENT => executer

 

Exemple : script chnxchange