Recalbox Forum

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

    Bouton gpio quitter émulateur

    Manettes/GPIO/Encodeurs
    gpio quitter
    13
    71
    30239
    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.
    • supernature2k
      supernature2k @godhunter74 last edited by

      @godhunter74 bientôt

      Pi powered NES | Gameboy HD | RecalStation | RecalDrive
      Upvote messages if it has been useful ;)

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

        Super !!!
        Aucune idée pour ma 2eme LED?

        Relier un écran I2C et afficher des informations sur les roms

        supernature2k 1 Reply Last reply Reply Quote 0
        • supernature2k
          supernature2k @godhunter74 last edited by

          @godhunter74 tu veux qu'elle fasse quoi ta LED? des trucs spécifiques ou même chose que la 1ère?

          Pi powered NES | Gameboy HD | RecalStation | RecalDrive
          Upvote messages if it has been useful ;)

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

            @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 ?

            Relier un écran I2C et afficher des informations sur les roms

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

              @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 ?

              Relier un écran I2C et afficher des informations sur les roms

              Substring 1 Reply Last reply Reply Quote 0
              • Substring
                Substring @godhunter74 last edited by

                @godhunter74 tous ceux qui sobt pilotables il me semble

                Former dev - Please reply with @substring so that i am notified when you answer me
                Ex dev - Merci de me répondre en utilisant @substring pour que je sois notifé

                supernature2k 1 Reply Last reply Reply Quote 0
                • supernature2k
                  supernature2k @Substring last edited by

                  @Substring pas mieux

                  Pi powered NES | Gameboy HD | RecalStation | RecalDrive
                  Upvote messages if it has been useful ;)

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

                    @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.

                    Relier un écran I2C et afficher des informations sur les roms

                    Substring 1 Reply Last reply Reply Quote 0
                    • Substring
                      Substring @godhunter74 last edited by

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

                      Former dev - Please reply with @substring so that i am notified when you answer me
                      Ex dev - Merci de me répondre en utilisant @substring pour que je sois notifé

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

                        Merci beaucoup

                        Relier un écran I2C et afficher des informations sur les roms

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

                          @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

                          Relier un écran I2C et afficher des informations sur les roms

                          Substring 1 Reply Last reply Reply Quote 0
                          • Substring
                            Substring @godhunter74 last edited by

                            @godhunter74 Quel formalisme ! tu as oublié "Veuilles agréer l'expression de mes rétro salutations" 😄

                            Former dev - Please reply with @substring so that i am notified when you answer me
                            Ex dev - Merci de me répondre en utilisant @substring pour que je sois notifé

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

                              @Substring merci du conseil 😂

                              Relier un écran I2C et afficher des informations sur les roms

                              supernature2k 1 Reply Last reply Reply Quote 0
                              • supernature2k
                                supernature2k @godhunter74 last edited by

                                @godhunter74

                                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)
                                

                                Pi powered NES | Gameboy HD | RecalStation | RecalDrive
                                Upvote messages if it has been useful ;)

                                godhunter74 johnDoe_1 2 Replies Last reply Reply Quote 2
                                • godhunter74
                                  godhunter74 @supernature2k last edited by

                                  @supernature2k
                                  Merci beaucoup
                                  @Substring
                                  Ca a marché 😂

                                  Relier un écran I2C et afficher des informations sur les roms

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

                                    @godhunter74 @substring @supernature2k Bonjour à tous,
                                    J'essaie de suivre la manip pour avoir moi aussi la possibilité de sortir des émulateurs avec un bref appui sur Power off.
                                    J'ai télécharger putty, connexion SSH ok,
                                    modif des droits en écriture ok...
                                    mais ou diable rpi-pin356-power.py se cache t'il ? j'ai parcouru les fichiers accéssible via mon réseau, nada...
                                    j'ai retirer la micro SD, fourré dans mon ordi, exploré les dossiers...mais pas mieux. Je suis persuadé que vous allez me tirer dessus en me lisant tellement la réponse doit être bête...mais par pitié, sortez-moi de là 😄 !

                                    Substring 1 Reply Last reply Reply Quote 0
                                    • Substring
                                      Substring @babastorm last edited by

                                      @babastorm dans /recalbox/scripts de mémoire

                                      Former dev - Please reply with @substring so that i am notified when you answer me
                                      Ex dev - Merci de me répondre en utilisant @substring pour que je sois notifé

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

                                        @Substring
                                        J'ai trouvé entre temps, la bonne question aurait dû être "comment accède t'on à rpi-pin356-power.py ?"
                                        Ce qui aurait conduit à une réponse du genre "par winSCP, banane !!"

                                        En comparant les fichiers rpi-pin56-power.py et rpi-pin356-power.py, je vois que sur le second, on peut ajouter une LED.

                                        • Puis-je ajouter la LED au code du rpi-pin56-power.py ? (j'utilise déjà le pin 3 pour autre chose et ne souhaite donc pas la fonction RESET)

                                        • Quel est le principe de fonctionnement de la LED (sous quelle condition est-elle allumé, sous quelle condition s'éteint-elle ?

                                        Merci par avance pour vos réponses 😉

                                        Substring 1 Reply Last reply Reply Quote 0
                                        • Substring
                                          Substring @babastorm last edited by

                                          @babastorm said in Bouton gpio quitter émulateur:

                                          Puis-je ajouter la LED au code du rpi-pin56-power.py ? (j'utilise déjà le pin 3 pour autre chose et ne souhaite donc pas la fonction RESET)

                                          Oh oui sûrement, je doute que ca pose problème. Par contre le script va sauter à chaque mise à jour

                                          Quel est le principe de fonctionnement de la LED (sous quelle condition est-elle allumé, sous quelle condition s'éteint-elle ?

                                          là faut demander à @supernature2k ou que je lise le script mais j'aurais tendance à dire "s'allume quand le script est lancé"

                                          Former dev - Please reply with @substring so that i am notified when you answer me
                                          Ex dev - Merci de me répondre en utilisant @substring pour que je sois notifé

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

                                            @Substring
                                            Ha mince, et je suppose que le problème (raz maj) reste identique si je touche à rpi-pin356-power.py ? Dommage, le script d'éjection des émulateurs de @supernature2k étais vraiment top !
                                            Une implémentation de prévus à court, moyen ou long terme ?

                                            Si je pige bien tout au code :

                                            • Au démarrage de Recalbox (ou ES, parfois du mal à faire la distinction tant la fusion est parfaite) la LED est allumée.
                                            • Lors de L'appui sur Power ou reset, la LED clignote (de deux façon différente pour distinguer sur quel bouton on à appuyé)
                                            • Je ne vois aucune déclaration pour éteindre la LED, je suppose que la fermeture d'ES ou Recalbox provoque l’extinction.

                                            Mon idée serait de modifier le comportement de la led, car je pense exploiter la pin pour monter dessus un relais de puissance pour allumer mon marquee...

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

                                            Want to support us ?

                                            73
                                            Online

                                            99.6k
                                            Users

                                            28.1k
                                            Topics

                                            187.1k
                                            Posts

                                            Copyright © 2021 recalbox.com