Stick - clavier - Arduino - 2 joueurs
-
La, je ne peux pas te répondre, j'utilise un module Xin-Mo USB et je n'ai jamais eu de probleme de lag. Avec une manette PS3 et un Dongle Blutooth CSR 4.0, non plus. J'ai fais tester le tout a un malade de Street Fighter 2 qui peste si il y a une micro seconde de lag et pour lui, tout est ok. Avec mon clavier Logitec sans fils (pas BT mais RF), aucun lag mon plus. Le probleme vient probablement d'un lag de communication série entre l'Arduino et le Rpi. J'ai pas le temps d'essayer avec un Arduino et un Teeny, je testerais probablement en début d'année ces solutions, ça pourrait intéresser du monde.
-
@ironic : J'ai trouver des instructions pour faire en sorte que mon montage soit reconnu comme DEUX joystick avec la library suivante: https://github.com/MHeironimus/ArduinoJoystickLibrary Je m'y mets pour essayer ça...
-
This library comes in three flavors:
- Joystick - adds a single joystick that contains an X, Y, and Z axis (including rotation), 32 buttons, 2 hat switches, a throttle, and a rudder.
- Joystick2 - adds two simple joysticks that contain an X and Y axis and 16 buttons.
- Joystick3 - adds three simple joysticks that contain an X and Y axis and 16 buttons
3 Joys a 16 boutons, faut un sacré paquets d'entrées ? J'ai pas lu grand chose mais rien qu'avec des entrées analogiques et quelques résistances, on peut faire pas mal d'entrées. Un simple ATmega 168 ou 328 ne fonctionne pas, faut un ATmega32u4 (contrôleur usb different). Bon, je pense que tu sais tout ça. J’espère que t'auras pas de probleme de latence. Contrairement au Rpi, l'Arduino est en vrai temps réel, si il y a un probleme, ça vient pas de lui. (pas du hard, peu être du soft).
-
@ironic : Pour le "paquet d'entré", j'ai utilisé pour mon montage 2 puce MCP23017 qui permet 32 entrées sur les deux GPIO i2c. En rajouter une ou deux de plus pour d'autres entrées est facile... Par contre, pour les entrées analogiques... https://www.adafruit.com/products/732 Le clone de SparkFun Pro Micro que j'utilise en ce moment est un ATmega32u4, comme tu l'a mentionné. J'ai essayé d'utiliser la bibliothèque pour 2 joystick, mais un seul joystick est reconnu par mon Mac et par Recalbox. Tous les boutons sont reconnu, mais pour utiliser la façon officiel de configurer les manettes dans Recalbox, ça ne fonctionne pas. Quand je configure le deuxième stick, ça écrase la configuration du premier. Mais pire, j'essaie le stick quand même, pour un seul joueur, et le jeu que j'utilise pour tester (1941: Counter Attack) ne démarre pas, alors qu'il démarre bien lorsque j'utilise ma manette SNES USB. Mes sticks font planter Retroach??? En attendant, je peux m'amuser avec mes sticks sur mon ordinateurs. Mais je veux encore me battre pour que ça fonctionne sur Recalbox. Parce que je l'aime bien, Recalbox...
-
Je ne sais pas si cela va te servir, mais j'utilise un PCB picade, Arduino Leonardo il me semble, en tant qu'émulateur clavier et je n'ai pas du tout de latence. Pour le code c'est ici : https://github.com/pimoroni/Picade-Sketch
-
Avec 32 E/S (Facilité de câblage en i2c) t'es tranquille. Laisse tomber l'analogique, c'est plus simple avec tes CI. T'as pas besoin de le faire reconnaitre comme 2 joysticks indépendants si tu utilises que Retroarch. (Mais je ne sais pas combien de boutons Retroarch peut encaisser...). Retroarch permet d’utiliser un seul joystick reconnu et d'attribuer des touches/boutons différentes pour chaque joueurs. C'est pas ce que tu veux mais ça peut fonctionner. J'utilise cette solution pour jouer avec le Player 2 malgré mon panel 1 player. Utile aussi si par exemple tu veut un autre personnage a Gauntlet, P1=joy1, P2=joy2, P3=Joy3... (Tu peux même contrôler les 4 perso en même temps avec la même manette. Débile, marrant, a savoir...). Les premiers jeux 2 Players utilisant 1 seul joy, on jouait alternativement, j'utilise également cette solution. @Glooobule : La solution d'Arduino reconnu en clavier peut être intéressante, personnellement je préférerais que ce soit 1 joy (ou 2) HID, mais si ça résout le probleme. Après, pourquoi ça bug avec les jeux, je peux pas te dire, J'ai que de l'ATmega 168/328/Teensy sous la main. Je t'encourage a persévérer, ça peut être intéressant pour les prochains qui voudrais utiliser cette solution.
...qui permet 32 entrées sur les deux GPIO i2c.
Les deux GPIO i2c ? les 2 broches de l'i2c ou deux i2c distincts ? Les CI i2c sont chainables mais je pense que tu le sais.
-
Le pcb picade arduino peut etre flasher en Joy HID, keyboard ou même PS3 voir code ici : Flasher PCB Picade arduino Leonardo : - Comme un clavier en choisissant les touches https://github.com/pimoroni/Picade-Sketch - Comme un joystick USB Recalbox Friendly https://github.com/DsChAeK/Picade - Comme une manette PS3 https://github.com/Gadgetoid/picade-ps3
-
Ya des différences en Arduino Leonardo et Arduino Micro Pro mais j'ai pas vérifié. En tout cas, merci pour l'info, c'est con que mon Xin-Mo (interface usb<>joystick) me donne entièrement satisfaction, sinon j'aurais claqué un Arduino dans ma borne. Et tant qu'a faire, l'utiliser pour piloter l'éclairage Marquee (faire un effet de tube fluorescent qui s'allume) et le power off, reboot...
-
@ironic : J'ai chainer les 2 puces. Je parlais du SCL et SDA en parlant des deux GPIO. Pardon pour la confusion. @Glooobule : Merci pour le lien. Je l'ai analyser et j'ai essayer quelque trucs en m'y fiant. Malheureusement, j'ai brické mon Arduino! J'en reviens pas. Avec un simple sketch, mon board n'est plus reconnaissable par mon ordinateur. J'ai reproduit le problème sur un autre clone du Arduino Pro Micro pour être sûr que ce n'était pas un hasard. En toute logique, c'est la bibliothèque TimerOne.h qui fait planter le clone Arduino pourri que j'ai utilisé. Cette bibliothèque est incluse dans le code de iCade et est nécéssaire pour le DEBOUNCE DELAY. (C'est peut-être ce qui manquait à mon code pour qu'il fonctionne bien... Ça expliquerait mon lag...) Alors je vais mettre une pause à mes recherches, faute de matériel qui fonctionne. Je vais peut-être regarder du côté de Teensy sur ebay, en espérant que ça soit de meilleure qualité.
-
J'ai jamais oh grand jamais briqué un Arduino; La seul chose que j'ai fait, a mes début, j'ai cramé (en merdant avec un transistor) l'ATmega328 de mon Arduino Uno. Par chance, il était sur support, donc je l'ai changé J'utilise un Uno, Nano168, Nano328, Micro Pro et un Teensy. Sinon, entre un Arduino traditionnel et un Teensy (j'ai un 3.1) c'est le jour est la nuit. Déjà tu flashes tes progs en 1 a 2 secondes et ca boot instantanément. Et surtout, beaucoup plus de memoires, gpio, vitesse... Un petit comparatif ici : http://arduinoland.free.fr/forum/topic.php?id=4 C'est (encore) un projet que j'ai démarré et je fais trop de trucs a la fois... IDE/Langage identique mais toutes les librairies ne sont pas compatibles (a savoir). Peut être le débriquer par FTDI...
-
Ah mer** zut ... je suis vraiment désolé Tchernobil ...
-
T'as pas à être désolé @Glooobule, c'est l'aventure! J'ai réussi à débriquer mes 2 Arduinos avec un "Pocket AVR Programmer", en faisant "burn bootloader". Après quelques tests, j'ai pu établir que d'utiliser Timer1 comme dans le Picade pour lire une entrée du MCP23017 fait tout planter. Je ferai d'autres tests un peu plus tard pour voir si je ne peux me passer du Timer1 et si ça répond mieux dans Recalbox avec le "debounce". J'ai acheté un Teensy sur ebay. Il est en route.
-
Une tuerie le Teensy. C'est con que depuis un an j'ai mis ça de coté, je fais trop de truc en même temps...