|
||||||||
|
||||||||
| This page is also available in English | ||||||||
| Description du projet | [cacher] |
Je propose donc ce petit projet qui à l'aide d'un microcontrôleur, permet d'utiliser 12 boutons (4 directions + 8 boutons génériques) sur son PC via le port USB.
Selon vos habiletés, vous pouvez construire le circuit sur un 'breadboard' (En français c'est quoi?)
en utilisant des composants standards ou la version 'montage en surface' en utilisant
les dessins du circuit multiuse PCB2. Je vends aussi
des circuits-imprimés pré-assemblés et des micro-controleurs (boitier DIP seulement)
pré-programmés. Pour plus d'infomations, visitez mon
magasin en ligne.
Pas besoin de pilotes! Le standard USB définit certaines classes de périphériques. Dans ce project, j'utilise la classe HID (Humain input device) qui permet de communiquer à l'ordinateur de façon générique que le périphérique connecté est un controleur de jeu possédant 2 axes et 2 boutons. Ceci permet au circuit de fonctionner sous plusieurs systèmes d'exploitation automatiquement, en autant que le système en question supporte USB et la classe HID. (J'ai essayé et ça fonctionne sous Win98, Win2K, WinXP et Linux) Ce projet utilise le microcontrôleur ATmega8 d'Atmel. Ce microcontrôleur ne supporte pas USB nativement alors j'ai utilisé le pilote USB logiciel-seulement codé par Objective Development. Ce pilote permet a un microcontrôleur AVR tel que l'ATmega8 de communiquer en USB avec un minimum de composantes externes. |
| Schémas | [cacher] |
Liste de pièces:
Pour la connection USB, vous pouvez simplement dénuder un cable USB et souder les fils directement sur le circuit. USB utilise des couleurs de fils standardisés (sauf parfois certains câbles de basse qualité alors méfiez vous!):
|
| Programmation du microcontrôleur | [cacher] |
| Les microcontrôleurs sont des pièces qui doivent être programmées. Voici le fichier à programmer: usb_game12-1.0.hex Plusieurs microcontrôleurs possèdent ce qu'on appel 'Fuse bytes'. Dans le cas du ATmega8, il y en a deux: Le 'high byte' et le 'low byte'. Ces deux octets servent à configurer certains paramètres du microcontroleur. Quel type d'horloge? Crystal? Résonateur? Oscillateur RC interne? Permettre la programmation par ISP? Il est très important de configurer les fuse bytes avec les bonnes valeurs. L'utilisation de mauvaises valeurs peut rendre le microcontroleur inutilisable. La valeurs par défaut des fuses ne conviennent pas. Pour ce projet, voici les bonnes valeurs: high byte = 0xc9, low byte = 0x9f Pour de l'information sur la programmation d'un AVR, visitez ma page sur la programmation d'AVR |
| Code source | [cacher] |
| Le code source est disponible sous license GPLv2 et est compilé avec avr-gcc.
Pour éviter des conflits, si vous faites des changements au report descriptor,
ne distribuez pas le résultat sans avoir remplacé le USB Vendor+product ID par
le votre. usb_game12-1.0.tar.gz |
| Circuit imprimé pour la version 'montage en surface' | [cacher] |
La version 'montage en surface' utilise mon circuit
Multiuse PCB2. Voici à quoi il ressemble:
|
| Câblage NeoGeo | [cacher] |
| Les contrôles de NeoGeo utilisent une prise de type DB15 standard, comme pour les anciens joysticks pour
PC (Ces derniers ne sont pas compatibles avec ce circuit). Voici une table expliquant comment utiliser un joystick NeoGeo sur ce circuit:
|
| Avertissement | [cacher] |
|
Je ne saurais être tenu responsable pour les dommages
que la mise en oeuvre des instructions présentées
sur cette page pourraient causer à votre équipement
ou à vous-même. Aussi, je ne donne aucune garantie quant
à l'exactitude des informations et à leur fonctionnement.
Notez toutefois que les procédures ci-haut ont fonctionnées
sans aucun problème pour moi. |
Site codé avec![]() | Dernière mise à jour: 25 Avril 2008 |