IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

2 opérations simultanées


Sujet :

Python

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2013
    Messages : 55
    Points : 37
    Points
    37
    Par défaut 2 opérations simultanées
    Bonjour à tous,

    Je suis très débutant en python, je cherche à faire mon premier programme en autonomie sur un Raspberry Pi 3.

    j'aurais besoin de lancer des commandes en même temps

    D'une part : un son mp3 contenant 4 bips avec in timing bien précis

    d'autre part : une succession de commandes allumer LED 1 / attendre timing / allumer LED 2 / attendre timing

    de sorte à avoir une led allumé à chaque BIP du son mp3.

    Pour le moment j'ai réussi à faire mon programme, mais en exécution linéaire

    - os.system("mpg123 /media ..... .mp3")

    - GPIO.output(23,GPIO.HIGH)
    - time.sleep(0.6)
    - GPIO.output(20,GPIO.HIGH)
    - time.sleep(0.6)
    - GPIO.output(16,GPIO.HIGH)
    - time.sleep(0.6)
    - GPIO.output(18,GPIO.HIGH)
    - time.sleep(0.6)



    puis éteindre les LEDS ...

    Auriez vous une solutions pour avoir l'exécution simulatanée du son et des lumières ?

    merci d'avance

    Cordialement,

    Charles

  2. #2
    Membre averti Avatar de cervo
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2012
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2012
    Messages : 220
    Points : 388
    Points
    388
    Par défaut

    Pour les opérations simultanées tu peux voir du coté du module threading. Tu peux utiliser des lock pour permettre a certaine actions d'attendre des resultats avant de continuer l'exécution.
    Toute chose dépend de la valeur qu'on lui attribue !

  3. #3
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Salut,

    Essayez de remplacer l'appel os.system("mpg123 /media ..... .mp3") par subprocess.Popen:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    import subprocess
    subprocess.Popen("mpg123 /media ..... .mp3", shell=True)
    Cela évitera d'attendre la fin d'os.system pour exécuter les commandes gpio.

    Une autre solution pourrait être de regarder ce que sait faire pyaudio.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2013
    Messages : 55
    Points : 37
    Points
    37
    Par défaut
    merci, la solution subprocess, plus simple que les threads fonctionne parfaitement !

    tip top

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Peut-on utiliser plusieurs canaux DMA simultanément ?
    Par le mage tophinus dans le forum Assembleur
    Réponses: 18
    Dernier message: 26/09/2003, 09h18
  2. opérations sur les dates
    Par coucoucmoi dans le forum Débuter
    Réponses: 2
    Dernier message: 12/08/2003, 11h45
  3. [Syntaxe] Action simultanée sur plusieurs élements
    Par FranT dans le forum Composants VCL
    Réponses: 2
    Dernier message: 20/03/2003, 20h20
  4. opération en XSL
    Par rastapopulos dans le forum XSL/XSLT/XPATH
    Réponses: 10
    Dernier message: 12/03/2003, 22h39
  5. Nombre de fichiers ouverts simultanément
    Par matrixfan dans le forum C++Builder
    Réponses: 3
    Dernier message: 27/05/2002, 17h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo