Solved 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
-
@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 -
@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:) -
@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.
-
@ian57 Je viens de tester ça fonctionne nickel. Merci beaucoup !
-
@darkender bah tant mieux