Outils pour utilisateurs

Outils du site


wiki:projets:console_portable

Console Portable

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

  • Date de début : 10/2017
  • But : fabriquer une console portable
  • PROJET TERMINE

Machines nécessaires

  • Imprimante 3D (UP Mini et Ultimaker) avec PLA
  • Fer à souder
  • Multimètre

Matériels nécessaires

  • Raspberry 3 + chargeur
  • Carte mémoire MicroSD 32Go ou 64Go
  • Écran Composite couleur 3,5 pouces
  • Batterie LiPo 3.7v
  • Adafruit PowerBoost 1000 Charger
  • 15 Boutons 6 mm
  • Gros interrupteur
  • Ampli Mono PM8403
  • Enceinte 0,5 W 8 Ohm 23 mm

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:

  • Lithium Ion Polymer Battery - 3.7v 2500mAh - 51 x 65 x 8mm
  • Mini USB TP4056 1A Lithium Battery Energy Buckle
  • MT3608 2A DC-DC Voltage Step Up Regulator Boost Converter

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:

  • La possibilité d'éteindre la console facilement
  • un indicateur de batterie déchargée
  • La possibilité de brancher au secteur alors que la console est allumée

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/

  • changer les locales
  • changer le clavier en azerty
  • configurer le wifi
  • mettre le ssh (interfacing option)

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:

  • c'est pas cher
  • la qualité est moyenne ce qui garde un effet rétro
  • la prise HDMI reste libre pour pouvoir brancher la console portable sur une télé, un écran ou un projecteur HDMI
  • les connecteurs GPIO du Pi3 restent libres pour pouvoir brancher les boutons de la console, ce qui évite d'ajouter un controleur

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

  • dézipper le programme et copier le dossier “Adafruit-Retrogame” dans le dossier “/home/pi” de la distribution Retropie sur la carte SD.
  • Changer le retrogame.cfg si le schéma de soudage est différent
  • Se connecter avec une console en ssh au Raspberry
  • Éditer le fichier “/etc/rc.local” en root avec par exemple la commande “sudo nano /etc/rc.local”
  • Puis faire “sudo bash /home/pi/Adafruit-Retrogame/Setup-Retrogame.sh”
  • Allumer le Raspberry, qui devrait ensuite rebooter automatiquement

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 pin gauche (bleu) est le négatif, le droit (rouge) le positif, à souder ensuite à l'amplificateur

  • Puis on soude la sortie de l'ampli au haut-parleur, en respectant la polarité de la photo

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

wiki/projets/console_portable.txt · Dernière modification: 2020/10/05 16:39 (modification externe)