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

Interfaces Graphiques Discussion :

Mise en parallèle d'un son et d'un graphe s'affichant en temps réel //explications détaillées\\


Sujet :

Interfaces Graphiques

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2014
    Messages : 2
    Points : 3
    Points
    3
    Par défaut Mise en parallèle d'un son et d'un graphe s'affichant en temps réel //explications détaillées\\
    Bonjour !

    Dans le cadre d'un projet, je suis amené à afficher des résultats d'un capteur de pression sous forme de graph sur MATLAB et si l'une des données dépasse une valeur fixée, je dois entendre un signal sonore ("alarme"). Je vous omets les détails pour une compréhension plus aisée.

    J'ai réussi à faire tout ce que je souhaitais (merci à ce forum d'ailleurs ) à une chose près.
    Pour vous introduire mon problème, vous pouvez commencer par tester l'un après l'autre ces 2 codes MATLAB qui valent mieux qu'un grand discours
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    %% 1er CODE
    clc
    close all
    clear all 
     
    t=linspace(0,15,150); % abscisse
    s=40*(sawtooth(t)+1); % création dent de scie pour remplacer les valeurs du capteur (pour tester le code)
    figure(1);
    plot(t,s);
    hold on
    tic
    for t=1:150
        plot(t/10,s(t),'bo');
        pause(0.076); %cette valeur de pause me permet d'avoir un affichage presque en temps réel sur mon ordi. 
                      %Si vous connaissez une méthode plus précise, je suis aussi preneur...
     
    end
    toc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    %% 2ème CODE 
    clc
    close all
    clear all
     
    % Creation of the sound
    fe=40000;
    dt=1/fe;
    t = 0:dt:0.3;
    f = 800;
    son=zeros(size(t));
    son = sin(2*pi*f*t);
    pause(1);
     
    % creation figure 1
    t=linspace(0,15,150); % abscisse
    s=40*(sawtooth(t)+1); % création dent de scie
    figure(1);
    plot(t,s);
    hold on
    tic
     
    for t=1:150
        plot(t/10,s(t),'bo');
        if 0==mod(t,4) % pour l'exemple ici, j'entends le signal toutes les 4 valeurs
            sound(son)
        else
        end
     
        pause(0.076);
    end
    toc
    Ce que je souhaiterais est de pouvoir afficher mon graph comme dans mon 1er code, quasiment en temps réel (15s) mais en y ajoutant le son, comme dans le 2nd code. Ici je comprends très bien le problème, MATLAB doit lire et interpréter à la suite mes plot/sound/plot/sound ce qui empêche un affichage continu (temps réel), mais je ne sais pas comment y remédier.
    En fin de compte, j'aimerais pouvoir lancer le son en parallèle de la courbe afin que celle-ci ne s'interrompe pas, mais le lancement de ce son dépendrait des valeurs de cette courbe.
    Plus tard, je souhaite pouvoir lancer le son en fonction des données reçues mais aussi pouvoir l'arrêter, chaque décision se prenant à l'arrivée d'une nouvelle donnée.

    Voilà je continue de chercher et je m'en remets à vous!
    Quelques pistes que j'étudie sont matlabpool et parfor, mais je comprends pas grand chose pour l'instant ...

    Merci à ceux qui chercheront à m'aider !

  2. #2
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 302
    Points : 53 160
    Points
    53 160
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2014
    Messages : 2
    Points : 3
    Points
    3
    Par défaut
    Merci !
    ça fonctionne, j'avais juste besoin de

    fs=44100;
    y=wavread('SonQueJaiCréer.WAV');
    player = audioplayer(y, fs);
    +
    play(player)
    stop(player)

    A bientôt !

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

Discussions similaires

  1. Outil de mise en page : TinyMCE et son intégration
    Par Phoceen39 dans le forum Bibliothèques et frameworks
    Réponses: 0
    Dernier message: 01/11/2014, 18h00
  2. Script de mise en forme pour créer son propre blog
    Par speed034 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 08/08/2008, 17h30
  3. Voir une mise à jour de page chez son hebergeur
    Par smartise dans le forum Débuter
    Réponses: 16
    Dernier message: 21/11/2007, 12h58
  4. Mise à jour en temps réel de la base de données
    Par Clotilde dans le forum Bases de données
    Réponses: 2
    Dernier message: 11/06/2004, 23h09

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