[TUTO SIOC] Utiliser une carte Servo pour une gauge IAS

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

[TUTO SIOC] Utiliser une carte Servo pour une gauge IAS

Messagede mameloose » Dim 6 Déc 2015 16:34

et rebonjour ! c'est encore moi ...
un petit tuto pour utiliser la carte servo d'opencockpit .
ATTENTION petite anecdote j'ai eu un probleme la premiere fois ma carte n'etait pas reconnue par mon pc j'ai donc ecrit a opencockpit qui m'a renvoyé un PIC (c'est le petit carré noir au centre de la carte ) que j'ai changé et maintenant ca fonctionne parfaitement !

pour les servos j'ai pris ce modele :

Image

je ne sais pas si c'est les meilleurs mais en tout cas ca fonctionne !
la servo a une course d'environ 170 degrès donc en fonction de vos gauges il faudra installer un systeme de demultiplication avec des roues dentées .... a vous de bricoler !

bien pour le shema de cablage il se presente comme ca :

Image

on peut brancher jusqua 6 servos ; ATTENTION dans le model que j'ai acheté les pin dalimentation ne correspondent pas au pin de la carte j'ai donc du inverser les pin de la servo on peut facilement le faire avec une petite aiguille pour retirer les cables et inverser .
pour J9 l'emplacement de la premiere servo on a donc premier pin 5volts pin du centre data et troisieme pin la masse GND

donc pour ma servo ca fait rouge jaune marron !

ensuite on branche la carte en usb sans oublier de l'alimenter en 5volts sur J2 ; attention aux polarités ...

pour la declaration dans le sioc ini c'est très simple il suffit de rajouter dans la partie CARD CONFIG une ligne ressemblant a ca : [ USBServos=0,27 ]

le premier chiffre correspond au numero idx chez moi j'ai mis 0 pour lexemple et le deuxieme a votre numero de device qui correspond au port usb (chez moi 27) ca sera forcement different chez vous ; avous de determiner cela en lancant sioc puis en modifiant config device ....

bien une fois tout configuré correctement on attaque le code sioc !
avant tout nous allons rechercher dans le sdk l'offset qui controle l'indicateur de vitesse ...
ici il 'sagit de la $02BC de longueur 4 .
dans la description du sdk il est stipulé que les données doivent etre divisées par 128 pour avoir la vrai vitesse en noeuds !

maintenant il s'agit de trouver les butées de notre servo pour cela lancez sioc puis sioc monitor .
la servo doit apparaitre un double clique dessus et un tableau s'affiche avec des curseurs ....

faite bouger le curseur correspondant a votre servo et relever la position extreme gauche puis la centrale puis lextreme droite !

chez moi cela donne 160 ; 666 ; 1023

ok si tout va bien jusque la on commence le code

nous allons declarer notre servo ainsi que la variable de la vitesse

EDIT NEW VAR

Image
Image

voila declaration de la servo avec nos butées
ensuite la variable vitesse

Image

ok maintenant nous allons lier la vitesse a la servo !

un clique droit sur la variable vitesse et new command

Image

alors petite explication ... ici on utilise une variable interne LO qui sera egale a notre vitesse mais divisée par 20 !
alors pourquoi par 20 cela depend de notre course de servo .
les données brut de la vitesse sont multiplié par 128 c'est ce qu'indique le sdk donc pour une vitesse de 100 noeuds la variable enverra 12800 !
la course de notre servo va de 160 a 1023 donc si on divise la valeur brut par 20 pour une vitesse de 100 noeuds la resultante sera de 640 !
notre servo se situera environ a la moitié de sa course ....

allez on continu vous allez comprendre ...enfin jespere !

Image

ici j'utlise L1 qui sera egale a LO donc la vitesse brut divisée par 20 comme on a vu plus haut MAIS j'additionne 160 qui est le point bas de la course de ma servo .
si je ne met pas cela si ma vitesse est egale a zero la servo va chercher a aller en dessous de 160 elle va forcer et c'est le drame ! c'est pour cela qu'il est important de definir les butées dès le debut .
donc avec L1 si ma vitesse est a zero alors la premiere valeur sera en realité de 160 qui correspond a la butée basse du servo .

ensuite on continu mais avec une petite securité pour la butée haute donc nous allons dire que si la valeur de la vitesse depasse les 1022 alors le servo n'ira pas plus loin que 1023 (sa butée haute)

Image
Image

voila et pour finir bien sur une assignation pour dire que notre servo est egale a L1 tout simplement

clique droit sur la variable de l 'IAS et new command

Image
Image

voila donc on resume !

la vitesse donnée par la variable est multiplié par 128 donc 10 noeuds font 1280 ; 50 noeuds font 6400 ect....
on utilise LO pour diviser cette valeur par 20 ce qui correspond environ a notre plage de servo entre 160 et 1023
et grace a L1 la valeur demarre a 160
donc pour 10 noeuds nous avons une valeur de 224 et pour 50 noeuds cela donne 480 ect ect ....

a vous dajuster tout cela en fonction de votre systeme !

quelques photos pour comprendre remarquez la position du servo et de la vitesse sur le cessna !

Image

Image

Image

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

Re: tuto sioc utiliser une carte servo pour une gauge (ias)

Messagede C6_Pat » Mar 8 Déc 2015 23:10

Super ! 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 utiliser une carte servo pour une gauge (ias)

Messagede Boutondair » Mer 9 Déc 2015 11:56

Génial comme toujours applaublanc chouettedoights

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

Re: tuto sioc utiliser une carte servo pour une gauge (ias)

Messagede mameloose » Mer 9 Déc 2015 12:05

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


Retourner vers Les TUTOS SIOC





Qui est en ligne

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