|
les projets - modélisme
acquisition
des données de pilotage : |
hobbytronics usb host :
Un shield ARDUINO que je viens de découvrir et qui va bien m'aider dans mes
expérimentations ...
Encore des choses qui
avancent...
Cette interface permet de faire l'acquisitions des données d'un port USB Host
sur plusieurs supports.
HobbyTronics a choisi de personnaliser le support accueilli, clavier, souris,
joystick, clef USB, Bluetooth, modem GSM...
Il n'y a pas de librairies à installer car les données son
accessible, soit en RS232 au format TTL, soit en I2C...
Chaque module pouvant être chaînée sur une boucle I2C,.toute la structure communication pourrait
être possible avec seulement 2 lignes (A5 + A6).
Les données sont transmises sous la forme :
$JOY,90,90,180,90,90,90,90,90,90,0,0,0,0,0,0,0,0,0,0,0,0,0,0,07B5,0316\r\n
En I2C, les registres transmis correspondent à :
Register | Data |
0 |
X
Axis |
Les 4 derniers registres permettent d'identifier le fabricant et le modèle de la manette...
Premier essai :
Je dispose d'une manette de jeux, sans publicité, Logitech WingMan Extreme,
récupéré pour quelques pièces de monnaie dans un vide grenier.
J'avais gardé ça sous le coude en espérant pouvoir la connecter en analogique
car elle dispose d'une prise DB15, suivie par un adaptateur USB.
Je raccorde donc tout ce petit montage avec mon Aduino Nano en I2C et je
prends le petit fichier d'exemple disponible sur le site.
Je lance le moniteur série, et j'obtiens toutes les valeurs dont j'ai besoin
pour identifier chaque voies sans difficulté particulière.
Les voies analogiques : haut et bas, droite et gauche, pivotement droite et
gauche de la manette, manette des gaz, en gris sur la gauche de l'image.
Une voie pseudo analogique : sur le dessus de la manette, le petit TouchPad du
centre, je lis la valeur 8, en poussant en haut, j'obtiens 0, puis 1 jusqu'a 7
en rotation horaire.
Les voies numériques concernent la gachette de tir, les 4 boutons haut / bas du
dessus de la manette, les deux boutons encadrés de rouge sur le socle.
Second essai :
Je ressort encore une fois des cartons une autre manette de jeux vidéo pour confirmer mon premier essai.
Et là, je m'aperçoit que la manette n'est pas analogique mais numérique...
Chaque voie me donne 0 / 1 pour chaque action...
Sauf que...
En appuyant sur chaque bouton, je constate que lorsque j'appuie sur la touche
'MODE du centre, la LED du dessous passe de Vert à Rouge...
Et dans ce mode, la manette deviens analogique...
Je trouve donc des valeurs proportionnelles sur les mouvements des deux JoyStick...
Si ce n'est que la progressivité est plutôt violente. Donc difficile d'usage
pour du modélisme...
Il faudra, pour un usage ultérieur confirmer les valeurs des 4 derniers
registres pour vérifier si je peux identifier le mode de fonctionnement.
Cela permettrait l'usage de deux fonctions en une.
Un usage pour piloter le modèle en analogique, et en basculant le mode de
piloter d'autres fonctions annexes avec les mêmes commandes...
Branchement pour essai de pilotage :
Trois petits servomoteur 9G ont été raccordés sur respectivement les sorties
PWM D9, D10 et D11.
Elles permettrons de visualiser la direction, la vitesse et par rotation de la
manette une fonction propulsion d'étrave...
L'interface USB Host est raccordée en I2C, libérant D0 et D1 utilisé par
l'interface de programmation et évitant l'utilisation de bibliothèque RS232
virtuelle.
Petite aparté :
Vous remarquerez les deux petites pinces crocodiles sur la gauche de
l'image.
En effet, à l'usage, il s'est avéré que l'alimentation par l'USB du Nano ou par
la régulation 12V de la platine n'était pas suffisante.
La consommation des trois petits servo et l'alimentation de la manette USB était
trop importante.
Je perdais la synchro de l'interface USB, LED bleu qui s'éteignait avec un
fonctionnement erratique des servo.
J'ai donc du fournir un petit surcroît de puissance par mon alimentation 5V
externe.
Tout est rentré dans l'ordre et fonctionne correctement...
Paramétrage des voies analogiques :
Lors de l'acquisition dans le moniteur série
Le code :
Un premier jet en adaptant l'exemple fourni sur le site d'HobbyTronics
Le fichier INO a télécharger
Le soft n'est pas du tout optimisé. Mais il a le mérite de fonctionner pour
la phase de test.
Vous pouvez décocher les commentaires pour la gestion du port série pour obtenir
simultanément les données de la manette sur le moniteur série.
Il sera réécrit avec les bibliothèque modélisme asynchrone de
Philippe LOUSSOUARN.
Une page dédiée sera publiée prochainement...
Dans l'attente, allez gratter dans sa rubrique Arduino, vous y trouverez votre
bonheur
Des questions, des commentaires en direct ?
© 06/07/2017 - Dernière modification : 21/08/2017 - F4CVM / Pascal