まこと の ブログ

MaKoTo no burogu — Journal de bord…

Aller au contenu | Aller au menu | Aller à la recherche

G2N, un pistolet pour jeux vidéos -2-

Suite de l'étude précédente :

  • On continue avec l'intégration de la « Pistol Board » dans le pistolet Virtua Gun de SEGA.

Les borniers se relieront à la Main board pour fournir l'alimentation et les signaux de la camera, ainsi que pour les boutons start et gâchette de la manette USB.
dsc09362.jpg dsc09363.jpg

  • C'est en place, reste à connecter la caméra IR.

ATTENTION, Il faut obligatoirement une camera provenant d'une Wiimote officielle Nintendo !
La caméra d'une copie Chinoise, telle que celle-ci ne sera en rien compatible avec notre montage :
dsc09240.jpg dsc09228.jpg dsc09229.jpg dsc09233.jpg dsc09231.jpg dsc09238.jpg dsc09234.jpg

Voici donc la caméra Infra-rouge Pixart dé-soudée depuis une véritable Wiimote, sans Motion Plus intégré, modèle RVL-003.
dsc09433.jpg dsc09436.jpg

Je l'ai ensuite câblé sur une nappe de fils avec un connecteur HE10 Femelle au bout.
Afin de faire tenir la caméra dans le pistolet, on va exploiter une des fentes d'1 mm de large disposées dans le canon, là où se trouvait la lentille du Virtua Gun.
dsc09439.jpg dsc09616.jpg

Dans de la carte plastique d'1 mm d'épaisseur, a donc été découpé un disque percé d'un carré pour y loger la caméra.
Le filtre UV de la Wiimote a été sculpté pour s'adapter a la forme du canon, et le disque est formé grâce à des rajouts en carte plastique de 2 mm.
dsc09609.jpg dsc09608.jpg

Voilà les pièces achevées, désolé, le flash a cramé les photos, et on ne voit pas vraiment le cordon de colle tout autour de la caméra, utilisé pour fixer le montage.
dsc09614.jpg dsc09615.jpg

Reste à mettre en place la caméra connectée à la pistol board dans le pistolet.
Attention, si la WiiSensorBar est disposée au dessous de l’écran, la caméra IR doit être placée avec les pins vers le haut; Pins vers le bas si la caméra est au dessus de l'écran.
dsc09621.jpg dsc09623.jpg dsc09618.jpg

Mise au point :

Après avoir effectué les branchements de l'alimentation 5V et relié la Pistol Board à la Main Board, on peut mettre le montage sous tension.

  1. La première chose à faire, est d'agir sur le potentiomètre RV2 pour régler la luminosité de l'écran LCD.
  2. Après un reset du circuit (SW1), le message d'accueil doit apparaître.
  3. Ensuite, il faut mettre JP2 sur ON pour passer le montage en mode View Blob.

Après un reset, ce mode va afficher des 1023 sur l'écran LCD… Dés qu'on passe une source infra-rouge (flame de briquet, WiiSensorBar) devant la camera, une suite de chiffre va alors varier, témoignant du bon fonctionnement du circuit.

TroubleShooting :

  • L'écran n'affiche rien -> Régler RV2.
  • Le message « camera I2C Error » s'affiche sur l'écran ->

- Vérifier que les 3 CI sont bien alimentés.
- Vérifier le câblage de la camera…
- Essayer de débrancher la pistol board, à la place des 1023, il devrait s'afficher des 0, ce qui à priori témoigne du bon fonctionnement de la main board.

CAMERA I2C ERROR (1/2 sec)
LOADING CONFIG…  (3 sec de pause)
CONFIG LOADED… (3 sec de pause)
0000000000000000
0000000000000000

- Reconnecter les deux cartes, tout semble ok, pourtant si les 1023 restent figés, il y a sans doute un problème de communication entre les deux cartes.
- Déconnecter le signal SDA entre la main board et la pistol board et mettre sous tension, on va procéder à quelques mesures :

Quand SDA est en l'air, au démarrage, la Main Board passe en mode view blob.
Quand SDA est branché, à la Pistol Board (résistance de pull-up 2,2k au 3V), au démarrage, la Main Board bloque sur Camera I2C Error.
À l'oscilloscope on mesure bien le train sur SCL envoyé par le PIC.
Dés qu'on connecte la broche SDA, le signal SCL disparait. La mesure de SDA est à zero.
On peut voir SCL qui vit sa vie, calibre 100µs, puis 10µs :
hni-0049.jpg hni-0048.jpg hni-0050.jpg Là, on branche la résistance de SDA, et SCL passe à 0.
Si on déconnecte cette résistance de pull-up, SCL reste à 0.
Le signal sur SCL revient après un reset du PIC à condition que la pin 15 (SDA) reste en l'air.
De plus, à l'oscilloscope, les signaux d'alimentation 5V et le 3V apparaissent bruités.
En débranchant la caméra de la Pistol Board, les signaux redeviennent propres.

À ce stade, il semblerait que la Pistol Board soit fautive.
On peut le vérifier en établissant le dialogue entre la Main Board et la caméra, sans passer par la Pistol Board, mais en utilisant les signaux d'horloge, d'alim et de reset provenant de la Wiimote elle même !
Si la Main Board ne plante pas sur I2C Error et que les 1023 du mode Blob fonctionnent, c'est gagné, rechercher la panne sur la Pistol Board.

  • Justification des modifications par rapport au montage original :

L'horloge et le reset volé à la Wiimote ayant permis un fonctionnement correct, je me suis tourné vers l'oscillateur à quartz 25Mhz, qui, une fois la caméra IR connectée au circuit provoquait un méchant parasitage du 5V, et donc du 3,3V , induisant alors tous les soucis de communications.
La caméra fonctionnant en 3,3V, je me suis dit qu'elle pourrait ne pas apprécier de manger une horloge à 5V.
J'ai donc utilisé un oscillateur à quartz alimenté en 3,3V @25Mhz (le 24MHz, comme la Wiimote étant difficile à trouver), ce qui est beaucoup plus logique quand on sait que la caméra IR Pixart fonctionne en 3,3V !


Interfacer avec l'ordinateur :

  • Une fois que le système fonctionne en autonome, il reste à le faire passer pour un joystick analogique aux yeux de l'ordinateur.

Pour ce faire, en attendant le développement d'une carte Add-On spécifique, on va désosser une manette et utiliser le joystick analogique qui pilote la croix de direction (et pas l'autre !).
Il suffit de dessouder le potentiomètre (sa valeur doit être de 10kΩ pour que le circuit du joystick soit compatible avec le G2N) et de brancher des fils à la place en direction du connecteur K1 de la Main Board (Xa, Xw, Xb et Ya, Yw, Yb).
dsc09606.jpg dsc09624.jpg
Il faut aussi relier un fil depuis un bouton de la manette, vers K1 sur la position Reload.
Côté Pistol Board il faut câbler deux autres boutons de la manette vers la gachette SW1 et le bouton Start SW2.

  • On en profite pour repiquer du 5V sur la manette afin d'alimenter la Main Board.
  • Quand on agite le pistolet devant une source infrarouge, le mode test de manette de jeu de l'ordinateur doit permettre de visualiser la croix directionnelle bouger.

À suivre…

Commentaires

1. Le samedi, 11 janvier 2014, 00:20 par Angel

Quelle minutie, super travail. De longue heure d'amusement son a prévoir pour toi maintenant. Bonne soirée.

2. Le samedi, 9 mai 2015, 16:14 par the_ste

Bonjour. Très bon travail!
Où vous fournissez vous pour le quartz 25mhz (site web)?

3. Le mardi, 12 mai 2015, 10:47 par MaKoTo

C'est un composant malheureusement assez difficile à trouver directement en boutique.
C'est donc par l'intermédiaire d'ebay qu'on peut s'en procurer le plus facilement !

Ajouter un commentaire

Les commentaires peuvent être formatés en utilisant une syntaxe wiki simplifiée.

Fil des commentaires de ce billet