====== Console Portable ====== Porteur(s) du projet: **Pacôme** (contact : [[pacome.delva@upmc.fr|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. {{ :wiki:projets:front.stl |}} {{ :wiki:projets:back.stl |}} {{ :wiki:projets:buttons.stl |}} {{ :wiki:projets:buttons2.stl |}} {{ :wiki:projets:buttons3.stl |}} {{ :wiki:projets: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. {{:wiki:projets:piboy:dsc05564.jpg?600|}} ==== 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. {{:wiki:projets:piboy:dsc05565.jpg?400|}} {{:wiki:projets:piboy:dsc05566.jpg?400|}} Finalement, j'ai utilisé le [[https://learn.adafruit.com/adafruit-powerboost-1000c-load-share-usb-charge-boost/overview|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: * modifier l'écran pour le faire fonctionner en 5V comme le Pi3: voir http://www.sudomod.com/wiki/index.php?title=GBZ_Screen * ajouter un convertisseur de tension en parallèle de celui du Pi3 et le régler sur 12V 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/ {{:wiki:projets:piboy:ecran.jpg?800|}} Pour la suite, il faut souder le cable vidéo sous la prise TRRS comme expliqué dans le [[https://www.instructables.com/id/Raspberry-Pi-2-Quick-n-Easy-RCA/|même tuto]]: {{:wiki:projets:piboy:rca.jpeg?400|}} ==== Les boutons ==== Pour controler les boutons on peut soit utiliser un controleur comme le [[https://www.adafruit.com/product/2756|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: [[https://www.sudomod.com/forum/viewtopic.php?f=20&t=3390|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: {{:wiki:projets:piboy:boutons_01.jpg?400|}} {{:wiki:projets:piboy:boutons_02.jpg?400|}} 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 === * [[https://www.sudomod.com/forum/download/file.php?id=6328|Télécharger le 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 [[https://learn.adafruit.com/pigrrl-2/pi-audio|tuto sur Adafruit]]. * Le pin gauche (bleu) est le négatif, le droit (rouge) le positif, à souder ensuite à l'amplificateur {{:wiki:projets:piboy:son_01.jpg?800|}} * Puis on soude la sortie de l'ampli au haut-parleur, en respectant la polarité de la photo {{:wiki:projets:piboy:son_02.jpg?400|}} {{:wiki:projets:piboy:son_03.jpg?400|}} 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 [[https://www.diy.engineering/how-to/|ce tuto, step 13]]). ==== Assemblage ==== {{:wiki:projets:piboy:piboy_bb.jpg?800|}} {{:wiki:projets:piboy:assemblage_01.jpg?400|}} {{:wiki:projets:piboy:assemblage_02.jpg?400|}}