Recalbox 7 userscript controler les GPIO



  • Salut à tous,

    Pour un projet de borne d'arcade je souhaiterais faire un script qui se déclenche au démarrage et à l'arrêt de recalbox. Ce script me permettra d'allumer ou d'éteindre les bandeaux led et l'écran via un relais.
    Pour ça j'ai vu qu'on pouvait créer des scripts et les placer dans /recalbox/share/userscripts.
    Donc j'ai créé un script nommé togglePower[start,wakeup,stop,shutdown,quit,sleep](sync).sh
    (doc : https://recalbox.gitbook.io/documentation/v/francais/utilisateur-avance/configurations/scripts-sur-evenements-demulationstation)
    Je précise je suis sur un RPI4 2go

    #!/bin/bash
    
    action = $2
    lightPin=15
    screenPin=4
    
    gpio mode $lightPin out
    gpio mode $screenPin out
    
    if [ $action = "start" ] || [ $action = "wakeup" ]
    then
        gpio write $lightPin 1
        gpio write $screenPin 1
    fi
    
    if [ $action = "stop" ] || [ $action = "sleep" ] || [ $action = "shutdown" ] || [ $action = "quit" ]
    then
        gpio write $lightPin 0
        gpio write $screenPin 0
    fi
    

    Mon problème, rien ne se passe au démarrage ou à l'arrêt. Est-ce qu'il y a un log accessible pour savoir si il a été appelé ?
    De plus je me suis connecté en root sur mon RPI4 pour tester la commande gpio, elle s'exécute sans erreur mais j'ai l'impression qu'elle ne fait rien sur les gpios.
    Vous avez une idée du problème ?

    Merci


  • Developer
    Global moderator
    Creator
    Team

    @darkender hello,
    a la place de gpio, essaie l'executable raspi-gpio, je crois que nous l'avons mis sur pi4, ah en fait non, je te le met en dl ici raspi-gpio.zip Pi4 version tu peux refaire ton script avec raspi-gpio à la place de gpio, ce sera en plus plus rapide car c'est un pg en C. je vais pas rentrer dans les détails, mais sur Pi4 la fondation raspberry pi n'a rien trouvé de mieux que de changer la méthode d'init des gpio, ça vient peut être de la et notre version de rpi.gpio n'est peut être pas uptodate et ne prends pas en compte cette modif. A vérifier. On essaie de la bumper pour la 7.01



  • @ian57 Super merci pour la réponse, je test ça ce soir !



  • @ian57 comment je peux faire pour l'installer raspi-gpio ou le rendre executable ? Je bidouille sur linux mais je suis pas très à l'aise 🙂
    J'ai essayé de le mettre dans un répertoire /recalbox/share/scripts et de faire un chmod +x dessus pour le rendre executable mais ça doit pas être ça:)


  • Developer
    Global moderator
    Creator
    Team

    @darkender il faut copier l'executable dans /usr/bin et lui donner les droits d'exécution.

    mount -o rw, remount /
    cp raspi-gpio /usr/bin
    chmod 755 /usr/bin/raspi-gpio
    

    ensuite tu utilises raspi-gpio à la place de gpio dans ton script. Attention la syntax d'utilisation est différente. Il faudra lire la doc.

    Si cela ne va pas, attends la 7.01, raspi-gpio y sera intégré et peut être que RPI.GPIO sera bumpée.



  • @ian57 Je viens de tester ça fonctionne nickel. Merci beaucoup !


  • Developer
    Global moderator
    Creator
    Team

    @darkender bah tant mieux 🙂



Want to support us ?

164
Online

79.8k
Users

21.2k
Topics

154.9k
Posts