Bouton gpio quitter émulateur
-
@supernature2k quand tu dis reset des émulateurs, tu veux dire reset du jeu lancé ?
et le long press correspond à combien de seconde?Hâte de tester ça si tu veux des retours
-
@idarius quand je dis reset, c'est la commande RESET de retroarch donc oui, du jeu lancé.
Long press je l'ai mis à >1 seconde
-
@supernature2k Super !
je cherchais plus ou moins toutes les fonctionnalités que tu as mis, tu gères -
@Substring @supernature2k
Bonsoir messieurs je rencontre un autre problème :
*mPour résumer:Power+ sur GPIO 3 (PIN 5)
Reset+ sur GPIO 2 (PIN 3)
LED+ sur GPIO 14 (PIN
Power-, Reset- et Led- sur Ground (PIN 6)Sauf que les pin 3 et 5 sont les ports I2C ou IIC que j'utilise pour l'écran CLCD...
Puis je en choisir d'autres et modifier bêtement leur numéros dans les scripts ?
En préconisez vous particulièrement certains ou au contraire ....
Pour être clair je ne sais pas du tout sur quels PINs passer...Un petit coup de main serait le bienvenue...
-
@godhunter74 oui pour les pin 3 et 5 tu peux en choisir d'autres et modifier le script en conséquences. Prends n'importe lesquels.
-
Bonjour à tous,
J'aimerais aussi rajouter une deuxième led et m'amuser avec, puis-je aussi utiliser n'importe quel port en précisant que c'est une led ?
Par avance merci
@supernature2k mettrais tu ton script avec la version short long press à disposition ? -
@godhunter74 bientôt
-
Super !!!
Aucune idée pour ma 2eme LED? -
@godhunter74 tu veux qu'elle fasse quoi ta LED? des trucs spécifiques ou même chose que la 1ère?
-
@supernature2k
Des trucs spécifiques !!! Pour rappel je bricole dans une coque de ps2 les bouton Pwr et eject sont en parti transparent on y verra La led briller derrière.- 1 Led branchée sur le transfo 5v visible derrière la console, c'est La led "y'a du jus" fait
- 1 Led branchée comme indiqué dans le wiki, c'est la led "emulationstation=on", elle est planquée derrière le bouton power de La ps2 fait
- 1 led que je veux rajouter et piloter avec mon script qui gère l'affichage sur écran clcd, (il détecte un émulateur lancé) si il détecte un émulateur, le bouton eject de La play 2 est vert sinon éteint. Je pense savoir programmer ça a faire
mais je ne sais pas si tous les ports GPIO sont compatibles Led ?
-
@supernature2k @Substring
Bonjour messieurs pardonnez moi d'insister...
Un petit up pour ma deuxieme led quel port GPIO puis je utiliser sans endommager le pi? (Quel port support une led) svp ? -
@godhunter74 tous ceux qui sobt pilotables il me semble
-
@Substring pas mieux
-
@Substring
Bonsoir, puis je créer un nouveau script et bêtement l'appeler :
system.power.switch=MONNOMDESCRIPT
Ou suis je obligé de modifier le script rpi-pin356-power.py ?
Par avance merci. -
@godhunter74 me semble pas que c'est possible parce que le nom de l'option n'est pas nécessairement un nom de script (de mémoire y'a un switch/case en bash)
-
Merci beaucoup
-
@supernature2k
Mon projet est enfin terminé, il ne me reste plus qu'à intégrer le short/long press et à ce titre je me permets de revenir vers toi pour savoir dans quelles conditions tu pourrais mettre ton script à disposition ?
Par avance, je te remerci.
Édit :
Veuilles agréer l'expression de mes rétro salutations -
@godhunter74 Quel formalisme ! tu as oublié "Veuilles agréer l'expression de mes rétro salutations"
-
@Substring merci du conseil
-
import RPi.GPIO as GPIO import time import os import thread import datetime import socket import sys import argpa**e from datetime import datetime from configgen import recalboxFiles # this last one retrieves emulators bin names pa**er = argpa**e.ArgumentPa**er(description='power manager') pa**er.add_argument("-m", help="mode onoff or push", type=str, required=True) args = pa**er.pa**e_args() mode = args.m IPADDR = "127.0.0.1" PORTNUM = 55355 # IP and port for retroarch network commands POWERPLUS = 3 RESETPLUS = 2 LED = 14 GPIO.setwarnings(False) # no warnings GPIO.setmode(GPIO.BCM) # set up BCM GPIO numbering GPIO.setup(RESETPLUS, GPIO.IN, pull_up_down=GPIO.PUD_UP) # GPIO on pin 3 is the GPIO 2 in BCM mode #to Reset+ GPIO.setup(POWERPLUS, GPIO.IN, pull_up_down=GPIO.PUD_UP) # GPIO on pin 5 is the GPIO 3 in BCM mode #to Power+ GPIO.setup(LED, GPIO.OUT) GPIO.output(LED, True) # GPIO on pin 8 is the GPIO 14 in BCM mode #to LED+ # Define a threaded callback function to run in another thread when events are detected def button_pressed(channel): if channel == POWERPLUS: speed=0.15 shutdownstring="shutdown -h now" nwcommand="QUIT" elif channel == RESETPLUS: speed=0.05 shutdownstring="shutdown -r now" nwcommand="RESET" timer = 0 flag = True while flag: if GPIO.input(channel) == False: timer += 1 print "Button pressed" elif GPIO.input(channel) == True: print "Button released" print timer #timer adds 1 each 0.1 seconds if timer = 10, button is pressed for 1s if (timer > 10): offreset(speed, shutdownstring) print "shutdown" elif (timer >1): retroarch(nwcommand) print "retroarch" killthats**t(channel) timer = 0 flag = False time.sleep(0.1) # on power short press, trying to kill all listed emus def killthats**t(channel): if channel == POWERPLUS: for bin in recalboxFiles.recalboxBins: print bin proc = os.path.basename(bin) print proc os.system("killall -9 "+proc) # on long button press clean stop of ES then shutdown -h or -r def offreset(speed, shutdownstring): thread.start_new_thread( blink, (speed, )) flag=True pids = [pid for pid in os.listdir('/proc') if pid.isdigit()] os.system("/etc/init.d/S31emulationstation stop") while flag: flag = False for pid in pids: try: print pid commandpath = open(os.path.join('/proc', pid, 'cmdline'), 'rb').read() if "emulationstation" in commandpath: flag = True except IOError: continue os.system(shutdownstring) # threaded blinking function for LED def blink(speed): while True: GPIO.output(LED, False) time.sleep(speed) GPIO.output(LED, True) time.sleep(speed) # sending network command to retroarch (only exit and reset atm) def retroarch(nwcommand): try: s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) except socket.error: print 'Failed to create socket' sys.exit() s.sendto(nwcommand, (IPADDR, PORTNUM)) GPIO.add_event_detect(RESETPLUS, GPIO.BOTH, callback=button_pressed, bouncetime=2) GPIO.add_event_detect(POWERPLUS, GPIO.BOTH, callback=button_pressed, bouncetime=2) while True: time.sleep(0.2)