Traker d'antenne (suivi du modèle) en LUA
3 participants
Page 1 sur 1
Traker d'antenne (suivi du modèle) en LUA
En LUA est-il possible de récupérer des informations (GPS, ALTITUDE) sur la prise écolage en vue de réaliser un traker d'antenne (ou suivi du modèle en vol afin d'orienter une antenne directive vers ce dernier) à l'aide de deux servo.
Comment vériez vous la chose ?
Je ne dipose pas de vario ni de gps sur mon F450 aussi je ne peux réaliser la chose, mais je pense que ceci peux être fort intéressant.
Cordialement Nicéphore.
EDIT du 19/03/2015
Bonjour,
Le soleil est arrivé chez moi en campagne le weekend dernier ce qui m’a permis de faire le premier test de mon « tracker d’antenne LUA »
MONTAGE DU TRACKER
Pour ma part j’ai utilisé une nacelle PAN / TILT de chez HK
Les deux servo qui composent cet ensemble sont dit des servo 160° mais en fait NON ils font 90° (ils sont sympas chez HK). J’ai donc modifié ces 2 servo afin qu’ils puissent faire 180° (voir plus) à l’aide de deux résistances variable de 5K (cf. image ci-dessous)
La valeur des résistances variable doit être égale à la valeur du potentiomètre du servo.
Il faut régler le débattement: Régler les ajustables que vous avez ajoutées à la valeur zéro. Connecter le servo au récepteur. Allumer l'émetteur de la radio. Mettre le récepteur sous tension. Celui-ci se positionne au neutre.
Déplacer le manche à fond dans un sens et le maintenir ainsi. Agir lentement sur le réglage d'un des reglages. Si le déplacement revient vers la position neutre, recommencer l’opération avec l'autre. Si le déplacement augmente alors continuer jusqu'à la position maxi désirée. ATTENTION en aucuns cas n’aller jusqu'à ce que le servo soit en butée. Il est nécessaire de vérifier qu'une modification du trim n'engendre pas ce problème. Mettre le manche en position neutre. Si le servo revient vers la position neutre sans l'atteindre alors régler l'autre ajustable de façon à ce qu’il revienne à la position neutre initiale. Le réglage est terminé.
J’ai également utilisé un autre bras pour le servo TILT car après passage à 180° le bras d’origine tombe en butté sur le support de fixation du servo (côté gauche sur la photo ci-dessus).
Vous devez disposer aussi des informations GPS (longitude, latitude, altitude) pour le bon fonctionnement du script LUA. Perso, j’ai opté pour le sensor GPS FrSKY
Mais si vous disposez d’un NAZA, vous pouvez également récupérer ces informations et bien d’autre. Suivez les instructions proposées par Sylvain (alias DJSYL):
https://frskytaranis.forumactif.org/t1045-telemetrie-port-rs232-dans-compartiment-batterie#21815
ou depuis un module zaggotelemetry :
https://frskytaranis.forumactif.org/t1247-zaggotelemetry-recuperer-la-telemetrie-de-dji-naza-directement-sur-la-taranis
ou encore depuis le CAN BUS du NAZA :
https://frskytaranis.forumactif.org/t1779-naza-canbus-frsky-s-port
LE SCRIPT LUA :
- Code:
--[[
Tracker d’antenne LUA
Version 1.0
Bruno Van de Velde et les membres du forum http://frskytaranis.forumactif.org
]]
local function round(val, decimal) -- fonction arrondir
-- non utilisée mais conserve pour l’avenir
if (decimal) then
return math.floor( (val * 10^decimal) + 0.5) / (10^decimal)
else
return math.floor(val+0.5)
end
end --end function round(val, decimal)
local function map2(val, fromLow, fromHigh, toLow, toHigh)
return (val - fromLow) * (toHigh - toLow) / (fromHigh - fromLow) + toLow;
end --end function map2(val, in_min, in_max, out_min, out_max)
local function get_gps_home_info()
local HOME_lat = 0
local HOME_lon = 0
HOME_lat = getValue("pilot-latitude") -- récup. LATITUDE, LONGITUDE de station de base
HOME_lon = getValue("pilot-longitude")
return HOME_lat, HOME_lon
end --end function get_gps_home_info()
local function get_gps_uav_info()
local UAV_Lat = 0
local UAV_Lon = 0
local UAV_alt = 0
UAV_Lat = getValue("latitude") -- récup. LATITUDE, LONGITUDE, ALTITUDE du modèle
UAV_Lon = getValue("longitude")
UAV_alt = getValue("gps-altitude")
return UAV_Lat, UAV_Lon, UAV_alt
end --end function get_gps_uav_info()
local function calc_pan_tilt(lon1, lat1, lon2, lat2, alt)
local R = 6371000.0 --rayon de la terre 6371km
local a, tc1, c, dist, dLat, dLon, azimut, elev
dist = 0
lon1=lon1/180*math.pi
lat1=lat1/180*math.pi
lon2=lon2/180*math.pi
lat2=lat2/180*math.pi
a = math.atan2(math.sin(lon2-lon1)*math.cos(lat2), math.cos(lat1)*math.sin(lat2)-math.sin(lat1)*math.cos(lat2)*math.cos(lon2-lon1))
azimut = a*180/math.pi
if (azimut < 0) then
azimut = math.floor(360 + azimut)
end
-- Calcul de la distance en l'UAV et la station de base (home)
dLat = (lat2-lat1)
dLon = (lon2-lon1)
a = math.sin(dLat/2) * math.sin(dLat/2) + math.sin(dLon/2) * math.sin(dLon/2) * math.cos(lat1) * math.cos(lat2)
c = 2* math.asin(math.sqrt(a))
dist = 6371000 * c
elev = math.atan(alt/dist)
elev = math.floor(elev*360/(2*math.pi))
return azimut , elev, dist
end --end function calc_pan_tilt()
local function azimut_elev_to_ppm(azimut, elev)
local azimut_ppm_value = 0
local elev_ppm_value = 0
if (azimut >= 270 and azimut <= 360) or (azimut >= 0 and azimut <= 90) then
if (azimut >= 1 and azimut <= 90) then
azimut_ppm_value = math.floor(map2(azimut, 0, 90, 0, 1024))
else
azimut_ppm_value = math.floor(map2(azimut, 270, 360, -1024, 0))
end
elev_ppm_value = math.floor(map2(elev, 0, 90, -1024, 0))
else
if (azimut >= 90 and azimut <= 180) then
azimut_ppm_value = math.floor(map2(azimut, 90, 180, -1024, 0))
else
azimut_ppm_value = math.floor(map2(azimut, 180, 270, 0, 1024))
end
elev_ppm_value = math.floor(map2(elev, 90, 0, 0, 1024))
end
return azimut_ppm_value, elev_ppm_value
end -- end azimut_elev_to_ppm()
local function run()
local HOME_lat = 0
local HOME_lon = 0
local UAV_Lat = 0
local UAV_Lon = 0
local UAV_alt = 0
local AZIMUT = 0
local ELEV = 0
local DIST = 0
local AZIMUT_PPM_VALUE = 0
local ELEV_PPM_VALUE = -1024
HOME_lat, HOME_lon = get_gps_home_info()
if (HOME_lat ~= 0) and (HOME_lon ~= 0) then
UAV_Lat, UAV_Lon, UAV_alt = get_gps_uav_info()
if UAV_alt < 0 then
UAV_alt = 0
end
AZIMUT, ELEV, DIST = calc_pan_tilt(HOME_lon, HOME_lat, UAV_Lon, UAV_Lat, UAV_alt)
AZIMUT_PPM_VALUE, ELEV_PPM_VALUE = azimut_elev_to_ppm(AZIMUT, ELEV)
else
AZIMUT_PPM_VALUE = 0
ELEV_PPM_VALUE = -1024
end
return AZIMUT_PPM_VALUE, ELEV_PPM_VALUE
end --end function run()
return { run=run, output={ "PAN", "TILT"} }
PARAMETRAGE TARANIS & BIND X8R :
Sur le modèle un récepteur X8R bindé en mode 4 (avec les jumpers sur CH1&CH2, CH3&CH4) ce qui nous donne une configuration :
• 8 voies en SBUS
• 8 voies en traditionnel
• Avec télémétrie
Sur la station au sol un X8R bindé en mode 3 (avec les jumpers sur CH1&CH2) ce qui nous donne une configuration :
• 8 voies en SBUS
• 8 voies en traditionnel
• Sans télémétrie
C’est deux récepteurs sont bindé sur le même model depuis la Taranis et avec le même ID (cf. image ci-dessous)
Il est important que les voies du récepteur de la station de base qui vont commander les servo PAN et TILT du tracker ne soient pas utilisés sur votre modèle.
Dans mon cas j’utilise les voies 15 et 16 pour commander mes servo PAN et TILT.
MISE EN PLACE DU SCRIPT :
Déposer le script dans le répertoire SCRIPTS\MIXES de votre carte SD puis placer vous en page 12/13 (CUSTOM SCRIPT) de votre modèle et sélectionné le script (cf. images ci-dessous)
CONFIGURATION DES VOIES:
Placer vous en page 6/13 de votre modèle (cf. image ci-dessous)
Nous allons ici utiliser la voie 15 pour le servo PAN et la voie 16 pour le servo TILT.
CES DEUX VOIES NE DOIVENT ETRE UTILISEE SUR VOTRE MODELE
Sélectionnez la voie 15 et éditer là afin de la paramétrer (cf. image ci-dessous)
Mix Name : pan (mais ce n’est pas une obligation de nommer la voie)
Source : sélectionnez l’entrée IPAN
Répétez l’opération sur la voie 16 pour le TILT. Ce qui nous donne :
SUR LE TERRAIN :
Allumez la radio, alimentez les servo PAN / TILT du tracker, les servo se positionnent (au centre pour le PAN et en position basse pour le TILT).
Posez voter model prés de votre station de base et alimentez le.
Attendez le fixe GPS (cf. image ci-dessous accessible depuis un appui long sur PAGE)
Placez enfin votre modèle à son point de décollage, l’antenne du tracker devant pointer dans sa direction.
Vous pouvez décoller et effectuer des translations avec votre modèle, le tracker doit le suivre.
Selon le sens ou vous aurez monté vos servo il est possible que le tracker pointe à l’ opposé de la direction de votre modèle dans ce cas pas grave inversez la voie PAN et / ou TILT en conséquence.
Merci à AleX pour sa proposition de binder deux récepteurs sur le même modèle (proposition qui à donner renaissance à ce projet).
Merci également à Sacre100 pour ses réponses à mes questions concernant LUA.
Merci à DJSYL qui m’a également partagé ses expériences LUA, électronique, paramétrage Taranis et autre test dans le froid fait au club AMV94 de Villeneuve St Georges.
La prochaine évolution est déjà prévue :
Ajout d’un Diversity qui sera réalisé sur la base d’un Arduino.
Dernière édition par nicephore le Jeu 19 Mar 2015 - 12:38, édité 2 fois
nicephore- Messages : 612
Date d'inscription : 14/06/2014
Localisation : Créteil
Re: Traker d'antenne (suivi du modèle) en LUA
A mon avis oui, mais faut savoir que l'envoi des données par le GPS Frsky se fait toutes les secondes ou quelque chose comme ça alors suivant la vitesse de l'engin, le tracker d'antenne risque d'être en retard dans ses déplacements.
C'est ce que j'ai constaté avec mon script qui m'alerte quand je m'approche trop près d'un point GPS, le système m'annonce bien les choses mais trop tard.
C'est ce que j'ai constaté avec mon script qui m'alerte quand je m'approche trop près d'un point GPS, le système m'annonce bien les choses mais trop tard.
Sacre100- Messages : 1889
Date d'inscription : 30/11/2013
Age : 67
Localisation : Blonay - Suisse
Re: Traker d'antenne (suivi du modèle) en LUA
Bonjour Sacre100
Toutes les secondes, ha dommage ... je vais donc passer par autre chose comme arduino par exemple. Je vais dans un premier temps me trouver un vario frSKY et un GPS et voir comment récupérer les info pour les injecter dans l'arduino puis en modulation FSK dans la voie audio d'un TX vidéo (que j'ai pas encore).
A+ Nicéphore
Toutes les secondes, ha dommage ... je vais donc passer par autre chose comme arduino par exemple. Je vais dans un premier temps me trouver un vario frSKY et un GPS et voir comment récupérer les info pour les injecter dans l'arduino puis en modulation FSK dans la voie audio d'un TX vidéo (que j'ai pas encore).
A+ Nicéphore
nicephore- Messages : 612
Date d'inscription : 14/06/2014
Localisation : Créteil
Re: Traker d'antenne (suivi du modèle) en LUA
Hello Nicophore,
Vario Frsky, OK, il est correct. GPS Frsky, pas sûr car c'est le soft du GPS qui a ce fréquence de rafraichissement trop lent.
Si tu passes par Arduino, autant avoir un GPS "classique" qui peut facilement tourner à 10hz. Il y a des librairies pour l'Arduino qui sortent du s.port, je ne sais pas ce que cela vaut.
Si tu te lances dans la chose, cela m'intéresse beaucoup car j'ai un Arduimu V3 et un GPS qui trainent dans une boite et qui seraient tout content de reprendre du service.
@+ Marco
Vario Frsky, OK, il est correct. GPS Frsky, pas sûr car c'est le soft du GPS qui a ce fréquence de rafraichissement trop lent.
Si tu passes par Arduino, autant avoir un GPS "classique" qui peut facilement tourner à 10hz. Il y a des librairies pour l'Arduino qui sortent du s.port, je ne sais pas ce que cela vaut.
Si tu te lances dans la chose, cela m'intéresse beaucoup car j'ai un Arduimu V3 et un GPS qui trainent dans une boite et qui seraient tout content de reprendre du service.
@+ Marco
Sacre100- Messages : 1889
Date d'inscription : 30/11/2013
Age : 67
Localisation : Blonay - Suisse
Re: Traker d'antenne (suivi du modèle) en LUA
Marco,
OK j'ai une Arduino Uno et un GPS, l'acquisition des données GPS est OK déjà mais j'ai pour le moment pas encore de vario je préfère passer par un vario car les données GPS Altitude ne me semble pas précises (des écarts trop importants).
Suite dès que j'ai un vario.
OK j'ai une Arduino Uno et un GPS, l'acquisition des données GPS est OK déjà mais j'ai pour le moment pas encore de vario je préfère passer par un vario car les données GPS Altitude ne me semble pas précises (des écarts trop importants).
Suite dès que j'ai un vario.
nicephore- Messages : 612
Date d'inscription : 14/06/2014
Localisation : Créteil
Re: Traker d'antenne (suivi du modèle) en LUA
La plupart des tracker d'antenne utilisent l'altitude des GPS et cela semble suffisant, les antennes rayonnent ou captent les ondes dans cône suffisamment large même les antennes directionnelles.
Et puis, tel qu'est fait le protocole s.port, rien ne t'empêche de commencer avec uniquement le GPS puis dans un deuxième temps, avec GPS et vario. La connexion GPS seul, tu la feras directement de l'Arduino vers le récepteur. Avec le vario, tu connecteras l'Arduino sur le vario puis le vario sur le récepteur.
Dans le script, il suffira d'avoir une variable qui indique si le vario est présent et qui déclanche les traitement en conséquence. L'avantage, c'est que ceux qui utiliseront ta solution pourront le faire selon leur configuration, avec ou sans vario.
Une autre chose possible, c'est d'avoir une connexion sans fil avec le tracker d'antenne. Pour cela, je ne sais pas si l'on peut binder 2 récepteurs sur le même module d'émission ou s'il faut avoir un deuxième module.
Et puis, tel qu'est fait le protocole s.port, rien ne t'empêche de commencer avec uniquement le GPS puis dans un deuxième temps, avec GPS et vario. La connexion GPS seul, tu la feras directement de l'Arduino vers le récepteur. Avec le vario, tu connecteras l'Arduino sur le vario puis le vario sur le récepteur.
Dans le script, il suffira d'avoir une variable qui indique si le vario est présent et qui déclanche les traitement en conséquence. L'avantage, c'est que ceux qui utiliseront ta solution pourront le faire selon leur configuration, avec ou sans vario.
Une autre chose possible, c'est d'avoir une connexion sans fil avec le tracker d'antenne. Pour cela, je ne sais pas si l'on peut binder 2 récepteurs sur le même module d'émission ou s'il faut avoir un deuxième module.
Sacre100- Messages : 1889
Date d'inscription : 30/11/2013
Age : 67
Localisation : Blonay - Suisse
Re: Traker d'antenne (suivi du modèle) en LUA
Bonjour,
De mon coté j'avance. Mais mon GPS (un PA6C) est cassé suite à une chute. Mais le codage et décodage des informations en FSK est OK, je dois encore faire mes adaptations de niveau afin de faire mes 1er essais avec mon TX 5.8Ghz.
La suite prochainement ...
De mon coté j'avance. Mais mon GPS (un PA6C) est cassé suite à une chute. Mais le codage et décodage des informations en FSK est OK, je dois encore faire mes adaptations de niveau afin de faire mes 1er essais avec mon TX 5.8Ghz.
La suite prochainement ...
nicephore- Messages : 612
Date d'inscription : 14/06/2014
Localisation : Créteil
Re: Traker d'antenne (suivi du modèle) en LUA
MAJ du #post1 avec les dernières évolutions.
nicephore- Messages : 612
Date d'inscription : 14/06/2014
Localisation : Créteil
Re: Traker d'antenne (suivi du modèle) en LUA
Jolie réalisation, bravo et ça me plait d'autant plus que c'est hyper simple, le script ne fait que quelques lignes.
Si tu as envie de faire connaitre ton script, tu peux le mettre sur http://rcsettings.com/
Si tu as envie de faire connaitre ton script, tu peux le mettre sur http://rcsettings.com/
Sacre100- Messages : 1889
Date d'inscription : 30/11/2013
Age : 67
Localisation : Blonay - Suisse
Re: Traker d'antenne (suivi du modèle) en LUA
Merci Marco.
nicephore- Messages : 612
Date d'inscription : 14/06/2014
Localisation : Créteil
Re: Traker d'antenne (suivi du modèle) en LUA
je suis toujours admiratif devant des travaux fait maison.
Chapeau bas nicephore.
ps : au moins là, je suis abonné au sujet
Chapeau bas nicephore.
ps : au moins là, je suis abonné au sujet
Invité- Invité
Re: Traker d'antenne (suivi du modèle) en LUA
Très astucieux, en récupérant la télémétrie d'un APM/Pix plus besoin d'un module GPS ni d'un vario ça me plait beaucoup !
Invité- Invité
Re: Traker d'antenne (suivi du modèle) en LUA
On en avait parler déjà Furynick
avec les 2 prog en teensy 3.01 pour Naza et Dropix/APM de récuperation de télémetrie pour Frsky c'est de la balle
avec les 2 prog en teensy 3.01 pour Naza et Dropix/APM de récuperation de télémetrie pour Frsky c'est de la balle
Invité- Invité
Re: Traker d'antenne (suivi du modèle) en LUA
Oui j'avais vu passer ça mais comme je n'avais pas encore de Taranis je n'avais que survolé
Invité- Invité
Re: Traker d'antenne (suivi du modèle) en LUA
Bonjour,
Par contre il est plus judicieux d'utiliser un autre GPS que celui de FrSKY car effectivement il n'est pas très rapide (je vais passer par le décodage du GPS Naza via le CAN Bus du PMU).
Mais ça marche.
Par contre il est plus judicieux d'utiliser un autre GPS que celui de FrSKY car effectivement il n'est pas très rapide (je vais passer par le décodage du GPS Naza via le CAN Bus du PMU).
Mais ça marche.
nicephore- Messages : 612
Date d'inscription : 14/06/2014
Localisation : Créteil
Re: Traker d'antenne (suivi du modèle) en LUA
Ce truc est génial pour le long-range car avec peu de modif et un servo à 360°, il peut aussi permettre de placer une tourelle sur le modèle et orienter une antenne directive vers le pilote
Seul point négatif, c'est qu'en config LR, la télémétrie est indisponible.
On peut donc imaginer une tourelle au sol ET une tourelle sur le modèle qui orienterait 2 antennes chacune pour les datas FrSky ET la retransmission vidéo.
En oubliant la législation en vigueur, avec un petit ampli en plus de chaque côté sur la liaison data (et c'est même pas sur que ce soit nécessaire), ça peut faire facilement une 10aine de km voire plus en sachant qu'avec une simple 5db omni, on passe déjà les 6km...
Inutile pour un multicoptère limité par la batterie, mais ça fait rêver pour un grand planeur...
Seul point négatif, c'est qu'en config LR, la télémétrie est indisponible.
On peut donc imaginer une tourelle au sol ET une tourelle sur le modèle qui orienterait 2 antennes chacune pour les datas FrSky ET la retransmission vidéo.
En oubliant la législation en vigueur, avec un petit ampli en plus de chaque côté sur la liaison data (et c'est même pas sur que ce soit nécessaire), ça peut faire facilement une 10aine de km voire plus en sachant qu'avec une simple 5db omni, on passe déjà les 6km...
Inutile pour un multicoptère limité par la batterie, mais ça fait rêver pour un grand planeur...
Re: Traker d'antenne (suivi du modèle) en LUA
Heisenberg,
Au début je voulais transporter les informations via la voie audio du VTX 5.8 (en modulation FSK via une platine Arduino). Mais j'ai fini par faire ça afin de n'avoir aucun fil à la patte.
Au début je voulais transporter les informations via la voie audio du VTX 5.8 (en modulation FSK via une platine Arduino). Mais j'ai fini par faire ça afin de n'avoir aucun fil à la patte.
nicephore- Messages : 612
Date d'inscription : 14/06/2014
Localisation : Créteil
Sujets similaires
» Head traker fat shark ne fonctionne pas sur ma Horus
» Lua Suivi de sujet par nacelle 2 ou 3D (portage du LUA Tracker de Nicephore)
» Perte d'un modèle ?!
» Création d'un modèle
» creation de modele qx7
» Lua Suivi de sujet par nacelle 2 ou 3D (portage du LUA Tracker de Nicephore)
» Perte d'un modèle ?!
» Création d'un modèle
» creation de modele qx7
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum