Page 1 sur 3

Arduino et SIOC

MessagePosté: Ven 20 Déc 2019 11:46
de HertZ
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...

Re: Arduino et SIOC

MessagePosté: Ven 20 Déc 2019 13:19
de A320 hérétique
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

Re: Arduino et SIOC

MessagePosté: Ven 20 Déc 2019 13:54
de fab
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 :


Re: Arduino et SIOC

MessagePosté: Ven 20 Déc 2019 16:34
de A320 hérétique
Ah super, merçi Fabien.

Michel

Re: Arduino et SIOC

MessagePosté: Ven 20 Déc 2019 17:06
de HertZ
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

Re: Arduino et SIOC

MessagePosté: Ven 20 Déc 2019 17:52
de fab
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

Re: Arduino et SIOC

MessagePosté: Ven 20 Déc 2019 18:54
de HertZ
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

Re: Arduino et SIOC

MessagePosté: Ven 20 Déc 2019 19:38
de fab
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 )

Re: Arduino et SIOC

MessagePosté: Ven 20 Déc 2019 20:51
de HertZ
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

Re: Arduino et SIOC

MessagePosté: Sam 21 Déc 2019 08:17
de fab
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