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

C Discussion :

programme c anémomètre


Sujet :

C

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 3
    Par défaut programme c anémomètre
    Bonjour, je suis en terminale s. Nous avons un sujet de ppe qui est d'afficher sur un ordinateur la vitesse du vent (anémomètre) par le biais d'un programme en language c. Nous avons réussi à faire dialoguer deux ordinateurs entre eux mais nous n'arrivons pas à lire l'information envoyée par l'anémomètre. L'anémomètre nous envoie un front haut puis bas donc un signal carré. Merci d'avance.

  2. #2
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    4 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 493
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    Que vient faire ici la communication entre 2 PCs ?

    Comment est connecté l'anémomètre à l'ordinateur ?

  3. #3
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 147
    Billets dans le blog
    4
    Par défaut
    Bonjour,

    le capitaine a 42 ans.

    Que dit la doc de l'anémomètre ? Un front montant c'est... vague ?
    Lire les informations de l'anémomètre ? Probablement par le port série ?
    En tous cas, tel quel, toute aide est impossible.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 3
    Par défaut
    L'anemomètre fourni un signal carré binaire . L'anemometre est branché sur le port com de 9 pins.

  5. #5
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 484
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'emploi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 484
    Par défaut
    Bonjour,

    Citation Envoyé par giomax Voir le message
    L'anemomètre fourni un signal carré binaire.
    Tu l'as dit et on s'en doute : c'est « l'hélice » de l'anémomètre qui envoie une impulsion à chaque fois qu'elle fait un tour. Il faut donc mesurer la fréquence à laquelle ces impulsions arrivent.

    L'anemometre est branché sur le port com de 9 pins.
    C'est le point-clé : est-ce que ton anémomètre est dotée d'une vraie interface série (ce qui est le plus probable), auquel cas il faut ouvrir une connexion sur le port et lire les informations qui en viennent, ou est-ce qu'il s'agit d'un anémomètre de fortune qui envoie directement l'impulsion sur un des ports du PC, auquel cas il faudra faire un programme de mesure ?

    Si ton anémomètre vient du commerce, il y a fortes chances pour qu'il s'agisse de la première solution mais, dans ce cas, il faut trouver les SPÉCIFICATIONS de ton appareil et les lire. Donc : commence par trouver la notice.

    Il y a deux choses qu'il faut que tu trouves : le format et la cadence de transmission d'une part (exemple : 9600 bauds, 7 bits, parité paire) et le format des trames d'autre part, c'est-à-dire la signification des octets que tu vas lire.


    Ensuite, ouvrir le port série est relativement simple en soi, mais c'est propre au système d'exploitation que tu utilises. Donc, dis-nous avec quoi tu travailles.

  6. #6
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    4 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 493
    Billets dans le blog
    1
    Par défaut
    En fait le capitaine a peut-être 24 ans.

    Est-ce que tu es conscient qu'on ne peut pas résoudre un problème en sachant uniquement que ton anémomètre fourni un signal carré sur un port com de 9 pins. Ca ne répondre pas aux dizaines de questions telles que :
    • Comment varie la fréquence du signal ?
    • Le rapport cyclique a t-il une influence ?
    • Quelles sont les pins utilisées ?
    • Avez-vous un driver ?
    • Quel est votre OS ?


    C'est comme si ton prof de maths te disait : j'ai une fonction f(x)=blabla et je voudrais résoudre l'équation. Mais quelle équation ?

  7. #7
    Membre Expert
    Profil pro
    Développeur en systèmes embarqués retraité
    Inscrit en
    Mars 2006
    Messages
    952
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2006
    Messages : 952
    Par défaut
    Salut,

    En supposant que les créneaux de l'ailette soient sur une des pins d'un port com et que tu arrives à lire cette information, il suffit de compter le nombre de fronts montants (ou descendants) par seconde, qui est proportionnel à la vitesse de l'ailette.

    Tu as le choix pour la méthode, soit tu fais du polling et tu réquisitionnes une grosse partie des cycles, soit tu utilises une interruption. Sous Windows, il y a les multimedia timers qui sont très précis. A mon avis 1 khz ne mettra pas ta machine au tas et tu auras une précision plus que suffisante si ton anémomètre n'a pas trop de créneaux par tour. Tu gardes l'ancien état de l'ailette (haut, bas) et tu compares avec le nouveau. Si l'état a changé, tu le mémorises, et s'il a changé du bas vers le haut tu incrémentes un compteur. Toutes les secondes, tu lis ce compteur et tu le remets à zéro.

    On peut aussi calculer le temps entre 2 fronts montants, c'est facilement faisable avec une interruption à 1 khz et largement plus précis qu'un comptage par seconde.

    C'était les grandes lignes, à toi de voir pour le reste. Une astuce, moyenner avec par exemple les 10 derniers résultats pour ne pas avoir de changement de valeurs trop brusques dus au manque de précision.

    A+

    Pfeuh

  8. #8
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    4 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 493
    Billets dans le blog
    1
    Par défaut
    AH Pfeuh ! Puisque tu as l'air de t'y connaître, je vais te faire parler

    La solution que tu présentes est clairement ce qu'il faut faire ; je ferais ça sur un micro-contrôleur, où je sais comment contrôler une pin en particulier, faire des interruptions, gérer des timers. Ma question est : comment faire sur PC ? En particulier, comment "monitorer" une pin et générer une interruption sur changement d'état de celle-ci ? Si tu as un adaptateur serie / usb, c'est encore possible ?

    Merci d'avance pour tes réponses !

  9. #9
    Membre Expert
    Profil pro
    Développeur en systèmes embarqués retraité
    Inscrit en
    Mars 2006
    Messages
    952
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2006
    Messages : 952
    Par défaut
    Il y a quelques pins que l'on peut monitorer sur l'interface série, pas les Rx-Tx mais les signaux de contrôle clear_to_send, carrier_detect, data_set_ready et ring_indicator, il y en a deux en entrées et deux en sorties. C'est bien sûr possible avec un bridge USB. A ma connaissance, les interruptions tu peux oublier. le système de mémorisations des fronts marche très bien, il suffit d'avoir une interruption timer plus rapide que les changements de front et un timer précis comme les multimedia timers.

    Sinon, la solution utilisée dans 99% des cas, c'est un microcontrôleur externe (genre 8051 à 1 euro) qui fait la mesure plus que précisément et envoie le résultat au PC par la liaison série.

    A+

    Pfeuh

Discussions similaires

  1. Programme de boot qui passe la main à Windows
    Par Bob dans le forum Assembleur
    Réponses: 7
    Dernier message: 25/11/2002, 03h08
  2. [Kylix] Probleme d'execution de programmes...
    Par yopziggy dans le forum EDI
    Réponses: 19
    Dernier message: 03/05/2002, 14h50
  3. communication entre programmes
    Par jérôme dans le forum C
    Réponses: 12
    Dernier message: 16/04/2002, 08h05
  4. Comment débuter en programmation ?
    Par Marc Lussac dans le forum Débuter
    Réponses: 0
    Dernier message: 08/04/2002, 11h29
  5. [Kylix] icone associée à un programme
    Par Anonymous dans le forum EDI
    Réponses: 1
    Dernier message: 22/03/2002, 09h43

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