Partage
  • Partager sur Facebook
  • Partager sur Twitter

IR receiver sur Raspberry dans un programme python

intégrer et faire marcher lirx au sein d'un programme Python

Sujet résolu
    20 juin 2015 à 22:35:04

    Bonjour,

    j'ai un projet de robot télécommandé sur Raspberry et je veux faire tourner des moteurs lors de la pression d'un touche d'un télécommande. Les touches sont déjà programmées et enregistrées avec irrecord, j'ai trouvé un code pour allumer des LEDs avec la télécommande mais le programme est en C et je n'y connait rien. Mon programme actuel est le suivant : 

    import RPi.GPIO as GPIO
    from time import sleep
    
    GPIO.setmode(GPIO.BOARD)  
    GPIO.setwarnings(False)
    
    Moteur1A = 11      
    Moteur1B = 18     
    Moteur1E = 22     
    Moteur2A = 19     
    Moteur2B = 21  
    Moteur2E = 23    
    
    GPIO.setup(Moteur1A,GPIO.OUT) 
    GPIO.setup(Moteur1B,GPIO.OUT)
    GPIO.setup(Moteur1E,GPIO.OUT)
    GPIO.setup(Moteur2A,GPIO.OUT) 
    GPIO.setup(Moteur2B,GPIO.OUT)
    GPIO.setup(Moteur2E,GPIO.OUT)
    
    
    def avancer ():
    	print ("Avance")
    	GPIO.output(Moteur1A,GPIO.HIGH)
    	GPIO.output(Moteur1B,GPIO.LOW)
    	GPIO.output(Moteur1E,GPIO.HIGH)
    	GPIO.output(Moteur2A,GPIO.HIGH)
    	GPIO.output(Moteur2B,GPIO.LOW)
    	GPIO.output(Moteur2E,GPIO.HIGH)
    
    def reculer ():
    	print ("Recule")
    	GPIO.output(Moteur1A,GPIO.LOW)
    	GPIO.output(Moteur1B,GPIO.HIGH)
    	GPIO.output(Moteur1E,GPIO.HIGH)
    	GPIO.output(Moteur2A,GPIO.LOW)
    	GPIO.output(Moteur2B,GPIO.HIGH)
    	GPIO.output(Moteur2E,GPIO.HIGH)
    
    def tourner_droite ():
    	print ("Tourner a 90")
    	GPIO.output(Moteur1E,GPIO.LOW)	
    	GPIO.output(Moteur2A,GPIO.HIGH)
    	GPIO.output(Moteur2B,GPIO.LOW)
    	GPIO.output(Moteur2E,GPIO.HIGH)
    
    def tourner_gauche ():
    	print ("Tourner a 90")
    	GPIO.output(Moteur2E,GPIO.LOW)
    	GPIO.output(Moteur1A,GPIO.HIGH)
    	GPIO.output(Moteur1B,GPIO.LOW)
    	GPIO.output(Moteur1E,GPIO.HIGH)
    
    def tourner_360 ():
    	print ("Tourner a 360")
    	GPIO.output(Moteur1A,GPIO.LOW)
    	GPIO.output(Moteur1B,GPIO.HIGH)
    	GPIO.output(Moteur1E,GPIO.HIGH)
    	GPIO.output(Moteur2A,GPIO.HIGH)
    	GPIO.output(Moteur2B,GPIO.LOW)
    	GPIO.output(Moteur2E,GPIO.HIGH)
    
    pwm1 = GPIO.PWM(Moteur1E,50)
    pwm1.start(100)   
    
    pwm2 = GPIO.PWM(Moteur2E,50)  
    pwm2.start(100)
    
    GPIO.cleanup()

    Je veux par exemple que quand j'appuie sur

    KEY_UP -> avancer()

    KEY_DOWN -> reculer()

    etc...

    Je sais pas si je suis clair. Et le tout en PYTHON !

    Merci d'avance 

    • Partager sur Facebook
    • Partager sur Twitter
    Créateur de EspaceRaspberryFrancais. Etudiant 1ere SI.
    Anonyme
      21 août 2015 à 21:36:19

      Pour utiliser ta télécommande avec Python, il te faut simplement installer la bibliothèque python-lirc

      sudo apt-get install python3-lirc pour Python 3.x sudo apt-get install python-lirc pour Python 2.x

      Si tu as déjà configuré correctement ta télécommande avec irrecord, il ne te restera qu'à éditer le fichier ~/.lircrc (documentation), par exemple:

      ~/.lircrc

      begin
          prog = myprogram
          button = KEY_UP
          config = KEY_UP
          repeat = 1
      end
      
      begin
          prog = myprogram
          button = KEY_DOWN
          config = KEY_DOWN
          repeat = 1
      end
      
      begin
          prog = myprogram
          button = KEY_LEFT
          config = KEY_LEFT
          repeat = 1
      end
      
      begin
          prog = myprogram
          button = KEY_RIGHT
          config = KEY_RIGHT
          repeat = 1
      end
      
      begin
          prog = myprogram
          button = KEY_EXIT
          config = KEY_EXIT
          repeat = 0
      end
      

      ~/myprogram.py

      import lirc
      

      lirc.init('myprogram') while True:

      ircode = lirc.nextcode()
      print(ircode)
      if ircode[0] == 'KEY_EXIT':
          break
      

      lirc.deinit()

      </pre>
      • Partager sur Facebook
      • Partager sur Twitter
        22 août 2015 à 9:35:58

        Merci beaucoup pour ton aide !
        • Partager sur Facebook
        • Partager sur Twitter
        Créateur de EspaceRaspberryFrancais. Etudiant 1ere SI.

        IR receiver sur Raspberry dans un programme python

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown