Une arduino peut elle le faire?

  • Auteur de la discussion Titou16
  • Date de début
T

Titou16

Compagnon
Bonjour,

Ma question est : Est ce qu'une arduino est assez rapide pour effectuer 7000 enregistrements par seconde?

Pour quelle raison me direz vous. Et bien, je voudrais fabriquer un dispositif qui serait constitué d'un codeur angulaire et d'un capteur de pression reliés à une arduino (ou une beaglebone ou une olinuxino). Ce dispositif servirait à mesurer la pression interne d'un moteur Stirling en fonction de la position de son vilbrequin et donc de tracer le diagramme Pression/Volume. Seulement je pense il faut relever au moins 100 points par tour. A 4000 tr/mn ça fait déjà près de 6700 enregistrement à la seconde. Il faudrait programmer l'arduino pour qu'elle enregistre dans un fichier texte, la pression en face de chaque position du codeur. Ensuite il suffit de mettre ça dans excel.

Je me demande si une arduino est assez rapide pour ça. Quelqu'un sait?
 
N

Nico91

Compagnon
c'est aussi surtout, est ce que ton capteur de pression et ton capteur angulaire seront assez rapide pour suivre la cadence :smt002 si leur temps de réaction sont trop lent t'auras tout faux :mrgreen:
 
D

duredetrouverunpseudo

Compagnon
Je voudrais pas le payer le capteur de pression ultra rapide :shock:
 
S

SkippyLeChat

Compagnon
Faire 7000 mesures par seconde revient à dire qu'on a 1/7000 seconde pour faire la mesure, soit 0,000142 s = 142 µS
La durée minimum d'une mesure faite avec la fonction AnalogRead() est de 100µS soit 10 000 mesures par seconde...
Conclusion = ça devrait passer !
PS : voilà qui devrait faire l'affaire avec une interface toute faite http://www.phidgets.com/docs/1126_User_Guide
Re-PS : c'est du coté du capteur que ça va peut-être coincer... les temps de réponse annoncés sont de l'ordre de 1ms soit un max de 1000 mesures par seconde :sad: Par contre, si l'évolution de pression ne passe pas de 10% à 90% en moins de 1ms ça peut passer...
 
Dernière édition par un modérateur:
Y

ybou30

Compagnon
Salut à tous,

Je dis peut-être une connerie, mais pourquoi ne pas faire ces mesures en plusieurs tours? :lol:
Amha çà peut se faire en diminuant les impulsions et en décalant d'un tour à l'autre. :wink:
Par exemple 1000 imp par tour et mesure sur 7 tours. :smt003

Pour le reste, j'y connais rien, je laisse les spécialistes parler. :roll:

Je sais seulement que ce qui pêche le plus souvent ce sont les capteurs. :cry:
Rapides et précis, on trouve rarement, même en y mettant les moyens. :cry:

Cdlt,
Yanik
 
T

Titou16

Compagnon
Je sais que le probleme c'est pas seulement la carte et que le capteur de pression est aussi un probleme. Mais apparement il semble que la carte puisse le faire. Pour le capteur il faut qu'il doit piezo electrique. Au pire j'en ferai un sur la base d'un capteur de force piezo.
 
T

Titou16

Compagnon
Et puis je vise haut avec 100 enregistrements par tour. Eventuellement 50 (soit un tous les 7,2°) pourrait probablement suffire. De toute façon je peux aussi faire en sorte de prendre moins de points en fonction de l'augmentation de la vitesse. Par exemple 100 pts/tr jusqu'à 2000 tr/mn, 50 au dela.
 
S

SkippyLeChat

Compagnon
En y repensant il me semble...

- que la précision du capteur de pression importe peu. Ce qui est intéressant dans ce genre de tests dynamiques, ce sont des valeurs relatives. Quelques mesures en statique pourront donner des valeurs absolues fiables pouvant servir à quantifier celles obtenues en dynamique.

- que le capteur angulaire n'est pas indispensable. En effet, la période du cycle d'évolution des pressions (et dépressions) sera facile à déterminer compte-tenu de la répétitivité des chiffres obtenus. On aura trop de points à basse vitesse et juste le nombre à la vitesse max, mais on sera toujours capable de faire la corrélation des points avec la position angulaire du moteur.

Pour la proposition de faire la mesure sur plusieurs tours. Là il faudrait un capteur de position 0, et l'algorithme de la mesure peut être sur 3 tours :
1er tour = mesure de la période P
2ème tour = calcul du décalage de temps T correspondant au décalage angulaire pour cette période (T = P * A°/360)
3ème tout = mesure de la pression à l'instant T correspondant à ce décalage.
Ça, un Arduino le fait "finger in the nose" :-D
 
T

Titou16

Compagnon
Effectivement tu as raison, pas la peine de mettre un codeur angulaire. Mais il me faut quand meme un capteur qui me donne une impulsion à chaque tour. Car ce que je veux savoir surtout, c'est si la pression augmente au bon moment, c'est à dire quand le piston moteur arrive au point mort haut. Je soupçonne que c'est pas le cas. Il doit y avoir un dephasage entre le moment ou la pression augmente et celui ou le piston est au point mort haut et ce dephasage doit varier avec la vitesse de rotation. Il faut que je puisse l'observer. L'idée, en poussant plus loin, serait d'inventer un dispositif qui fasse varier ce dephasage, piloté par l'arduino qui permette de faire correspondre l'augmentation de la pression au point mort haut quelle que soit la vitesse de rotation.
Merci pour cette simplification du systeme à laquelle je n'avais pas pensé.
 
Y

ybou30

Compagnon
Salut à tous,

Suivant les caractéristiques de réponses du capteur pression,
celui-ci peut induire des écarts d'amplitude (qui peuvent être corrigés par pondération suite à mesure statiques, bien que les pressions en dynamique soient plus élevées) :lol:
mais aussi des déphasages, et là, çà me semble délicat à traiter, sauf si l'on dispose des courbes de réponse en fonction du temps. :roll:

Cdlt,
Yanik
 
D

duredetrouverunpseudo

Compagnon
Capteur conçu spécialement pour se que tu souhaite faire, tu trouveras tout chez http://www.kistler.com

Fait attention à être assis quand tu consultera les tarifs des capteurs et l'électronique d'acquisition associé
 
Dernière édition par un modérateur:
L

lion10

Compagnon
bonjour

Si vous avez la place vous pourriez mettre plusieurs capteurs de pression et les lire avec un décalage temporel pour vous affranchir de leur temps de réponse.

cdlt lion10
 
T

Titou16

Compagnon
Je pense qu'il doit etre possible d'utliser un capteur de force piezo pour faire un capteur de pression. Et ce genre de capteur n'est pas cher. Il suffirait de monter ce capteur entre une plaque et une membrane trés fine pour qu'elle n'ait pratiquement pas d'inertie. Exemple un film plastique ou du papier d'alu.
 
T

tronix

Compagnon
C'est à la fois peu et beaucoup. J'ai l'habitude de processeurs plus puissants (PIC32 à 80MHz), et si on programme bien, c'est impressionnant ce que l'on peut faire avec, sans avoir pourtant un processeur fonctionnant à plusieurs centaines de MHz. Mais il en faut peu aussi pour dégrader fortement les performances : des interruptions trop rapprochées ou des délais par boucle par exemple. Il faut donc mesurer le temps d'exécution de certaines parties en cas de doute (changement d'état d'une i/o en entrée et en sortie de fonction, à l'oscilloscope) pour traquer les erreurs de conception, et prendre l'habitude de bannir les temporisations par boucle, fréquentes dans les exemples sur Arduino. Sans OS, j'ai un main() qui appelle en boucle les différentes tâches, chacune étant écrite pour ne jamais être bloquante ni trop longue. Cela nécessite de gérer les états (jamais de délais justement) mais donne couramment un fonctionnement à 25000 boucles par seconde en moyenne, avec serveur web et toutes sortes de traitements divers. Si c'est bien fait, le temps de boucle variera peu, et avec quelques fifo logicielles et interruptions utilisées judicieusement en plus, on peut faire du temps réel avec des fréquences de traitement non ridicules.. On peut aussi utiliser des OS temps réel, dont le but est identique.
 
S

SkippyLeChat

Compagnon
@Titou16

A te lire, tu me confirmes que ce sont des informations de pression relatives qui t’intéresse.
Je crois donc qu'il ne t'es pas nécessaire d'investir dans du lourd pour le capteur ! Pourquoi pas cette idée de capteur piezzo : concrètement ce sera peut-être plus facile et surtout moins perturbant pour le système mesuré que de mettre un capteur de pression externe qui introduira obligatoirement un volume supplémentaire (= les conditions de mesure ne sont donc plus celles du fonctionnement normal)

Une piste pour fiabiliser tes mesures : tu peux appliquer le principe de la mesure sur 3 tours expliqué plus haut (c'est ce que j'avais fait il y a des années avec un PIC 16F... pour un stroboscope à déphasage). Ça marche bien et il n'y a pas besoin de mettre en œuvre d'interruptions (on a vite fait de s'y faire piéger comme l'explique bien Tronix). Par contre, tu peux raffiner l'affaire en faisant une rafale de mesures (10, 20 ou plus...) pour un angle donné et à un régime donné. Tu "moyennes" ensuite les valeurs et enregistres le résultat. Puis tu passes à l'angle suivant, etc.

A suivre...
 
P

phil135

Compagnon
7000 échantillons/seconde quand la limite de la carte est à 10000 ça me semble trop juste
par contre si ton moteur est en régime stable, avec un capteur de position est un décalage temporel variable tu vas pouvoir prendre les moments du cycle que tu veux, sur plusieurs tours.

la vraie difficulté vas être le capteur de pression qui ait assez de bande passante (avec son montage) et que la chaine de mesure globale ait une précision suffisante pour que les données soient exploitables. tu peux tolérer combien de % d'erreur ?
tu étalonnes comment ?
 
T

Titou16

Compagnon
@Skippy

En effet, la valeur exacte de la pression n'est pas ma préoccupation, c'est plutot sa variation. Encore que je pense qu'il soit possible d'arriver à une mesure précise à 0,5 bars près, ce qui me suffirait.

@phil135

Ce que tu décris ressemble à ce que décrit Skippy, non? Prendre une mesure par tour en glissant à chaque tour peut etre seduisant pour decharger le processeur mais j'ai peur de ne pas tout voir. Le moteur varie parfois sans que je comprenne pourquoi. Et justement, il n'est pas sur que le diagramme pression volume soit super stable d'un tour à l'autre. Il serait bien mieux de l'obtenir pour chaque tour, en meme temps que les temperatures des zones chaude et froide pour pouvoir tirer des conclusions.
Du reste, j'ai parlé de 4000 tr/mn car je voudrais que le système soit capable de mesurer jusqu'à cette vitesse parce que c'est celle que je cherche à atteindre. Mais pour l'heure mon meilleur moteur est loin de les atteindre. Donc dans un premier temps il fonctionnera.
 
D

domi.U&M

Compagnon
Titou16 a dit:
Bonjour,

Ma question est : Est ce qu'une arduino est assez rapide pour effectuer 7000 enregistrements par seconde?

Pour quelle raison me direz vous. Et bien, je voudrais fabriquer un dispositif qui serait constitué d'un codeur angulaire et d'un capteur de pression reliés à une arduino (ou une beaglebone ou une olinuxino). Ce dispositif servirait à mesurer la pression interne d'un moteur Stirling en fonction de la position de son vilbrequin et donc de tracer le diagramme Pression/Volume. Seulement je pense il faut relever au moins 100 points par tour. A 4000 tr/mn ça fait déjà près de 6700 enregistrement à la seconde. Il faudrait programmer l'arduino pour qu'elle enregistre dans un fichier texte, la pression en face de chaque position du codeur. Ensuite il suffit de mettre ça dans excel.

Je me demande si une arduino est assez rapide pour ça. Quelqu'un sait?

100 points par tour pour ce genre d'analyse, c'est très luxueux. une vingtaine de points par tour permet déjà de lisser une belle courbe.
dans ce genre d'acquisition de données, il faut d'abord se poser la question de la fréquence d'échantillonnage dont on a besoin.
c'est comme en usinage vouloir atteindre le micron alors que le centième est déjà une prouesse. :wink:
Notre ami le Chat t'a parfaitement aiguillé vers une platine capteur directement intégrable.

d'autre part, je me poserais la question du tuyau de jonction qui ne devra pas lisser la pression (par exemple, un tuyau en silicone absorbera les différences de pression et le capteur detectera une pression constante...). il faudra le choisir non déformable.
 
T

Titou16

Compagnon
Y aura pas de tuyau. Le capteur fera partie du moteur. Ce pourra etre la culasse par exemple.
 
T

Titou16

Compagnon
Que penser des kits SaintSmart? Quelqu'un a déjà testé?
 
S

SkippyLeChat

Compagnon
Dernière édition par un modérateur:

Sujets similaires

T
Réponses
28
Affichages
2 876
Tristan l'apprenti
T
F
Réponses
4
Affichages
38 772
francois23
F
jpbbricole
Réponses
113
Affichages
23 255
sabeldom
S
mvt
  • importantes
Réponses
78
Affichages
54 269
Bernard.L
B
Z
Réponses
21
Affichages
9 815
Titeuf77
T
Haut