Recalbox Forum

    • Register
    • Login
    • Search
    • Recent
    • Tags
    • recalbox.com
    • Gitlab repository
    • Documentation
    • Discord

    Solved Recalbox 7 userscript controler les GPIO

    Recalbox Général
    controler gpio recalbox userscript
    2
    7
    752
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • darkender
      darkender last edited by darkender

      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

      1 Reply Last reply Reply Quote 0
      • ian57
        ian57 Staff last edited by ian57

        @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 b*mper pour la 7.01

        "UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity." Dennis Ritchie

        1 Reply Last reply Reply Quote 0
        • darkender
          darkender last edited by darkender

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

          1 Reply Last reply Reply Quote 0
          • darkender
            darkender last edited by

            @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:)

            ian57 1 Reply Last reply Reply Quote 0
            • ian57
              ian57 Staff @darkender last edited by

              @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 b*mpée.

              "UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity." Dennis Ritchie

              1 Reply Last reply Reply Quote 0
              • darkender
                darkender last edited by

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

                ian57 1 Reply Last reply Reply Quote 1
                • ian57
                  ian57 Staff @darkender last edited by

                  @darkender bah tant mieux 🙂

                  "UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity." Dennis Ritchie

                  1 Reply Last reply Reply Quote 0
                  • First post
                    Last post

                  Want to support us ?

                  84
                  Online

                  98.9k
                  Users

                  28.1k
                  Topics

                  187.1k
                  Posts

                  Copyright © 2021 recalbox.com