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.
    • idarius
      idarius @supernature2k last edited by

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

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

        @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

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

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

          @supernature2k Super !
          je cherchais plus ou moins toutes les fonctionnalités que tu as mis, tu gères 🙂

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

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

            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 oui pour les pin 3 et 5 tu peux en choisir d'autres et modifier le script en conséquences. Prends n'importe lesquels.

              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

                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 ?

                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 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
                                            • First post
                                              Last post

                                            Want to support us ?

                                            86
                                            Online

                                            99.6k
                                            Users

                                            28.1k
                                            Topics

                                            187.1k
                                            Posts

                                            Copyright © 2021 recalbox.com