Partage
  • Partager sur Facebook
  • Partager sur Twitter

Capteur de température avec labview

Anonyme
    16 mars 2015 à 16:13:14

    Bonjour à tous,

    Dans le cadre d'un projet en cour, je doit acquérir la température avec un capteur waterproof numérique DS18B20. Pour ceci je dois utiliser le logiciel Labview. Mon problème est que que je n'arrive pas a récupérer les valeurs car l'exemple labview ne propose que les pins analogique alors que mon capteur est numérique. Inutile de me dire qu'avec labview je me complique la tache, j'ai envie d'en savoir plus avec ce logiciel :p J'ai lu sur le net, que le capteur devait fonctionner avec une librairie arduino la 1-wire, je viens donc vers vous pour avoir quelque éclaircissement sur le sujet, et savoir si l'acquisition du signal est possible avec labview :)

    Merci d'avance pour vos réponses !

    • Partager sur Facebook
    • Partager sur Twitter
      16 mars 2015 à 19:47:31

      OneWire, c'est une sorte de protocole/bus avec un seul fil.

      Par défaut, ce fil est à l'état logique '1' (niveau électrique HIGH) grâce à une résistance de pull up.

      Les différents périphériques connecté ont une sortie OpenDrain leur permettant de forcer l'état logique '0' (niveau électrique LOW).


      Pour la communication, le maitre commence à envoyer sa trame en jouant sur son étage de sortie open drain :

      -> si il ne force pas le LOW => le bus transmet un '1' logique

      -> si il force le LOW => le bus transmet un '0' logique

      Le temps entre chaque bit doit bien évidement être assez précis pour que l'esclave puisse se synchroniser étant donné qu'il n'y a pas de signal d'horloge.

      Question 1 : Labview te permet-il de contrôler une sortie numérique en respectant ces temps précis pour la transmission de chaque bit ?


      Une fois que le maitre a envoyé sa requête, c'est l'esclave qui prend le relais en utilisant son propre étage open drain pour forcer l'état logique du bus.

      Du coup, le maître doit se contenter de ne rien forcer et lire périodiquement l'état du bus.

      -> si il lit LOW, c'est que l'esclave transmet le bit 0

      -> si il lit HIGH, c'est que l'esclave transmet le bit 1

      Question 2 : Labview te permet-il de contrôler une entrée numérique en respectant ces temps précis pour la transmission de chaque bit ?


      Si tu as répondu oui aux 2 questions précédentes, alors Labview te permettra d'exploiter ton capteur ;)

      Il ne te restera alors plus qu'à lire la doc du capteur pour voir comment former les trames de requête et comment interpréter la trame de réponse du capteur.

      • Partager sur Facebook
      • Partager sur Twitter
        16 mars 2015 à 20:43:47

        haha t'es qu'un troll lorrio :p (amicalement hein va pas te sentir agressé) les questions que tu pose sont strictement celles qui font que labview est pas considéré comme un langage propre pour transformer un PC muni d'une carte d'acquisition en automate programmable :p (enfin dans le monde professionnel, parce que chez labview, ils en sont très contents de leur bouse). après, vu qu'un PC est capable de tourner peut-être 10 000 ou 100 000 fois plus vite que la carte d'acquisistion, et que le device 1wire, ils ont du tricher un peu pour faire leur lib, mais comme c'est l'horloge windows qui cadence tout, j'aime autant te dire que c'est dégueu comme gestion du temps.

        dans labview tu dois pouvoir avoir une lib (enfin je sais pas trop comment ça s'appelle dans labview... logiciel déroutant quand tu as appris autrement) dedans, t'as surement moyen d'avoir une bibliotheque 1wire ou quelque chose comme ça (bibliotheque qui doit être payante, et incluse dans le kit NI ROBOTICS, payante aussi, si ça peut t'aider...).

        sinon, au pire du pire, lorrio t'a donné les specs de 1wire, et à toi de recoder la lib (non, ça fait pas mal, on tue pas les éléphants avec moins que ça...)

        • Partager sur Facebook
        • Partager sur Twitter

        oui. non. enfin je regarde et je te dis.

          16 mars 2015 à 21:36:37

          remace a écrit:

          haha t'es qu'un troll lorrio :p (amicalement hein va pas te sentir agressé)

          Ahah, c'est bien la première fois qu'on me dit ça, pour la peine, je t'offre un +1 :D

          Personnellement, je ne sais même pas à quoi ça ressemble labview donc je ne fais qu'annoncer la théorie sur ce genre de bus de manière à dire si ou ou non c'est possible.

          Et puis franchement, refaire une OneWire, ce n'est pas ce qu'il a de plus compliqué, il faut juste avoir un cadencement pas trop moche, d'où mes questions avec insistance sur "en respectant ces temps précis pour la transmission de chaque bit".

          Mais j'espère sincèrement que labview permet de gérer des I/O digitals et des delays parce que sinon, ça ne doit pas servir à grand chose.

          -
          Edité par lorrio 16 mars 2015 à 21:38:55

          • Partager sur Facebook
          • Partager sur Twitter
            16 mars 2015 à 22:53:47

            oui ça peut, mais des beaux delays propre, au cycle de processeur près, j'en doute fort. et comme je l'ai dit plus haut, les delays sont calculés à partir de l'horloge windows qui est très... fluctuante.

            après, si c'est pour build le programme sur un FPGA, ça peut déjà faire le taff proprement :p

            si tu sais pas à quoi ressemble labview, ne regarde pas, ça n'a aucun intérêt quand tu sais déjà faire de l'électronique en C/C++ et décrire tes montages FPGA en VHDL ou en Verilog. ou alors, tape labview VI dans google image (ça t'évitera de t'acheter le logiciel, qui même en version étudiante coûte 70€, de mémoire), et si tu vois un espece de sac de fils qui relie des boites, dis toi que c'est un programme. oui, c'est illisible, et donc pas réutilisable ni maintenable proprement. 

            -
            Edité par remace 16 mars 2015 à 22:54:28

            • Partager sur Facebook
            • Partager sur Twitter

            oui. non. enfin je regarde et je te dis.

              16 mars 2015 à 23:53:42

              Mouai, OK, je retourne coder en C sur mon p'tit ARM cortex A9 alors :)

              Lui au moins, ses timers me sortent bien une interruption propre pour cadencer mon système.

              Enfin bon, on dévie un peu là...


              Donc pour résumer :

              Essayes d'émuler le bus OneWire à l'aide de lecture/écriture sur des entrées/sorties digital et quelques delays en espérant que Windows ne fasse pas n'importe quoi avec.

              Mais n'y a t'il pas moyen de compiler ces blocs pour qu'ils s'exécutent sur une carte d’acquisition (possédant un processeur temps réel) et non sous windows ???

              • Partager sur Facebook
              • Partager sur Twitter
                17 mars 2015 à 0:19:05

                jamais vu, de cartes intelligentes, en tout cas pour ma part, quand j'étais à l'école... en fait les cartes d'acquisition que j'ai déja utilisées avec (60-100€), c'était toutes des cartes avec quelques IO digitales et analog, mais pas de bus ou de liaisons série de ce style. après, dans les cartes chères y'a peut-être mieux, mais j'en doute. les cartes d'acquisition, chez NI, c'est vraiment un "truc qui se branche en USB et qui délivre les valeurs instantanées sur demande".

                à part sur FPGA, mais c'est un peu à part, et je saurais pas vraiment démêler ce qui est possible de ce qui l'est pas, je sais qu'on avait participé à une compétition de robotique NI avec l'école, avec un kit gracieusement offert par NI (enfin ils cherchaient à vendre leurs produits aux écoles, donc un peu de pub... ils crachent pas dessus), contenant une embase 4 roues (embase qui était impossible de faire rouler droit tellement elle était pleine de jeux et frottementogène) avec un FPGA avec 200 I/O dessus, et qui était très clairement surdimensionné pour l'application qu'on nous demandait pour le concours. et comme on avait pas vraiment eu de cours sur les FPGA ou sur quoi que ce soit avant le concours, bah on a fait avec les moyens du bord, c'est à dire on a codé comme on aurait codé sur un PC, et on a cliqué sur la fleche verte pour tester si ce qu'on faisait fonctionnait, tout ça pendant 6 mois (ou l'icone compiler/téléverser, je sais même plus à quoi elle ressemble sur labview, c'est dire si j'ai accroché au logiciel) 

                et pour arriver au fin mot de l'histoire, ce robot avait fini 3e sur une bonne dizaine de robots, tout ça sans quitter l'aire de départ parce qu'il a pris le sol pour un mur au bout de 3-4 cm de trajet, et qu'il attendait que le mur l'évite, du coup... frustrant. mais surtout révélateur de la facilité de faire des gros projets avec LabView quand on bosse en équipe (si on fait le calcul, ça veut dire qu'environ 7 robots n'ont même pas osé bouger dans l'aire de départ).

                -
                Edité par remace 17 mars 2015 à 0:25:06

                • Partager sur Facebook
                • Partager sur Twitter

                oui. non. enfin je regarde et je te dis.

                Anonyme
                  20 mars 2015 à 13:44:17

                  Merci pour toute vos réponses en tous cas ! Les éclaircissement sont fait, je n'ai plus qu'à essayer tous sa sous Labview et je vous tiendrais au courant si sa marche pour aider les gens qui pourrait également rencontrer des difficultés dans ces domaine. (même si je doute qu'il y en ai des masses ^^)

                  EDIT: J'ai trouvé une piste pour le 1-wire sur le site de National Instrument ici: http://bit.ly/1MTWw7G

                  Voici également un exemple typique de la lecture d'un capteur DS18B20 sous Labview ;) (http://bit.ly/1x8t3oK)

                  -
                  Edité par Anonyme 20 mars 2015 à 14:22:07

                  • Partager sur Facebook
                  • Partager sur Twitter
                    20 mars 2015 à 18:55:02

                    pour le premier lien: de mémoire, RIO et toutes ses déviations sont des cartes embarquées (il me semble que sur le robot des NI days, c'était une CompactRIO). donc de là, c'est surement possible d'adapter la lib à une carte NIDaQ, mais comme j'ai l'impression que cette lib est payante (ils ont pris la lib Maxim, qui est payante il me semble, me jetez pas la pierre si je me trompe :p )

                    pour le 2e lien:j'suis pas sur que le labview soit pas exécuté sur l'ordi, et que les choses soient pas envoyées par voie série... et si c'est pas le cas, c'est labview for arduino lib, et il doit y avoir une sous-lib 1-wire dedans ou quelque chose qui serve à mettre du code arduino...

                    à tout hasard, tu utilise quoi comme matériel, parce que labview tout seul, ça fera pas tout :p il te faudra surement une carte d'acquisition, ou quelque chose du même style.

                    • Partager sur Facebook
                    • Partager sur Twitter

                    oui. non. enfin je regarde et je te dis.

                    Anonyme
                      23 mars 2015 à 10:31:10

                      Alors pour le matériel j'utilise une carde arduino uno a laquel je connecte mon capteur, la carte est branché en usb à l'ordi pour pouvoir la commander avec Labview, j'ai installé le firmware LIFA pour que le logiciel puisse dialoguer avec cette dernière :) Après je commence dans l'électronique, donc j'ai très peu de connaissance sur le sujet ^^
                      • Partager sur Facebook
                      • Partager sur Twitter
                        23 mars 2015 à 15:10:24

                        ha.

                        et du coup, Labview programme la carte arduino, ou il s'en sert juste comme d'une carte d'acquisition?

                        • Partager sur Facebook
                        • Partager sur Twitter

                        oui. non. enfin je regarde et je te dis.

                        Anonyme
                          27 mars 2015 à 14:58:05

                          Labview contrôle la carte ;) Ta un module arduino dans le logiciel similaire a ardublock je sais pas si tu connais ?
                          • Partager sur Facebook
                          • Partager sur Twitter
                            27 mars 2015 à 15:13:25

                            non je connais pas... du coup labview met un programme fixe dans la arduino pour "en faire une carte d'acquisition", ou il le reprogramme en temps réel via un truc style ICSP...
                            • Partager sur Facebook
                            • Partager sur Twitter

                            oui. non. enfin je regarde et je te dis.

                            Capteur de température avec labview

                            × 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