{SOLVED} How to make a momentary push button that exit games and take me back to game menu ?
-
@mitu
I just watched ETA Prime videos on how to setup shutdown and reset button, so basically, just copying what he did.I tried the scripts that both of u did, and a file name: multi_switch.sh was installed, I opened it with notepad++, searching for the --es-closeemu, but no idea where can I map my gpio which is in my case GPIO 7 (pins 25 and 26).
-
@O-M-A-A I'm not familiar with those videos, so I can't advise about that. Do you have a link to the script you used for the power and reset button actions ?
-
@mitu
thanks for ur reply,
here is for the shutdown button:#!/usr/bin/python import RPi.GPIO as GPIO import time import subprocess GPIO.setmode(GPIO.BOARD) # we will use the pin numbering to match the pins on the Pi, instead of the # GPIO pin outs (makes it easier to keep track of things) # use the same pin that is used for the reset button (one button to rule them all!) GPIO.setup(5, GPIO.IN) oldButtonState1 = True while True: #grab the current button state buttonState1 = GPIO.input(5) # check to see if button has been pushed if buttonState1 != oldButtonState1 and buttonState1 == False: # shutdown subprocess.call("shutdown -h now", shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE) oldButtonState1 = buttonState1 time.sleep(.5)
-
@mitu
is it possible to just send me a file were it is already mapped and rdy to exit game on gpio 7, so I just need to drop it ? -
@O-M-A-A You'll need to add another test for GPIO7 in the
while
loop, check if GPIO7 is pressed and then call themulti_switch.sh
script to reset the current emulator. You'll need to copy the script to/home/pi/scripts
first.#!/usr/bin/python import RPi.GPIO as GPIO import time import subprocess GPIO.setmode(GPIO.BOARD) # we will use the pin numbering to match the pins on the Pi, instead of the # GPIO pin outs (makes it easier to keep track of things) # use the same pin that is used for the reset button (one button to rule them all!) GPIO.setup(5, GPIO.IN) GPIO.setup(7, GPIO.IN) oldButtonState1 = True oldButtonState2 = True while True: #grab the current button state buttonState1 = GPIO.input(5) buttonState2 = GPIO.input(7) # check to see if button has been pushed if buttonState1 != oldButtonState1 and buttonState1 == False: # shutdown subprocess.call("shutdown -h now", shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE) oldButtonState1 = buttonState1 if buttonState2 != oldButtonState2 and buttonState2 == False: # Reset emulator subprocess.call("/home/pi/scripts/multi_switch.sh --es-closeemu", shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE) oldButtonState2 = buttonState2 time.sleep(.5)
-
@mitu Yes that's right ... but you can further utilize the script. If you use the parameters
--es-pid
and--rc-pid
you can determine in which state the Raspberry currently is. So is ES ready booted? Is there an emulator currently running.... and then set actions for each state.@O-M-A-A
You should get in touch with some coding -
@cyperghost I'm too bad with coding xD but I hope one day I get used to some of it.
@mitu I copied the script u posted to /home/pi/scripts,
so, now I have this script in this destination: /home/pi/scripts, which contains the script u posted, and another script is in this destination: /home/pi/RetroPie/scripts which is called multi_switch.sh and it contains a very long script.the power on/off button still working, but I didn't understand this part (You'll need to add another test for GPIO7 in the while loop, check if GPIO7 is pressed and then call the multi_switch.sh script to reset the current emulator), which is why still exit emulator button not working yet.
-
@O-M-A-A Please perform following command
chmod +x /home/pi/scripts/multi_switch.sh
to make it executable -
In addition to what @cyperghost said, copy the
multi_switch.sh
script also in/home/pi/scripts
- that's the script I meant to copy there, not the one you posted (and I modified). -
@mitu @cyperghost
ok I will try it now -
I renamed the file in /home/pi/scripts, to multi_switch.sh as in this picture
and it contains only the script u posted:
then I executed this command : chmod +x /home/pi/scripts/multi_switch.sh
but still didn't work, even the power button doesn't work now.
not sure what's the mistake I'm doing here. -
@O-M-A-A You misunderstood the instructions - maybe I wasn't so clear.
You already have a script - the one your posted. Modify it and add the code I posted. In addition to the new script you have, download and put themulti_switch.sh
script, which you can get from https://raw.githubusercontent.com/crcerror/ES-generic-shutdown/master/multi_switch.sh, into the/home/pi/scripts
folder, then make it executable (chmod +x /home/pi/scripts/multi_switch.sh
).
Run your original script (now modified) and see if you get the desired behavior. -
@O-M-A-A This does not make sense
Please use command
wget https://raw.githubusercontent.com/crcerror/ES-generic-shutdown/master/multi_switch.sh -O /home/pi/scripts/multi_switch.sh
and then again
chmod +x /home/pi/scripts/multi_switch.sh
-
@mitu thank you very much for your response,
I will try it now, and I hope I get it now -
Is this what u guys meant ?
shutdown.py contains the modified script, while I downloaded the multi_switch.sh and drop it this destination, then I executed this command (chmod +x /home/pi/scripts/multi_switch.sh)., the power button is working but not the exit emu button.
I hope this is what u guys meant !! -
@O-M-A-A said in How to make a momentary push button that exit games and take me back to game menu ?:
I hope this is what u guys meant !!
Not really:
Run your original script (now modified) and see if you get the desired behavior.
You need to run
shutdown.py
, not the other way around. -
@mitu
the original script's name is shutdown.py, I did modified it, or what did u mean ? -
-
@cyperghost just copied it and paste it ;D
-
Can you take a picture of how the buttons are wired ?
Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.
Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.