Gamoover

Vous êtes nostalgiques des jeux vidéos de votre enfance ? Vous désirez acquérir, ou construire une borne d'arcade ? Vous trouverez ici les réponses a vos questions et une communauté de joueurs passionnés.

brancher un volant sur sega model 3

Démarré par lewisvmlm, Mardi 09 Mars 2010, 16:32:41 PM

SDF

Merci pour l'explication, si je comprend bien, pour mon moteur de le mans, il ne reste que la solution ioni. Ca coute une blinde ce bidulle

njz3

@Nene2k10 : il y a de l'espoir si delo arrive à le faire marcher avec son variateur IONI. Alors, un variateur lowcost du commerce avec contrôle en couple (courant) pourra aussi marcher avec les signaux Hall. L'asservissement ensuite en couple, vitesse et position c'est relativement simple à faire sur l'Arduino par retour codeur. En prise direct, le moteur ne tourne pas vite...

Sur ebay on trouve des variateurs Advanced Motion Control parfois à <50€ avec entrée de commande en couple par PWM ou +/-10V, donc pilotable par l'arduino de delo ou BigPanik (je sais plus lequel des deux à déjà une solution de traduction de commande FFB ou d'émulation de joystick avec FFB).
D'ailleurs, savez-vous si on peut récupérer ces codes sources ? La plupart du temps les liens (ou les projets) sont morts.

C'est bien ce forum, j'ai déjà eu un contact pour une Scud race twin en rade ! Si je la prends alors j'essaierai aussi de mettre la main sur un panel Le mans pour regarder pour faire un contrôle du moteur via codeur/variateur.

delo

@njz3 : merci d'avoir été aussi précis dans les détails de tests  ^-
J'ai en effet tout ce qu'il faut (alimentation de labo, etc..) pour tester, d'ailleurs j'avais fait des manips un peu similaires (mais moins poussées) pour trouver le nombre de pôles du servomoteur model 3  :)
Question voltage, la ioni est limitée par la PSU à savoir 48V, mais ce n'est pas très grave car pour un volant pas besoin de monter au-dessus de 200tr/min environ. Et bien sûr la limite courant est paramétrable ce qui permet d'amorcer.
Si tu peux faire des tests de ton coté avec d'autres contrôleurs (plus low cost) ça serait super  :D . De mon coté j'ai fait plusieurs tests aussi avec un autre contrôleur de la même marque (ARGON) qui marche aussi très bien mais c'est cher aussi  :'( Mes tests avec contrôleur séparés ont tous été fait à partir d'une carte STM32 Discovery : STM32F4 en y intégrant le programme MMOS (simule le joystick, intègre des effets FFB et bien sûr génère les signaux PWM). Je n'ai jamais testé le programme d'Etienne par exemple, mais ça peut être une piste bien évidemment. Si ça peux t'aider j'ai une STM32 qui traine je peux la prêter  :D


Je viens de reprendre le moteur de la Le Mans  :o ce qui est un peu embêtant c'est qu'ils ont directement soudé les butées fin de course sur l'arbre et le châssis du moteur, donc un peu  (:x pour tourner librement. En soit c'est pas grave si on n'utilise pas le volant sur une rotation complète mais pour faire des tests j'aime bien avoir le moteur libre  :'( mais on peut y arriver quand même  ::)

@Nene2k10 : pas de soucis pour faire des tests sur le moteur à partir de la ioni, comme dit avec un encodeur il n'y a pas de raison que cela ne marche pas  :) par contre je manque de temps (je n'ai pas encore avancé sur ma twin par exemple  :'(  pour intégrer les boutons...)
Mais on peut avancer à plusieurs. Si c'est possible de me pondre un montage pour intégrer un encodeur ça me ferai gagner du temps (montage à imprimer en 3D par exemple et encodeur)  ;D

njz3

#227
@delo :
Pour faire le test du codeur sur le moteur Le mans + IONI, si tu as la possibilité financière, je te conseille d'adapter un codeur du type résolveur sin/cos avec émulation incrémental et signaux capteurs hall (le zéro électrique se faisant à la main). C'est les capteurs les plus génériques, ce qui permet ensuite de tester plein de schémas de commande diférents ou de matos plus ou moins chers.
J'en ai trouvé en diamètre 22mm ou 35mm chez une boite qui s'appelle RLS. Ces capteurs sont équipés d'une fonction de reset du "zero électrique" pour les signaux hall, bien pratique pour caler le 0 électrique du rotor après avoir énergiser la phase "1".
Pour avoir les ref exactes, il vaudrait mieux d'abord connaître le nombre de paires de pôles du moteur. Par exemple, pour 4 paires de pôle ce serait :
Model   Ref   Résolution   Conf. 4 paires poles   Aimant sur axe diam.3mm   Prix HT total avec aimant
RMC22   RMC22UD12BAA10   4096pt/tour   Oui   number:RMA03A3A07   32,80 €
RMC35   RMC35UD13BAA10   8192pt/tour   Oui   number:RMA03A3A07   40,70 €

Prévoir aussi:
Cable Molex 12 pins   ACC003   1mètre         10 €

Il reste que pour arriver à une solution DIY vraiment lowcost, c'est pas gagné d'avance.
La première solution ce serait d'utiliser les signaux Hall du codeur, car commander un BLDC avec ces signaux c'est ce qu'il y a de plus simple et donc de moins cher sur étagère.
On pourrait imaginer émuler ces signaux Hall à l'aide du potentiomètre déjà présent sur les panels Sega ou utiliser la position absolue du potentiomètre pour déterminer l'angle électrique permettant de faire la commutation à la main. C'est d'ailleurs probablement comme cela que fait la carte Sega.
C'est faisable en pratique avec une carte de prototypage type Arduino.
Si en plus la même carte sait bien gérer 6 sorties PWM en mode centré et synchronisées avec l'acquisition d'une ou plusieurs entrées analogiques au même moment, ou pourrait même l'utiliser pour envoyer la sauce dans le moteur. (A voir si c'est le cas de la STM32, de l'Arduino Due ou de la Leonardo ?).
Ensuite faut avoir un bon électronicien qui arrive à coller derrière une carte de puissance. Le forum regorge de gens compétents, mais malheureusement très peu ont du temps de libre ;-)

Pour ceux que cela intéresse, un petit topo sur comment on commande un moteur synchrone à aimant permanent (BLDC ou PMSM) en mode commutation par secteurs électriques (aussi appelé commutation trapèze par capteurs Hall):
En théorie, le but est de contrôler 6 sorties d'impulsions PWM à haute fréquence (plusieurs KHz pour éviter des bruits désagréables de hachage) connectées à un triple demi-pont en H, i.e 6 transistors de puissance équipés de diode de roue libre, et d'au moins une résistance de shunt pour mesurer le courant en sortie de chaque demi-pont ou même des 3.

Selon une table de commutation qui dépend de la position du rotor dans le tour électrique sur 6 secteurs de 60° (ça, c'est donné par les fameux signaux Hall) et du sens du couple voulu, on allume un PWM relié à un transistor haut relié au bus VDC et un autre PWM relié à un transistor bas au retour vers GND par une résistance de shunt de faible valeur. Les 4 autres PWM sont éteints. Au milieu des créneaux des pulses PWM (d'où l'importance qu'ils soient centrés), il faut simultanément faire l'acquisition de la tension aux bornes de la shunt (avec une amplification pour ramener ceci dans le 0..3.3V du microcontroleur). Ainsi on peut mesurer le courant circulant réellement dans le moteur lorsque les transistors sont "ON".
Les 2 PWM doivent être bien synchronisés avec l'acquisition et leur largeur d'impulsion correspondra à la quantité de courant qu'on veut faire passer en moyenne (un % du courant max).
Ensuite il faut asservir la durée des PWM pour que le courant mesuré via le shunt soit celui en consigne. Ca c'est facile à faire au niveau programmation. Idem pour la boucle de vitesse puis de position.

Il y a des tonnes d'applications notes sur la commutation par trapèze, c'est vraiment bien expliquée dans la litérature des fabricants TI, ST ou Microchip. Un site sympa avec animations.


delo

#228
C'est souvent le problème dans le cadre d'une passion....le temps  :'( :'(
D'ailleurs c'est pour ça que la solution simucube m'a séduite  :D
C'est quasi plug and play et ça marche diablement bien  :-)= Ok c'est quasi 400€ c'est vrai  ::) mais ça nous fait gagner des heures de taf et nous permet de nous concentrer sur autre chose où il n'y a pas de solution. ;D
Donc de mon coté pour l'instant je vais rester sur cette solution :?

Par contre pouvoir y mettre le moteur Le Mans est intéressant. Pour l'encodeur c'est pas le coté mercantile qui me fait souci mais plutôt qu'à court terme je ne vais pas pouvoir l'intégrer dessus comme ça  :'( il faut bricoler une pièce d'adaptation : un peu de méca quoi  ;D ;D

Petite question au passage : pourquoi la phase d'initialisation du servomoteur est plus lente quand l'encodeur incrémental est moins résolu  =?= je m'en suis rendu compte en permutant différent encodeur...

njz3

Pour ta dernière question sur l'initialisation, c'est effectivement pas logique d'avoir un mouvement plus lent avec un codeur moins résolu.
La prise de zéro sur une butée se fait normalement à vitesse constante (donc un nombre de pulse codeur/seconde constant) jusqu'à ce que le système de commande du moteur détecte une sur-intensité correspondant à un couple de blocage. Peut être as-tu mal configuré ton variateur IONI ?
Question au passage : est-ce que le IONI procède à un alignement initial du rotor (énergisation d'une phase) avant d'aller ensuite sur la butée ?

delo

Citation de: njz3 le Mardi 17 Septembre 2019, 18:00:27 PM
Pour ta dernière question sur l'initialisation, c'est effectivement pas logique d'avoir un mouvement plus lent avec un codeur moins résolu.

En fait le mouvement n'est pas plus lent c'est juste que la phase d'initialisation dure plus longtemps avec celui moins résolu  =?=
J'ai fait les 2 manips identiques en ne changeant juste que l'encodeur (et bien sûr paramétrer la bonne résolution à chaque fois dans le contrôleur IONI).... les deux encodeurs étaient celui d'origine du moteur model 3 (90ppr) et l'autre est une banale roue codeuse à 1000ppr (installée via un support imprimé en 3D).

Pendant la phase d'initialisation, il ne semble pas qu'il aille jusqu'en butée mais tourne de droite à gauche seulement...faut que je vérifie j'ai pas la manip sous la main  :?

Citation de: njz3 le Mardi 17 Septembre 2019, 18:00:27 PM
Question au passage : est-ce que le IONI procède à un alignement initial du rotor (énergisation d'une phase) avant d'aller ensuite sur la butée ?

Aucune idée... ;D mais j'aurai tendance à dire non.
De mémoire voici la procédure : à l'allumage le contrôleur fait tourner le moteur de gauche à droite quelques temps et s'arrête. C'est la STM32 qui a enregistré la dernière position centrale du "zéro" (c'est-à-dire centre du volant ici) via l'encodeur et qui va "envoyer" le moteur sur la position de ce fameux "zéro" (centre du volant).
En me relisant je ne sais pas si je suis clair  :D :D 

njz3

#231
Salut delo,

Est-ce que tu as essayé de brancher le moteur direct drive de la le mans sur la IONI via un codeur ?
Dans tes derniers messages sur la IONI + simcube, est-ce que tu as réussi à faire tourner les émulateurs model 2 et model 3 avec le retour d'effort ?

De mon côté je vais récupérer une twin scud race d'un membre du forum (qui se reconnaîtra, merci à lui ;-) dans quelques semaines et je vais essayer d'"émuler" la drive board d'un model 3 via un arduino cablé entre le PC et un variateur commercial. BigPanik a mis le protocol sur son site perso, et comme l'émulateur model 3 (supermodel) est accessible en open source, les trames envoyées à la drive board peuvent être dirigées vers un autre port de communication. Ce que je cherche à faire c'est de remplacer complètement l'électronique Sega d'origine (stack+driveboard+motor board) pour n'avoir qu'un PC + arduino + variateur commercial. L'objectif est de garder le hardware d'origine du volant, pédale et moteur pour le retour d'effort. En terme de prix ce sera plus cher, mais peut être plus pérenne... et pour mes enfants, swapper de jeu sera un jeu d'enfant.
Tiens moi au courant pour tes essais
Ben


delo

#232
Citation de: njz3 le Vendredi 27 Septembre 2019, 15:01:22 PM
Est-ce que tu as essayé de brancher le moteur direct drive de la le mans sur la IONI via un codeur ?

Non, faudrait m'aider sur ce coup là car il y a un peu d'adaptation à faire pour mettre un encodeur

Citation de: njz3 le Vendredi 27 Septembre 2019, 15:01:22 PM
Dans tes derniers messages sur la IONI + simcube, est-ce que tu as réussi à faire tourner les émulateurs model 2 et model 3 avec le retour d'effort ?

Oui ça marche  ^- j'ai utilisé le plugin de Boomslangnz

Citation de: njz3 le Vendredi 27 Septembre 2019, 15:01:22 PM
De mon côté je vais récupérer une twin scud race d'un membre du forum (qui se reconnaîtra, merci à lui ;-) dans quelques semaines

Cool  :-)=

Citation de: njz3 le Vendredi 27 Septembre 2019, 15:01:22 PM
je vais essayer d'"émuler" la drive board d'un model 3 via un arduino cablé entre le PC et un variateur commercial. BigPanik a mis le protocol sur son site perso, et comme l'émulateur model 3 (supermodel) est accessible en open source, les trames envoyées à la drive board peuvent être dirigées vers un autre port de communication. Ce que je cherche à faire c'est de remplacer complètement l'électronique Sega d'origine (stack+driveboard+motor board) pour n'avoir qu'un PC + arduino + variateur commercial. L'objectif est de garder le hardware d'origine du volant, pédale et moteur pour le retour d'effort. En terme de prix ce sera plus cher, mais peut être plus pérenne... et pour mes enfants, swapper de jeu sera un jeu d'enfant.

Pourquoi vouloir forcément émuler la drive board model 3 ? Si tu utilises un arduino leonardo avec le programme d'Etienne ou une STM32 avec le programme mmos le PC le reconnaîtra comme un périphérique HID et sera compatible avec tous les jeux  :D Pour les émulateurs model 2 ou 3 ça fonctionne bien, avec le plugin de Boomslangnz encore mieux d'ailleurs  =:))
Sinon si tu te focalises que sur l'émulation de la drive board model 3 tu ne pourras jouer qu'au jeux correspondants, c'est peut-être dommage  :?

Sur un autre sujet : j'ai pris 30min pour ouvrir la SR2 et faire du repérage de câble, voici donc directement le schéma de sortie du stack annoté des différents boutons.



Au passage, la boîte de vitesse est codée avec 3 entrées seulement (voir schéma). Est-ce que certains ont déjà fait un petit montage pour ressortir la boîte sur 4 entrées indépendantes ? C'est pas méchant à faire mais si certains s'y ont penché dessus... ;)

Par contre je n'ai pas réussit à retrouver le bouton "credit" du panel :



D'ailleurs, il n'apparaît même nul part dans le menu test du jeu original....est-ce qu'il n'est pas "câblé" sur le stack  =?= Car j'ai bien vu des fils relié sur le bouton à l'arrière....

BigPanik

#233
Hum volant/gaz/frein sont normalement sur A/D 0/1/2 (CN1 et CN11)

Le bouton credit part directement dans la coin box. Il n'est pas câblé directement sur le model 3

SDF

Pour le shifter en 4 vitesses/3 switchs, je te conseille d'en rajouter un, ca permet surtout d'eviter d'avoir une vitesse enclenchée en permanance (parametrage relou). 
Un peu de lecture :
https://forum.hfsplay.fr/viewtopic.php?f=20&t=16332&p=238943#p238943
D'ailleurs, faut que je le termine ce tuto

BigPanik


njz3

Citation de: delo le Lundi 30 Septembre 2019, 21:37:21 PM
Non, faudrait m'aider sur ce coup là car il y a un peu d'adaptation à faire pour mettre un encodeur
Désolé de ne pouvoir t'aider pour ça, je suis quasi manchot niveau méca.

Citation de: delo le Lundi 30 Septembre 2019, 21:37:21 PM
Oui ça marche  ^- j'ai utilisé le plugin de Boomslangnz
Pourquoi vouloir forcément émuler la drive board model 3 ? Si tu utilises un arduino leonardo avec le programme d'Etienne ou une STM32 avec le programme mmos le PC le reconnaîtra comme un périphérique HID et sera compatible avec tous les jeux  :D Pour les émulateurs model 2 ou 3 ça fonctionne bien, avec le plugin de Boomslangnz encore mieux d'ailleurs  =:))
Merci pour les infos. N'ayant pas sous la main de volant USB, je ne savais pas que les émulateurs model 2 et model 3 avaient déjà un support pour des volants à FFB. Du coup, je pensais qu'il n'y avait que des solutions comme M2pac de faisable.
Sais-tu où on peut trouver le programme Arduino ESP WHEEL d'Etienne ? J'ai trouvé des liens vers AI-wave mais ils sont morts en général (ex: http://www.racingfr.com/forum/index.php?showtopic=49848).
Pour l'émulation USB du volant, BigPanik m'a donné des pointeurs vers des solutions sur github (library arduino) que j'ai commencé à regarder et qui sont compatibles avec l'Arduino Due.

Citation de: delo le Lundi 30 Septembre 2019, 21:37:21 PM
Sinon si tu te focalises que sur l'émulation de la drive board model 3 tu ne pourras jouer qu'au jeux correspondants, c'est peut-être dommage  :?
Bin comme dit plus haut, je pensais que si on voulait jouer au model 2/3 il n'y avait pas d'autre choix que le M2pac ou M3pac !
Bon en plus cela me fait un peu "tripper" de faire un variateur brushless lowcost sur base Arduino. J'ai trouvé cela qui pourrait convenir mais c'est à adapter pas mal pour les moteurs des panels 2/3:
https://github.com/collin80/DueMotorCtrl

Pour l'instant j'ai fait un petit montage sympa sur table avec un DRV8302 (https://fr.aliexpress.com/item/4000126430773.html), un Arduino Due et un moteur BLDC cablé avec son encodeur. J'avance à petits pas, mais le moteur tourne alors ca m'encourage à poursuivre :D

Autre question : est-que avec soft15kHz on est capable de brancher directement une sortie VGA d'un PC sous Windows 10 sur un CRT de racecab Scud Race (écran 25kHz ?) ou est-ce qu'il faut mettre une carte entre le PC et le CRT ? Et le fait de passer dans le bios avant, ca craint pour le CRT ?


Aganyte

Je me jette dans la bataille les deux pieds en avant  =:))


njz3

Génial ! Je veux bien participer aux tests ;-)
Faute d'avoir déjà des panels model 3 (scud race en attente), j'ai récupéré des panel Le Mans avec motor board et drive board qui marchent. Pour l'instant j'en suis à pouvoir faire tourner un moteur avec un variateur custom en supprimant la drive board et la motor board mais il me reste encore beaucoup de boulot.
Partant du principe que la commande des drive board model 3 c'est du 8bit parallèle et que les codes des fonctions FFB sont en partis connus, on peut imaginer aussi qu'on passe du protocole de commande en RS232 vers des effets compatibles sur ces panels, sans avoir à changer la drive board par une custom ? Est-ce que la fréquence de rafraichissement (bande passante) est assez élevée ?
Par ailleurs, si on utilise le soft d'Etienne, la sortie PWM+dir peut se coder en fonctions d'intensité de "couple" sur ces cartes mais comment tu récupères l'encodeur pour à la fois la Leonardo avec "Etienne" et la drive board Sega ? Tu branches en parallèles les fils (pas bon pour l'impédance vue par les sorties codeur, si ?).