[TUTO SIOC] USB-DCmotor et autothrottle

Tous les tutoriels sur la programmation SIOC, le language des cartes Opencockpits

[TUTO SIOC] USB-DCmotor et autothrottle

Messagede mameloose » Jeu 26 Nov 2015 21:51

bonjour a tous !
un nouveau tuto pour utiliser la carte usbdcmotor d'opencockpit !

la carte se presente comme ca :

Image

pour la connection il suffit de suivre ce shema c'est très simple

Image

on peut donc connecter jusqu'a 6 moteurs de 5 a 36volts ainsi que 4 potentiometres (on verra pourquoi les potentiometres par la suite ... )

ok donc avant de brancher votre carte en usb sur votre PC je conseil d'abord de l'alimenter (chez moi j'ai mis du 5 volts)
parce que sinon la carte risque de ne pas etre reconnue !

bref une fois votre carte branchée vous devriez voir ca dans sioc :

Image

donc on voit bien que la carte n'a pas de numero d'idx et que mon port usb est le 50 chez vous ca sera different bien sur !

maintenant il faut declarer votre carte dans le sioc ini !
pour les carte usb expansion on a lhabitude de voir un truc du genre [master 0,4,1,45]
pour une carte usbdcmotor il suffit juste d'ajouter cette ligne :
[USBDCmotor=0,50]

voila j'ai mis 0 pour l'idx et 50 comme c'est le chiffre de detection de mon port usb...

ensuite j'ai cablé un potentiometre de type 10K sur J3 et un motoreducteur sur les premiers pin de J6

NOUS ALLONS MAINTENANT FAIRE UNE PROG POUR UN AUTOTHROTTLE !
le but est que les manettes de gaz bougent toutes seules comme en vrai !

allez c'est partit ! nous allons commencer par ouvrir un code vierge et declarer les variables qui vont bien ....

comme d'habitude EDIT et NEWVAR
Image

on commence par declarer notre moteur qui est cablé sur l'emplacement numero 1

Image
Image

voila ensuite je vais declarer quelques variables pour controller les manettes de gaz avec mon potentiometre !

je cherche donc toujours dans le sdk les variables pour controller les manettes 1 et 2 (on va prendre un 737 pour l'exemple)

ici la $088C et la $0924 de longueur 2 respectivement pour le controle de la manette 1 et 2

donc a la suite dans mon code toujours EDIT NEWVAR et je selectionne fsuipcinout

Image
Image

ok ca va tout le monde suit ??

une derniere declaration : mon potar bien sur qui va controler mes manettes
ATTENTION une petite nuance avec mon precedant tuto sur les potentiometres : etant donné qu'on se situe sur une carte motor et non expension il faut selectionner notre potar comme un usbanalogic input et non comme un analogic tout court

Image

voila puis ensuite je declare les butées .... alors encore une fois en fonction de votre installation les butées seront differentes ici je vais mettre les butées max puisque c'est une maquette pour lexemple ; donc 0,127,255 .

Image

VOILA tout est declaré ! maintenant on passe au code ..... gnak gnak un petit café s'impose ou une desperados ca depends de l'heure qu'il est ;)

allez on passe au chose serieuse

Tout d’abord nous allons faire comprendre a sioc que le potard doit faire bouger mes deux manettes ! pour cela c'est très simple un clic droit sur le potar et NEWCOMMAND

Image

donc une commande d'assignation qui dit que le moteur 1 est egale a la valeur de mon potar multiplié par 64 !

et la ont dit tous en choeur : pourquoi faut multiiiipllliiieeeerrr ??
c'est tout simple la valeur de notre potar va de 0 a 255
alors que notre moteur dans le sdk on nous explique quel va de 0 a 16383
donc logiquement pour que les deux plages soient les memes on divise 16383 par 255 et la magie ca donne 64 !!

voila on fait pareil pour le moteur 2 donc mon potar va controller les deux moteurs en meme temps chez vous rien n'empeche de faire la manip avec 2 potentiometres ...

Image

voila donc a ce stade on oublie pas d'enregistrer et vous pouvez essayer chez vous le potar fait bouger les manettes de gaz !
waouh !

alors maintenant en imaginant que vous avez un moteur relié sur vos manettes comme en vrai on passe a la suite !

le but et de faire comprendre a sioc maintenant que dès l'instant ou l'A/T arm est activé le moteur tourne dans un sens pour donner de la puissance ; qu'il s'arrete si il se trouve dans la bonne position et au contraire qu'il tourne dans l'autre sens pour reduire les gaz !!

nous allons creer une petite subroutine pour controller tout ca !

ducoup EDIT NEW VAR et SUBROUTINE

Image

voila bon maintenant je vais essayé d'etre le plus clair possible !

en gros quand lautothrottle demande de la puissance il va y avoir un decallage entre la position de mon potar et de mon moteur .
comme on a vu avant mon potar a 0 les gaz sont aux ralentit et a 255 ils sont a fond ! donc si le PA demande daller a fond et que mon potar est a zero le moteur va se mettre en marche pour rattraper cette course .

je vais donc utiliser des variables locales pour faire fonctionner ce systeme .

clic droit sur la subroutine et NEWCOMMAND

Image

donc ici LO est egale a la puissance moteur divisée par 64 (pour avoir la meme valeur que mon potar)

on peut comparer LO a X comme dans une equation mathematique il nous servira pour après ....
puis on continu
Image

ici L1 est egal a LO moins la valeur du potar !
bon ok ca se complique mais c'est simple en gros la resultante est de zero si tout va bien ! ca veut dire que si les gaz sont dans une position fixe que le potar est au bon endroit alors le moteur ne tournera pas ! par contre si une des conditions change alors le moteur devra bouger dans un sens ou lautre ...

donc je vais prendre une petite marge de securité de 10 je mexplique ... si je poursuit mon code normalement en gros si L1 et plus grand que zero alors le moteur va tourner dans un sens puis si L1 est plus petit que zero dans lautre sens !
le probleme c'est qu'il fait ca sans ARRET !! donc surchauffe et tout donc on va rajouter une petite marge de secu pour eviter cela :

Image
Image

ok donc ici si une condition change c'est a dire si l'autothrottle demande a bouger la valeur de L1 va changer et si elle depasse 10 le moteur se mettera en marche jusqu'a ce que le potar suit pour s'aligner (nos manettes en gros)

alors pourquoi 127 pour le moteur ??

les conditions de controle du moteur sont de 0 a 127 et de 128 a 255 .
a 0 le moteur est arreté et plus on va vers 127 plus il tourne vite dans un sens
a 128 le moteur est arreté et plus on va vers 255 plus il tourne vite dans lautre sens !

on peut ajuster la vitesse en mettant la valeur que l'on veut ! moi j'ai mis a fond pour l'exemple !

ensuite je poursuit le code pour le contraire dans le cas d'une deceleration

nouvelle condition IF reclic droit sur la subroutine ...

Image

ici si L1 est inferieur a -10 le moteur tournera a fond dans l'autre sens (255)

on poursuit pour l'arret du moteur donc si L1 est a zero et que tout est aligné donc mes manettes et le moteur ...

Image

Image

voila et pour finir comme nous sommes dans une subroutine il faut faire des appels sur les elements concernés donc le moteur 1 et LENG 1

ducoup clic droit sur chaque variable et call subroutine

Image

et voila ca fonctionne !

un autothrottle comme en vrai !
le principe est le meme pour une roue de trim par exemple ect ....
Avatar de l’utilisateur
mameloose
 
Messages: 1271
Inscription: 20/04/09
Localisation: evreux


Re: tuto sioc usbdcmotor et autothrottle

Messagede mameloose » Jeu 26 Nov 2015 22:21

merci Franck ! c'est valable egalement pour le trim si ca peut t'aider ...
Avatar de l’utilisateur
mameloose
 
Messages: 1271
Inscription: 20/04/09
Localisation: evreux

Re: tuto sioc usbdcmotor et autothrottle

Messagede C6_Pat » Jeu 26 Nov 2015 22:30

Encore un tuto définitif, merci Greg ! applaublanc
" Tout arrive à l'homme qui sait attendre "
.....enfin pas trop longtemps quand même.....
Mon pit' P47 Razorback https://www.checksix-forums.com/viewtopic.php?f=286&t=156962
Avatar de l’utilisateur
C6_Pat
 
Messages: 834
Inscription: 20/12/11
Localisation: Devant l'nordinateur en Alsace

Re: tuto sioc usbdcmotor et autothrottle

Messagede mameloose » Jeu 26 Nov 2015 22:39

merci pat !

une petite video pour illustrer tout ca !

Avatar de l’utilisateur
mameloose
 
Messages: 1271
Inscription: 20/04/09
Localisation: evreux

Re: tuto sioc usbdcmotor et autothrottle

Messagede fcoq » Ven 27 Nov 2015 07:51

Tu parles que ca va m'aider.
merci affiche
Avatar de l’utilisateur
fcoq
 
Messages: 3336
Inscription: 19/05/10
Localisation: Eure et Loire

Re: tuto sioc usbdcmotor et autothrottle

Messagede fab » Ven 27 Nov 2015 08:29

J'en suis jaloux furieuxfumée

Propre ! Bravo Greg . applaublanc

Maintenant, je suis obligé de faire aussi bien ! sourirebis
Avatar de l’utilisateur
fab
 
Messages: 4414
Inscription: 26/12/12
Localisation: Roubaix

Re: tuto sioc usbdcmotor et autothrottle

Messagede mameloose » Ven 27 Nov 2015 11:28

lolaffiche merci Fab
Avatar de l’utilisateur
mameloose
 
Messages: 1271
Inscription: 20/04/09
Localisation: evreux

Re: tuto sioc usbdcmotor et autothrottle

Messagede Boutondair » Ven 27 Nov 2015 11:42

Superbe tuto, merci affiche

Cela va m'aider pour faire fonctionner mon trim mais pas tout de suite

David cligneoeil grandsoleil
Image Image
Petit je rêvais que je volerais, maintenant grâce au virtuel je vole !!!!!
Avatar de l’utilisateur
Boutondair
Administrateur du site
 
Messages: 4174
Inscription: 20/04/09
Localisation: Ballans (17) proche de Cognac


Retourner vers Les TUTOS SIOC





Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 3 invités

cron