Construire sa propre borne d’arcade avec Raspberry Pi

Je me suis plongé dans le retrogaming en cherchant d’abord à posséder le plus de consoles possible. Le budget n’étant pas extensible, j’ai eu l’idée de construire ma propre borne d’acarde de type “Bartop” que l’on pouvait trouver à l’époque sur les comptoirs de bars, mais en utilisant des technologies actuelles avec un Raspberry Pi que je venais d’acquérir.

Tout est parti d’un constat simple : le jeu vidéo ne me divertissait plus autant qu’avant et malgré l’aspect visuel en constante évolution, je ne retrouvais plus la passion que j’avais eu pendant de nombreuses années.

Je me dis souvent que je suis né trop tard, et que je n’ai pas eu la chance de connaître les parties endiablées au fond d’un bar de quartier ou la simplicité des jeux des années 80. Né en 1990, j’ai été bercé par les premières grosses productions en 3D et au rythme effréné des sorties, qui ne nous laisse plus le temps de savourer chaque nouveau jeu. Au fil du temps je me suis plongé dans le retrogaming en cherchant d’abord à posséder le plus de consoles possible et en finissant par me focaliser sur quelques consoles précises. Le budget n’étant pas extensible, j’ai eu l’idée de construire ma propre borne d’acarde de type “Bartop” que l’on pouvait trouver à l’époque sur les comptoirs de bars, mais en utilisant des technologies actuelles avec un Raspberry Pi que je venais d’acquérir. Le choix d’un tel type de borne a été conduit dans l’idée de pouvoir la caser sur ma table de salon dans mon petit appartement de 35m², en me fixant un budget de 100€ maximum.

MATÉRIEL

  • Un écran de 17 pouces au format 4:3, récupéré dans une association de recyclage de matériel informatique
  • Des panneaux de Médium 3mm
  • Visserie
    • Vis de 5 x 20 mm
    • Ecrous de 5 mm
    • Vis de 4 x 20 mm
    • Ecrous de 4 mm
    • Charnières 70 x 40
    • Charnières 50 x 50
    • Équerres en acier
  • Boutons et sticks
    • 7 boutons de 30 mm
    • 2 boutons de 24 mm
    • 1 stick et sa plaque de montage
  • Connectique
    • Cosses femelles de 2,8 mm
    • Câbles conducteurs avec jumper (pour se brancher au port GPIO du Raspberry Pi)
    • Connecteur 5 broches pour brancher le Joystick
    • Un câble HDMI avec adaptateur VGA ou DVI selon l’écran
  • Un Raspberry Pi
  • Une carte SD de catégorie 10 de préférence
  • Des enceintes d’ordinateurs recyclées

La liste du matériel est assez longue et le nombre de vis, écrous, câbles etc … dépendra du degré de finition que vous voudrez apporter à votre borne, ainsi que de la solidité globale attendue.

 

STRUCTURE ET DÉCOUPAGE

La première partie du travail fut de se décider sur la structure globale de la borne. Pour cela, j’ai utilisé un modèle trouvé sur internet et qui convenait parfaitement à mes attentes. Celui-ci est tiré du site BartopArcade (http://bartoparcade.katorlegaz.com/) et nous fait même l’honneur de contenir les différentes côtes à respecter.

Le plus gros du travail a été de vectoriser ces éléments en utilisant Inkscape, pour ensuite envoyer le fichier à une découpeuse laser qui s’est chargée de sortir l’ensemble de mes pièces aux dimensions exactes. Vous pouvez également réaliser la découpe à la main avec une scie circulaire et beaucoup de précision. Ensuite, la seule partie (et pas la moindre) que j’ai entièrement réalisée à la main est le panel de jeu, qui contient l’ensemble des boutons et le joystick. Pour décider quelles proportions respecter, plusieurs tentatives ont été réalisées, avec différents espacements entre les boutons en premier lieu, puis en faisant varier la place allouée au repos du poignet sur la planche.

CONNECTIQUE

Une fois l’enrobage terminé et convenable, les branchements sont entrés en jeu. Le choix du Raspberry n’a pas été fait par hasard. Au début je pensais utiliser un ordinateur de bureau avec un format réduit, ou bien en désosser un complètement pour ne conserver que les composants et ainsi réduire le poids général. Le premier problème est que j’allais avoir besoin d’une alimentation beaucoup plus importante et que le bruit allait également être plus présent. Le second est que les composants allaient être posés au fond de la borne et que visuellement le résultat ne serait pas convaincant. Enfin, le coût était à prendre en compte, puisque même un ordinateur d’occasion et relativement correct pour un tel projet m’aurait demandé un investissement financier plus important que l’achat d’un Raspberry que par chance je possédais déjà. Le Raspberry a plusieurs avantages : sa faible consommation en énergie sans pour autant avoir des capacités ridicules, son encombrement minimum puisqu’il fait à peu près la taille d’un téléphone, et enfin son émission de bruit nulle puisque seule la LED dessus permet d’attester son fonctionnement.

Pour le branchement des boutons et du joystick, j’ai d’abord pensé à récupérer le squelette d’un vieux clavier pour en extraire son circuit et ainsi mapper chaque élément sur une touche préalablement choisie. Le problème est qu’un circuit de clavier est un fouillis monstre et qu’il faut suivre chaque ligne pour tomber sur la bonne broche à la fin. L’idée a été abandonné après avoir trouvé deux touches en 30 minutes. La solution de brancher en entrée directe sur le port GPIO du Rapsberry a donc été choisie puisqu’elle permet de brancher, sans intermédiaire, un bouton sur une broche du GPIO. Il suffit alors de posséder un ensemble de fils avec une cosse d’un côté pour le brancher aux bornes du bouton et un jumper de l’autre pour l’insérer sur une broche.

Le port GPIO d’un Raspberry se présente comme suit : chaque borne correspond à un numéro ou . Par exemple pour le joystick qui possède une sortie 5 broches, il faudra utiliser 4 bornes numérotées, ainsi qu’une borne correspond à la terre (GRD pour ground), un bouton quant à lui utilisera uniquement une borne numérotée et un borne GRD. Pour optimiser l’utilisation des bornes GRD, j’ai réalisé un montage en série à ce niveau là.

Pour que cette installation fonctionne, il a fallu compiler la distribution avec le programme Retrogame fourni par Adafruit. Il faut télécharger le programme depuis le dépôt Github du projet (https://github.com/adafruit/Adafruit-Retrogame) puis décompresser le contenu à la racine de la carte SD. Modifier le fichier “retrogame.c” pour mapper chaque bouton avec la touche correspondante.

ioStandard[] = {

{ 25, KEY_LEFT     },

{  9, KEY_RIGHT    },

{ 10, KEY_UP       },

{ 17, KEY_DOWN     },

{ 23, KEY_LEFTCTRL },

{  7, KEY_LEFTALT  },

// …

{  -1, -1 }

};

 

Ce fichier détaille la relation entre un numéro d’élément (le bouton ou joystick branché sur le port GPIO) et l’action associée. Pour trouver les actions possibles, il faut regarder dans le fichier /usr/include/linux/input.h. Une fois les changement effectués, il faut lancer la commande suivante pour compiler le programme :

make retrogame

SYSTÈME

Tout est alors fonctionnel, il ne manque plus qu’une distribution pour faire tourner tout ça sans perte de performance. J’ai choisi PiMame dans un premier temps, mais c’était avant que je ne découvre Lakka (http://lakka.tv) qui propose une interface bien plus agréable et facile à configurer. En effet, son interface se rapprochant d’un XMB (interface semblable à celle d’une PlayStation 3 par exemple) cela lui donne un côté accessible tout en restant élégant. Le principal problème de PiMame est que la navigation dans les menus ne peut pas se faire en utilisant le joystick, ce qui imposait d’intégrer une souris à l’installation. L’avantage du choix de Lakka est qu’aucune programmation n’a été nécessaire. Il suffit de dézipper la distribution sur la carte SD puis de lancer le Raspberry pour pouvoir profiter de ses jeux.

 

CONCLUSION

Autant l’avouer, le budget plafonné au départ à 100€ n’a pas été respecté. Au total la création de la borne complète m’est revenue à 150€. J’avais principalement sous-estimé le prix du joystick que je pensais tourner aux alentours de 15€ mais qui finalement coûtait 24€, et surtout l’écran que je pensais récupérer sur un vide grenier ou dans une brocante pour 10€, mais que j’ai payé 25€. Le prix final n’est pas non plus exorbitant, mais la réalisation d’une telle arcade permet de retrouver partiellement le confort d’une vraie borne sans débourser des sommes astronomiques chez des fabriquants professionnels, avec en prime la satisfaction personnelle de l’avoir réalisée soi-même. Je parle de confort partiel car le médium ne remplacera jamais du bois brut et l’écran ne correspond pas aux cathodiques utilisés à l’époque, mais le bonheur de pouvoir jouer à une multitude des jeux – contrairement aux anciennes bornes qui ne proposaient qu’un jeu à la fois – fait oublier ces quelques aspects négatifs. Au palmarès des aspects positifs on peut principalement citer le cliquetis du joystick qui est vraiment similaire à ceux des vrais bornes et qui flatte l’oreille à chaque mouvement, et le confort des boutons qui ne seront jamais battus par les manettes actuelles.

Pour une prochaine version, je pense conserver le choix du Raspberry en prenant cependant la dernière version pour de meilleures performances, mais ce micro-ordinateur permet à faible coût et encombrement, de concevoir un système robuste.

Rejoignez SQLI ! Découvrez nos offres d'emplois