[TUTO] Dropix MavLink to FrSky X8R X6R X4R S.Port converter
Forum Multirotors et Drones
MikroKopter de AUEV
Merci de vous connecter ou de vous inscrire.

Connexion avec identifiant, mot de passe et durée de la session

Auteur Sujet: [TUTO] Dropix MavLink to FrSky X8R X6R X4R S.Port converter  (Lu 23264 fois)

djsyl

  • Modérateur Global
  • Membre Héroïque
  • ******
  • Hors ligne Hors ligne
  • Messages: 13 634
  • Sylvain - F8byc
    • Club-Aquilon
Dropix MavLink to FrSky X8R S.Port converter
« Réponse #20 le: 11 janvier 2015 à 09:23:31 »

Moi non plus j'aime pas la mise en page mais la c'est pas trop mal fait et ça s'adapte facilement !

Simulation long-range

drotek

  • Membre Complet
  • ****
  • Hors ligne Hors ligne
  • Messages: 301
    • Drotek
Dropix MavLink to FrSky X8R S.Port converter
« Réponse #21 le: 11 janvier 2015 à 12:15:59 »

Good job! Je suis fan du résultat. De mon côté j'ai réussi à faire fonctionner la télémétrie avec le récepteur D4R-II + le transceiver RS232.
Par contre côté Taranis c'est visuellement moche.
IP archivée
Jerome

djsyl

  • Modérateur Global
  • Membre Héroïque
  • ******
  • Hors ligne Hors ligne
  • Messages: 13 634
  • Sylvain - F8byc
    • Club-Aquilon
Dropix MavLink to FrSky X8R S.Port converter
« Réponse #22 le: 12 janvier 2015 à 10:21:07 »

Je cherche a affiner les modes de vol dans le LUA

Avec Mavlink on récupère 2 messages :

le base_mode

le custom_mode

sous forme de valeur numériques

Ma question est le custom_mode est t'il le reflet des 6 modes déclarer ou il renvoie tous les modes existant ?





Julien_Dubois

  • Membre Confirmé
  • ***
  • Hors ligne Hors ligne
  • Messages: 245
Dropix MavLink to FrSky X8R S.Port converter
« Réponse #23 le: 12 janvier 2015 à 13:14:28 »

Le base_mode peut prendre les valeurs suivantes:
MAV_MODE_FLAG_CUSTOM_MODE_ENABLED=1, /* 0b00000001 Reserved for future use. | */
MAV_MODE_FLAG_TEST_ENABLED=2, /* 0b00000010 system has a test mode enabled. This flag is intended for temporary system tests and should not be used for stable implementations. | */
MAV_MODE_FLAG_AUTO_ENABLED=4, /* 0b00000100 autonomous mode enabled, system finds its own goal positions. Guided flag can be set or not, depends on the actual implementation. | */
MAV_MODE_FLAG_GUIDED_ENABLED=8, /* 0b00001000 guided mode enabled, system flies MISSIONs / mission items. | */
MAV_MODE_FLAG_STABILIZE_ENABLED=16, /* 0b00010000 system stabilizes electronically its attitude (and optionally position). It needs however further control inputs to move around. | */
MAV_MODE_FLAG_HIL_ENABLED=32, /* 0b00100000 hardware in the loop simulation. All motors / actuators are blocked, but internal software is full operational. | */
MAV_MODE_FLAG_MANUAL_INPUT_ENABLED=64, /* 0b01000000 remote control input is enabled. | */
MAV_MODE_FLAG_SAFETY_ARMED=128, /* 0b10000000 MAV safety set to armed. Motors are enabled / running / can start. Ready to fly. | */
MAV_MODE_FLAG_ENUM_END=129, /*  | */

Le custom_mode représente le mode de vol actif (ex: poshold)
Il renverra donc le numéro du mode actif quels que soient les modes sélectionnés dans le paramétrage des 6 modes de vol. Utile par exemple en cas de RTL/Failsafe, il est bon de savoir que le drone est passé en RTL même si aucun des 6 modes de vol utilisateur n'a été paramétré en RTL.

Tableau d'équivalences:
// Auto Pilot modes
// ----------------
#define STABILIZE 0                     // hold level position
#define CRUISE 1                        // replaces acro in MP
#define ACRO 17                         // N°1 replaced by cruise to acces it via MP rate control
#define ALT_HOLD 2                      // AUTO control
#define AUTO 3                          // AUTO control
#define GUIDED 4                        // AUTO control
#define LOITER 5                        // Hold a single location
#define RTL 6                           // AUTO control
#define CIRCLE 7                        // AUTO control
#define LAND 9                          // AUTO control
#define OF_LOITER 10                    // Hold a single location using optical flow sensor
#define DRIFT 11                        // DRIFT mode (Note: 12 is no longer used)
#define SPORT 13                        // earth frame rate control
#define FLIP        14                  // flip the vehicle on the roll axis
#define AUTOTUNE    15                  // autotune the vehicle's roll and pitch gains
#define POSHOLD     16                  // position hold with manual override
#define NUM_MODES   18
IP archivée
Copters: DIY sur chassis Talon V2 450 carbone, DIY sur chassis Walkera QRX350
TX: Turnigy 9X, 9XR
Controleurs: APM 2.5 clone, PixHawk 3DR
GPS: Ublox NEO 6M, 8M
Nacelle 2 axes  : Tarod T-2D + Gopro 3+ silver
FPV: Sony 800TVL + RX/TX 5.8GHz 2W + Ecran 7" Skylark Sunview-1000cd/m2 + minimOSD

djsyl

  • Modérateur Global
  • Membre Héroïque
  • ******
  • Hors ligne Hors ligne
  • Messages: 13 634
  • Sylvain - F8byc
    • Club-Aquilon
Dropix MavLink to FrSky X8R S.Port converter
« Réponse #24 le: 12 janvier 2015 à 14:00:32 »

Merci Julien

Je n'était pas sur pour les custom, je vais pouvoir faire les affichages dans le LUA, a l'origine prévu pour DJI

C'est bien mieux comme ça !

djsyl

  • Modérateur Global
  • Membre Héroïque
  • ******
  • Hors ligne Hors ligne
  • Messages: 13 634
  • Sylvain - F8byc
    • Club-Aquilon
Dropix MavLink to FrSky X8R S.Port converter
« Réponse #25 le: 12 janvier 2015 à 14:20:30 »

Merci les gars, vous venez d’écrire mon programme de la semaine

Bon tu écrit quoi alors cette semaine :)

Francklin

  • Membre Héroïque
  • ******
  • Hors ligne Hors ligne
  • Messages: 8 458
  • C'est moins intelligent qu'un Nao mais ca vole
Dropix MavLink to FrSky X8R S.Port converter
« Réponse #26 le: 14 janvier 2015 à 14:57:12 »

Merci Julien  ;) on en avait discuté avec Djsyl et en fait le code est dans le minimOSD et pas dans le soft Ardu ( y en a aussi mais c'est moins visible). tu peux trouver ces infos dans le fichier ArduCAM_OSD/OSD_Panels.ino.

https://code.google.com/p/arducam-osd/source/browse/trunk/ArduCAM_OSD/OSD_Panels.ino

C'est bien intéressant toutes vos bidouilles de conversions de format, ca va bien aider pour le bricolage dans le post des MK de Jelabed  ;) (monter un minimOSD sur MK en bidouillant de code minimOSD)
IP archivée
Multiwii: Mini hexa Y6,Quadri pliable QC450
Arducopter APM 2.5: FlyduSpider, Quadri caréné
Mikrokopter: Quad XXL , FrankenQuad XL, Soucoupe Hexa caréné 1m, Hexastar 700 Nacelle 360° AV130 de chez 1001copters

nicodh

  • Membre Senior
  • *****
  • Hors ligne Hors ligne
  • Messages: 849
  • che boludo, un café.
Dropix MavLink to FrSky X8R S.Port converter
« Réponse #27 le: 14 janvier 2015 à 19:33:49 »

Ça c'est faisable. Avec le code qu'on a fait avec netraptor pour la teensy tu devrais réussir à faire marcher le minimosd.  Juste transcoder
IP archivée
- minishit, chassis diy, rctimer 1806-2300, 3S-4S
- Quad pliable, nacelle 3 axes gopro, full inmersive vectorized
- hexa S1 GH4 nacelle 3 axes. mk
- quad rachel 4S 1200W 600 gr 3D. abused naze32
- quad mk pour tests
- 360° drone pour videos 360.
- une chiée d'autres machines en etat de mi marche (un peu cassé, un peu detruit)

Francklin

  • Membre Héroïque
  • ******
  • Hors ligne Hors ligne
  • Messages: 8 458
  • C'est moins intelligent qu'un Nao mais ca vole
Dropix MavLink to FrSky X8R S.Port converter
« Réponse #28 le: 15 janvier 2015 à 02:34:22 »

Super je vais regarder ça, je viens de recevoir un minimOSD  en plus  ;D, manque plus qu'un Teensy. c'est le même code que pour le traducteur de la FrSky ou vous en aviez fait un pour les OSD?
IP archivée
Multiwii: Mini hexa Y6,Quadri pliable QC450
Arducopter APM 2.5: FlyduSpider, Quadri caréné
Mikrokopter: Quad XXL , FrankenQuad XL, Soucoupe Hexa caréné 1m, Hexastar 700 Nacelle 360° AV130 de chez 1001copters

nicodh

  • Membre Senior
  • *****
  • Hors ligne Hors ligne
  • Messages: 849
  • che boludo, un café.
Dropix MavLink to FrSky X8R S.Port converter
« Réponse #29 le: 15 janvier 2015 à 08:05:28 »

Non tu n'a pas besoin de teensy. En principe en modifiant un peu le code pour minimosd avec le code qu'on a.fait.pour le s. port tu devrais avoir un osd pour mk
IP archivée
- minishit, chassis diy, rctimer 1806-2300, 3S-4S
- Quad pliable, nacelle 3 axes gopro, full inmersive vectorized
- hexa S1 GH4 nacelle 3 axes. mk
- quad rachel 4S 1200W 600 gr 3D. abused naze32
- quad mk pour tests
- 360° drone pour videos 360.
- une chiée d'autres machines en etat de mi marche (un peu cassé, un peu detruit)

djsyl

  • Modérateur Global
  • Membre Héroïque
  • ******
  • Hors ligne Hors ligne
  • Messages: 13 634
  • Sylvain - F8byc
    • Club-Aquilon
Dropix MavLink to FrSky X8R S.Port converter
« Réponse #30 le: 16 janvier 2015 à 02:30:30 »

Pour ceux qui on été sage et suivi l'affaire depuis le début voici un leu de script lua pour des annonces vocal des infos issue des messages mavlink et renvoyé sur la télémétrie sport.
il y a encore beaucoup a faire et peut-être ça parle un peut trop ...

Mise a jour du code post suivant ...
« Modifié: 17 janvier 2015 à 23:23:10 par djsyl »
IP archivée

djsyl

  • Modérateur Global
  • Membre Héroïque
  • ******
  • Hors ligne Hors ligne
  • Messages: 13 634
  • Sylvain - F8byc
    • Club-Aquilon
Dropix MavLink to FrSky X8R S.Port converter
« Réponse #31 le: 17 janvier 2015 à 23:16:23 »

Mise a jour du jour

regroupement du srcipt de télémétrie + la partie vocal

bonne lecture

-- MODE VOCAL POUR DROPIX --
-- CHEMIN /SCRIPT/MIXES/
-- BETA VERSION 0.02 --
-- SB 17/JANVIER/2015
-- Annonces Mode de vol, armement moteur, distance, hauteur, tension
-- Recuperation des affichages par action sur bouton SA


local valuemode
local memmode
local gps
local memgps
local armed
local memarmed
local altitude
local memaltitude
local distance
local memdistance
local tension
local memtension

local boucle


local function init_func()
                valuemode = 0
                memmode = 0
gps = 0
memgps = 0
armed = 0
memarmed = 0


altitude = 0
memaltitude = 0
distance = 0
memdistance = 0

boucle = 0


end

local function run_func()

boucle = boucle + 1   -- pour ralentir les annonces GPS qui parlent trop

-- #################################   AFFICHAGE SUR ACTION BOUTON SA ################################################
if (getValue(92) > 0 ) then

lcd.lock()
lcd.clear()

-- ################# DESSIN CADRILLAGE ###################

  lcd.drawLine(37, -1, 37, 64, SOLID, GREY_DEFAULT)    -- Vertical 1
  lcd.drawLine(100, -1, 100, 64, SOLID, GREY_DEFAULT)  -- Vertical 2
  lcd.drawLine(162, -1, 162, 64, SOLID, GREY_DEFAULT)  -- Vertical 3

  lcd.drawLine(36, 21, 162, 21, SOLID, GREY_DEFAULT)   -- Horizointal 1
  lcd.drawLine(36, 42, 162, 42, SOLID, GREY_DEFAULT)   -- Horizontal 2


-- ################ Phantom Battery Display ############### A FINIR DE TRAVAILLER

-- Max Batt lt Taranis = 12,2V entspricht 12,6v Phantom => Spannung wird 0,4v zu niedrig angezeigt
-- Min Batt lt Taranis = 10,8V entspricht 11,2v Phantom => Spannung wird 0,4v zu niedrig angezeigt

   
  local myCurrent = getValue("216")                     -- zuz¸glich 0,4v zum Ausgleich           
--  local myCurrent = 12.4                                    -- f¸r Taranis Simulations Mode
                               
   local myMaxV = 25.2                                       -- Maximale Spannung des Akkus
   local myMinV = 21.5                                        -- Minimale Spannung des Akkus
   local myRangeV = myMaxV - myMinV                           -- Nutzspannung berechnen
   local myAvailV = myCurrent - myMinV                        -- Restliche Nutzspannung berechnen
   local myPercent = math.floor(myAvailV / myRangeV * 100)    -- Restliche Nutzspannung in Prozent
   
   if myAvailV < 0 then myAvailV = 0 end                      -- Fehlerhafte Werte abfangen
   if myPercent < 0 then myPercent = 0 end                    -- Fehlerhafte Werte abfangen
   if myPercent > 100 then myPercent = 100 end                -- Fehlerhafte Werte abfangen
   
   local myPxHeight = math.floor(myPercent * 0.37)            -- Benˆtigte Zeilenhˆhe ermitteln
   local myPxY = 11 + 37 - myPxHeight

   lcd.drawPixmap(3, 1, "/SCRIPTS/BMP/battery.bmp")           -- Leere Batterie anzeigen

if myPercent > 0 then
    lcd.drawFilledRectangle(8, myPxY, 21, myPxHeight, FILL_WHITE )
   end


   local i = 36
   while (i > 0) do
    lcd.drawLine(7, 11 + i, 27, 11 +i, SOLID, GREY_DEFAULT)
    i= i-2
   end

   if (myCurrent > myMaxV) or (myCurrent < myMinV) then
    lcd.drawNumber(4,55, myCurrent * 100  ,PREC2 + LEFT + BLINK)
   else
  lcd.drawNumber(4,55, myCurrent * 100  ,PREC2 + LEFT)
   end
   lcd.drawText(lcd.getLastPos(), 55, "v", 0)



-- ################### MODE DISPLAY DROPIX ########################

-- lcd.drawPixmap(46, 3, "/SCRIPTS/BMP/fm.bmp")

-- custom_mode

local Mode = getValue(208)
if Mode == 0  then  lcd.drawText(46, 5, "STABLE", MIDSIZE) end
if Mode == 1  then  lcd.drawText(46, 5, "ACRO", MIDSIZE) end
if Mode == 2  then  lcd.drawText(46, 5, "ALT-H", MIDSIZE) end
if Mode == 3  then  lcd.drawText(46, 5, "AUTO", MIDSIZE) end
if Mode == 4  then  lcd.drawText(46, 5, "GUIDE", MIDSIZE) end
if Mode == 5  then  lcd.drawText(46, 5, "LOITER", MIDSIZE) end
if Mode == 6  then  lcd.drawText(46, 5, "RTL", BLINK+MIDSIZE) end
if Mode == 7  then  lcd.drawText(46, 5, "CERCLE", MIDSIZE) end
if Mode == 8  then  lcd.drawText(46, 5, "M-08", MIDSIZE) end -- ???
if Mode == 9  then  lcd.drawText(46, 5, "LANDING", MIDSIZE) end
if Mode == 10 then  lcd.drawText(46, 5, "OF_LOITER", MIDSIZE) end -- ???
if Mode == 11 then  lcd.drawText(46, 5, "DRIF", MIDSIZE) end
if Mode == 12 then  lcd.drawText(46, 5, "SPORT", MIDSIZE) end -- ???
if Mode == 13 then  lcd.drawText(46, 5, "M_13", MIDSIZE) end
if Mode == 14 then  lcd.drawText(46, 5, "FLIP", MIDSIZE) end
if Mode == 15 then  lcd.drawText(46, 5, "AUTOTUNE", MIDSIZE) end
if Mode == 16 then  lcd.drawText(46, 5, "POSHOLD", MIDSIZE) end
if Mode == 17 then  lcd.drawText(46, 5, "M_17", MIDSIZE) end 
if Mode == 18 then  lcd.drawText(46, 5, "M-18", MIDSIZE) end -- ???
                                                               

-- ####################### CHRONO  ##########################

--  lcd.drawPixmap(46, 46, "/SCRIPTS/BMP/timer.bmp")
  lcd.drawTimer(50, 46, getValue(196) , DBLSIZE)                  -- Timer 1 value [seconds]

 

-- ############## Distance ########################################
   lcd.drawPixmap(110, 0, "/SCRIPTS/BMP/dist.bmp")
   lcd.drawNumber(130, 4, getValue(212), LEFT+MIDSIZE)                -- 212 Distance
   lcd.drawText(lcd.getLastPos(), 4, "m", MIDSIZE)


-- ############## GPS ALTITUDE ########################################
         lcd.drawPixmap(110, 46, "/SCRIPTS/BMP/hgt.bmp")
lcd.drawNumber(130,49,getValue(213), MIDSIZE  + LEFT )-- gps-altitude
lcd.drawText(lcd.getLastPos(), 53, "m" , 0)



-- ################# GPS Quality ##################################
   local myNumSat =  getValue(209)                                   -- Temp1=209 ist Anzahl Sats
   local myQualSat =  getValue(210)                                  -- Temp2=210 ist Qualit‰t des Satfix
   
-- myNumSat =5                                                       -- f¸r Taranis Simulations Mode
-- myQualSat =3                                                      -- f¸r Taranis Simulations Mode
   
   if myQualSat == 0 then
  lcd.drawPixmap(46, 24, "/SCRIPTS/BMP/sat0.bmp")                -- kein Fix
   elseif myQualSat == 2 then
lcd.drawPixmap(46, 24, "/SCRIPTS/BMP/sat1.bmp")                -- 2D Fix
   elseif myQualSat == 3 then
lcd.drawPixmap(46, 24, "/SCRIPTS/BMP/sat2.bmp")                -- 3D Fix
   elseif myQualSat == 4 then
lcd.drawPixmap(46, 24, "/SCRIPTS/BMP/sat3.bmp")                -- Differenzial GPS (DGPS)
end



if myNumSat > 5 then
lcd.drawPixmap(66, 25, "/SCRIPTS/BMP/gps_6.bmp")               -- 6 oder mehr Sats
elseif myNumSat > 4 then
lcd.drawPixmap(66, 25, "/SCRIPTS/BMP/gps_5.bmp")               -- 5 Sats
elseif myNumSat > 3 then
lcd.drawPixmap(66, 25, "/SCRIPTS/BMP/gps_4.bmp")               -- 4 Sats
elseif myNumSat > 2 then
  lcd.drawPixmap(66, 25, "/SCRIPTS/BMP/gps_3.bmp")               -- 3 Sats
elseif myNumSat > 1 then
lcd.drawPixmap(66, 25, "/SCRIPTS/BMP/gps_2.bmp")               -- 2 Sats
elseif myNumSat > 0 then
lcd.drawPixmap(66, 25, "/SCRIPTS/BMP/gps_1.bmp")               -- 1 Sat
else
lcd.drawPixmap(66, 25, "/SCRIPTS/BMP/gps_0.bmp")                 -- kein Sat
end
   lcd.drawNumber(73, 24, myNumSat,  SMLSIZE)                        -- Anzahl anzeigen



-- ################### Home Point ######################################
-- ### wenn Pilot Position bekannt HP setzen                 ###########
-- ### muss noch korrigiert werden da NAZA erst sp‰ter setzt ###########
   
   if getValue("pilot-longitude") == getValue("pilot-latitude") then
      lcd.drawPixmap(110, 24, "/SCRIPTS/BMP/home1.bmp")
      lcd.drawText(132, 26, "?", MIDSIZE + BLINK)
   elseif myNumSat > 5 then
      lcd.drawPixmap(110, 24, "/SCRIPTS/BMP/home.bmp")
      lcd.drawPixmap(130, 24, "/SCRIPTS/BMP/check.bmp")
   else
      lcd.drawPixmap(110, 24, "/SCRIPTS/BMP/home.bmp")
      lcd.drawText(132, 26, "X",  BLINK+ MIDSIZE)
   end

-- ####################### Logging display ############################

-- Enregistrement des log actif ( bizard le get 100 ??? )

-- ###  Logging auf logischem Schalter LS1 = source 100   #############

   if getValue(100) > 0 then                                         
      lcd.drawText(155,28,"O", SMLSIZE + BLINK) -- Clignotement sur la disquette
      lcd.drawPixmap(152, 30, "/SCRIPTS/BMP/save.bmp") -- Logo disquette
   end


-- ############### RSSI ##############################################

  if getValue(200) > 38 then
   percent = ((math.log(getValue(200)-28, 10)-1)/(math.log(72, 10)-1))*100
  else
   percent = 0
  end

  if percent > 90 then
    lcd.drawPixmap(164, 1, "/SCRIPTS/BMP/RSSI10.bmp")
  elseif percent > 80 then
lcd.drawPixmap(164, 1, "/SCRIPTS/BMP/RSSI09.bmp")
  elseif percent > 70 then
lcd.drawPixmap(164, 1, "/SCRIPTS/BMP/RSSI08.bmp")
  elseif percent > 60 then
lcd.drawPixmap(164, 1, "/SCRIPTS/BMP/RSSI07.bmp")
  elseif percent > 50 then
lcd.drawPixmap(164, 1, "/SCRIPTS/BMP/RSSI06.bmp")
elseif percent > 40 then
lcd.drawPixmap(164, 1, "/SCRIPTS/BMP/RSSI05.bmp")
  elseif percent > 30 then
lcd.drawPixmap(164, 1, "/SCRIPTS/BMP/RSSI04.bmp")
  elseif percent > 20 then
lcd.drawPixmap(164, 1, "/SCRIPTS/BMP/RSSI03.bmp")
  elseif percent > 10 then
lcd.drawPixmap(164, 1, "/SCRIPTS/BMP/RSSI02.bmp")
  elseif percent > 0 then
lcd.drawPixmap(164, 1, "/SCRIPTS/BMP/RSSI01.bmp")
  else
    lcd.drawPixmap(164, 1, "/SCRIPTS/BMP/RSSI00.bmp")
  end

  lcd.drawChannel(178, 55, 200, LEFT)
  lcd.drawText(lcd.getLastPos(), 56, "dB", SMLSIZE)
end



-- ########################################################################################
--                     PARTIE VOCAL
-- ########################################################################################
            valuemode = getValue(208) --  CARBURAN (mode de vol)
gps =       getValue(209) --  T1 XX.Y XX = nombre, Y type de fixe
armed =     getValue(210) --  T2
altitude =  getValue(213) --  Altitude GPS
distance =  getValue(212) --  DISTANCE
tension =   getValue(216) --  tension (vfas)


-- GESTION de la tension


if not (tension == memtension) then
                   
   playNumber(tension * 10,1,PREC1)
   
memtension = tension
end




-- GESTION de l altitude

if (altitude - 10 > memaltitude ) or (altitude + 10 < memaltitude ) then
                   playFile("/SOUNDS/fr/altitude.wav")
   playNumber(altitude,0,0)
   playFile("/SOUNDS/fr/SYSTEM/0130.wav")
memaltitude = altitude
end





-- GESTION de la distance

if (distance - 10 > memdistance ) or (distance + 10 < memdistance ) then
                   playFile("/SOUNDS/fr/distance.wav")
   playNumber(distance,0,0)
   playFile("/SOUNDS/fr/SYSTEM/0130.wav")
memdistance = distance
end





-- GESTION ARMEMENT MOTEURS

if not (armed == memarmed) then

if (armed == 0)  then 
playFile("/SOUNDS/fr/engoff.wav")
end
if (armed == 1)  then 
playFile("/SOUNDS/fr/engon.wav")
end

memarmed = armed
end

-- GESTION nombre de GPS et du type de fix

if (boucle > 1000 ) then

if not (gps == memgps) then

playNumber(gps,0,PREC1)
playFile("/SOUNDS/fr/sat.wav")
memgps = gps
end
boucle = 0
end


-- GESTION DES MODES DE VOL

if not (valuemode == memmode) then
               
if (valuemode == 0)  then 
playFile("/SOUNDS/fr/stable.wav")
end

if (valuemode == 1)  then 
playFile("/SOUNDS/fr/acro.wav")
end

if (valuemode == 2)  then 
playFile("/SOUNDS/fr/althold.wav")
end

if (valuemode == 3)  then 
playFile("/SOUNDS/fr/auto.wav")
end

if (valuemode == 4)  then 
playFile("/SOUNDS/fr/guider.wav")
end

if (valuemode == 5)  then 
playFile("/SOUNDS/fr/flaner.wav")
end

if (valuemode == 6)  then 
playFile("/SOUNDS/fr/rth.wav")
end

if (valuemode == 7)  then 
playFile("/SOUNDS/fr/cercle.wav")
end

if (valuemode == 8)  then 
playFile("/SOUNDS/fr/SYSTEM/0008.wav")
end

if (valuemode == 9)  then 
playFile("/SOUNDS/fr/landing.wav")
end

if (valuemode == 10)  then 
playFile("/SOUNDS/fr/SYSTEM/0010.wav")
end

if (valuemode == 11)  then 
playFile("/SOUNDS/fr/drift.wav")
end


if (valuemode == 12)  then 
playFile("/SOUNDS/fr/sport.wav")
end

if (valuemode == 13)  then 
playFile("/SOUNDS/fr/SYSTEM/0013.wav") -- 13 ??
end

if (valuemode == 14)  then 
playFile("/SOUNDS/fr/flip.wav") -- FLIP
end

if (valuemode == 15)  then 
playFile("/SOUNDS/fr/autotune.wav") -- AUTOTUNE
end

if (valuemode == 16)  then 
playFile("/SOUNDS/fr/poshold.wav") -- POSHOLD
end


if (valuemode == 17)  then 
playFile("/SOUNDS/fr/SYSTEM/0017.wav") -- 17 ??
end


if (valuemode == 18)  then 
playFile("/SOUNDS/fr/SYSTEM/0018.wav")  -- 18 ??
end




memmode = valuemode

end


                return memmode
end

return { init=init_func, run=run_func, output= {"MODE"} }


Plus ci-dessous les fichiers son mise a jour aussi !
« Modifié: 17 janvier 2015 à 23:25:34 par djsyl »
IP archivée

Slyfly

  • Membre Héroïque
  • ******
  • Hors ligne Hors ligne
  • Messages: 1 160
    • Panormandic
Dropix MavLink to FrSky X8R S.Port converter
« Réponse #32 le: 18 janvier 2015 à 15:16:46 »


Super boulot,  merci
IP archivée
Hexa S3 65cm 2kg X2212 10X3.3 4S
Quad S3 45cm 1,5kg X2212 10x5 4S
Hexa S1 4kg 3508 580kv 13x5 Brushless 3 axes Nex7
Quad slow fly S3 2kg 3508 380kv 15X5 6S pour cartographie
Ailes volantes S2 2kg pour cartographie
FC : Pixhawk - APM2 - APM 2.5

touchthebitum

  • Membre Senior
  • *****
  • Hors ligne Hors ligne
  • Messages: 618
  • Toujours plus léger
    • Créations 3D Thingiverse
Dropix MavLink to FrSky X8R S.Port converter
« Réponse #33 le: 18 janvier 2015 à 17:09:37 »

Je suis en train de tester le système sur une VrBRAIN 5.2. J'attends encore mon câble converter pour le test final. Super boulot en tout cas.Bravo.
IP archivée
Racers Homemade (impression 3D)  Betaflight
Eachine E10s
Impression 3D Sparkcube Xl V1.1 300x300x200 (PLA/ABS/Filaflex/TPU etc..)
Différents modèles en APM
Frsky Horus (2.4ghz, 868 mhz R9Slim)

frejus

  • Membre Héroïque
  • ******
  • Hors ligne Hors ligne
  • Messages: 2 013
Dropix MavLink to FrSky X8R X6R X4R S.Port converter
« Réponse #34 le: 21 février 2015 à 18:04:22 »

Excellent j'adore !
IP archivée

djsyl

  • Modérateur Global
  • Membre Héroïque
  • ******
  • Hors ligne Hors ligne
  • Messages: 13 634
  • Sylvain - F8byc
    • Club-Aquilon
Dropix MavLink to FrSky X8R X6R X4R S.Port converter
« Réponse #35 le: 21 février 2015 à 19:58:56 »

Gaelphoto

  • Membre Héroïque
  • ******
  • Hors ligne Hors ligne
  • Messages: 3 135
  • "Vers l'infini et au-delà...!"
    • Gaël Arnaud
Dropix MavLink to FrSky X8R X6R X4R S.Port converter
« Réponse #36 le: 21 février 2015 à 23:51:02 »

Surtout le playFile !
IP archivée
° CONNEX
° Skyjib X8 TM U5 - A2 - Zenmuse GH3 pour GH4
° Aerobros, Tmotor MN 4006 380 kv, Naza V2, zenmuse H3 3D
° Quad Z800 avec nacelle frontale pour Alpha 5100, Tmotor 4014 400kv, Pixhawk
° Y6 maison S3, nacelle hexadrone GH4, Phobotics, Tmotor MN 4006 380 kv, A2
° Tweaker 180, SPF3
° Qav 210, FC KISS

chboing

  • Membre Junior
  • **
  • Hors ligne Hors ligne
  • Messages: 33
  • ouai !
[TUTO] Dropix MavLink to FrSky X8R X6R X4R S.Port converter
« Réponse #37 le: 07 juin 2015 à 13:26:53 »

https://github.com/diydrones/ardupilot/issues/1587

ya du nouveau sur ce sujet en bas dans les commentaire j'ai l'impression DjSyl. Je vais sans doute essayer ça perso( voir commentaire 3 mai)
IP archivée

djsyl

  • Modérateur Global
  • Membre Héroïque
  • ******
  • Hors ligne Hors ligne
  • Messages: 13 634
  • Sylvain - F8byc
    • Club-Aquilon
[TUTO] Dropix MavLink to FrSky X8R X6R X4R S.Port converter
« Réponse #38 le: 07 juin 2015 à 13:52:22 »

Tiens nous au parfum ça fait plusieurs fois que j'essai avec des 3.3-dev et que je n'ai pas de signaux a la sortie ...

furynick

  • Membre Héroïque
  • ******
  • Hors ligne Hors ligne
  • Messages: 5 306
    • Bourdons
[TUTO] Dropix MavLink to FrSky X8R X6R X4R S.Port converter
« Réponse #39 le: 07 juin 2015 à 20:51:37 »

Pareil, avec la 3.3-dev j'ai que dalle en sortie ... j'ai un peu laissé tomber à cause de la commande groupée mais il va falloir que je remette le nez dedans !
En plus, avec la rc5 j'ai la télémétrie qui saute donc je suis revenue en 3.2 donc pas de code FrSky.
IP archivée
Bourdons.fr
Tx : Taranis+ & T8J
Roku: FY680, X4108S, 14x4.7, X2&M8XXL, APMC:3.5
Yon²: Talon v2, E600, 14x4.7, X2&M8XL, APMC:3.5, T-2D, H3+S, X8R
Rēsu: TL250C, Kiss18, 5x3³, XSRF4
Kaihatsu: F450, Afro20s, 10x5, X2&M8N, APMC:3.5, X4R
Ka: dead :(