Arduino et SIOC

Tout sur les cartes et la programmation des modules ARDUINO

Arduino et SIOC

Messagede HertZ » Ven 20 Déc 2019 11:46

Bonjour à tous,

Dans le but de créer le FCU pour A320, je me penche depuis quelques temps sur toute les solutions d'interfaçage entre les entrées/sorties et le simulateur. C'est un sujet très vaste qui ma bien retourné la tête. De plus je n'ai pas envie d'acheter des cartes IO car je vois plus l'architecture générale par différents modules indépendants plutôt que par des façades avec beaucoup de câbles reliés à quelques cartes.
Voici alors là où j'en suis arrivé maintenant : 3 solutions.

1) Utiliser des microcontrôleurs et les connecter par usb. Créer un programme qui va dialoguer entre la voie série et fsuipc.
Solution très propres mais je doute d'avoir le temps et surtout les connaissances pour bien optimiser ces programmes.

Comme j'entendais beaucoup parler de la facilité d'utilisation de SIOC j'ai alors voulu connecter un microcontrôleur genre Arduino à un IOCP server, le problème c'est qu'il faut utiliser les protocol TCP/IP qui nécessite un shield. Je me demande alors comment les carte OpenCockpit se connecte par USB ?
Je vois donc deux architectures, mais celle sans liaison ethernet est ma préférée car les shield ethernet coute un peu et si je veut des modules indépendants il en faudrait quelques uns et pas seulement un seul pour interfacer tout. ce qui dans ce cas aurait été acceptable. Voilà donc les deux solutions que je vois si j'ai bien compris comment les choses marchaient :

Image

Selon vous est ce des solutions viables ? L'ennemi principal est la latence...
HertZ
 
Messages: 341
Inscription: 21/05/19

Re: Arduino et SIOC

Messagede A320 hérétique » Ven 20 Déc 2019 13:19

Bonjour,

Sujet bien interressant, je ne vais hélas pas t'aider car je ne suis pas allé plus loin que Arduino + LUA + FSUIPC : ça fonctionne bien, mais un peu lourd ; j'espère que tu vas avoir réponse, car j'aimerai beaucoup mettre des panels plug & play dans la v2 de mon simu !

Michel
http://www.myA320sim.com
Simu mixte P3D/FS2020, serveur P3Dv4/A320 FMGS (7700k et GTX 1070 sous W10 64), client P3Dv4/FS2020 (i9-12900K et RTX 4070 Ti Super sous W10 64), 3 vdp Optoma GT1080E, client A320 FMGS (2600k sous W10 64).
Avatar de l’utilisateur
A320 hérétique
 
Messages: 3357
Inscription: 2/09/12
Localisation: Pornic

Re: Arduino et SIOC

Messagede fab » Ven 20 Déc 2019 13:54

A ta question "comment les cartes OpenCockpit se connectes par USB" je peux répondre : C'est de l'USB HID natif yeuxhaut

ça ne te parle peut être pas, pour simplifier, ce sont des trames qui arrivent par l'USB qu'il faut décoder.
C'est ce que je fais avec mes cartes IO32 compatibles SIOC dont tu peux entrevoir une utilisation dans la vidéo qui suit .

Cela reste une solution souple et efficace
- Souple car SIOC permet de se sortir de pas mal de situation
- Efficace car rapide et sur une USB tu te retrouves avec 128in et 128out (pour mes IO32) voir plus avec les cartes OC en mixant IO et digits

Avec l'Arduino, dès que tu dépasses 50 I/O, tu te retrouves avec soit des shields dédiés IO, soit une multitude de port série ou comme tu le signales, il faut passer par ethernet, avec le risque d'avoir des communications qui lagguent.

Il faudrait trouver quelqu'un qui utilise un cockpit complet à base d'arduino avec un retour d'expérience pour te faire une idée objective.

La solution SIOC/carte IO reste une valeur sûre, surtout depuis l'arrivée sur le marché d'une carte française compatible LoL cligneoeil

Fabien

Exemple de connexion de 2 cartes IO à travers le réseau éthernet :

Avatar de l’utilisateur
fab
 
Messages: 4417
Inscription: 26/12/12
Localisation: Roubaix

Re: Arduino et SIOC

Messagede A320 hérétique » Ven 20 Déc 2019 16:34

Ah super, merçi Fabien.

Michel
http://www.myA320sim.com
Simu mixte P3D/FS2020, serveur P3Dv4/A320 FMGS (7700k et GTX 1070 sous W10 64), client P3Dv4/FS2020 (i9-12900K et RTX 4070 Ti Super sous W10 64), 3 vdp Optoma GT1080E, client A320 FMGS (2600k sous W10 64).
Avatar de l’utilisateur
A320 hérétique
 
Messages: 3357
Inscription: 2/09/12
Localisation: Pornic

Re: Arduino et SIOC

Messagede HertZ » Ven 20 Déc 2019 17:06

Quand je dit plug and play , c'est surtout pour le côté une fois le module fait, je n'ai qu'un câble usb à connecter. Car bien sûr comme je vais devoir écrire les scripts c'est pas plug and play pour celui qui doit le créer. Mais une fois créée ça le sera.

Merci pour la vidéo, elle illustre bien le côté configuration software que je veut avoir à faire au final.
Du côté hardware je pensais à un unique pcb accueillant les composants du module (ex : encodeurs,bouttons pour le fcu) et qui serait aussi une carte IO comme vous avez fait, mais personnalisée en quelque sorte. C'est à dire, réfléchie pour gérer les entrées et sorties strictement nécessaire au module. Ainsi sur la face arrière du module il n'y aurait qu'une prise usb ainsi que l'alimentation. Peut être aussi l'entrée d'alimentation pour le rétroéclairage.
Pour la connexion a IOCP Server par USB je comprends que l'on utilise le protocole USB standard entre le microcontrôleur et le pc , mais ensuite comment le logiciel IOCP va chercher et détecter la carte connectée ? Comment je peut faire reconnaitre au logiciel ma carte arduino comme carte d'entrée sortie. Il me semble avoir compris le protocole IOCP et il passe par TCP/IP, donc pour communiquer par USB il faut faire passer les trames TCP/IP par USB ?

(j'avais dèjà vu vos cartes IO32 en étudiant mes possibilités et je suis admiratif, ça se rapproche de se que je voudrais faire ,mais je n'ai pas encore toutes les compétences... c'est d'ailleurs ce que je me dit souvent que je vois les réalisations de tout le monde ici sourirebis )

La partie gestion des I/O serait pour moi techniquement des shift registers d'entrées et soties gérés par un PIC ou autre microcontrôleur capable d'envoyer ces données par usb sans circuit intégré supplémentaire. Avec en fonction des I/O l'utilisation de MAX7219 par exemple pour les afficheurs 7 segments.

Je me demande après comment la définition dans les scripts SIOC de l'entrée si c'est un encodeur, un display, etc... et gérée.

Maxime
HertZ
 
Messages: 341
Inscription: 21/05/19

Re: Arduino et SIOC

Messagede fab » Ven 20 Déc 2019 17:52

Dans l'utilisation des cartes IO USB par SIOC, il n'y a pas de liaison IOCP, c'est de la pure trame USB entre le hard et le soft !

La couche IOCP est au même niveau de FSUIPC, elle vient après ... L'ordre est le suivant : carte IO <> USB <> SIOC <> IOCP et/ou FSUIPC

Pour approcher le plug and play, j'ai bien dis "approcher", et faciliter la maintenance, une solution élégante consiste à passer par des cartes de brassage, d'un côté il y a des connecteur IO, de l'autre des connecteurs pour les modules, comme pour le MCP du 737 :



Dans ce cas je n'est bien qu'une seule USB pour tout le MCP.

J'ai fait la même chose pour le piédestal
Voilà à quoi tu dois t'attendre pour un piédestal complet :

Image

J'utilise 2 USB avec 5 cartes IO32

Fabien
Avatar de l’utilisateur
fab
 
Messages: 4417
Inscription: 26/12/12
Localisation: Roubaix

Re: Arduino et SIOC

Messagede HertZ » Ven 20 Déc 2019 18:54

Aaaah SIOC est avant IOCP murrouge , pour autant, pour réussir a implémenter ça moi même je me pose de nouvelles questions rirebleu murrouge

Je me demande concrètement ce qui a sur la ligne usb, est ce du style : Arn.Inicio:var0:var1:…:varn:CL , ou complètement autre chose ? Avoir le code des microcontrôleurs m'aiderait peut être mais sur Opencockpit tout es sous format hexadécimal et bien qu'on puisse le retranscrire en assembleur cela ne va pas m'aider plus.

Et quel est la différence entre les infos passée pour un display ou pour un boutton ? est ce que dans les deux cas on ne passe par usb juste le status des sorties ou entrées , dans ce cas il faut un soft pour interpréter le type de composant derrière , ou est ce que cela se fait dans le microcontrôleur ?

C'est un peut le flou pour moi avec SIOC, dans le sens ou je ne sais plus si du coup c'est un langage de programmation ou aussi un logiciel d'interface avec les IOCard ? Dans le cas ou SIOC gère le soft des iocard je ne pourrais pas alors utiliser des cartes personnalisées avec ?

Pour le brassage c'est bien ce que je voudrais au final oui. A la différence que au lieu de faire des pcb pour regrouper les pistes des composants sur des connecteurs et après envoyer ça sur des cartes IO , je penserais plutôt directement intégrer les circuit de gestion des IO au pcb avec les composants si il y a de la place. Je parle pour le fcu en tout cas qui peut mériter une gestion des IO séparée pour lui seul.

En vous remerciant pour votre patience, et je crois que vous n'avez pas encore terminée avec les explications pour que je comprenne sourirebis merci affiche
HertZ
 
Messages: 341
Inscription: 21/05/19

Re: Arduino et SIOC

Messagede fab » Ven 20 Déc 2019 19:38

Pour le HARD et SIOC, c'est du bas niveau, des trames USB à décoder dans un sens et à coder dans l'autre sens. Pas aussi simple que le protocole IOCP qui circule en UDP sur le réseau.

Ta volonté de mettre des modules avec une prise USB derrière est honorable ... tu pourrais le faire avec des arduino pour chaque module, tu as des convertisseurs USB<>serie
Tu peux mettre un PIC USB natif, dans ce cas il te faudra maîtriser le développement côté PC avec l'écriture d'un driver FSUIPC et/ou IOCP vers l'USB. (Tu referais SIOC en fait gratgrat )
C'est pas mal de temps à passer en recherche et développement hard mais aussi logiciel.

Tu peux aussi créer ton propre protocole, comme cela tu maîtriserai la totalité des communications ...

C'est ce que j'ai fait pour le système FDbus pour les jauges, je souhaitait avoir des modules qui mémorisent leur utilisation dans l'avion (un USB dédié aux jauges LoL), résultat, j'utilise 1 prise USB pour une cinquantaine de modules en tout genre, du simple module servo au générateur de vent et autre interface physique !

Ensuite chacun utilise le module en fonction de sa mécanique, le lien simu <> module et assuré par un driver et une carte USB principale.

C'est un peu fou comme projet, mais pourquoi pas ...

Sur ce même forum tu trouveras :
- tabar fait ce genre de chose pour des petits instruments autonome, regarde ce qu'il fait, cela pourra te donner des idées ...
- lolosimule fait aussi pas mal de chose dans le genre "un peu fou" mais qui est plus conceptuel (même moi, j'ai du mal à le suivre ecroulerire )
Avatar de l’utilisateur
fab
 
Messages: 4417
Inscription: 26/12/12
Localisation: Roubaix

Re: Arduino et SIOC

Messagede HertZ » Ven 20 Déc 2019 20:51

Finalement le plus simple sera je pense d'envoyer les données par liaison série dans de l'usb ( comme le fait arduino par exemple) et sur le pc avoir un programme qui réceptionne ces données série et les renvoie dans le réseau sous formes UDP pour IOCP Server. Ce n'est pas trop compliqué en théorie après il faudra voir si le delay de traitement n'est pas trop important. J'ai des microcontrôleurs (ESP32) qui montes facilement à 115200 Baud c'est déjà un bon début.
Après autant ce servir d'ESP32 pourquoi pas exploiter ces capacités Wifi etonneyeux
Le rêve de ne plus avoir de fils sourirebis mais la stabilité est peut être discutable.

Merci pour ces conseils, je vous tiens au courant de mes éssais
Maxime
HertZ
 
Messages: 341
Inscription: 21/05/19

Re: Arduino et SIOC

Messagede fab » Sam 21 Déc 2019 08:17

Il y a encore une solution, tout aussi folle, comme tu es chaud pour concevoir des circuits complets, OC fourni schema et PIC programmé, tu pourrais inclure ceux ci dans ton montage yeuxhaut
Avatar de l’utilisateur
fab
 
Messages: 4417
Inscription: 26/12/12
Localisation: Roubaix

Suivante

Retourner vers Interface & logiciel ARDUINO





Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité