|
|||||||||||||
le 04-30-2012 10:01 AM
Bonjour,
en pièce jointe mon programme, voici sa fonction :
mon programme acquiert une vidéo via une caméra USb et un son via 3 microphones. Mon programme a 2 grandes fonctions :
- Onglet measure : on visualise en temps réel la caméra et le spectre de puissance des microphone, on peut également faire un enregistrement de la vidéo (.AVI) et du son (waveform).
- Onglet analysis : on peut revoir une vidéo, écouter la waveform et visualiser la spectre de puissance du premier micro, tout ça en même temps.
J'utilise des architectures type producteur/consommateur, machines àétats et boucles parallèles...
Mon programme est-il bien ? ("propre" ?)
Petit souci que j'arrive pas à corriger : la synchronisation waveform/vidéo dans la partie analysis, en effet le décalage (pour un même enregistrement) n'est JAMAIS le même.
Peut-être ai-je un problème avant même l'analyse (donc en Measure), mais je ne sais pas.
C'est pour mon stage de 2nd année de DUT Mesures-Physiques, là j'avance plus ![]()
Merci à ceux qui voudront bien m'aider (je suis pas un expert en LabVIEW, donc soyez pas méchant ^^)
Cordialement
le 04-30-2012 10:03 AM
voici les 2 subVI manquant ^^
le 05-02-2012 08:11 AM
UP ![]()
le 05-07-2012 11:56 AM
Bonjour,
C'est difficile de vous donner un avis sur ce VI, surtout de manière textuelle.
Voici mes premières réactions d'un point de vue "propreté" de lecture :
- un VI se lit de gauche à droite et il est déconseillé d'avoir des fils qui partent un coup vers la droite, un coup vers la gauche.
- attention aux diagrammes énormes. Le votre fait plus de 4 fois mon écran ce qui est difficile à lire. Je vous conseil de créer des sous-vi pour vous aider. Vous pouvez de manière simple, sélectionner votre code à y mettre, cliquer sur le menu Edition >> Créer un sous-VI
- si vous voulez avoir une liste de conseils de présentation, veuillez consulter la LabVIEW Style Checklist
D'un point de vue programmation :
- attention à cette boucle while énorme qui est autour de votre VI. Elle n'est pas cadencée et du coup va chercher à s'exécuter le plus vite possible et donc utiliser un maximum votre processeur.
- vu que vous avez cette énorme boucle while pour gérer principalement votre face avant, je vous propose d'utiliser la structure événement dans une boucle parallèle ce qui sera plus efficace. En revanche, elle n'est pas incluse dans les versions Base et Etudiantes de LabVIEW et risque d'être compliquée à utiliser pour vous. si vous voulez vous lancer dedans, je vous conseil de regarder les exemples et d'utiliser la structure du VI Modèle de Conveption Producteur/Consommateur (Evénements). Cette dernière est présentée ici.
- pensez à câbler les cluster d'erreurs d'un bout à l'autre de votre VI. Il faudrait arrêter les boucles dans le cas d'une erreur (utiliser Désassembler par nom) et placer un Gestionnaire d'erreur simple tout à la fin du programme. Ceci vous permettra de récupérer les erreurs de votre programme et d'éviter de continuer à l'exécuter s'il y en a une.
Selon moi la source de votre problème de synchronisation vient de vos trois boucles parallèles. Il n'y absolument rien qui ne permet de les synchroniser et donc elles tournent aussi vite que possible (sauf celle où vous avez placé une fonction Attendre). Du coup :
- soit vous placez une fonction Attendre un multiple de ms avec un temps suffisamment important pour que chaque boucle ait le temps de s'éxécuter.
- soit vous utilisez les fonctions de synchronisation ( dans la palette du même nom) et là je vous conseil de consulter les exemples fournis.
En espérant que ces indications pourront vous débloquer.
Cordialement,
Mathieu P. | Certified LabVIEW Associate Developer
National Instruments France
Mon Profil | Confidentialité |
Conditions d'utilisation |
Contacter NI
© 2011 National Instruments Corporation. All rights reserved. | Envoyer cette page
|
||

Envoyer cette page