Différences entre versions de « Projets:Interfaces XAC »

De wikiup
Sauter à la navigation Sauter à la recherche
Ligne 85 : Ligne 85 :
 
*** [[File:LC USBHID Mouse-to-Joy-Serial PC.zip]]
 
*** [[File:LC USBHID Mouse-to-Joy-Serial PC.zip]]
 
** JPS ou Analogique Arduino vers XAC ou Pc sans envoie sur le port série carte Teensy LC :
 
** JPS ou Analogique Arduino vers XAC ou Pc sans envoie sur le port série carte Teensy LC :
***File:LC JPS-to-Joy-XAC-PC.zip
+
***File:LC JPS-to-Joy-XAC PC.zip
 
** JPS ou Analogique Arduino vers Pc avec envoie sur le port série carte Teensy LC :
 
** JPS ou Analogique Arduino vers Pc avec envoie sur le port série carte Teensy LC :
 
*** [[File:LC JPS-to-Joy-Serial PC.zip]]
 
*** [[File:LC JPS-to-Joy-Serial PC.zip]]

Version du 8 octobre 2019 à 18:43

Projet interface XAC


Description du projet

Réaliser et mettre oeuvre une solution logicielle et hardware pour connecter des interfaces de type Joystick à une XAC (Xbox Adaptive Controller).


On doit pouvoir se connecter sur les entrées arrières X1,X2 ou sur les entrées USB Gauche et Droite.


  • Fournir plusieurs types de dispositifs
    • Joystick JPS ou Arduino sur Entrées Arrières X1 ou X2
    • Joystick JPS ou Arduino sur Teensy LC connectée comme Joystick à une entrée USB XAC
    • Joystick JPS ou arduino sur Arduino Micro Pro connectée comme Joystick à une entrée USB XAC
    • Souris avec ou sans fil ou Souris au-travers de R-Net BT connectées comme Joystick à une entrée USB XAC

Analyse de l'existant

Equipe (Porteur de projet et contributeurs)

  • Jonathan (Porteur de projet)
  • Contributeurs
  • Animateur (Coordinateur du projet)
  • Fabmanager référent
  • Responsable de documentation
  • Christian (Concepteur)

Matériel nécessaire

Carte Teensy LC.

Carte Arduino Micro-pro

Carte Mini Host Usb

Outils nécessaires

Imprimante 3d IDE Arduino 1.89 TeensyDuino 1.46

Coût

Délai estimé

Fichiers source

Attention pour que le fichier compile il ne faut pas oublier de configurer depuis IDE Arduino>Outil>USB type>Serial+keyboard+Mouse+Joystick


Schémas


Code Arduino

Les Librairies à ajouter ou à remplacer

Sources librairies :

https://github.com/felis/USB_Host_Shield_2.0

https://github.com/gdsports/xac-mouse2joy/blob/master/joystick_teensy_20181205.zip

Le développement de ce code a été modifié par Christian Fromentin MHK Rennes.

Voir le fichier "Regarde-moi.txt" dans le dossier XAC-Joystick

A placer dans la librairie Arduino :

Etapes de fabrication pas à pas

La carte Mini Usb Host doit être modifiée.

(Certaine carte possède un strap qui permet de le faire sans couper une piste)

Il faut permettre l'alimentation du connecteur USB avec 5 volt et non 3.3v par défaut avec cette carte:

  • Etape 1 :
    • Couper la piste comme sur la photo (juste avant l'inscription "2.2k") et souder un fil :
      • Mini Host Usb Prepa.jpg
  • Etape :
    • Souder l'autre extrémité du fil :
      • Mini Host Usb Soude.jpg

Config 1: BT Hid vers XAC ou PC sans envoi sur le port série carte Teensy LC

Pour tester le Joystick du fauteuil (industriel), il faut couper le Bluetooth du PC pour empêcher le fauteuil de se connecter directement au PC en mode souris.

Ensuite connecter la teensy en USB à l'ordinateur.

Attendre l'apairage du fauteuil avec le host USB et teensy BT (penser à ajouter une led à l'apairage pour avoir un retour visuel)

Ensuite tester le joystick avec un logiciel par exemple dans Windows: Gestionnaire de périphériques Taper dans la barre de recherche de windows en bas à gauche, "Configurer les contrôleurs de jeu" puis la fenêtre Contreurs de jeu s'ouvre et vous devriez voir Keyboard/Mouse/Joystick, puis appuyer sur Propriétés pour avoir un affichage de l'état du joystick.

A noter que le joystick du fauteuil est en réalité une souris, c'est-à-dire qu'à chaque fois qu'on bouge la souris on reprend la position là où on l'avait laché, on est en position relative qui s'incrémente à chaque fois qu'on la bouge. Le code n'est pas optimisé pour l'utilisation avec le joystick du fauteuil, mais pour le joystick proportionnel sensible qui lui a une position neutre et fonctionne avec des positions absolues.

Problème: comment avoir un neutre sur une souris en respectant les contraintes de temps (latence) dans un jeu ? On ne peut avoir l'information que la souris est en position neutre à part observer qu'elle n'envoie pas d'information sur un temps donné.