Besoin d'ade pour un projet de retrogamepad avec joystick analogique
-
@substring Oui en gros ça ressemblerait a un gamepad WiiU. Donc enfaite problème c'est que les boutons et les joysticks sont collé au PCB
-
@valentin-le-palud said in Besoin d'ade pour un projet de retrogamepad avec joystick analogique:
@fardenco Merci pour ta réponse. Je me disait bien que vous aviez pas fait tous cela pour rien.
J'ai lu ce que t'as écrit et j'ai assez bien compris, et donc dans le lien GitHub j'ai survoler et je pense avoir compris mais pour les branchements c'est aussi indiquer ou pas ? et au niveau des boutons quels sont les bon: ce pour arcade avec 2 broches (dans ce style https://www.amazon.fr/Bouton-Poussoir-Commutateur-Arcade-Multicade/dp/B01LX1KN7P/ref=sr_1_15?s=computers&ie=UTF8&qid=1502233066&sr=1-15&keywords=bouton+arcade)
ou des bouton arduino (https://www.amazon.fr/Contrôle-lalimentation-électrique-commutateurs-poussoir/dp/B073ZJSJ4Z/ref=sr_1_9?ie=UTF8&qid=1502232949&sr=8-9&keywords=bouton+arduino)
et quel fil utiliser pour les relier ?
(désolé mais niveau arduino je ne mis connais vraiment pas ^^ )Pour les boutons n'importe lequel fera l'affaire, nous on veut simplement des contacts donc tu n'as que 2 broches à connecter.
Une à la masse et l'autre à l'entrée du contrôleur (que ça soit un rasp directement ou bien l'Arduino si tu veux bel et bien des sticks analogiques)
Pour ce qui est de savoir sur quelle broche de l'arduino le relier, c'est un peu toi qui choisis en fait, car après dans le programme UnoJoy tu associes un numéro de broche à un bouton@voljega said in Besoin d'ade pour un projet de retrogamepad avec joystick analogique:
D'ailleurs le gars est tellement à l'ouest qu'il n'a pas fait exprès de montrer des images d'un jeu qui tire parti des joysticks analogiques durant son explication de pourquoi un Arduino est utilisé pour gérer des valeurs analogiques.
Avant de critiquer tu te renseigneras un peu et tu verras que Recalbox ne met pas à disposition que des émulateurs d'arcade, donc avoir des joysticks analogiques est tout à fait censé, c'est même bien pratique en fait.
Pas vu le jeu en question (je ne vois que Mario64 dans la vidéo) mais les jeux arcade utilisant des contrôles analogiques y'en a pas énormément, et ils sont tous plutôt datés. Ils ont souvent des versions consoles qui marcheront tout aussi bien ou tout simplement les roms de ces jeux disposent de clones hackées pour fonctionner avec un joystick numérique
De même pour les consoles avant la Ps1 et la N64 les contrôles ne sont pas analogiques mais numériques que je sache et même sur la PS1 beaucoup de jeux n'utilisent pas de contrôles analogiques (qui ne sont d'ailleurs pas activés par défaut dans la PS1 pour Recalbox)
D'ailleurs les GPIO ne permettent pas de gérer L2 et R2 pour la PS1 donc je ne passerais clairement pas pas par là.
En effet c'est bien Mario 64, et dans ce jeu l'analogie des sticks permet par exemple de marcher, mais aussi de tourner la caméra lentement, ce qui est plutôt agréable (comme on peut voir dans la vidéo).
C'est vrai qu'il n'y a pas énormément d'émulateurs qui utilisent l'analogique, mais il y en a et on y trouve des jeux très intéressants (dont la PS1 et la N64).Bref pour un débutant comme semble l'être Valentin ça rajoute une couche de complexité totalement inutile, et je persiste à dire que passer par un contrôleur USB ou découper un pcb de manette sera bien plus simple et accessible.
Tu connais peut-être les contrôleurs Xin-Mo ? Là c'est un peu ce qu'on recrée, mais avec le support des sticks analogiques. Le câblage est le même, et la mise en place est plutôt simple et bien documentée.
Je pense que c'est bien plus simple et fiable de faire ça que de découper le pcb d'une manette, après c'est mon avis.Bref pour moi l'affirmation "Avec un Raspberry Pi ce serait pas possible de faire ça" (avoir des contrôles analogiques) est fausse et seulement vraie si tu utilises les GPIO, GPIO qui ne permettront pas d'avoir tous les contrôles pour la PS1
C'est quand même pas un mystère que 99% des projets de console portable qu'on voit ici ou ailleurs utilisant Recalbox ou une autre distrib numérique n'utilisent pas d'arduino, c'est carrément pas indispensable et le gain est très minime
Cette affirmation restera vraie tant que personne n'aura trouvé de moyen de gérer des joysticks analogiques directement depuis le rasp.
Par contre c'est vrai aussi qu'on n'est pas obligé d'utiliser des sticks analogiques, mais ça personne n'a dit le contraire
Très peu utilisent un Arduino car ça n'est utile que si tu fabriques ton contrôleur toi même (console portable ou bartop), car les autres vont simplement connecter une manette toute faire.
Donc déjà là tu enlève une bonne partie des personnes qui utilisent Recalbox, et parmis ceux qui restent, tu ne gardes que ceux qui veulent avoir des sticks analogiques. Donc oui en effet ça fait peu de personnes.Ceci dit sorry pour le "à l'ouest" qui était de trop.
Pas de problème
@rockaddicted said in Besoin d'ade pour un projet de retrogamepad avec joystick analogique:
@substring said in Besoin d'ade pour un projet de retrogamepad avec joystick analogique:
La vraie question est : faut-il un stick analogique ou pas ? Le Pi n'a pas de convertisseurs analogique -> numérique, ce qui veut dire qu'il faut passer par un PCB externe pour réaliser ca
hummm avis perso, si l'on souhaite faire une console à base de rpi0, clairement non.
cette board n'est pas assez puissante pour émuler proprement la ps1/n64.
si par contre l'on souhaite intégrer un rpi3 pourquoi pas.C'est clair qu'avec un pi0, c'est une mauvaise idée d'une part comme tu dis à cause des émulateurs qui sont trop lourds, mais aussi car rajouter un Arduino qui fait presque 2 fois la taille du pi0 gâche un peu l'avantage du faible encombrement
@valentin-le-palud said in Besoin d'ade pour un projet de retrogamepad avec joystick analogique:
Merci à tous pour vos réponses !
@Substring j'ai donc bien besoin d'utiliser cet arduino où connaissez vous un moyen plus simple ?
@rockaddicted je confirme que j'utilise bien un raspberry pi 3 .
.
Edit : j'ai trouvé un projet similaire au mien (https://www.thingiverse.com/thing:1792253) Il dit qu'il utilise un carte Carte Teensy 3.2 pour pouvoir utiliser les 2 joysticks + 12 boutons, mais il dit qu'il a lui même fait le programme pour l'utiliser, quelqu'un n'aurait pas une piste pour trouver un programme similaire ?
Donc en soit utiliser l'aduino (dont j'ai accès au code) ou la carte teensy ça revient à la même chose. Le plus gros problème est surtout au niveau des branchement des joysticks et des boutons à la carteEn fait avec la Teensy le principe est à peu près le même, sauf que le microcontrôleur qu'elle utilise gère l'USB directement, contrairement au Uno qui doit passer par un contrôleur annexe comme expliqué plus haut.
Les branchements sont vraiment simples, un côté du bouton va à la masse et l'autre à une des entrées numériques de l'Arduino (entre 2 et 13)
Pour les joysticks, simplement relier le curseur des potentiomètres à une entrée analogique (entre A0 et A5)Il faut vraiment voir l'Arduino ici comme un Xin-Mo qu'on paramètre soi même
Edit : en fouillant un peu, je suis tombé là dessus :
Un Xin-Mo qui dispose d'entrées analogiques, c'est juste ce qu'il faut !
https://paradisearcadeshop.com/xin-mo/2044-xin-mo-analog-controller.html
Un lien en France :
https://www.smallcab.net/encodeur-analogique-joystick-boutons-arcade-joueur-p-278.html
En fouillant tu le trouveras peut-être moins cher ailleursDescription tout en bas de cette page :
http://www.xin-mo.com/single-player-controller.html -
@fardenco Merci pour t'es réponse c'est vraiment cool
Pour les boutons n'importe lequel fera l'affaire, nous on veut simplement des contacts donc tu n'as que 2 broches à connecter.
Une à la masse et l'autre à l'entrée du contrôleur (que ça soit un rasp directement ou bien l'Arduino si tu veux bel et bien des sticks analogiques)Donc 2 broches que je veut, au piff ? et quand tu dit a la "masse" que veut tu dire pas la ?
Donc du coup le plus simple est d'utiliser le Xin-Mo analog controller ? sauf que si j'ai bien compris je peut mettre seulement 1 stick c'est bien ça ?
-
@valentin-le-palud vérifie avec la team que ce Xin-Mo là est supporté quand même, parce que pour l'instant je crois qu'à part le Xin-Mo 'standard' deux joueurs les autres n'ont pas été testé
-
@voljega c'est in xinmo 1 joueur, donc pas de soucis particulier à première vue. Le seul sujet sera plutôt sur la valeur du potard à coller sur chaque broche analogique, savoir si c'est standard ou pas. L'autre sujet sera aussi d'etre sûr que le potard renvoie bien des évènements de stick, ce dont je n'ai aucune raison de douter vu ce que fait xinmo
-
@valentin-le-palud said in Besoin d'ade pour un projet de retrogamepad avec joystick analogique:
@fardenco Merci pour t'es réponse c'est vraiment cool
Pour les boutons n'importe lequel fera l'affaire, nous on veut simplement des contacts donc tu n'as que 2 broches à connecter.
Une à la masse et l'autre à l'entrée du contrôleur (que ça soit un rasp directement ou bien l'Arduino si tu veux bel et bien des sticks analogiques)Donc 2 broches que je veut, au piff ? et quand tu dit a la "masse" que veut tu dire pas la ?
Donc du coup le plus simple est d'utiliser le Xin-Mo analog controller ? sauf que si j'ai bien compris je peut mettre seulement 1 stick c'est bien ça ?
Ce qu'on appelle la masse, c'est le potentiel de référence du circuit électrique. Souvent marqué "GND".
Il faut voir les boutons comme de simples contacts. Tu appuies pas, il n'y a pas de contact entre les 2 broches, tu appuies, il y a un contact.
Pour le premier type de bouton que tu nous as montré, il s'agit d'un inverseur :
https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRSwIlN8fVrrkk4a92KP1ioNgqYeSs1ioOTB5eZ9qClc31_H4rM
Comme tu peux voir sur le schéma, tu as 3 broches : COM, L1 et L2. Quand tu n'actionne pas l'inverseur, COM est relié à L1. Quand tu l'actionnes, COM est relié à L2.
Dans ton cas, L1 ne sert à rien.Pour faire simple, le contrôleur de la manette considère qu'un input est activé quand la broche correspondante est reliée à la masse. Si on veux appuyer sur "X", on va simplement relier la broche associée à "X" à la masse. Pour ça, on utilise un contact : d'un côté du contact on a la masse, de l'autre on a l'entrée du contrôleur.
Si le contact n'est pas actionné (on n'appuie pas sur le bouton), alors l'entrée n'est pas reliée à la masse. Par contre, dès qu'on l'actionne, l'entrée est reliée à la masse, le contrôleur le détecte, et l'input "X" est activé.Il faut voir tes interrupteurs (quels qu'ils soient) comme ça :
https://i.stack.imgur.com/2QnT6.pngTout ce que tu as à faire, c'est trouver quel broche correspond à quelle partie de l'interrupteur. Pour les inverseurs du type de ceux que tu nous as montré, en général il y a un schéma sur le plastique. Pour l'autre type de bouton, les pattes opposées sont reliées entre elles :
http://shallowsky.com/arduino/class/buttonlegsdiag.jpgApparemment le Xin-Mo analog dispose de 4 entrées analogiques. Un joystick est sur 2 axes donc tu peux avoir 2 joysticks (pour un total de 4 axes).
Le câblage est toujours le même : un fil va de la masse (GND sur le xin-mo) à chacun des interrupteurs, et ensuite chaque interrupteur va à une entrée du xin-mo.
Le schéma sur le site montre pour 3 boutons, c'est pareil pour tous les autres :
http://www.xin-mo.com/@substring said in Besoin d'ade pour un projet de retrogamepad avec joystick analogique:
@voljega c'est in xinmo 1 joueur, donc pas de soucis particulier à première vue. Le seul sujet sera plutôt sur la valeur du potard à coller sur chaque broche analogique, savoir si c'est standard ou pas. L'autre sujet sera aussi d'etre sûr que le potard renvoie bien des évènements de stick, ce dont je n'ai aucune raison de douter vu ce que fait xinmo
Pour ce qui est de la valeur des potentiomètres, elle n'est pas standard mais elle n'est pas vraiment importante (tant qu'elle n'est pas trop élevée, si non c'est sujet aux interférences).
En général on utilise des potentiomètres de 10k, il me semble que c'est ce qu'on retrouve dans les joysticks de ce type :
http://robot.sumo.free.fr/Images/La fabrique/Joystick.pngMais encore une fois, ce qui est important ça n'est pas la valeur totale du potentiomètre, car celui-ci ne sert qu'à obtenir une tension variable proportionnelle à la position du curseur. Le contrôleur mesure cette tension, et pas la résistance du potentiomètre.
Pour ce qui est de la compatibilité, je n'ai aucune certitude (à part pour le système avec UnoJoy)
Car même si c'est bien un Xin-Mo 1 joueur, ça reste une carte différente de celle qui est très utilisée (qui elle ne dispose pas d'entrée analogique). -
@fardenco Mon dieux j'ai réussi a comprendre merci ! et donc le mode de branchement est le même peut importe que j'utilise arduino ou Xin-Mo c'est bien ça ?
Je pense que je vais utiliser Xin-Mo du coup çe me parrait nettement plus simple a mettre en place. Et donc pour les branchement des boutons et des joysticks je doit bien utiliser c'est cable ? https://www.amazon.fr/acirc-bles-BreadBoard-Femelle-Femele/dp/B00ENSOHJ0/ref=sr_1_1?ie=UTF8&qid=1502285840&sr=8-1&keywords=cable+raspberry+pi
Merci encore de votre aide !
-
@valentin-le-palud le xinmo devrait être vendu avec les bacles nécessaires. Par contre, côté connecteurs boutons/sticks, c'est du format arcade avec des osses de 4.8mm. Donc tu devras surement retoucher ca
-
@valentin-le-palud said in Besoin d'ade pour un projet de retrogamepad avec joystick analogique:
@fardenco Mon dieux j'ai réussi a comprendre merci ! et donc le mode de branchement est le même peut importe que j'utilise arduino ou Xin-Mo c'est bien ça ?
Je pense que je vais utiliser Xin-Mo du coup çe me parrait nettement plus simple a mettre en place. Et donc pour les branchement des boutons et des joysticks je doit bien utiliser c'est cable ? https://www.amazon.fr/acirc-bles-BreadBoard-Femelle-Femele/dp/B00ENSOHJ0/ref=sr_1_1?ie=UTF8&qid=1502285840&sr=8-1&keywords=cable+raspberry+pi
Merci encore de votre aide !
Du côté du Xin-Mo c'est bien ce connecteur, mais du côté des boutons ça dépend de ce que tu prends.
Comme l'a dit Substring, si tu utilises des boutons d'arcade c'est des cosses de 4.8mm.
Mais étant donné que tu souhaites faire une console portable, je ne suis pas sûr que ça soit le plus adapté comme bouton, car ça prend beaucoup de place.
Quoi qu'il en soit, si tu n'as pas l'intention de retoucher après tu peux simplement souder le bout du fil au connecteur.
C'est de toutes façons ce que tu devras faire si tu utilises les même boutons que ceux utilisés dans la vidéo, qui sont à la base faits pour être soudés. -
@voljega c'est possible que la Léo-TechMaker dise de la merde mais c'est vraiment un bon youtuber high-tech , sa vaut le coup d'oeil !
-
@mr-anonymousse yes au final le débat était faut il des sticks analogiques ou pas, si oui on ne peut pas se passer d'arduino ou d'un autre controleur analogique