Construction d’une borne d’arcade DIY : Partie 3

Montage Électronique

L’enveloppe de bois prête, il va falloir s’attaquer à l’intérieur de la bête. On va relier les différents composants (boutons, enceintes, prises, écrans) à notre cerveau : le Raspberry Pi. Pour faire ces connexions, on va utiliser des petits câbles électriques. Aucune soudure ne va être requise car nous allons utiliser des cosses comme on peut en trouver dans les voitures quand on change ses enceintes.

En gros, ce chapitre va consister à relier notre cerveau avec nos membres à l’aide de nerfs si on fait une analogie avec le corps humain !

Les boutons

Commençons par le plus compliqué, tant que la concentration bat son fort : les boutons.

boutons-de-loin

Devant ce plat de nouilles, on peut prendre peur. Ne vous inquiétez pas, on va voir ça de près et vous allez vous rendre compte que c’est très simple.

Le principe de fonctionnement des boutons

Le bouton est juste un capteur qui dit au cerveau s’il est ouvert ou fermé. Si vous regardez la photo ci-dessous, vous voyez le bouton en blanc, qui est ni plus ni moins qu’un bout de plastique avec un ressort. Et le capteur, en noir. La partie blanche appuie sur le capteur qui détecte alors qu’on appuie dessus et qui doit envoyer l’information au cerveau.

bouton-detail

Pour envoyer cette information, il a besoin d’être câblé. Pour cela, il faut deux câbles. Un qui sera relié au cerveau, on l’appellera le cable (+) (en rouge sur la photo ci-dessus) et un qui sera relié à la masse (ground en anglais ou encore plus souvent abrévié GND. En noir sur la photo ci-dessus et comme dans la majeure partie du temps en électronique).

Depuis tout à l’heure, je parle de relier ces cables (+) au cerveau. Comme je vous ai expliqué les choses jusqu’ici vous devez penser que le cerveau c’est le Raspberry Pi. Et vous avez raison, mais j’ai un peu menti pour simplifier les choses. Entre le Raspberry Pi et le bouton on va mettre une petite interface qui va nous simplifier la vie par la suite. Cet intermédiaire c’est une petite carte électronique qui va transformer les appuis sur bouton en appui sur touche d’un clavier. En gros, cette carte va faire croire à votre Raspberry que vos boutons sont des touches d’un clavier. Ainsi dans les émulateurs vos commandes seront très simples à configurer car ça sera comme si vous aviez un clavier branché ! La carte en question est ici :

ipac-2

C’est une carte qui se branche en USB à votre Raspberry. Vous avez deux barrettes pour venir brancher les cables (+) qui viennent de vos boutons. La première barrette est pour le Player 1. La deuxième, pour le player 2…impac

Sur cette image vous pouvez voir la carte sans les câbles ce qui est plus clair. Vous voyez donc que la barrette est légendée : 1 RGHT, 1 LEFT , 1UP,…

C’est là tous les boutons dont vous avez besoin pour les émulateurs d’arcade, en passant par la simulation du COIN et du START.

Le câblage

Voyons maintenant comment câbler cela. Même si maintenant vous avez une petite idée de comment on va procéder, il reste un mini détail concernant le capteur que je n’ai pas abordé. Si on reprend notre image du bouton, on voit la légende NO et NC. Dans ma grande mansuétude, je vous remets l’image…

 

bouton-detail

NO et NC sont les abréviations de Normaly Opened et Normaly Closed ce qui signifie en gaulois : Normalement Ouvert et Normalement Fermé.

Cela définit le fonctionnement de votre bouton, est-ce que vous voulez qu’il envoie un signal au cerveau quand vous appuyez sur votre bouton NO, ou bien qu’il envoie un signal au cerveau tout le temps à part quand vous appuyez sur le bouton NC. Vous comprenez bien que brancher en NC n’a aucun sens, ça voudrait dire que votre bouton fait l’inverse que ce que vous voulez à savoir qu’il est tout le temps appuyé sauf quand vous appuyez dessus… C’est pourquoi sur ma photo, le câble (+) (en rouge) est connecté au NO et que le NC est laissé à l’air libre.

Imaginons maintenant que ce bouton soit le bouton principal de votre joueur 1, imaginons que ce soit le bouton croix de la playstation, ou le bouton A de la xbox, bref, le bouton numéro 1 de votre player 1. Vous allez prendre un câble avec une cosse, vous allez mettre la cosse sur la branche NO du capteur et l’autre partie du câble (qu’il va vous falloir dénuder, c’est à dire enlever un petit bout de plastique au bout pour laisser apparaître le cuivre), vous allez le glisser dans le slot SW1 de la barrette du player 1, à savoir le slot intitulé 1SW1. Vous allez faire de même avec tous les autres boutons que vous avez (bouton 2, 3, 4, bouton start, coin, up, down, left, right…). Commencez par le player 1, puis faites le player 2.

Vous allez vite arriver au résultat suivant : la fameuse assiette de nouille !

boutons-de-loin

Le cas du joystick

joystick-detailLe joystick est un peu différent dans la forme mais totalement identique dans le fonctionnement. Vous n’avez plus de bouton blanc qui appuie sur un capteur. Vous avez une sorte de bille qui appuie sur les différents capteurs possibles. En regardant les capteurs qui sont appuyés quand vous poussez votre joystick dans une certaine direction, vous voyez à quelle direction vous devez relier le capteur (1 RGHT, 1 LFT, 1UP, 1 DOWN). Ces capteurs sont pareil que ceux des boutons blancs : Une pin GND, et deux autres NC et NO.

Vous branchez encore une fois votre fil sur le NO et vous faites ça pour les trois autres capteurs du joystick.

Le cablâge de la masse

Une fois que vous avez câblé tout vos câbles (+) qui vont de la pin NO de vos boutons à la carte i-pac2, il vous faut câbler les masses GND (-) ! Cette partie est la plus simple. Dans le bundle que je vous ai fait acheter contenant les boutons, les joysticks et quelques câbles, vous avez une guirlande de câbles noirs. C’est une guirlande car dans un circuit électrique, toutes les masses peuvent être reliées entre elles. Je vous invite à aller lire les bases de l’électronique sur Wikipedia pour comprendre cela.
Comme les masses peuvent être toutes reliées entre elles, le format de la guirlande se prête bien à l’exercice qui consiste à câbler toutes les pins GND de nos capteurs et de les relier au GND de notre carte électronique i-pac2. Vous insérez donc un câble dans le slot GND de la barrette de P1 et vous reliez tous les GND des capteurs entre eux avec les cos de la guirlande. En faisant ceci, vous terminez le câblage des capteurs des boutons qui ont donc maintenant les deux câbles dont je parlais plus tôt, le câble (+) et le câble (-).
A ce niveau là, vous pouvez lancer le raspberry connecté à un écran. Lancez le terminal et assurez vous que chaque bouton génère bien une entrée. A savoir, à chaque fois que vous activez un bouton ou le joystick, quelque chose doit apparaître dans le terminal. Comme si vous tapiez sur les touches d’un clavier.
Si vous voulez poussez la vérification jusqu’au bout, référez vous à ce tableau qui explique à quelles touches du clavier chaque bouton est relié :

INPUT PRESET CODES
NORMAL CODES CODES WITH SHIFT
(hold 1 player start)
COIN 1 5
COIN 2 6
START 1 1
START 2 2 ESC
1 RIGHT R arrow Tab
1 LEFT L arrow Enter
1 UP U arrow Key Below ESC (Volume, gamma, etc )
1 DOWN D arrow P (pause)
1 SW 1 L-ctrl 5 (Coin A)
1 SW 2 L-alt
1 SW 3 space
1 SW 4 L-shift
1 SW 5 Z
1 SW 6 X
1 SW 7 C
1 SW 8 V
1 A P
1 B ENTER
START 1 1
START 2 2 Esc
2 RIGHT G
2 LEFT D
2 UP R
2 DOWN F
2 SW 1 A
2 SW 2 S
2 SW 3 Q
2 SW 4 W
2 SW 5 I
2 SW 6 K
2 SW 7 J
2 SW 8 L
2 A TAB
2 B ESC

Vous trouverez ce tableau à l’adresse suivante : https://www.ultimarc.com/ipac2.html.

Ainsi, si vous avez un terminal actif et que vous appuyez sur le bouton 2 du player 2 par exemple, vous devriez voir apparaître dans le terminal la lettre : a.

Voilà pour le câblage des boutons et du joystick. Cela peut sembler très bordélique quand on voit le résultat final mais une fois qu’on sait ce à quoi correspondent les câbles, les choses deviennent beaucoup plus simple à comprendre.

Avec ce paragraphe se termine la partie la plus compliquée du chapitre sur l’électronique. Le reste devrait être un jeu d’enfant !

La multiprise

A l’intérieur de notre borne, nous allons avoir besoin d’une multiprise pour alimenter le raspberry et l’écran. Comme nous ne sommes pas à l’abri de futur upgrade, je décide d’utiliser une multiprise à 3 prises, on verra un jour si la dernière est utile.

img_3621

Quoi qu’il arrive, vous n’avez pas envie de voir dépasser un cable blanc de votre borne. Ca serait disgracieux au possible. C’est pourquoi nous allons opter pour une embase comme sur la photo ci-dessous. Nous allons relier la multiprise à cette embase pour une redoutable élégance.

img_3619

Pour réaliser ceci, il suffit de couper la prise mâle de votre multiprise, de récupérer les trois fils et de les souder (ou les fixer avec des cosses) sur les trois pins de notre embase comme ceci :img_3620

Sur votre embase, un symbole indiquera quelle pin est la masse (GND). Dans le cas ci-dessus, c’est la pin du bas. Il est impératif de souder sur cette pin le câble jaune et vert de votre multiprise. Ce câble correspond à la masse. Les deux autres câbles peuvent être branché sur les deux autres pins sans se poser trop de questions sur qui doit aller avec quoi.

Voilà le montage élégant de notre multiprise sur embase ! Facile non ? Juste que lorsque je l’ai fait, je ne savais pas qu’on pouvait inverser le bleu et le marron sans problème et comme je ne trouvais aucune indication sur le web (j’ai peut être mal cherché hein), je me suis lancé un peu au hasard. Au moment de brancher mon embase, j’avais qu’une peur c’est que la maison explose ! Rien n’a explosé et je n’ai pas réveillé ma mère qui dormait à poings fermés. Mission réussie !

Les enceintes

Dans la liste des ingrédients pour fabriquer la borne, j’ai mis une petite paire d’enceintes ainsi qu’un petit amplificateur stéréo.
Voyons de plus près nos composants :
img_3628

Câbler une enceinte est très simple si l’on suit ce que nous indique l’ampli. L’ampli ci-dessous montre clairement comment câbler notre système.

hifi-amplificateur-numerique-amplificateur-audio-n

Les points R+ et R- doivent être reliés aux de (+) et (-) de l’enceinte Droite (Right). L- et L+ sont connectés aux (+) et (-) de l’enceinte gauche (Left).

Les points GND et 5VR doivent être reliés aux Pin du Raspberry. Le schéma ci-dessous indique quelles pins du Raspberry fournissent du 5v et quelles pins sont reliés à la masse : GND.

raspberry-gpio

Vous pouvez donc reliés le 5V de l’ampli à la Pin 2 du Raspberry et le GND de l’ampli à la Pin 6 par exemple.

Pour finir le câblage de notre ampli, maintenant que les enceintes sont branchées et que l’ampli a ce qu’il faut pour être alimenté, il faut lui apporter le signal audio à savoir lui souder la prise jack qui sera branchée dans le Raspberry Pi.

Pour ce faire, prenez le câble d’une paire d’écouteur que vous n’utilisez plus, sectionnez le. Dénudez les câbles et soudez les dans Lin (pour Left In) et Rin (pour Right In), les câbles restant de votre section de jack sont à souder dans GND et GND (au dessus de RIN et LIN).

Voilà pour la partie audio ! On verra qu’il faut faire quelques paramètrages dans la partie logicielle pour obtenir le meilleur son possible du Raspberry, le son de base n’est pas super convaincant.

Le Raspberry

Une fois qu’on a câblé tout ce que je vous ai dit plus haut, il ne reste plus qu’à alimenter le Raspberry avec la multiprise, brancher le jack audio, brancher l’écran et éventuellement les rallonges USB pour des manettes en plus ou comme dans mon cas, brancher l’USB du ventilateur (facultatif le ventilo hein !).

img_3622

Voilà qui clôt donc la partie sur l’électronique ! Je n’y connaissais rien avant de commencer, j’ai beaucoup appris grâce à internet. J’aurais vraiment aimé trouver un tuto reprenant les quelques points que j’ai énoncé ici et c’est pourquoi je me suis appliqué à décrire les points le plus précisément possible. N’hésitez pas à me demander des précisions dans les commentaires si quelque chose n’est pas claire !

On finira la tuto avec le dernier chapitre sur la partie Logiciel : installer les émulateurs, trouver et transférer les jeux et faire quelques réglages pour tirer le maximum de votre Raspberry Pi mais avant une petite remarque si vous avez pour intention d’utiliser un écran qui ne propose que du vga dans votre borne.

Remarque pour les écrans en VGA

Souvent les vieux écrans que vous récupérez sur leboncoin ou par des dons ne disposent que de prises VGA. Le Raspberry lui ne propose de base qu’une connectique HDMI. Si comme moi vous imaginez qu’un adaptateur simpliste à 10€ de chez Amazon fera l’affaire, il vous faudra comme moi vous mettre le doigt dans l’œil. Si vous faites cela, non seulement vous aurez à triturer les configurations de /boot/config.txt pour réussir à envoyer suffisamment de signal dans le port HDMI pour que suffisamment de signal aille dans l’écran, mais en plus, vous vous retrouverez avec un écran super capricieux qui ne s’allumera qu’une fois sur 10 et qui ne sera pas super stable.

Les premières semaines je me suis retrouvé bien triste avec ma super jolie borne d’arcade et son écran minable qui n’affichait pas d’image 9 fois sur 10. J’ai alors cherché une alternative pour pouvoir utiliser mon écran VGA avec mon Raspberry de la manière la plus optimale possible. A ce niveau là, mon écran était fixé avec du bois à l’intérieur de ma borne, c’était compliqué de changer l’écran pour un offrant une connectique HDMI ou DVI (les adaptateurs DVI/HDMI fonctionne très bien de leur côté !). Il me fallait composer avec mon vieux VGA tout nul.

La première solution consistait à acheter un convertisseur HDMI VGA sérieux, avec un petit boitier alimenté. Le prix de ces petits machins tourne autour de 100€, je préférais éviter une telle solution pour un écran que j’avais payé 20€…

C’est alors que je suis tombé sur l’extension VGA pour Raspberry Pi de GERT, un ingénieur qui a participé au développement du Raspberry Pi.
Vous trouverez cette carte pour 10€ sur internet et elle se clipsera sur les pins GPIO de votre Raspberry. Elle vous permettra alors de connecter un écran VGA en toute simplicité.
Petit bémol, la carte arrive en pièce détachée… Il vous faudra alors réaliser la soudure d’une vingtaine de résistances avant de pouvoir l’utiliser… Ceci dit, je l’ai fait et c’était très intéressant. Ca fait travailler la soudure !
Une fois le travail de soudure terminé, il reste à ajouter quelques lignes dans le fichier /boot/config.txt de votre Raspberry et vous pourrez enfin jouir d’une qualité d’image impeccable avec votre écran VGA !
Suivez bien les consignes écrites ici à propos du montage et surtout de ce qu’il faut faire d’un point de vu logiciel. Je me suis fait une grosse frayeur avec plus rien qui ne fonctionnait car j’avais oublié de renommer un fichier comme le précisent bien les consignes… Toujours bien lire les instructions !