Gamoover
Forums " WORKSHOP" => Contrôleurs, Interfaces & hacks => : lipide512 Sunday 09 December 2012, 18:21:48 PM
-
Bonsoir à tous !
J'ai depuis quelques temps quelques meubles sega rally sur les bras, l'un d'eux que je vais conserver était en assez bon état. Mais le hardware sega m'a fait un peu peur pour le long terme. Donc j'ai décidé de convertir ma machine en emulation model 2.
Pour ce faire je ne souhaitais pas me séparer des contrôles d'origine. Seul souci, l'ensemble des contrôleurs sega utilisent des potentiomètres 5kO ou 10kO. Il y a la solution d'utiliser une carte de conversion de valeur... mais c’est bien indépendant de l'interface qui devra être en plus derrière.
La solution que j'ai sélectionné se base sur le projet UnoJoy qui permet de transformer le petit module expérimental Arduino Uno en interface joystick HID sous windows et sur ps3.
Le diagramme des boutons reprend donc le schéma d'une manette ps2/ps3.
Au niveau du module, pour ceux qui ne connaissent pas, il s'agit de ça :
(http://gamoovernet.pixhotel.fr/pics_gamoovernet690px/20121209180022-lipide512-arduino-r3.jpg) (http://gamoovernet.pixhotel.fr/pics/20121209180022-lipide512-arduino-r3.jpg)
Le arduino en photo est une copie chinoise, le arduino étant une interface universelle et opensource.
Plus d'infos ici :
http://www.arduino.cc/
Ça coute actuellement 11.61 euros frais de port inclus sur dealextreme.
http://dx.com/p/funduino-uno-r3-mega328p-board-for-hw-sw-engineers-development-tools-150802
Vous disposez basiquement de 6 entrées analogiques et 10 entrées digitales (dans un premier temps)
L'avantage c’est que la lecture sera possible quelque soit le potentiomètre branché (et ça c'est cool !)
(http://gamoovernet.pixhotel.fr/pics_gamoovernet690px/20121212165332-lipide512-arduino-unojoy.gif) (http://gamoovernet.pixhotel.fr/pics/20121212165332-lipide512-arduino-unojoy.gif)
Dans mon cas je l'utilise pour le volant, les pédales, les boutons start / VR, TEST, SERVICE ainsi que la boite vitesse qui est assignée aux points de vue.
A l'utilisation, c'est parfait.
La seule différence avec une programmation classique du arduino réside dans la possibilité de le faire reconnaitre directement en périphérique HID (autrement dit en joystick).
Cela nécessite le passage en mode DFU puis le lancement d'une commande BAT. C’est assez simple et facile à mettre en œuvre.
Le lien vers l'excellent projet Unojoy :
http://unojoy.tumblr.com/
LE MINI TUTO
Notice : Toute l'équipe et moi même ne pourront être pris pour responsables de tous dégâts physiques, financiers ou intellectuels à la suite de la lecture de ce mini-tuto.
Les archives nécessaires :
arduino-1.0.3-windows
http://arduino.cc/en/Main/Software
JRE – ATMEL Flip Installer - 3.4.5.106
http://code.google.com/p/unojoy/downloads/detail?name=JRE%20-%20Flip%20Installer%20-%203.4.5.106.exe
UnoJoyWin-24May2012
http://code.google.com/p/unojoy/downloads/detail?name=UnoJoyWin-24May2012.zip
On commence par installer les softs et dezipper les archives arduino et unojoy.
(http://gamoovernet.pixhotel.fr/pics_gamoovernet690px/20121215140551-lipide512-installaltion-drivers.jpg) (http://gamoovernet.pixhotel.fr/pics/20121215140551-lipide512-installaltion-drivers.jpg)
Il faut installer le drivers pour le arduino rev3 (celui dispo sur le lien dealextreme)
sous 8 ça peut poser quelques inconvénients parce qu'ils ne sont pas signés. J'ai mis à la fin la procédure pour bypasser ce pb. (j'ai fait le tuto sous 8)
Une fois le drivers installé, le arduino sera configuré par défaut en com3 ...au besoin nous pouvons le passer en com1 si il est libre dans le panneau de config / système / périphériques et arduino -> avancé
S'il reste en com3 bien s'assurer que le arduino est reconnu dans le logiciel de programmation arduino.
Nous allons injecter ou téléverser le code unojoy dans le arduino :
Exécutez arduino.exe dans arduino-1.0.3 et fichier->ouvrir-> sélectionner le fichier « UnoJoyArduinoSample.ino » dans le répertoire unojoywin-> UnoJoyArduinoSample
(http://gamoovernet.pixhotel.fr/pics_gamoovernet690px/20121215140822-lipide512-interface-arduinoprog.jpg) (http://gamoovernet.pixhotel.fr/pics/20121215140822-lipide512-interface-arduinoprog.jpg)
- Une fois le code *.ino chargé téléversez !
(http://gamoovernet.pixhotel.fr/pics_gamoovernet690px/20121215140836-lipide512-televersement.gif) (http://gamoovernet.pixhotel.fr/pics/20121215140836-lipide512-televersement.gif)
Installez "atmel_flip" et "atmel_dfu mode" dans le répertoire unojoywin->drivers
(il s'agit de libs nécessaires au passage en mode spécifique pour changer le type de hid du arduino)
- Passez le arduino en mode DFU en touchant brièvement les pins.
(http://gamoovernet.pixhotel.fr/pics_gamoovernet690px/20121216145945-lipide512-dfu.jpg) (http://gamoovernet.pixhotel.fr/pics/20121216145945-lipide512-dfu.jpg)
Rendez vous dans le répertoire unojoy :
- Lancer le ficher « TurnIntoAJoystick.bat »
(http://gamoovernet.pixhotel.fr/pics_gamoovernet690px/20121215140919-lipide512-turn.gif) (http://gamoovernet.pixhotel.fr/pics/20121215140919-lipide512-turn.gif)
Deux séquences se lancent successivement, la seconde est dédiée spécifiquement à notre arduino Uno R3 : 0 erreur, c'est un succès !:)
Si vous rencontrez une erreur assurez vous d'avoir tout fait dans l'ordre.
Plus qu'à débrancher et rebrancher le arduino du port usb et il est reconnu comme un joystick dans le panneau de configuration, aucun driver n'est nécessaire.
(http://gamoovernet.pixhotel.fr/pics_gamoovernet690px/20121215141020-lipide512-unojoy-interface.gif) (http://gamoovernet.pixhotel.fr/pics/20121215141020-lipide512-unojoy-interface.gif)
Les interfaces digitales sont les boutons - pour les faire agir, il faut faire un circuit entre le GND de la même colonne et un des boutons...
(http://gamoovernet.pixhotel.fr/pics_gamoovernet690px/20121215143006-lipide512-digital.gif) (http://gamoovernet.pixhotel.fr/pics/20121215143006-lipide512-digital.gif)
Pour l'analogique :
Il faut apporter le +5 de la colonne A, le brancher à une extrémité du bornier du potentiomètre et prendre la masse à l'autre extrémité. La pin du milieu qui nous servira de curseur sera la valeur du potentiomètre en fonction de sa position : elle sera reliée sur le bornier de A0 à A5... selon l'axe que l'on veut piloter.
(http://gamoovernet.pixhotel.fr/pics_gamoovernet690px/20121212165413-lipide512-curseur.gif) (http://gamoovernet.pixhotel.fr/pics/20121212165413-lipide512-curseur.gif)
Vous pouvez inverser la valeur en inversant +5V et GND.
FAQ :
Le arduino reboote ou plante :
Il s'agit d'une mauvaise connexion et d'un court circuit franc.
Vous comprendrez qu'il vaut mieux éviter.
L'usb clignote ...
raison idem ci-dessus
Le arduino est vu comme un joystick mais ne répond à rien même à un test sur un port digital:
c’est que la séquence de téléversement a dû échouer. Assurez vous bien qu'elle est un succès.
Le arduino ne répond pas normalement aux contrôles analogiques dans le panneaux de configuration :
cela vient du fait que le arduino n'a pas de valeur d'entrée sur des pins analogiques. Ce n'est pas un problème tant que vous sélectionnez un axe exploitable pour votre application. Il faut faire la bonne combinaison selon votre utilisation.
La plage d'utilisation n'est pas bonne :
Faites un calibrage sous windows dans le panneau de configuration.
Certains jeux/roms accélèrent ou freinent tout seul:
Il faut inverser l'axe dans la configuration de l'émulateur / jeu ou intervertir les +5V et la masse du potentiomètre incriminé... sous mame certaines roms exploitent la valeur du potentiomètre à l'envers... c'est étrange mais je l'ai remarqué - il faudra les configurer séparément
Voilà.
=:))
Drivers Arduino non certifiés et windows 8, voici la procédure en VO :
I have come up with an alternative method to install the Arduino drivers on Windows 8.
This method does not require new driver files or installation of a test signature.
1. Windows Key + R
2. Enter shutdown.exe /r /o /f /t 00
3. Click the "OK" button
4. System will restart to a "Choose an option" screen
5. Select "Troubleshoot" from "Choose an option" screen
6. Select "Advanced options" from "Troubleshoot" screen
7. Select "Windows Startup Settings" from "Advanced options" screen
8. Click "Restart" button
9. System will restart to "Advanced Boot Options" screen
10. Select "Disable Driver Signature Enforcement"
11. Once the system starts, install the Arduino drivers as you would on Windows 7
-
Je pourrais détailler la procédure si vous êtes intéressés vu que j'ai encore 2 machines à équiper.
A ton avis =?= :D
Merci par avance ;)
-
Salut,
Même si je n'ai pas de racecab SEGA, je vais suivre ce projet avec grand intérêt ! ^-
A+
-
Salut, +1 pour un petit tuto
=:))
-
ok pour un petit tuto ! :)
Je m'étonne d'ailleurs que personne n'ai déjà proposé cette solution tellement c'est simple.
Le projet peut s'adapter très facilement à vos besoins : vous pouvez aussi interfacer un panel 1 joueur digital + spinners par exemple... ce sera un de mes prochains wip pour faire évoluer une borne proprement et jouer à Arkanoid dans de bonnes conditions.
Notez que vous pouvez assigner des touches via joy2key comme avec n'importe lequel de vos joystick / interface USB, je pense à ESCAPE par exemple pour sortir des emuls.
J'ai un petit diagramme des sorties dispo ainsi que le câblage d'un potentiomètre (ça peut aider certains) je le posterai demain.
Niveau électricité, le arduino sort du 5v de l'usb pour les potentiomètres donc il est autonome.
La dernière version de unojoy devrait permettre d'émuler deux joysticks.
ps : le arduino en photo est une copie chinoise, le arduino étant une interface universelle et opensource.
Plus d'infos ici :
http://www.arduino.cc/
Le lien vers l'excellent projet Unojoy :
http://unojoy.tumblr.com/
-
Super ^-
Ca parait simple pour toi, mais pour celui qui n'a jamais tripoté les arduino&co faut relire plusieurs fois... :D
J'ai une question quand même puisqu'il est fait mention des contrôles d'origine : Quid du retour de force ?
-
Non c'est vraiment simple... mais j'ai relu plusieurs fois ! :-\
Pas de retour de force dans le projet initial désolé... Donc pour notre application, on se cantonne aux contrôles analogiques classiques : pédales, volants, spinners, potentiomètres, joy analogiques...
edit : guidons, manettes, poignées... aussi ... ;)
Il est clair que si via le hid, le arduino pouvait renseigner un relais... ce serait carrément énorme.
Je vais demander conseil à un pro ! :)
-
Super idée :)
L'interface ne dispose pas de sortie ? (pour justement pousser un peu le concept et voir pour le retour de force :o)
-
Si justement, on peut faire ce que l'on veut en E/S.
Niveau relais faut voir si un modèle 4 sorties en 10A peut coller... celui ci-dessous coute 6.03 € !:)
http://dx.com/p/arduino-compatible-4-channel-relay-shield-module-144762
Arduino Compatible 4-Channel Relay Shield Module
ModelN/AQuantity1MaterialPCBFeatures4-channel input and output system; Control signal: TTL level; Rated loading: AC 250V / 10A; AC 125V / 10A, DC 30V / 10A; DC 28V / 10AApplicationArduino DIY projectP
-
Niveau relais faut voir si un modèle 4 sorties en 10A peut coller... celui ci-dessous coute 6.03 € !:)
Hello,
A noter qu'on peut aussi prendre un relais lambda et ajouter les composants en complément (de mémoire une résistance et une diode).
On peut aussi commander plus de relais qu'on a de sorties analogique. Là encore c'est de mémoire mais avec 3 ou 4 sorties on peut commander le nombre qu'on veut du moment qu'on n'a pas besoin d'une réponse instantanée (ça doit être rapide quand même, j'avoue ne pas avoir eu l'occasion de tester) :
On met une puce et on cycle entre ses sorties. Du coup, on peut avoir le nombre de sorties qu'on veut, simplement on envoie une séquence de 0 et de 1 à appliquer par la puce aux différentes sorties.
Pour les curieux :
Augmenter le nbre de sorties avec 74HC595N (http://arduino103.blogspot.fr/2011/06/augmenter-le-nbre-de-sorties-avec.html)
Régis.
-
Suite à quelques discussion, cela parait très envisageable d'interfacer le ffb sur un arduino via les relais... faudra juste s'assurer que ça correspond au mode de fonctionnement du volant. Par contre perso j'ai pas le skill et mon beauf n'a pas le temps (déjà plein de projets en cours...)
Si quelqu'un se sent de plancher sur le sujet, je pense que ça peut être quelque chose de plus universel que l'aganyte board... puisque dans le relais on rentre ce qu'on veut... En plus j'ai dans un coin un panel de model 2 à modifier... dès que j'ai trouvé un volant à mettre dessus ! ;D
-
BP avec déja fait quelque chose avec le BP79 (http://www.gamoover.net/Forums/index.php?topic=8991.0).
:)
La solution que j'ai sélectionné se base sur le projet UnoJoy qui permet de transformer le petit module expérimental Arduino Uno en interface joystick HID sous windows et sur ps3.
Mais on va perdre le force feedback du logitech/L2M2 ?
Et en branchant les potards d'origines sur le logitech, c'est finalement ce que fait ton montage :D
EDIT : J'ai lu de travers, tu réponds donc à mes questions :-\
Je pense que le projet le plus utile serait juste une conversion de valeurs/plage d'utilisation d'un potentiomètres.C'est universel et pas besoin de se soucier du matériel derrière.
Si je peux me permettre , le mieux serait que tu essayes le BP79 , quitte à l'améliorer, et de nous faire un tuto pour une mise en place facile.
Car je l'avais essayé et je m'étais heurté à certains problèmes.
:)
Pour les relais du FFB , Aganyte avait déjà essayé mais l'oscillation était trop importante et il restait collé.
Je pense que c'est un chouette projet. Mais je pense qu'Aganyte a fait une belle avancée sur le sujet pour le Happ/Model2 et ré-inventer la roue serait dommage :-\
:)
-
Moi je vous avouerais que je suis un peu perdu sur les solutions à mettre en place.
Si j'ai à peu près suivi (j'ai pas pu tout lire et des fois j'ai un peu décroché je l'avoue) :
- La carte d'Aganyte permet d'interfacer un volant Happ en utilisant l'électronique d'un Logitech (et, à priori devrait fonctionner avec d'autres type de volant fonctionnant sur le même principe)
- Le projet de BP permet de convertir les valeurs des potentiomètres pour rendre universel ?
- Le projet proposé par Lipide serait de pouvoir interfacer un volant sur une ps3 ou un pc (ce que fait BP en fait?)
Donc l'idéal serait de pouvoir interfacer un volant sega ou happ sur un pc ou une console de façon universelle sans avoir à dépouiller/utiliser un autre volant. On laisse tout d'origine et on branche dessus, genre faire une universal racing cab en jamma et on y met ce qu'on y veut ensuite ?
J'ai bon ou j'ai rien compris ?
-
On laisse tout d'origine et on branche dessus, genre faire une universal racing cab en jamma et on y met ce qu'on y veut ensuite ?
C’est précisement l’intérêt de unojoy - tu branches tes contrôles directement dessus... pas de hack pad etc... le montage de bp sert uniquement à convertir un potentiomètre en un autre afin de pouvoir l'interfacer sur un hack volant/manette.
Dans le cas actuel :
- Potards d'origine en 5kO
- Interface Bp pour mettre le 5kO en 10kO ou 100kO(plus vraisemblable)
- Hack volant pour brancher le signal converti 10 ou 100 kO
- Montage aganyte board pour le ffb du volant hacké (dans le cas d'espèce un logitech)
Dans le cas du uno joy
- Potards d'origines sur le uno joy qui transmet les contrôles au pc (dans 90% des cas de conversion model2...)
- un jour? relais pour le moteur ffb d'origine...
Unojoy ne gère pas le ffb. Ce que fait (très bien à priori) l'aganyte board actuellement. Techniquement (et théoriquement) il est possible de récupérer les informations de ffb via unojoy et le arduino et le transmettre à un relais.
--- désolé pour la qualité des photos c'était pas fait pour mais ça trainait dans mon tel et ça permet d'illustrer un peu mes propos ---
Unojoy et le arduino, à plat niveau câblage des potards d'origine, ça donne ça :
(http://gamoovernet.pixhotel.fr/pics_gamoovernet690px/20121211125613-lipide512-IMG-20121126-231042.jpg) (http://gamoovernet.pixhotel.fr/pics/20121211125613-lipide512-IMG-20121126-231042.jpg)
(http://gamoovernet.pixhotel.fr/pics_gamoovernet690px/20121211125514-lipide512-IMG-20121126-231049.jpg) (http://gamoovernet.pixhotel.fr/pics/20121211125514-lipide512-IMG-20121126-231049.jpg)
Et dans la borne ça :
(http://gamoovernet.pixhotel.fr/pics_gamoovernet690px/20121211125301-lipide512-IMG-20121208-001140.jpg) (http://gamoovernet.pixhotel.fr/pics/20121211125301-lipide512-IMG-20121208-001140.jpg)
sans parler de la relative complexité de fabriquer la plaque + achat de composants des différentes boards...
pour le arduino tout est stock... et reviendrait à moins de 20 euros.
-
C’est précisement l’intérêt de unojoy - tu branches tes contrôles directement dessus... pas de hack pad etc... le montage de bp sert uniquement à convertir un potentiomètre en un autre afin de pouvoir l'interfacer sur un hack volant/manette.
Mais justement, tu achètes n'importe quel volant du marché et tu branches les potards de la borne dessus. Pas de soudures, pas de typon , pas de circuit imprimé.
Avec un coups de calibrage et çà roule. La seule chose est peut être la perte de sensibilité ou d'angle du volant.
De plus, il existe déjà des interfaces avec entrées des potards sur de l'USB chez ultimarc et consorts.
Après tous, une alternative de plus n'est jamais inutiles. Surtout qu'elle sera surement utile pour la T2 :D
Mais c'est tellement de dommage de refaire de l'existant alors que par exemple , le BP79 à besoin d'un bon coups de dépoussiérage.
Et puis le FFB, c'est la vie. Faut pas déconner avec le participe passé, faut aussi ne pas déconner avec le FFB dans un Racecab SEGA. Tu l'as , tu l'utilises :D
Mais quand je vois tes photos, tu as ""juste"" le programme à faire ?
:)
-
Mais quand je vois tes photos, tu as ""juste"" le programme à faire ?
En pratique il faut brancher le arduino sur l'usb du pc - y "téléverser le programme" Unojoy via le soft de chez artmel et passer le arduino en mode dfu (2 pins du arduino à relier un court instant) ensuite executer un BAT fournis dans l'archive d'unojoy.... c’est fait en 2 mins montre en main.
Le arduino est reconnu comme un joy type ps3 sous windows et permet d'y interfacer ce que vous voulez sur les entrées du module.
Je répète : Pas besoin de volant à hacker... pas besoin de hack... c'est tout l'intérêt.
Par contre pas de ffb à l'horizon.
Après je ne dis pas que c'est le truc ultime, juste que c'est hyper pratique et que ça coute deux fois moins cher qu'une interface USB classique ou qu'un volant d'occase... Je n'essaye pas de vous convaincre : j'informe.
A bon entendeur. <:)
-
J'avoue que c'est hyper simple et peu cher. Et il pourrait servir à d'autres choses comme tu l'as souligné :)
Je pensais que c'étais beaucoup plus complexe que cela. C'est pour cela que je trouvais dommage de te lancer dans des gros travaux chronovores.
Mais je suis désolé si j'ai laissé comprendre que ton projet n'était pas intéressant. :-\
Je serais très intéressé par des détails <:)
-
Pas de pb ! :-*
T'as tout compris... cheap and chic ! ;)
Par contre ce n'est pas mon projet mais bien celui d'unojoy... je n'ai absolument rien fait sinon de tester sur ma borne...
Comme dit, je vais faire un petit tuto dès que je reçois le second exemplaire - ce sera carré.
Je pense que ce type d'interface, que j’utilise déjà pour le simu dynamique, a de beaux jours devant elle pour le DIY.
... ^-
ps : d'ailleurs je me dis que l'on peut déjà "lire" le ffb grâce à xsim... et on peut déjà commander des moteurs grâce au dev fait sur le simu dynamique... :? ... reste le fonctionnement des moteurs de ffb sega (à embrayage magnétique si j'ai bien compris....)
-
Pas de pb ! :-*
T'as tout compris... cheap and chic ! ;)
Par contre ce n'est pas mon projet mais bien celui d'unojoy... je n'ai absolument rien fait sinon de tester sur ma borne...
Comme dit, je vais faire un petit tuto dès que je reçois le second exemplaire - ce sera carré.
Je pense que ce type d'interface, que j’utilise déjà pour le simu dynamique, a de beaux jours devant elle pour le DIY.
... ^-
ps : d'ailleurs je me dis que l'on peut déjà "lire" le ffb grâce à xsim... et on peut déjà commander des moteurs grâce au dev fait sur le simu dynamique... :? ... reste le fonctionnement des moteurs de ffb sega (à embrayage magnétique si j'ai bien compris....)
Ca me plaît cette formule "Cheap and chic!" :D
Le ffb sega est différent du happ dans son fonctionnement ? (désolé si ma question est idiote :-\ )
Je vais peut-être dire une autre bétise mais ne serait-il pas possible d'utiliser les travaux d'Aganyte pour la partie ffb et récupérer les infos sur l'arduino pour pouvoir s'affranchir du hack volant ?
-
Ca me plaît cette formule "Cheap and chic!" :D
Le ffb sega est différent du happ dans son fonctionnement ? (désolé si ma question est idiote :-\ )
Je vais peut-être dire une autre bétise mais ne serait-il pas possible d'utiliser les travaux d'Aganyte pour la partie ffb et récupérer les infos sur l'arduino pour pouvoir s'affranchir du hack volant ?
voir plus simple: utilisé l'arduino avec un shield Moteur 24A, reste a faire le code ...
-
voir plus simple: utilisé l'arduino avec un shield Moteur 24A, reste a faire le code ...
Comme celui utilsé par Lipide dans son simu ?
Mais est-ce que ce n'est pas plus coûteux ?
-
Comme celui utilsé par Lipide dans son simu ?
exactement, sauf qu'ici on commande le ffp
Mais est-ce que ce n'est pas plus coûteux ?
bof, en tout cas moi que de faire imprimé une pcb et de la soudé, tu comptes 15€ pour l'arduino, 30€ pour la "Arduino Motor Driver Shield", tu t'es sort pour une petit 40en € plug in play
Arduino Motor Driver Shield, mais y'en faut une plus puissante:
http://dx.com/p/arduino-compatible-2-channel-relay-shield-module-138600
-
Je pensais que ça coûtait plus cher l'interface moteur pour arduino. J'aurais dit une cinquantaine d'euros si c'est le même que Lipide dans son wip ?
-
En fait l'Aganyte board a besoin du hardware logitech ou du ffb (physiquement des deux fils qui vont au moteur - arrêtez moi si je dis des bétises! ;)) pour coder le signal - là on ne dispose pas de signal électrique de référence pour le relais donc exit le unojoy avec elle.
Il faudrait donc le récupérer via le hid comme un périphérique classique ffb et le faire réencoder vers les relais parallèlement au processus d'unojoy. Techniquement j'ai confirmation que c'est envisageable si la conversion n’est pas trop hardue mathématiquement parlant. Malheureusement ça prend un peu de temps en dev - temps que mon co-wipeur et beaufrère n'a pas en ce moment... sinon vous pensez bien...
Concernant le relais du simu dynamique, il encaisse des pics à 30A en 24v c’est pas du tout le même dimensionnement.
Le relais dont j'ai parlé à 6 euros fait 10A à 110v. Ça me parait déjà pas mal pour un ffb quand on voit qu'à moins de 10A en 12V on fait bouger un siège avec deux moteurs de 8Nm. ;D
Reste un bricolage avec xsim et un arduino dédié... mais ce serait pas clean et ne prendrait pas en compte les spécificités de motorisation d'un panel arcade "stock".
Perso je n'ai pas plus de compétence pour analyser le moteur des model 2 en détail.
Pour ça je pense qu'Aganyte et BP sont de loin les experts en la question.
-
En fait l'Aganyte board a besoin du hardware logitech ou du ffb (physiquement des deux fils qui vont au moteur - arrêtez moi si je dis des bétises! ;))
C'est çà :)
-
En fait l'Aganyte board a besoin du hardware logitech ou du ffb (physiquement des deux fils qui vont au moteur - arrêtez moi si je dis des bétises! ;)) pour coder le signal - là on ne dispose pas de signal électrique de référence pour le relais donc exit le unojoy avec elle.
Ah, ok. Je me disais que son travail pouvait peut-être fonctionner avec d'autres volants et par extension, pourquoi pas avec un arduino.
-
J'ai reçu mon second arduino. j'en ai profité pour faire le tuto.
Unojoy peut aussi être utilisé dans le cadre d'un pincab, avec les boutons de jeu et d'interface ainsi qu'un support de l'analogique pour le lancement de la bille... ou le tilt..
++
-
Merci pour le mini-tuto <:)
-
Merci pour ce petit tuto ^-^
Une bonne alternative au divers hack manette/volant/clavier existant en faite 8)
-
(http://gamoovernet.pixhotel.fr/pics_gamoovernet690px/20121217113027-lipide512-abcop.jpg) (http://gamoovernet.pixhotel.fr/pics/20121217113027-lipide512-abcop.jpg)
Je confirme ! ^-^
Mis en place en 5 minutes montre en main sur la super hangon... Mon wip "technique" est fini sur celle là - reste plus qu'à caler l'écran,refermer la bête et rajouter les autocollants. ;)
...J'ai commandé le troisième arduino pour la hangon junior.
J'en commanderai encore un autre pour refaire le panel de la pac pac avec deux potards pour jouer à arkanoid et pong...
-
Super interressant ce post et merci pour le tuto. ^-
-
Salut, sympa ce tuto.
Je pige pas tout , mais je vais faire des recherche sur ce module qui as l'air fort intéressant et peu coûteux.
Si j ai compris tu veux mettre ce arduino dans un race cab sous émulateur ?
-
Il est déjà dans un sega rally upright et maintenant une superhangon.
les deux sont opérationnels.
-
Salut
Merci pour ce tuto bien detaillé.
Y a plus qu a finir de trouver pour gerer un ffb et ce serra du vrai bonheur pour pas mal de fana de simulateur. ^-
+
-
Si c'étais si simple ... :D
-
ça peut être simple... le plus gros du travail théorique a été fait via l'Aganyte board, tout ce qu'il fallait savoir pour le faire a déjà été pensé. Le reste reviendrait à la "virtualiser" dans le arduino en récupérant en interne les valeurs de ffb.
C’est très envisageable pour quelqu'un avec un bon skill en prog et avec un peu de connaissances de l'interface HID.... et le nirvana pour beaucoup derrière.
Je sais que mon beauf recherche du travail rémunéré... si ya un généreux donateur qui veut faire le bien de la communauté... Je peux lui commander le travail ! ;D
-
ça peut être simple... le plus gros du travail théorique a été fait via l'Aganyte board,
Ces topics expliquent la façons de faire ?
C’est très envisageable pour quelqu'un avec un bon skill en prog et avec un peu de connaissances de l'interface HID....
On ne doit pas avoir la même notion de simplicité :D
-
un arduino avec un shield de commande de moteur et de la prog sa suffit ! pas besoins de agantine board
tout est une question de progamation et de trouvé un shield moteur qui peut débité assez de jus pour le ffb
-
La board qui en résulte l'explique en partie, du moins ça renseigne le mode de fonctionnement du ffb arcade. :)
On ne doit pas avoir la même notion de simplicité Cheesy
C’est relatif effectivement. Seul j'en serai également incapable !
Là je ne fais que rapporter les dires de mon beauf ! <:)
edit : il faut quelle puissance pour bouger le ffb arcade ?
-
Je viens de tomber sur ce topic que je n'avais pas vu. Si tu as besoin d'information pour mixer le L2M2 avec un Arduino, je suis partant.
-
Je viens de tomber sur ce topic que je n'avais pas vu. Si tu as besoin d'information pour mixer le L2M2 avec un Arduino, je suis partant.
Ah ouais ! Allez-y pondez-nous un truc universel ! ^-
Vu que ça à l'air "simple" en mise en oeuvre et que le gros du travail semble être la prog si j'ai bien compris, je veux bien faire des tests.
J'ai jamais pris le temps avec l'Aganyte board faute de volant logitech (bien qu'avec d'autres ça semble théoriquement possible) et de temps surtout :-\
-
faire une interface plugn play et universelle ce serait le panard mais :
Dans le cas de réunir Arduino et l2m2, on se retrouve dans le cas du arduino sous unojoy qui ne supporte pas le ffb. J'ai demandé à l'équipe du projet unojoy sur le forum dédié et ce n'est pas prévu en raison de la compatibilité ps3... alors que la ps3 a bien un système de rumble si je ne me trompe ??
M'enfin pas grave. J'ai aussi essayé de retoucher le drivers hid de unojoy pour le déclarer en ffb... historie de recupérer le flux ffb : ça ne marche pas.
Note aussi qu'unojoy transforme littéralement l'arduino en joystick. Il flashe le firmware de manière à en faire un hid de jeu générique (donc plug n play quelque soit la plateforme pc/mac/ps3). Il parait alors très compromis de faire cohabiter unojoy ET le moteur de ffb basé sur xsim (ou autre chose d'ailleurs)
On en est là pour l'instant... comme ça je ne vois pas de solution.
-
Si tu arrives à interfacer correctement le happ, je me chargerai de la conversion model 2.
-
Bon, j'arrive un peu après la guerre, mais je découvre ici l'arduino grâce à ce superbe topic/tuto, et cela donne pas mal d'idée en effet. ^-
-
…idées dont une que je viens de concrétiser ce week end! ;)
A savoir l'intégration du fabuleux After Burner *climax* dans un G-LOC DX et ce de manière non intrusive et 100% réversible.
Voici le topic (http://www.dragonslairfans.com/smfor/index.php?topic=5011) sur mon site.
N'hésitez pas si vous avez des questions of course!
Encore un big UP à lipide512 qui m'a aidé à me lancer sur ce projet! :-*
Arduino powâââââ! :-)=
Oh, et bien sur… AFFFFTTTTEERRRRR BUURRNNNNEEERRRRR CLLLLLIIIMMMAAAXXX POWWWAAAAA ! =:))
(http://www.arcadelifestyle.net/gloc/Sega_After_Burner_Climax_GLOC_6.jpg)
-
Génial ! :)
Selon le modèle des moteurs (pwm) et leur puissance/tension de fonctionnement , tu peux peut être les piloter via un autre arduino - et j'ai eu une idée pour cela qui pourrait marcher sur ton simu...
Tout ça sans pc dédié. Si ça te tente de tester mais je pense que ça peut valoir le coup... :)
-
ouhlà ;D ;D.. nos Afterburner dlx pourraient t'elles être sauvées aussi pour le mouvement ? :D ::) ::)
-
ça n'utiliserait malheureusement pas les informations provenant du jeu. Mais en émulation ça pourrait rendre les mouvements.
Pour ça on fait comme sur mon simu en extrapolant les informations des potards de direction pour modifier l'assiette du simu (A1 = left/right et A2 = up/down). On ferait fonctionner le système à l'envers. Ca devrait marcher.
Reste à s'assurer qu'on peut alimenter les moteurs sans faire fondre le motor shield arduino soit des pics de 30A maxi (de chez maxi) entre 12-16v. C’est déjà pas mal.
Tout ça serait bien sûr modifiable sans toucher au hardware d'origine. ;)
Par conter autre problème à prendre en compte avec cette modification au niveau de la sécurité, il faut s'assurer de connecter les coupes circuits en cas de descente du simu et en rajouter un d'urgence si des interférences interviennent sur le potard du joy.
A voir...
edit : quoi qu'avec la pcb d'origine ça doit aussi bien marcher si les potards sont linéaires...
-
Merci pour ce tuto.
J'utilise ces cartes pour les volants et les pedaliers provenant d'une Outrunners et maintenant pour les motos d'une Manx TT twin, ca marche niquel ! ^-^
-
Content que ça serve ! ^-
-
:-\ Je n'avait pas trop suivit ce post :?
Cela me semble formidable pour réaliser une idée qui me trote en tête et dans celle du frangin ;) :-)=
:-* :-* merci ^-
-
Pareil, je viens de découvrir ce post très intéressant.
Le but est donc maintenant de "driver" des moteurs aussi, histoire de laisser tranquille les logitecs...
Ca se trouve un schémas de logitec driving force ?
-
'Lut !
Pour driver les moteurs, j'avais fait un truc là dessus basé sur du arduino et xsim pour panel happ.
Seul hic ça ne fonctionnait pas avec le ffb directx. Depuis le temps ça a peut être évolué. Si vous farfouillez sur le fofo, j'en ai parlé il ya de ça quelques années. Pour moi ça marche depuis sur un twin gti club.
Le montage revient aujourd'hui à 15 euros si vous faites venir les pièces en import.
-
Merci lipide512 :-*
Le GTI club est justement la borne que je pensais :-)= :-)=
-
Tu auras même un frein à main en analogique, la classe non ?! :)
-
Tu auras même un frein à main en analogique, la classe non ?! :)
C'est parfait tout ça :-* :-* :-*
-
J'aimerai branché la carte sur une PS3, et en regardant le code, le bouton START et HOME sont sur des controles analogiques (A4 et A5).
Y'a moyen d'y brancher directement un bouton digital sur ces entrées analogiques ?
-
De mémoire A4 et A5 sont en double entrée analogique (plage de pression) et digitale.
Donc ça fonctionnera avec un bouton en entrée. Pour du digital, tu cables ton GND et l'entrée de ton choix qui supporte ce mode.
A vérifier sous le configurateur de windows pour être sûr du bon fonctionnement.
-
C'est bien ca, ca fonctionne en utilisant la masse digitale. Merci
Par contre, bien dégouté, impossible de reconfiguré les touches pour accelerer et freiner dans Ridge Racer 7 et Daytona USA sur la PS3.
La seule chose possible en analo est de tourné avec le volant :-((
Y'a moyen d'accelerer et de freiner en configurant "croix" et "rond" sur le levier de vitesse, mais c'est pas top.
-
Tu veux dire qu'avec un volant sur ces jeux, on ne peut pas utiliser l'analogique des pédales ?
Si oui, il faut voir comment est mappé le volant sur pc...
-
Petit déterrage en règle.
Je viens de me convertir un arduino Uno de chez deal extreme pour 9.26 Ä
Cela fonctionne correctement mais la gestion des drivers m'a posé plusieurs problèmes lors
du flash du module UnoJoy.hex, ce qui convertit l'arduino en Joystick.
En effet j'avais droit ‡ une erreur "AtLibUsbDfu.dll not found".
Je vais détailler ce que j'ai fait :
Initialement l'arduino est reconnu dans le gestionnaire de périphérique :
(http://gamoovernet.pixhotel.fr/pics_gamoovernet690px/20170224170157-funkycochise-ArduinoUno.PNG) (http://gamoovernet.pixhotel.fr/pics/20170224170157-funkycochise-ArduinoUno.PNG)
Il faut installer le driver du dossier driver de l'IDE de développement arduino :
(http://gamoovernet.pixhotel.fr/pics_gamoovernet690px/20170224165529-funkycochise-firstdriver-location.PNG) (http://gamoovernet.pixhotel.fr/pics/20170224165529-funkycochise-firstdriver-location.PNG)
(http://gamoovernet.pixhotel.fr/pics_gamoovernet690px/20170224165415-funkycochise-firstdriver-location2.PNG) (http://gamoovernet.pixhotel.fr/pics/20170224165415-funkycochise-firstdriver-location2.PNG)
(http://gamoovernet.pixhotel.fr/pics_gamoovernet690px/20170224165434-funkycochise-firstdriver-location3.PNG) (http://gamoovernet.pixhotel.fr/pics/20170224165434-funkycochise-firstdriver-location3.PNG)
Avec ce drive, vous créer un COM3 qui permet la communication avec l'IDE de développement.
(http://gamoovernet.pixhotel.fr/pics_gamoovernet690px/20170224165511-funkycochise-firstdriver-location4.PNG) (http://gamoovernet.pixhotel.fr/pics/20170224165511-funkycochise-firstdriver-location4.PNG)
A ce niveau je n'ai pas rencontré de difficultés et j'ai pu "téléverser" le programme UnoJoyArduinoSample.uno dans l'arduino.
Arrivé à ce stade il faut passer en mode DFU, en shuntant les pins à côté du connecteur USB, et c'est là que les cascades commencent :
l'arduino n'est plus reconnu (c'est normal) :
(http://gamoovernet.pixhotel.fr/pics_gamoovernet690px/20170224171600-funkycochise-install2.PNG) (http://gamoovernet.pixhotel.fr/pics/20170224171600-funkycochise-install2.PNG)
Il faut alors installer le driver de l'utilitaire Flip d'Atmel :
(http://gamoovernet.pixhotel.fr/pics_gamoovernet690px/20170224172652-funkycochise-atmel-driver.PNG) (http://gamoovernet.pixhotel.fr/pics/20170224172652-funkycochise-atmel-driver.PNG)
A l'installation du driver, Il faut cliquer sur "Choisir parmi une liste de pilotes de périphériques sur mon ordinateur"
(http://gamoovernet.pixhotel.fr/pics_gamoovernet690px/20170224171720-funkycochise-install2-1.PNG) (http://gamoovernet.pixhotel.fr/pics/20170224171720-funkycochise-install2-1.PNG)
Choisir l'installation manuelle
(http://gamoovernet.pixhotel.fr/pics_gamoovernet690px/20170224175022-funkycochise-UpdateDriver.PNG) (http://gamoovernet.pixhotel.fr/pics/20170224175022-funkycochise-UpdateDriver.PNG)
Puis choisir la liste pour rechercher explicitement le fichier du driver :
(http://gamoovernet.pixhotel.fr/pics_gamoovernet690px/20170224171735-funkycochise-install2-2.PNG) (http://gamoovernet.pixhotel.fr/pics/20170224171735-funkycochise-install2-2.PNG)
(http://gamoovernet.pixhotel.fr/pics_gamoovernet690px/20170224171746-funkycochise-install2-3.PNG) (http://gamoovernet.pixhotel.fr/pics/20170224171746-funkycochise-install2-3.PNG)
parmi la liste on choisit le AT16MegaU2
(http://gamoovernet.pixhotel.fr/pics_gamoovernet690px/20170224171758-funkycochise-install2-4.PNG) (http://gamoovernet.pixhotel.fr/pics/20170224171758-funkycochise-install2-4.PNG)
(http://gamoovernet.pixhotel.fr/pics_gamoovernet690px/20170224171821-funkycochise-install2-5.PNG) (http://gamoovernet.pixhotel.fr/pics/20170224171821-funkycochise-install2-5.PNG)
(http://gamoovernet.pixhotel.fr/pics_gamoovernet690px/20170224171832-funkycochise-install2-6.PNG) (http://gamoovernet.pixhotel.fr/pics/20170224171832-funkycochise-install2-6.PNG)
On se tretrouve avec un Atmel dans le gestionnaire de périphérique :
(http://gamoovernet.pixhotel.fr/pics_gamoovernet690px/20170224174221-funkycochise-ATmega16U2.PNG) (http://gamoovernet.pixhotel.fr/pics/20170224174221-funkycochise-ATmega16U2.PNG)
On peut lancer le flashage :
(http://gamoovernet.pixhotel.fr/pics_gamoovernet690px/20170224174325-funkycochise-intojoy.PNG) (http://gamoovernet.pixhotel.fr/pics/20170224174325-funkycochise-intojoy.PNG)
(http://gamoovernet.pixhotel.fr/pics_gamoovernet690px/20170224174540-funkycochise-flash.PNG) (http://gamoovernet.pixhotel.fr/pics/20170224174540-funkycochise-flash.PNG)
Comme indiqué, on débranche et on rebranche, le joytick "Contrôleur de jeu HID" est reconnu :
(http://gamoovernet.pixhotel.fr/pics_gamoovernet690px/20170224174707-funkycochise-joystick-HID.PNG) (http://gamoovernet.pixhotel.fr/pics/20170224174707-funkycochise-joystick-HID.PNG)
Dans le panneau de configuration :
(http://gamoovernet.pixhotel.fr/pics_gamoovernet690px/20170224174841-funkycochise-joystick.PNG) (http://gamoovernet.pixhotel.fr/pics/20170224174841-funkycochise-joystick.PNG)
en reliant une des entrée digitale à la masse :
(http://gamoovernet.pixhotel.fr/pics_gamoovernet690px/20170224174925-funkycochise-digital.PNG) (http://gamoovernet.pixhotel.fr/pics/20170224174925-funkycochise-digital.PNG)
Source de la combine :
-
Merci de la mise à jour ! ^-
A noter qu'une grande majorité des arduino UNO n'ont plus les pins afin de les mettre en mode DFU. Il faut donc être très méfiant et bien scruter les annonces pour ne pas se retrouver avec des UNO incompatibles.
La présence des 3 PINS à l'arrière de la carte au niveau de l'alimentation est indispensable pour écrire le header HID.
(http://gamoovernet.pixhotel.fr/pics_gamoovernet690px/20170225100204-lipide512-arduinouno-r3-front.jpg) (http://gamoovernet.pixhotel.fr/pics/20170225100204-lipide512-arduinouno-r3-front.jpg)
Souvent les UNO compatibles n'ont pas le hardware nécessaire - on les reconnait aux éléments CMS.
La solution moderne qui se profile est l'arduino DUE, qui est fait pour être flashé en HID indépendamment du port de programmation (pas de flip ou de manipulation compliquée pour inverser la procédure pour reflasher le code pour modifier les entrées par exemple) - De plus il apporte autant d'entrées que le mega (megajoy)
-
Merci, ca peut aider aussi pour le M2pac qui est à base de Unojoy
-
en tout cas mon uno de chez deal extreme était bien équipé
(http://gamoovernet.pixhotel.fr/pics_gamoovernet690px/20170225203538-funkycochise-IMG-0055.JPG) (http://gamoovernet.pixhotel.fr/pics/20170225203538-funkycochise-IMG-0055.JPG)
-
Le projet peut s'adapter très facilement à vos besoins : vous pouvez aussi interfacer un panel 1 joueur digital + spinners par exemple... ce sera un de mes prochains wip pour faire évoluer une borne proprement et jouer à Arkanoid dans de bonnes conditions.
J'aimerai faire la meme chose avec un panel sega: spinner + joystick (mais analogique si possible).
Les branchements 5v et masse se font de la meme maniere que sur un potard de volant ?
-
A priori c'est la même chose vu que l'in/out naomi est alimentée en 5v et 12v.
Faut tester pour être sûr... ;)
-
Je n'utilise pas d'i/o Naomi. Ca serait pour un spinner type "taito/arkanoid".
Je pensais brancher les 5V + Masse sur la partie "Analogique" et Gauche + Droite sur la partie "Digitale".
Mais ca m'a l'air un peu bancal comme branchement...
-
Alors je te parle d'inout concernant tes joy analogiques sega - ils sont forcément alimentés en 5v ou en 12v - je penche plutot pour du 5v. Pour le reste, tu cables tes entrées comme tu le souhaites. Si tu courcircuites le 5v sur ton entrée analogique, cela correspondra au potard à fond.
Habituellement tu as +5v - curseur - masse
Il est fort probable que sur le pinout du joy analogique les 5v soient regroupées sur une pin connectée à l'in/out
(http://gamoovernet.pixhotel.fr/pics_gamoovernet690px/20171031093110-lipide512-MetalMech3-1-.jpg) (http://gamoovernet.pixhotel.fr/pics/20171031093110-lipide512-MetalMech3-1-.jpg)
Comme ça, je dirai le +5 sur le jaune / masse sur le rayé blanc rouge et curseur (pin A de ton choix sur arduino) sur le marron.
Pour les contrôles digitaux, tu relies la masse commune de ton arduino avec un des contacts de ton choix en D.
Attention : Si tu obtiens un comportement erratique des autres entrées analog du arduino,comme si elles étaient parasitées, relie les directement à la masse du arduino.
Aucune raison que ça ne marche pas ! ;)
edit : pour le spinner, tu es limité avec le arduino dans le sens ou tu vas te retrouver avec une valeur remise à zero à chaque tour si tu prend un potard - le comportement sera pas celui escompté en jeu.
Pour un spinner totalement libre, il faut un encodeur rotatif.
(http://gamoovernet.pixhotel.fr/pics_gamoovernet690px/20171031094358-lipide512-41F5FhcGsyL.-SX425-1-.jpg) (http://gamoovernet.pixhotel.fr/pics/20171031094358-lipide512-41F5FhcGsyL.-SX425-1-.jpg)
Niveau montage c'est pas compliqué (tu as 2 phases à brancher sur l'analog au lieu d'un curseur) mais tu ne pourras pas le faire avec unojoy. Il faut un système basé sur un Arduino leonardo pour un firmware particulier.
Je suis en train de tester un truc avec ça qui pourrait supporter joy/pédales/guidons/volant/ffb!!!/spinner et autres... universel donc ! ;)
Stay tuned ! :)
-
Hello
Penses tu que la gestion d'une roue codeuse serait envisageable ?
Peut être plus simple et moins couteux qu'un encodeur rotatif
<:)
-
Roue codeuse optique et encodeur rotatif = même principe avec la phase A et B
(http://stephane.genouel.free.fr/FT/0%20Dossier%20technique/1%20Texte/Dialyseur_web/res/Roue%20codeuse%2004.jpg)
L'avantage de l'encodeur rotatif, c'est qu'il prend physiquement la place du potard d'origine du volant donc ne nécessite aucune modification du matériel d'origine. Il est également très simple à monter dans le panel (via un simple trou de 15mm et c'est solide.
edit : sinon tu hackes simplement une souris optique en usb... tu as même les 3 boutons... start, coin et fire... ;)
-
C'était surtout pour un spinner ou trackball, quand on en récupère un d'origine.
Un encodeur rotatif reproduit les mêmes sensations qu'un systéme à roue codeuse ?
Parce ce qui fait le sel d'un spinner , c'est l'inertie et l'absence de frictions. Le roulement à bille y est pour beaucoup.
J'ai déjà tenté la souris USB. La roue est minuscule donc assez galère à intégrer, c'est fragile et c’est vraiment de la méga bidouille au final. J'ai pas été convaincu.
Mais çà reste une alternative :)
-
Merci lipide512 pour toutes ces infos.
Du coup, je vais surement me tourner vers un Mini-pac pour gerer le spinner.
-
De rien ! <:)
Je ne connais pas l’intérêt du mini-pac... surtout pour le spinner.
Attention les boutons rotatifs à 180° des jeux analogiques type pong sont parfois considérés (à tort) comme des spinners. Dans ce cas, le uno les gère également puisqu'il s'agit uniquement de potards.
Pour le spinner DIY USB, il suffit de récupérer la partie optique de la souris pour la positionner à l'envers et visser au spinner une roue colorée en noir et blanc sous le panel. Celle ci passe juste devant le faisceau de la souris qui est fixe et fait office de détecteur optique. Lorsque tu tournes le spinner, la souris détecte le déplacement de la roue, sans aucun contact ou frottement. Effet ultra spin garanti ! :)
Avantage : DIY facile, rapide, indestructible et pas de drivers spécifique sous dos etc... participe au sauvetage et à la réutilisation de matériels obsolètes ! ;)
@IRO : L'encodeur rotatif peut avoir un effet cogging assez marqué. C'est dû aux bobines qui générent l'impulsion.
Ça dépendra aussi de l'inertie liée au poids du bouton qui l’entraîne.
-
Ah oui pour les souris optique. J'avais en tête une à boule.
En effet, c'est une solution propre mais avec les technos dispo maintenant , je préfère ne plus bidouiller :-\ :-\
-
A la différence, c'est que de nos jours, il est assez simple d'imprimer une roue d'encodage "sur mesures" avec une imprimante 3d. Elle collera parfaitement aux spécificités du système de spinner retenu.
Idem du support de pcb de la souris ! :)
-
Parce que tu as une imprimante 3D =:))