IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Arduino Discussion :

Communication entre 2 cartes contrôleur de jeu


Sujet :

Arduino

  1. #1
    Membre confirmé
    Homme Profil pro
    pompier
    Inscrit en
    Janvier 2020
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : pompier

    Informations forums :
    Inscription : Janvier 2020
    Messages : 90
    Par défaut Communication entre 2 cartes contrôleur de jeu
    Bonjour, je suis détenteur de deux cartes arduino:
    - micro pro
    - mega

    Je fais du simulateur de vol et je me suis fabriqué il y a quelque temps une boite à bouton et j'ai fais une bidouille trouvée sur GitHub pour que ça simule un périphérique USB sur la carte arduino.

    Il y a environ 2 mois, j'ai imprimé en 3D une manette de jeu et codé le fonctionnement sur l'arduino micro.

    Mon future projet est de coupler les 2 projets en refaisant une impression 3D.
    Du coup, pouvez-vous me dire si en croisant les ports RX et TX, et avec le bon code si la connexion au port USB de PC permettra de détecter l'ensemble comme un seul périphérique de jeu?
    Il y a-t-il un code spécifique pour faire communiquer les 2 cartes ou est automatique.

    Comment disposer le code pour les switch ? 1 code global pour les 2 cartes ou 1 code par carte?
    L'identification de chaque input reste-t-il le même? A0, A1....

    S'il y a un tuto sur ce site ou si vous avez unr référence adaptée d'une vidéo youtube , je suis preneur.

    MErci par avance pour votre retour.

  2. #2
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 938
    Par défaut
    Non si vous croiser Rx et Tx (sans oublier de joindre les GND) entre vos deux cartes ça ne va rien faire du tout.

    L’Arduino Micro utilise le port USB natif du microcontrôleur ATmega32U4 pour la communication via Serial, ce qui le rend indépendant des broches 0 (RX) et 1 (TX). Ces broches sont reliées à l’interface série matérielle Serial1, que l’on peut utiliser simultanément avec l’USB.

    Il faudrait donc un code qui écoute ce qui est reçu par le Rx du Micro (envoyé par le Tx de la Mega avec donc un protocole à définir) afin de le faire suivre sous forme de commandes via le port USB et bien sûr si le PC renvoie des données il faudra les router vers la Mega avec aussi un protocole maison.

    —————————

    Peut être il faudrait envisager (s’il reste des broches sur la Mega) d’utiliser directement la Mega pour communiquer en USB et virer la Micro.

    Pour une Arduino Mega (ATmega2560), le bootloader d’origine ne prend pas en charge HID, car l’USB passe par une puce séparée (ATmega16U2) qui agit comme pont USB-série.

    Pour permettre le HID sur une Mega, il faut reprogrammer l’ATmega16U2 avec un bootloader ou un firmware HID. Si vous regardez HoodLoader2 vous verrez que c’est un bootloader modifié qui permet de reprogrammer l’ATmega16U2 des cartes Arduino Mega pour ajouter des fonctions USB avancées comme le HID. Bien sûr il faut aussi coder pour cela

    Cf https://github.com/NicoHood/HoodLoader2

  3. #3
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 661
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 661
    Par défaut
    Bonjour,

    ton Arduino micro n'a plus E/S sorties disponibles ? Pour la manette si elle est équipée de potentiomètres, tu peux utiliser des entrées analogiques.
    Sinon, pour que 2 cartes Arduino échangent des informations, je vois la communication SPI ou I2C. Il faudra reprogrammer le µcontrôleur de la micro pour envoyer les données sur le port USB.


    Peux-tu donner le lien de la "bidouille" que tu as trouvée sur github qui permet de transformer ton Arduino en contrôleur USB ?

  4. #4
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 938
    Par défaut
    Citation Envoyé par Auteur Voir le message
    Peux-tu donner le lien de la "bidouille" que tu as trouvée sur github qui permet de transformer ton Arduino en contrôleur USB ?
    Dans l'absolu il n'y a aucune "bidouille" à effectuer, la Micro "parle" USB nativement donc on peut utiliser une bibliothèque qui permet de se présenter comme des boutons, joysticks, etc...


    par exemple avec cette bibliothèque https://github.com/MHeironimus/ArduinoJoystickLibrary


    Comme je le dis dans l'autre post, ce n'est pas le cas pour la MEGA sauf si on change le boot loader.

Discussions similaires

  1. Communication entre 2 cartes
    Par hugobeauce dans le forum Arduino
    Réponses: 4
    Dernier message: 26/05/2024, 12h19
  2. Communication entre une carte arduino et une RPI
    Par Lancelot60 dans le forum Arduino
    Réponses: 1
    Dernier message: 26/01/2021, 18h30
  3. Réponses: 1
    Dernier message: 12/06/2020, 11h06
  4. Communication bluetooth entre deux cartes Arduino
    Par raoudha1 dans le forum Arduino
    Réponses: 4
    Dernier message: 16/10/2018, 16h35
  5. Réponses: 2
    Dernier message: 22/02/2017, 18h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo