Raspberry Pi 4

For information, Recalbox IS NOT compatible with Raspberry Pi 4 yet.
Pour information, Recalbox N'EST PAS encore compatible avec le Raspberry Pi 4.

The Recalbox Team.

Utilisation d'un relais 5v avec GPIO pour asservir une multiprise



  • Bonjour à tous,

    Avant de rentrer dans le vif du sujet un gros merci au développeur qui m’ont permis de réaliser un vieux rêve la création de ma borne d’arcade avec une grande facilité grâce à cette distribution.
    Je vous explique m’a requête,
    J’ai rajouté sur mon RPI3 un bouton (momentary switch) grâce au tuto https://github.com/recalbox/recalbox-os/wiki/Ajouter-un-bouton-on-off-a-votre-recalbox-(FR) cela fonctionne très bien

    Maintenant je souhaiterais utiliser un relais 5v pour asservir au démarrage du RPI3 une multiprise. En effet je souhaite que lorsque l’on éteint proprement le raspberry cela coupe le courant à la multiprise ou est branché l’écran l’alimentation de l’ampli et des lumières. Pour cela je comptais utiliser ceci
    0_1485943306150_71LKcog98LL.SL1488.jpg
    https://www.amazon.fr/gp/product/B017DFWLXS/ref=oh_aui_detailpage_o00_s00?ie=UTF8&psc=1
    Seulement il faudrait pour cela qu’une borne du gpio envoie un signal au IN (j’ai essayé de passer outre en couplant le vcc et le in mais cela ne fonctionne pas)
    J’ai vu qu’il était possible de le faire via script python mais comment l’intégrer à recalbox, J’ai bien ca https://github.com/recalbox/recalbox-os/wiki/Ajouter-votre-propre-script-au-demarrage-(FR)
    Mais je n’ai pas vu pour le script à l’extinction
    J’aimerais utiliser le gpio3 car je n’utilise pas de HK pour le deuxième joueur

    Une idée de comment faire les amis ?



  • @cricri2001 yo !
    Tu as regardé comment on gère une led sur le tuto que tu as cité ? C'est pareil je pense :)



  • Le soucis c'est que le gpio14 est déjà utilisé par mon bouton 3 joueur 1, c'est vrai que je n'ai pas dit que j’utilisais le gpio pour mon kit joystick bouton


  • Staff
    Moderator
    Creator
    Team

    Il te faut alors utiliser la dernière version de mk_arcade_joystick qui te permet de spécifier les GPIO que tu veux utiliser. cf https://github.com/recalbox/mk_arcade_joystick_rpi/tree/hotkeybtn

    voici le module mk_arcade_joystick_rpi.ko compilé pour la 4.0 :

    https://mega.nz/#!ukEhzAIA!TRazITCb2fZnA6Qoc98jG5CLyOiNJpaX19n-M7Z4yyY

    il te faut remplacer le module existant par celui donné en lien en le renommant (faire une sauvegarde du précédent)

    mount / -o remount,rw
    cd lib/modules/4.1.19-v7/extra/
    mv mk_arcade_joystick_rpi.ko mk_arcade_joystick_rpi.ko-old
    cp mk_arcade_joystick_rpi.ko-hotkeybtn-rb4.0 mk_arcade_joystick_rpi.ko
    

    ensuite il faut créer le fichier /etc/modprobe.d/mk_arcade_joystick.conf

    nano /etc/modprobe.d/mk_arcade_joystick.conf
    

    et y mettre la config de tes 2 joueurs (ici exemple du wiki):

    options mk_arcade_joystick_rpi map=4,5 gpio=4,17,27,22,10,9,25,24,23,18,15,14,2 gpio2=11,5,6,13,19,26,21,20,16,12,7,8,3
    


  • Cool merci @ian57 , ça avance donc avec ta manipulation je devrais arriver à " libérer" le hotkey du deuxième joueur pour une l'utiliser pour mon relais. Du coup j'en profite tu sais comment mettre un script d'arrêt?



  • @ian57 l'init du module est géré dans le recalbox.conf normalement, tu n'as pas testé ?


  • Staff
    Moderator
    Creator
    Team

    @Substring oops nop, je l'ai toujours fait à la mano... oki je regarde...mais sur la 4.0 ce n'est pas la dernière version de mk_arcade de toute manière non ? La gestion des GPIO custom marche sur 4.0... si c'est le cas j'ai loupé un truc...



  • @ian57 tu as raison pour le gpio custom en 4.0, mais les arguments du module peuvent etre spécifiés dans le recalbox.conf. vérifie à l'occaz ;)


  • Staff
    Moderator
    Creator
    Team

    @substring oki d'acc... du coup pour passer les paramètres depuis le recalbox.conf tu fais :

    # ------------ D3 - GPIO Controllers ------------ #
    ## GPIO Controllers
    ## enable controllers on GPIO with mk_arcarde_joystick_rpi (0,1)
    controllers.gpio.enabled=1
    ## mk_gpio arguments, map=1 for one controller, map=1,2 for 2 (map=1,map=1,2)
    controllers.gpio.args="map=4,5 gpio=4,17,27,22,10,9,25,24,23,18,15,14,2 gpio2=11,5,6,13,19,26,21,20,16,12,7,8,3"
    

    je vais tester... mais pas avec le rgb-pi connecté ;)

    [edit] Le passage des paramètres gpio ne marche pas du tout sur la 4.1! juste le map fonctionne, donc soit je passe mal les paramètres, soit le script de gestion ne les gère pas.
    ça marche avec map=1,2 mais pas avec map=4,5
    [/edit]

    donc ma manip ci dessus est valable



  • @ian57 y'en a qui ont essayé, ... Tu connais la suite ;)


  • Staff
    Moderator
    Creator
    Team

    @Substring avec le rgb-pi tu veux dire ? Ah qui ?


  • Staff
    Moderator
    Creator
    Team

    Finalement voici la marche à suivre qui devrait fonctionner :

    Dans le recalbox.conf tu mets à 1 controllers.gpio.enabled et tu commentes la config des arguments

    # ------------ D3 - GPIO Controllers ------------ #
    ## GPIO Controllers
    ## enable controllers on GPIO with mk_arcarde_joystick_rpi (0,1)
    controllers.gpio.enabled=1
    ## mk_gpio arguments, map=1 for one controller, map=1,2 for 2 (map=1,map=1,2)
    #controllers.gpio.args=map=1,2
    

    ensuite la manip de changement de module :

    mount / -o remount,rw
    cd lib/modules/4.1.19-v7/extra/
    mv mk_arcade_joystick_rpi.ko mk_arcade_joystick_rpi.ko-old
    cp mk_arcade_joystick_rpi.ko-hotkeybtn-rb4.0 mk_arcade_joystick_rpi.ko
    

    ensuite il faut créer le fichier `/etc/modprobe.d/mk_arcade_joystick.conf ̀

    nano /etc/modprobe.d/mk_arcade_joystick.conf
    

    et y mettre la config de tes 2 joueurs (ici exemple du wiki):

    options mk_arcade_joystick_rpi map=4,5 gpio=4,17,27,22,10,9,25,24,23,18,15,14,2 gpio2=11,5,6,13,,19,26,21,20,16,12,7,8,3
    

    normalement lorsque tu lances evtest après un reboot tu devrais voir apparaitre tes GPIO Controller (ici en plus d'un clavier et une manette) :

    # evtest 
    No device specified, trying to scan all of /dev/input/event*
    Available devices:
    /dev/input/event0:	Dell Dell USB Keyboard
    /dev/input/event1:	DragonRise Inc.   Generic   USB  Joystick  
    /dev/input/event2:	GPIO Controller 1
    /dev/input/event3:	GPIO Controller 2
    Select the device event number [0-3]: 
    


  • Je trouve cela hyper interessant, vas me falloir un peu de temps pour tester cela mais je vais m'en occuper.
    Mais 2 petites questions me viennent :

    • Je suis le seul a vouloir faire cela? tout le monde gère avec le bouton de la multiprise, c'est dommage de ne pas aller jusqu'au bout de la démarche d'ajout du bouton on off
    • Si je suis pas le seul comment faire remonté une requête au dév pour une intégration propre, en sachant que je suis prêt à offrir des relais 5v au dév pour leur tests.
      En tout cas merci encore @ian57

  • Staff
    Moderator
    Creator
    Team

    @cricri2001 moi j'ai un inter à l'arrière du bartop/borne... j'éteins logiciellement recalbox... et un fois stoppée... je coupe le jus ;)



  • @ian57 pareil... De toute façon le script du bouton on/off est qd même pas mal buggué avec des extinctions/allumages intempestifs que raccorder en plus la multiprise je préfère éviter.


  • Staff
    Moderator
    Creator
    Team

    @cricri2001 de toute manière, il faudrait quand même mettre une tempo avant l'activation à l'extinction de ton relais non ? sinon tu risques de couper le jus avant l'arrêt effectif du Pi



  • @ian57 ca couperai la multiprise ou n'est pas branché le raspberry mais tout le reste (écran, lumière, ampli)



  • Bonjour,

    petite info, les pins du gpio, en mode "out", fournissent du 3.3V et non pas du 5V...



  • @tong-man Merci pour l'info, plus ca avance plus j'ai l'impression que cela vas etre très compliqué pour finalement pas grand choses...


  • Staff
    Moderator
    Creator
    Team

    @cricri2001 oui je pense aussi car il te faudra tout de même couper l'alimentation du Pi à la mano ;)



Want to support us ?

Join us on :

175
Online

53302
Users

17786
Topics

133820
Posts

Looks like your connection to Recalbox Forum was lost, please wait while we try to reconnect.