Pad d'arcade : Différence entre versions

(Page créée avec « {{ {{tntn|Tuto Details}} |SourceLanguage=none |Language=fr |IsTranslation=0 |Main_Picture=Pad_d'arcade_arcade_big.png |Licences=Attribution (CC BY) |Description=<translate... »)
 
(Cette version a été marquée pour être traduite)
Ligne 5 : Ligne 5 :
 
|Main_Picture=Pad_d'arcade_arcade_big.png
 
|Main_Picture=Pad_d'arcade_arcade_big.png
 
|Licences=Attribution (CC BY)
 
|Licences=Attribution (CC BY)
|Description=<translate>Une manette type arcade utilisant le protocole USBHID.</translate>
+
|Description=<translate><!--T:1--> Une manette type arcade utilisant le protocole USBHID.</translate>
 
|Area=Play and Hobbies
 
|Area=Play and Hobbies
 
|Type=Creation
 
|Type=Creation
Ligne 16 : Ligne 16 :
 
}}
 
}}
 
{{ {{tntn|Introduction}}
 
{{ {{tntn|Introduction}}
|Introduction=<translate>Le projet fini, dans la version 1.1, propose un Pad arcade compatible Windows (testé sous xp, et 7), non testé sous Mac,Linux. Le protocole USB utilisé est le "HID", ne nécessitant pas de pilote. Le circuit peut supporter soit :
+
|Introduction=<translate><!--T:2-->
 +
Le projet fini, dans la version 1.1, propose un Pad arcade compatible Windows (testé sous xp, et 7), non testé sous Mac,Linux. Le protocole USB utilisé est le "HID", ne nécessitant pas de pilote. Le circuit peut supporter soit :
  
 +
<!--T:3-->
 
- 2 axes numériques + 24 boutons (2 joueurs arcade)
 
- 2 axes numériques + 24 boutons (2 joueurs arcade)
  
 +
<!--T:4-->
 
- 2 axes analogiques + 10 boutons (manette commerciale la plus fréquente)
 
- 2 axes analogiques + 10 boutons (manette commerciale la plus fréquente)
  
 +
<!--T:5-->
 
Le support (boitier) quand à lui est conçu pour porter une Pad arcade 1 joueur.</translate>
 
Le support (boitier) quand à lui est conçu pour porter une Pad arcade 1 joueur.</translate>
 
}}
 
}}
 
{{ {{tntn|Materials}}
 
{{ {{tntn|Materials}}
|Material=<translate>* Circuit imprimé (cf. partie circuit)
+
|Material=<translate><!--T:6-->
 +
* Circuit imprimé (cf. partie circuit)
 
* Pic 18f4550
 
* Pic 18f4550
 
* Résistances (3,3k<sub>(2)</sub> et 3,3k ->10k ohm<sub>(14 pour le pad 1 joueur)</sub>)
 
* Résistances (3,3k<sub>(2)</sub> et 3,3k ->10k ohm<sub>(14 pour le pad 1 joueur)</sub>)
Ligne 33 : Ligne 38 :
 
* Bouton et stick
 
* Bouton et stick
 
* Pickit 3 <sub>(ou autre programmeur)</sub></translate>
 
* Pickit 3 <sub>(ou autre programmeur)</sub></translate>
|Tools=<translate>'''Machines utilisées'''
+
|Tools=<translate><!--T:7-->
 +
'''Machines utilisées'''
 
* Machine d'impression de circuit (CNC ou imprimante chimique).
 
* Machine d'impression de circuit (CNC ou imprimante chimique).
 
* Découpeuse laser
 
* Découpeuse laser
Ligne 43 : Ligne 49 :
 
{{ {{tntn|Separator}}}}
 
{{ {{tntn|Separator}}}}
 
{{ {{tntn|Tuto Step}}
 
{{ {{tntn|Tuto Step}}
|Step_Title=<translate>Circuit imprimé</translate>
+
|Step_Title=<translate><!--T:8--> Circuit imprimé</translate>
|Step_Content=<translate>Pour ce qui est du circuit imprimé, je vous propose celui que j'ai conçu.
+
|Step_Content=<translate><!--T:9-->
 +
Pour ce qui est du circuit imprimé, je vous propose celui que j'ai conçu.
  
 +
<!--T:10-->
 
Il est conseillé d'apporter les améliorations suivantes :
 
Il est conseillé d'apporter les améliorations suivantes :
  
 +
<!--T:11-->
 
- Ajout d'un plan de masse (pour une gravure du circuit à la CNC, et pour faire moins de bruit CEM)
 
- Ajout d'un plan de masse (pour une gravure du circuit à la CNC, et pour faire moins de bruit CEM)
  
 +
<!--T:12-->
 
- Réduction de la taille (coût plus faible et moins de place dans la boîte)</translate>
 
- Réduction de la taille (coût plus faible et moins de place dans la boîte)</translate>
 
|Step_Picture_00=Pad_d'arcade_arcad_big.png
 
|Step_Picture_00=Pad_d'arcade_arcad_big.png
 
}}
 
}}
 
{{ {{tntn|Tuto Step}}
 
{{ {{tntn|Tuto Step}}
|Step_Title=<translate>Programmation du PIC</translate>
+
|Step_Title=<translate><!--T:13--> Programmation du PIC</translate>
|Step_Content=<translate>Pour le Pic18f4550 un programmateur Pickit 3 ( ~15€ ) suffis.
+
|Step_Content=<translate><!--T:14-->
 +
Pour le Pic18f4550 un programmateur Pickit 3 ( ~15€ ) suffis.
  
 +
<!--T:15-->
 
Deux logiciels s'offrent à vous :
 
Deux logiciels s'offrent à vous :
  
 +
<!--T:16-->
 
- MPLab 8.92 + c18 compiler
 
- MPLab 8.92 + c18 compiler
  
 +
<!--T:17-->
 
- MPLab X + xc8 compiler
 
- MPLab X + xc8 compiler
  
 +
<!--T:18-->
 
Pour une simple de raison de programme d'exemple disponible et de prise en main j'ai utilisé MPLab 8.91 + c18 compiler (disponible sur le site de Microchip)
 
Pour une simple de raison de programme d'exemple disponible et de prise en main j'ai utilisé MPLab 8.91 + c18 compiler (disponible sur le site de Microchip)
  
 +
<!--T:19-->
 
J'ai donc modifié le fichier d'exemple "HID - Mousse" pour en faire un HID - joypad
 
J'ai donc modifié le fichier d'exemple "HID - Mousse" pour en faire un HID - joypad
  
 +
<!--T:20-->
 
Les fichiers qui vous seront utiles pour modification sont :
 
Les fichiers qui vous seront utiles pour modification sont :
 
* joypad.c
 
* joypad.c
Ligne 107 : Ligne 124 :
 
}}
 
}}
 
{{ {{tntn|Tuto Step}}
 
{{ {{tntn|Tuto Step}}
|Step_Title=<translate>Boîtier</translate>
+
|Step_Title=<translate><!--T:21--> Boîtier</translate>
|Step_Content=<translate>La boite à été faite pour 1 joueur. Elle contient 10 boutons (8 de jeu + select, start), 1 espace pour le stick et 2 visses pour fermer le capot supérieur. Le capot inférieur est fixé par de la colle à bois aux quatre contours.</translate>
+
|Step_Content=<translate><!--T:22--> La boite à été faite pour 1 joueur. Elle contient 10 boutons (8 de jeu + select, start), 1 espace pour le stick et 2 visses pour fermer le capot supérieur. Le capot inférieur est fixé par de la colle à bois aux quatre contours.</translate>
 
|Step_Picture_00=Pad_d'arcade_boitier_big.jpg
 
|Step_Picture_00=Pad_d'arcade_boitier_big.jpg
 
}}
 
}}
 
{{ {{tntn|Tuto Step}}
 
{{ {{tntn|Tuto Step}}
|Step_Title=<translate>Résultat final</translate>
+
|Step_Title=<translate><!--T:23--> Résultat final</translate>
 
|Step_Content=<translate></translate>
 
|Step_Content=<translate></translate>
 
|Step_Picture_00=Pad_d'arcade_arcade_big.png
 
|Step_Picture_00=Pad_d'arcade_arcade_big.png
 
}}
 
}}
 
{{ {{tntn|Notes}}
 
{{ {{tntn|Notes}}
|Notes=<translate>Un projet réalisé au [[Group:LabBoîte Cergy|fablab LabBoîte de Cergy]] à retrouver aussi sur [https://github.com/hugotpichon/arcpad-pic18f4550 github.com/hugotpichon/arcpad-pic18f4550].</translate>
+
|Notes=<translate><!--T:24--> Un projet réalisé au [[Group:LabBoîte Cergy|fablab LabBoîte de Cergy]] à retrouver aussi sur [https://github.com/hugotpichon/arcpad-pic18f4550 github.com/hugotpichon/arcpad-pic18f4550].</translate>
 
}}
 
}}
 
{{ {{tntn|Tuto Status}}
 
{{ {{tntn|Tuto Status}}
 
|Complete=Published
 
|Complete=Published
 
}}
 
}}

Version du 12 juillet 2018 à 11:14

Auteur avatarHugot | Dernière modification 9/12/2019 par Clementflipo

Pad d'arcade arcade big.png
Une manette type arcade utilisant le protocole USBHID.
Difficulté
Difficile
Durée
1 jour(s)
Catégories
Jeux & Loisirs
Coût
50 EUR (€)
Autres langues :
français
Licence : Attribution (CC BY)

Introduction

Le projet fini, dans la version 1.1, propose un Pad arcade compatible Windows (testé sous xp, et 7), non testé sous Mac,Linux. Le protocole USB utilisé est le "HID", ne nécessitant pas de pilote. Le circuit peut supporter soit :

- 2 axes numériques + 24 boutons (2 joueurs arcade)

- 2 axes analogiques + 10 boutons (manette commerciale la plus fréquente)

Le support (boitier) quand à lui est conçu pour porter une Pad arcade 1 joueur.

Matériaux

  • Circuit imprimé (cf. partie circuit)
  • Pic 18f4550
  • Résistances (3,3k(2) et 3,3k ->10k ohm(14 pour le pad 1 joueur))
  • Capacité (condensateurs 47nf et 100uF)
  • Bois (MDF 5 (ou 6mm))
  • Câble USBA mâle
  • Bouton et stick
  • Pickit 3 (ou autre programmeur)

Outils

Machines utilisées

  • Machine d'impression de circuit (CNC ou imprimante chimique).
  • Découpeuse laser
  • Fer à souder

Logiciel utilisé

  • MPLab IDE 8.91 disponible sur le site de  microchip
  • Eagle ou autre logiciel de CAO

Étape 1 - Circuit imprimé

Pour ce qui est du circuit imprimé, je vous propose celui que j'ai conçu.

Il est conseillé d'apporter les améliorations suivantes :

- Ajout d'un plan de masse (pour une gravure du circuit à la CNC, et pour faire moins de bruit CEM)

- Réduction de la taille (coût plus faible et moins de place dans la boîte)




Étape 2 - Programmation du PIC

Pour le Pic18f4550 un programmateur Pickit 3 ( ~15€ ) suffis.

Deux logiciels s'offrent à vous :

- MPLab 8.92 + c18 compiler

- MPLab X + xc8 compiler

Pour une simple de raison de programme d'exemple disponible et de prise en main j'ai utilisé MPLab 8.91 + c18 compiler (disponible sur le site de Microchip)

J'ai donc modifié le fichier d'exemple "HID - Mousse" pour en faire un HID - joypad

Les fichiers qui vous seront utiles pour modification sont :

  •  joypad.c
    • #pragma config PLLDIV = X //(X = fréquence du quartz/4Mhz)
    • char buffer[7]; // peut être modifié si vous changez les sorties de la manette
    • void joypad(void) //à modifier si vous changez les sorties
  • usb_config.h
    • #define HID_INT_IN_EP_SIZE      7 //nombre d'octets par message
    • #define HID_RPT01_SIZE          55 // à changer si vous modifiez le "HID report"
    • #define MY_VID 0x04D8 #define MY_PID 0x80FA // éditez si vous avez mieux, ce sont des VID et PID de microchip (non commerciaux)
  • joypad_map.c
    • char Lect_ANX(void)
      • N'est pas utilisé, mais quelques changements permettent d'effectuer la lecture d'un stick analogique.
    • char Lect_XY(void)
      • Permet la lecture de stick numérique (type arcade)
    • char Lect_buton_X_to_Y (void)
      • Permet la lecture des boutons
      • Vous devrez probablement modifier les valeurs : if (botonX == 0) en fonction de vos soudure.
  • joypad_map.h
    • Définie les utilitaires liés à joypad_map.c
      • Pratique pour repérer les liens entre "entrée et bouton"
  • usb_descriptor.c
    • Le fichier le plus complexe que vous pourriez avoir à modifier
    • //Manufacturer string descriptor
      • votre nom, plus ou moins
        • n'oubliez pas de de modifier "string[25]" si vous changez le nombre de caractère
    • //Product string descriptor
      • Le nom qu'il aura dans le système (vue par les jeux et autres)
        • N'oubliez pas de modifier "string[25]" si vous changez le nombre de caractères
          • (un nombre réduit de caractères < 12 , sans accents, est une bonne idée)
    • //Class specific descriptor - HID joypad
      • Bien que je vous déconseille de vous aventurer en terrain dangereux vous devrez toucher à cette horreur si vous souhaitez modifier les sorties du pad.
      • Je n'ai pas tout compris à ce langage mais si vous souhaitez vous y aventurer :
        • "usb_lyser" (payant mais version trial de 30 jour disponible)
          • Peut vous aider en récupérant les HID report des objets que vous connectez en USB à votre PC (souris pas chère, manette,...).
        • MSDEV : Dt.exe (logiciel fournit par Microsoft) permet d'écrire les Bytes(octet) de code du HID report.


Étape 3 - Boîtier

La boite à été faite pour 1 joueur. Elle contient 10 boutons (8 de jeu + select, start), 1 espace pour le stick et 2 visses pour fermer le capot supérieur. Le capot inférieur est fixé par de la colle à bois aux quatre contours.




Étape 4 - Résultat final




Notes et références

Un projet réalisé au fablab LabBoîte de Cergy à retrouver aussi sur github.com/hugotpichon/arcpad-pic18f4550.

Commentaires

Published