Table des matières

Console Portable

Porteur(s) du projet: Pacôme (contact : pacome.delva@upmc.fr)

Machines nécessaires

Matériels nécessaires

Construction

Impression du boîtier

Fichiers STL: http://www.thingiverse.com/thing:1779343. Les fichiers STL ne sont pas utilisables tel quels. Il faut les ouvrir et les sauver par exemple avec tinkercad http://www.tinkercad.com.

front.stl back.stl buttons.stl buttons2.stl buttons3.stl extra_parts.stl

Les petits objets ont été imprimés avec l'imprimante UP Mini. Le boitier est tros gros pour la UP Mini et a été fait avec l'Ultimaker.

La batterie

Pour alimenter le Pi3 de façon autonome il faut une batterie LiPo, un chargeur de batterie et un convertisseur de tension. Par exemple:

ATTENTION: les batteries LiPo sont dangereuses si on ne fait pas attention. Il faut absolument les acheter avec un circuit de protection intégré, ce qui les empêche d'atteindre des tensions trop basses (<3V) ou trop hautes (>4.2V). Pour plus d'infos voir http://www.majordome-video.com/guides/le-guide-ultime-de-la-batterie-lipo/

On assemble d'abord la batterie avec le chargeur TP4056, et on vérifie la tension de la batterie, qui doit être entre 3V et 4.2V. Pour charger la batterie il faut un convertisseur AC/DC avec en sortie DC5V-2A. Prendre un chargeur de qualité, comme par exemple celui du Pi3.

Ensuite on assemble la sortie du TP4056 à l'entrée du convertisseur de tension. En mettant un voltmètre en sortie du convertisseur et en tournant la petite vis on règle la tension de sortie à environ 5V, ce qui permettra d'alimenter le Pi3. Attention il faut utiliser des fils suffisamment gros (eg. 0.5mm^2), sinon le courant ne passera pas assez et le pi3 sera sous-alimenté (la tension chute). Si c'est le cas alors la diode rouge du Pi3 ne s'allume pas, même si le Pi3 fonctionne. On peut vérifier la tension du Pi3 entre les pins 2 et 6 du GPIO; elle doit être entre 4.75V et 5.25V.

Finalement, j'ai utilisé le Powerboost 1000C de Adafruit. C'est plus cher mais ça inclut à la fois le chargeur et le convertisseur de tension, et des choses supplémentaires comme:

De plus, j'ai utilisé une batterie plus petite car la 2500 mAh ne tenait pas dans la console.

Le système d'exploitation

On utilise un système qui s'appelle retropie. Pour l'installer il suffit de télécharger l'image sur https://retropie.org.uk/download/, d'insérer la carte MicroSD dans un lecteur et de “flasher” l'image sur la carte, par exemple avec l'excellent programme Etcher https://etcher.io/ disponible sur toutes les plateformes.

Attention il ne faut pas acheter n'importe laquelle des cartes microSD, certaines sont plus performantes que d'autres, et certaines ne fonctionnent pas du tout. Pour des benchmarks: http://www.pidramble.com/wiki/benchmarks/microsd-cards

Une fois la carte flashée, on lance le Pi3 avec un clavier et un écran. Après quelques configs on tombe sur l'écran de l'émulateur. Il peut y avoir un problème d'écran quand on redémarre le système, en particulier avec les vieux écran VGA ou certain écrans HDMI. Pour plus d'infos: https://github.com/retropie/retropie-setup/wiki/Video-Issues

Ensuite on peut faire quelques configs dans “raspi-config”, expliquée dans: https://hiob.fr/configurer-retropie/

Pour se connecter en ssh depuis un autre ordi, noter l'adresse IP accessible depuis le menu de config (show IP), puis: ssh pi@ip_adress; pass: raspberry

L'écran

Les possibilités de brancher un écran sont multiples sur le Pi3: voir http://www.sudomod.com/game-boy-zero-screen-alternatives/

J'ai choisi un écran composite pour plusieurs raisons:

La plupart des écrans composites fonctionnent en 12V. Il y a donc 2 possibilités:

J'ai choisi la 2ème option sur le test illustré en dessous sur la photo. Pour prendre le signal vidéo du Pi3 il suffit de mettre une pince crocodile à l'entrée de la prise TRRS comme expliqué ici: https://www.instructables.com/id/Raspberry-Pi-2-Quick-n-Easy-RCA/

Pour la suite, il faut souder le cable vidéo sous la prise TRRS comme expliqué dans le même tuto:

Les boutons

Pour controler les boutons on peut soit utiliser un controleur comme le teensy, ou bien contrôler les boutons directement avec les GPIO du Raspberry. La 2eme option permet de gagner de la place. Un utilitaire permet ensuite de programmer facilement Retropie pour configurer les boutons: Easy way to setup the controller buttons via GPIO

Souder les boutons

Le programme utilise le schéma suivant pour souder les différents boutons aux GPIO:

GPIO04 - 'UP' button
GPIO07 - 'DOWN' button
GPIO27 - 'LEFT' button
GPIO22 - 'RIGHT' button
GPIO05 - 'A' button
GPIO06 - 'B' button
GPIO13 - 'X' button
GPIO26 - 'Y' button
GPIO23 - 'ENTER' button
GPIO12 - 'SELECT' button
GPIO16 - 'LEFT Shoulder' button
GPIO20 - 'RIGHT Shoulder' button

GROUND - Connect to any ground pin

Les GPIO sont numérotés ici: https://pinout.xyz/

Il est possible d'utiliser un schéma différent, il suffit de changer ensuite le fichier retrogame.cfg

J'ai utilisé une plaque de prototypage pour souder les boutons:

Bien tester le soudage avec un multimètre, en mettant un connecteur sur le GROUND, et l'autre sur le GPIO correspondant au boutons, et vérifier que la connexion est bonne en appuyant sur le bouton.

Installation du programme

Le son

On peut utiliser un PAM8302 pour mettre un petit haut-parleur 8 Ohms, 0.5W, de qualité très moyenne. Il existe un bon tuto sur Adafruit.

Le son obtenu est pas terrible, avec un fort ronflement gênant quand il n'y a pas de son. On peut ne pas mettre de potentiomètre car on peut régler le son facilement dans Retropie (dans les jeux, mais pas dans le menu). Il existe un moyen simple de faire un filtre pour avoir un son meilleur, mais je n'ai pas testé (voir par exemple ce tuto, step 13).

Assemblage