Encodeur

Would that help ?
 
Dernière édition:
Et Hop
1701282601090.png


le programme de gestion de l'encodeur ici.

Par contre je vois que tu es têtu:cool:.
J'ai déjà dit que ce système fonctionnait très mal car l'encodeur est interprété comme des appuis sur des boutons et que ça ne gère pas l'accélération.
Mais bon, c'est comme pour les enfants faut que tu fasses ton expérience toi-même!

Bon courage
Donc la prochaine étape va être: "J'ai branché un encodeur sur la BU0386X et la pinule des caps tourne super lentement, pouvez vous m'aider?..."

Il faut implémenter un script Lua dans FSUipc et c'est assez compliqué.
"Y'en a qu'on essayé....ils ont eu des problèmes, pour paraphraser Denis Laspales


Alors que c'est implémenté en direct dans Air manager + Arduino ou avec SIOC
 
Dernière édition:
Cela a occasionner pas mal de contacts et de questionnements suite à achat d'encodeurs qui ne fonctionnaient pas sur les cartes IO et sur les cartes Bodnar.

Mais bon, il faut bien que les nouveaux arrivants découvrent le monde :whistle:

Je vous retrouve la vidéo sur les tests des encodeurs avec 2 LED ...
 
Dernière édition:
Rappel sur les encodeurs ...
Ceux qui fonctionnent avec les cartes IO et les Bodnar :



Et 2 autres modèles qui ne fonctionneront pas (sans l'ajout d'un accessoire) :




Et si vous souhaitez tester les encodeurs, le montage :
1701286154352.png
 
Mouais….
Je vois que tu peux régler le cap de 5 en 5 voire de 10 en 10, mais quid du réglage au degré près?
En IFR c’est pas 5 degrés lors d’une approche il faut un cap au degré près.

Tu peux régler le décalage de 10 en 10 degres ET tu peux régler le cap au degré près SANS accélération?
Je suis curieux de voir ça, surtout sur FSX.
J’y suis jamais arrivé sans manips spéciales donc la méthode m’intéresse (s’il y en a une)!

la vidéo n’en montre pas assez.
on va prendre un cas concret: tu pars au cap 360 et tu vas tourner jusqu’au cap 127 exactement.
Combien de tours complets d’encodeur?
 
Dernière édition:
Code LUA avec une carte Bodnar pour FSX - accélérer un encoder

Lua:
Vendor = "Bodnar"
Product = "BU0836X"
Device = 0  -- Multiple devices of the same name need increasing Device numbers.

cwise = 31  --Button number for clockwise turn
ccwise = 30 --Button number for counter-clockwise turn

dev, rd, wrf, wr, init = com.openhid(Vendor, Product, Device, Report)

if dev == 0 then
   ipc.log("Could not open HID")
   ipc.exit()
end


-- Set the boundary time in milliseconds between
-- "fast" (shorter) and "slow" (longer) signalling
FastTimeLimit = 60 -- Adjust to taste

-- Polling time in milliseconds: should be much shorter than
-- the boundary time
Pollrate = 20  -- same as 50 times per second


-- Initialise variables used to keep track of things
LastTimecwise = 0
LastTimeccwise = 0
Lastcwise = false
Lastccwise = false

-- This function will be called by a time event, set at the end of the program before exit.
function poll(Time)
  -- read any data available from the device (only need most recent report)
    data, n = com.readlast(dev, rd)

    if n ~= 0 then
       -- Data was returns, so get the status of two two "buttons" we are using
     Thiscwise = com.TestHidButton(dev, cwise, data)
     Thisccwise = com.TestHidButton(dev, ccwise, data)

         -- See if they've changed since last time
         if Thiscwise ~= Lastcwise then
            -- Clockwise button changed
            -- See if changed in less than the "boundary" time
            fast = 0
            if (Time - LastTimecwise) < FastTimeLimit then
               fast = 1
            end
            LastTimecwise = Time

            -- Toggle a virtual button accordingly
            ipc.togglebitsUB(0x3340, 1 + fast) -- Joy 64, Buttons 0 (slow) or 1 (fast)
         end

         -- Same for counter-clockwise
         if Thisccwise ~= Lastccwise then
            -- Clockwise button changed
            -- See if changed in less than the "boundary" time
            fast = 0
            if (Time - LastTimeccwise) < FastTimeLimit then
               fast = 4
            end
            LastTimeccwise = Time

            -- Toggle a virtual button accordingly
            ipc.togglebitsUD(0x3340, 4 + fast) -- Joy 64, Buttons 2 (slow) or 3 (fast)
         end
  end
end

event.timer(Pollrate, "poll")
 
Je trouve aussi que le cap bouge très vite à chaque pas, étonnant !

Mais comment as tu fais ?
Simple: il a choisi l’événement bouger de 5 en 5 (ou 10, je sais plus) de FSX.
Donc le réglage fin du cap à 127 tu oublies…
Comme disent les Anglais « been there, done that »:ROFLMAO:
 
Dernière édition:
Code pour une carte Bodnar pourFSX pour accélérer un encoder

Lua:
Vendor = "Bodnar"
Product = "BU0836X"
Device = 0  -- Multiple devices of the same name need increasing Device numbers.

cwise = 31  --Button number for clockwise turn
ccwise = 30 --Button number for counter-clockwise turn

dev, rd, wrf, wr, init = com.openhid(Vendor, Product, Device, Report)

if dev == 0 then
   ipc.log("Could not open HID")
   ipc.exit()
end


-- Set the boundary time in milliseconds between
-- "fast" (shorter) and "slow" (longer) signalling
FastTimeLimit = 60 -- Adjust to taste

-- Polling time in milliseconds: should be much shorter than
-- the boundary time
Pollrate = 20  -- same as 50 times per second


-- Initialise variables used to keep track of things
LastTimecwise = 0
LastTimeccwise = 0
Lastcwise = false
Lastccwise = false

-- This function will be called by a time event, set at the end of the program before exit.
function poll(Time)
  -- read any data available from the device (only need most recent report)
    data, n = com.readlast(dev, rd)

    if n ~= 0 then
       -- Data was returns, so get the status of two two "buttons" we are using
     Thiscwise = com.TestHidButton(dev, cwise, data)
     Thisccwise = com.TestHidButton(dev, ccwise, data)

         -- See if they've changed since last time
         if Thiscwise ~= Lastcwise then
            -- Clockwise button changed
            -- See if changed in less than the "boundary" time
            fast = 0
            if (Time - LastTimecwise) < FastTimeLimit then
               fast = 1
            end
            LastTimecwise = Time

            -- Toggle a virtual button accordingly
            ipc.togglebitsUB(0x3340, 1 + fast) -- Joy 64, Buttons 0 (slow) or 1 (fast)
         end

         -- Same for counter-clockwise
         if Thisccwise ~= Lastccwise then
            -- Clockwise button changed
            -- See if changed in less than the "boundary" time
            fast = 0
            if (Time - LastTimeccwise) < FastTimeLimit then
               fast = 4
            end
            LastTimeccwise = Time

            -- Toggle a virtual button accordingly
            ipc.togglebitsUD(0x3340, 4 + fast) -- Joy 64, Buttons 2 (slow) or 3 (fast)
         end
  end
end

event.timer(Pollrate, "poll")
C’est le fameux code Lua pour FSUIPC qui gère l’accélération dont je parlais
 
C’est le fameux code Lua pour FSUIPC qui gère l’accélération dont je parlais

Tu as raison Jacques , la discussion est ici :
 
Simple: il a choisi l’événement bouger de 5 en 5 (ou 10, je sais plus) de FSX.
Donc le réglage fin du cap à 127 tu oublies…
Comme disent les Anglais « been there, done that »:ROFLMAO:
Ah un challenge... Ça me plaît ça.
Pour les anglais oublie avec moi. Je suis de nationalité franco sud africaine.
 
Salut, j'ai pas le temps de faire vidéo.
Voila la prog.
A 88 ms je suis un cran un degré. Mais je peux accélérer en restant appuyer dessus. En restant appuyé sur le poussoir et en tournant la mollette elle va à la vitesse de rotation que je lui donne.
Donc oui , pour un vol IFR c'est ok.
Voila, je suis content d'avoir insisté :)
Vini Viti Vinci :)
Histoire de pas parler comme les Anglais
1701371233364.png
 
Il faut appuyer sur le bouton en plus, c’est la le truc, alors. Du coup tu as affecté une fonction au bouton appuyé sur FSX?
Toujours sceptique, mais bon…
Bon l’essentiel est que ça te convienne.
Fair enough:cool:
 
Dernière édition:
Retour
Haut