Gamoover

[move]Vous aimez le couscous-boulettes, le chorizo, la Force 4, et la mimolette ? Alors soyez les bienvenus sur Gamoover ! [/move]

[WIP] Scud Race vers PC

Démarré par njz3, Lundi 18 Novembre 2019, 11:11:27 AM

njz3

Ok, c'est vrai que le PWM+Dir c'est universel et utilisable avec les firmware MMos et Etienne.

Si je comprends bien, le code de ta carte fera le transcodage Pwm+dir en entrée vers des commandes purement couple avec les "Drive board Sega" en intégrant plusieurs générations de matos et donc de protocoles (model 2, 3, lindbergh, ...).
Hormis les commandes d'initialisation, tu n'as donc pas besoin d'avoir toutes les fonctions de force feedback, si ?

Si tu laisses la possibilité d'envoyer par RS232 (ou USB) des commandes de couples ou même des commandes d'effet plutôt que via un PWM, ca devient hyper générique et je peux aussi le câbler sur le feeder vJoy en C# ;-)
Ca fait du boulot au niveau du code de ta carte !

Aganyte

En fait, au niveau de la carte, j'ai prévu un truc le plus malléable possible. il y a plusieurs UART, une entrée parallèle 8 bits et l'entrée PWM+DIR.

Black templar

Perso jai été bluffé par le resultat de Lipide au BGS 2019, du coup je part sur un duo Leonardo et Nano.
Partant aussi sur un twin le coté économique est important. Je suis encore pas mal dans le flou mais Lipide m'aide grandement. je ferais surement un compte rendu / tuto lorsque le premier panel sera opérationnel. j'ai tous les éléments sauf le temps malheureusement.

SDF

#19
Si je comprend bien, la difficulté c'est le langage du variateur avec comme contrainte de lui envoyer un signal PWM et DIR. Dans ce cas là, j'ai trouvé une carte qui m'a l'air compatible : celle là Rhaaa putain, elle est en mono, et merde, bon, la meme en tri.
Vous en pensez quoi? Je rappelle que j'ai une lemans pas compatible avec tout ce qui est sorti à l'heure actuelle  >:(
Je met cette carte pour la gestion de la puissance (branchée au moteur et à l'arduino), couplée à l'arduino qui lui balance les infos PWM+DIR et en entrée de l'arduino, le potard du volant. Reste à programmer le code de l'arduino de manière à balancer des effets FFB du windows (si ca n'existe pas encore). J'ai juste?

En regardant la carte de mon précédent post, la STM, je viens de voir qu'elle à un kit logiciel en libre service avec des API compatible arduino etc... Une piste?

njz3

Salut,

J'ai pas compris la solution de lipide512 sur base Leonardo et Nano dont parle Black templar. Ca gère le retour d'effort (FFB) aussi avec les model 3 et les moteurs Lemans/Scud ? J'ai l'impression que cela ne gère que les model 2 avec moteur/embrayage comme la carte originale d'Aganyte.

Nene, ta carte n'est pas un variateur pour moteur brushless, c'est un simple pont en H pour commander des moteurs DC. C'est inutilisable pour les Lemans/Scud.
Je dois un peu nettoyer mon code PC ensuite je publie sur github avec mon code Arduino. Tu verras les types d'effets FFB remontés par les applis Windows ou les émulateurs. Dans un premier temps, je ne vais supporter que le constant torque. On verra pour les autres au fur et à mesure.
J'ai un variateur de marque Technosoft qui est pilotable en couple via une liaison RS232 (trames de qlq caractères), mais il ne supporte que des servomoteurs avec codeur ou capteurs Halls. Je pourrais faire un essai qu'avec la Scud...
Pour le moteur Lemans, je pense que la seule solution c'est d'avoir un variateur avec un code custom pour gérer le potentiomètre comme retour sur l'angle électrique du rotor. C'est dans les tuyaux ;-)

marcus600

intéressant , moi j'ai pour le moment la solution d'aganyte qui fonctionne relativement bien ! (j'ai un daytona) j'etais en L2M2  puis maintenant en PWM+dir  , l'amélioration est grande

a l'afu en cas d'upgrade et / ou d'amélioration  :)

Black templar

Citation de: njz3 le Jeudi 09 Janvier 2020, 11:45:22 AM
Salut,

J'ai pas compris la solution de lipide512 sur base Leonardo et Nano dont parle Black templar. Ca gère le retour d'effort (FFB) aussi avec les model 3 et les moteurs Lemans/Scud ? J'ai l'impression que cela ne gère que les model 2 avec moteur/embrayage comme la carte originale d'Aganyte.



en fait on a viré les trucs genre moteur et embrayage pour remplacer tout ca par un moteur de trotinette Electrique.  :mrgreen:

bandicoot

#23
moi je fais la meme en ce moment j'attend une poulie et une plaque metallique pour mettre un moteur HAPP a la place du bien trop bruyant moteur Model 2  :-\ ( mais merci a lui pour ces bonnes heures de FUN )
Mon pincab
https://www.gamoover.net/Forums/index.php?topic=23174.0
Excusez mes fautes d'orthographe , je tape vite et ne me relis qu'en diagonale , mais j'espère ne pas être le pire :)

marcus600

moi le bruit du model 2 je l entend as avec le caisson et le son fort pour etre en immersion

bandicoot

Malheureusement je suis repassé en appartement et la évidemment  c'est pas le meme delire pour l'immersion  ;D
Mon pincab
https://www.gamoover.net/Forums/index.php?topic=23174.0
Excusez mes fautes d'orthographe , je tape vite et ne me relis qu'en diagonale , mais j'espère ne pas être le pire :)

njz3

#26
Salut Aganyte,
Je rebondis sur ta remarque :
Citation de: aganyte le Mercredi 08 Janvier 2020, 16:38:21 PM
En fait, au niveau de la carte, j'ai prévu un truc le plus malléable possible. il y a plusieurs UART, une entrée parallèle 8 bits et l'entrée PWM+DIR.
Si tu as une solution fonctionnelle pour tester un Leonardo qui génère du PWM+Dir sur une électronique compatible (comme ce que fait Etienne) et un Visual Studio 2019, est-ce que je peux te demander de faire un test de mon soft qui est pour l'instant une preuve-de-concept ?
Pour l'instant j'ai commencé par émuler sur PC avec vJoy ce que fait une carte comme celle d'Etienne, à savoir sortir du PWM+Dir mais en déportant l'intelligence sur le PC (le code Arduino devient bcp plus simple). Dans l'idée, on pourrait rajouter ensuite un traducteur d'effet FFB Windows qui génère des trames emises ensuite vers une Drive Board Sega pour se passer de refaire un variateur ;-)

C'est le projet que voulait faire SailorSat en 2015 il me semble, mais à l'époque vJoy ne gérait pas le FFB.
Chez moi, je ne peux que tester sur table, sans variateur derrière car pas encore de setup prêt.
Même si mon code a l'air de remonter des trucs (avec peut être des couples dans le mauvais sens, attention !), j'aimerai savoir si cela peut fonctionner chez d'autres personnes.
Pour essayer, il faut :
- installer vJoy 2.1.9.1 et configurer un joystick avec 32 boutons, 4 axes X,Y,RZ,Slider1 et 1 Pov continu
- flasher un Leonardo sur lequel on mets le bout de code pour communiquer avec un PC en port COM et on y branche les potars, boutons, sortie PWM+Dir (voir le code pour les pins)
- savoir ouvrir une solution Visual 2019 et entrer dans le code du ManagingThread le bon port COM.
- Lancer la solution en mode debug et l'outil vJoy Monitor et me dire ce que tu vois quand tu bouges le volant ou les pédales/boutons.
- Avec un soft qui gère du FFB (émulateur ou dans tools/fedit.exe), regarder l'axe sl1 sous vJoyMonitor que j'utilise comme visualisation du couple instantanné sorti sur le PWM+Dir.
Le github est là:
https://github.com/njz3/vJoyIOFeederWithFFB


Aganyte

Oui, mettre nos efforts en commun pourrait donner quelque chose de sympa  ^-

Tu parles d'effets, je peux te donner la liste des effets que la carte FFB Sega peut traiter. Dans ce cas, on pourrait utiliser une communication UART à la place du PWM + DIR et envoyer directement des ordres d'effets ou de couples.

njz3

#28
Oui Aganyte, si tu me donnes la liste des codes/valeurs et leurs effets, je peux facilement rajouter un mode de transcodage des 12 effets HID windows vers des trames Sega que l'on peut envoyer sur un uart ou via un Arduino. Evidemment il faut qu'il y ait un minimum de correspondance, ou alors j'émulerai en mode 'constant torque' les effets non supportés si ce mode est dispo dans les codes Sega.
Au départ je voulais brancher en direct un port parallèle PC pour envoyer les codes de FFB sur 8 fils vers la Drive Board Sega du Scud race, mais comme je n'ai pas de stack impossible de savoir quoi envoyer.
Je garde tout de même le mode de génération périodique de consigne de couple (via UArt ou PWM+Dir ou autre) pour les gens qui comme moi veulent utiliser un variateur custom (c'est mon projet initial afin de m'amuser avec le moteur lemans ;-).

Si on ajoute à mon code le transcodage des codes de FFB windows vers des trames directement interprétable par la DriveBoard, un simple Arduino Mega ou Due peut faire la passerelle avec assez d'entrées/sorties pour gérer les boutons et les potentiomètres. Je peux te faire cela très rapidement pour que tu essaies avec différents émulateurs ou jeux PC et que tu me fasses un retour.

L'étape suivante si on veut se rapprocher un maximum du matos d'origine est de faire comme le M2Pac de BigPanik ou le DaytonaUSB de SailorSat, à savoir aller choper en mémoire les bytes sortis de la mémoire des émulateurs. Ce mode d'utilisation peut être fait pour ceux qui veulent se rapprocher au maximum de ce que fait le matos d'origine et avoir par exemple le clignotement des lampes.
Au passage, j'ai mis à jour mon code pour corriger des bugs. Mais encore une fois, cela reste de la p-o-c donc fais bien attention lors de manip !

BigPanik

Les drive board utilisées avec le Model 3 sont trop restrictives. Elles ne gèrent que quelques effets avec 16 niveaux de force et on ne peut pas cumuler les effets.
Mieux remplacer ces 2 cartes (drive board et servi board) par une drive board de Lindberg. Interfacable avec un simple port serie depuis un pc.
VJoy avec FFB semble parfait pour ce que l'on veut faire.

njz3

Ah ok merci pour l'info BigPanik, je ne connais pas assez le matos Sega.
C'est peut être plus simple de passer par une DriveBoard Linbergh en RS232. Reste que moi je n'en ai pas sous la main et que le prix n'est certainement pas donné ;-) En plus, pour les lemans cela ne sera pas utilisable.

Donc, si tu veux essayer, je peux également mettre le transcodage vers la DB Linbergh sous réserve que tu me donnes les commandes.

En discutant avec vous, j'ai l'impression que c'est plus simple que cela soit le code du feeder vJoy qui gère les générations des différentes boards avec un transcodage selon le matos cablé derrière. Cela va simplifier la vie côté code embarqué.
Le seul truc dommage avec vJoy c'est qu'on ne sera pas compatible avec une PS3/PS4 ! Mais bon, une fois bien stabilisé les transcodeurs, j'ai dans l'idée d'essayer ensuite d'avoir le FFB sur une Due en mode USB natif (JoystickLibrary+pluggable HID avec le descripteur de vJoy). Elle aura assez de puissance pour faire la gestion du FFB + gestion des IO + variateur pour la lemans.

Dans un premier temps, dites moi ce que vous préférez tester toi et Aganyte.
On essai sur vos setup et ensuite je rajouterai plus de protocoles vers d'autres modèles de DriveBoard.

SDF

Là ya du lourd, je sens que si vous vous y mettez tous les trois, va falloir suivre ce topic de très près.  :-)= ^-^