Pi 3 B+ + écran + manettes GPIO
-
Bonjour à tous,
Tout d'abord un grand merci à toutes les équipes de Recalbox, votre OS est très agréable à utiliser.
Je voudrais vous poser une question technique.
Je me suis lancé récemment dans un projet de console de jeu comprenant un RPI 3 B+ avec un touch screen HDMI 3.5". L'écran vient se connecter directement sur les pins GPIO du PI:
Comme on peut le voir sur la photo, les pins 1 à 4 et 19 à 26 sont occupé par l’écran. Et tout fonctionne très bien.
Je souhaiterais maintenant pouvoir connecter mes boutons du joueur 1 sur les ports GPIO du Pi.
Seulement voila quand je regarde les schémas de connections comme ici:
https://www.smallcab.net/download/manuel/manuel-gpio-raspberry.pdfJe constate que mon écran vient utiliser des ports du joueur 1 et du joueur 2, du coup comment faire?
Pourriez vous m'aider s'il vous plaît?
Puis-je utiliser des ports du joueur 1 et 2 (non utilisé par l'écran) et les re-mapper ensuite pour en faire un seul joueur? Si oui comment?
Merci beaucoup
-
@Shlaf il faut utiliser les customs gpio , il faut regarder de plus près le fichier recalbox.conf
-
@ian57 Merci beacoup pour ta réponse ian57.
En effet je vois bien dans le fichier recalbox.conf dans la partie "controllers" ce genre de lignes:
##" Custom mk_gpio arguments,
##" map=5 gpio1=Y-,Y+,X-,X+,start,select,a,b,tr,y,x,tl,hk for one controller,
##" map=5 gpio1=pin1,pin2,pin3,.....,pin12,pin13
...Mais je ne suis pas sur de bien comprendre comment les modifier, pourrais tu m'y aider stp?
Par exemple si je veux que le port GPIO 29 corresponde au bonton start du joueur 1? -
@Shlaf tu as pas de bol avec la 6.1 ya un bug qui empêche l'utilisation des customs gpio, il appliquer un patch avant cf : https://forum.recalbox.com/topic/18829/6-1-et-manettes-gamecon/21
Pour ceux qui veulent/peuvent tester:
Récupérez le fichier recalbox_settings ici: https://mega.nz/#!zNwXRSoQ!1y50jVuEF7rDZrRSC74zJCe7ZIaLJWiBpNPQJUjj4Oc
Monter la partition en écriture : mount -o remount,rw /
Copiez le dans /usr/bin. Pour ce faire:
Si vous êtes sous linux: scp recalbox_settings root@recalbox.local:/usr/bin/
Si vous êtes sous Windows, copiez le dans \recalbox\share, puis connectez vous en SSH, et tapez:
cp /recalbox/share/recalbox_settings /usr/bin
chmod 755 /usr/bin/recalbox_settings
Redémarrez votre recalbox, et les settings de mapping GPIO seront à nouveau pris en compte.ensuite il faut configurer les customs gpio :
map=5 gpio1=pin1,pin2,pin3,.....,pin12,pin13# where gpiox,gpioy,gpioz ... are NOT pin numbers on the connector, BUT location gpio numbered as in # https://www.raspberrypi-spy.co.uk/wp-content/uploads/2012/06/Raspberry-Pi-GPIO-Layout-Model-B-Plus-rotated-2700x900.png
mais là du coup tu ne pourra plus utiliser les scripts bouton on/off/reset qui utilise exclusivment GPIO2 etGPIO3 qui sont sur les pin3 et 5
du coup toi dans ton cas gpio 02 et GPIO 8 9 10 11 et 25 ne pourront pas être utilisé
-
Merci @ian57 de ta réponse.
Ok je vais m'occuper de mettre le correctif rapidement merci beaucoup.
Donc du coup si je comprends bien pour l'exemple que j'ai donné. Si je veux que le pin 29 corresponde au bonton start du joueur 1 je dois mettre:
map=5 gpio10=pin29 ...etc pour les autres boutons, c'est ça? -
@ian57 Excuse moi d'insister mais je ne parviens pas à configurer correctement les customs GPIO, malgré mes tests et recherches.
Dois je commenter la ligne "controllers.gpio.args=map=1,2" ?
Ou alors lui mettre l'argument map 5 : "controllers.gpio.args=map=5"?Ensuite sur la ligne "map=5 gpio1=pin1,pin2,pin3,.....,pin12,pin13...", dois je juste remplacer les pin par ceux que je souhaite utiliser? Et comment les faire correspondre à des touches de manettes (start, select...)?
Please help
-
C'est bon j'ai fini par y arriver.
Pour ceux qui n'y arrive pas:
Une fois le correctif installé, il faut modifier le fichier recalbox.conf pour activer les GPIO:
controllers.gpio.enabled=1Et dé-commenté la ligne pour activer les custom GPIO:
controllers.gpio.args=map=0x20,0x21,5,6 gpio=4,17,27,22,5,6,12,24,23,18,15,14 (ici j'ai mis les pin 5, 6 et 12 pour Start, Select et B)Toutes les autres lignes de la partie "controllers GPIO" sont commenté (avec ##)
Tout à l'air de fonctionner correctement. Sauf pour un petit bug, quand je press la touche Start, c'est comme ci je pressais aussi la touche bas, alors qu'elle n'est pas connecté.