Les accéléromètres savent-ils quand ils se déplacent vers le haut ou vers le bas?


8

J'ai besoin d'un capteur que je ne peux placer qu'au-dessus d'un objet, pour compter le nombre de fois que l'objet se déplace de haut en bas.

Placer un accéléromètre au-dessus de l'objet permettrait-il cela ou pourrait-il suivre la transition entre le déplacement de haut en bas?

Sinon, quel type de capteur (s) accomplirait cela?

---------------- ÉDITER: -------------------------

Idéalement, je voudrais un capteur que je puisse placer sur le dessus de la boîte ci-dessous et compter les temps de montée et de descente. Il a plusieurs rails de guidage qui l'empêchent de se tordre. Je prévois d'utiliser un arduino comme microcontrôleur qui fait le calcul, j'ai juste besoin d'un capteur capable de détecter le mouvement haut / bas. Toutes les suggestions sont les bienvenues. Merci.

   +    +
   +    +
   +    +
------------
|   box    | 
| moves up |
| and down |
------------
   +    +
   +    +

3
Un accéléromètre mesurera les changements de vitesse d'un objet. Si un objet se déplaçait à une vitesse constante, l'accéléromètre afficherait une sortie nulle. Plus le changement de vitesse est rapide, plus la mesure de l'accéléromètre sera grande pendant cette période.
Michael Karas

Donc, sur la base de mon commentaire ci-dessus, un accéléromètre peut être utilisé pour mesurer quand un objet commence à se déplacer depuis une position de repos ou quand il change de direction. L'appareil lui-même n'est qu'un capteur et n'a aucun "savoir". Vous devez connecter un autre circuit ou microcontrôleur qui notera les sorties de l'accéléromètre et comptera les changements pour "savoir" lorsque l'objet change de position.
Michael Karas

3
Je pense que pour suggérer une meilleure façon, il faudrait en savoir plus sur l'application. Il existe un nombre incalculable de façons de mesurer le mouvement et la position - celle qui fonctionne le mieux dépend entièrement de ce qui bouge, comment il se déplace, il se trouve (et ce qui l'entoure), quelles sources d'énergie sont disponibles ou pratiques, comment la solution doit être précise, le niveau de bruit qu'elle doit rejeter, sa fiabilité, etc. Si vous pouvez fournir plus de détails sur l'application, vous obtiendrez probablement de meilleures réponses.
J ...

1
Par curiosité, qu'est-ce qui fait monter et descendre la boîte? (Je veux dire, pourquoi ne pouvez-vous pas détecter le mouvement indirectement en regardant les commandes?)
Copper.hat

1
@MichaelKaras - Désolé, mais votre caractérisation d'un accéléromètre est erronée. Un accéléromètre maintenu immobile dans un champ gravitationnel de 1 g indiquera (si l'axe sensible est vertical) qu'il accélère verticalement à ~ 9,8 m / sec ^ 2. En fait, c'est le premier postulat de la relativité générale.
WhatRoughBeast

Réponses:


8

Je pense qu'un accéléromètre et un arduino sont un excellent moyen de compter le nombre de fois que la boîte monte et descend. C'est un moyen compact, fiable et sans contact de détecter les mouvements.

Cela pourrait fonctionner pour des mouvements aussi doux que la montée et la chute de votre poitrine, lorsque vous respirez, vous allongez et certainement rien de plus rapide que cela.

Vous pourriez vous en tirer avec un simple détecteur de seuil avec une certaine hystérésis - comptez un lorsque l'accélération dépasse + x, puis définissez le seuil sur -x, jusqu'à ce qu'il franchisse -x, puis définissez le seuil sur + x.

Si l'accélération est plus douce ou s'il y a des vibrations de fond que vous ne voulez pas compter (même s'il s'agit en fait de mouvements de haut en bas), alors le signal peut être perdu dans le bruit.
Ensuite, vous devrez implémenter un simple filtre numérique sur l'arduino, qui en fait "recherche" le mouvement à un rythme particulier. Cela pourrait être aussi simple que d'ajouter les 100 derniers échantillons d'accélération (à 100 Hz) et de faire passer la moyenne dans le détecteur de seuil, ou vous pouvez concevoir un filtre plus élaboré.

Si vous prévoyez d'utiliser un accéléromètre pour quelque chose, essayez-le d'abord avec votre smartphone.

Recherchez sur votre boutique d'applications une application de contrôle d'accéléromètre, quelque chose qui enregistre le capteur dans un fichier, et faites des expériences. S'il crée un fichier CSV, vous pouvez l'ouvrir dans des graphiques Excel et plot, etc.

L'accéléromètre de votre téléphone est assez basique et bruyant, mais est un bon substitut à tout autre accéléromètre inférieur à 100 $, et pourrait vous donner une idée approximative de ce qu'un 1000 $ pourrait faire.

Voici un exemple de ce que j'ai fait avec le capteur du téléphone.

Bonne chance! Postez vos résultats ici (répondez à votre propre question) si cela vous convient.


7

En général, non. Imaginez lancer une balle vers le haut (et ignorer la résistance au vent): une fois qu'elle se déplace, la seule force sur elle est la gravité, qui produit une accélération constante . Il n'y a aucun moyen de savoir à partir de l'accélération seule, lorsque le ballon a atteint sa hauteur la plus élevée et a redémarré - l'accélération est la même tout au long de son chemin jusqu'à ce qu'elle touche le sol.

Si vous savez que l'objet commence au repos et que vous mesurez son accélération, vous pouvez déterminer sa vitesse en intégrant l'accélération dans le temps. S'il ralentit, vous verrez une accélération négative, et l'intégrale ira à zéro lorsqu'elle s'arrêtera. Ensuite, quand il recommencera à bouger, vous verrez un changement d'accélération et vous pourrez recommencer l'intégration. Cependant, cela dépend fortement de la précision des mesures et des calculs. Si l'un ou l'autre est légèrement désactivé, l'erreur augmentera progressivement jusqu'à ce que vous ne sachiez plus ce qui se passe réellement.


1
Pas seulement la précision - une IMU réelle doit connaître à tout moment son orientation de rotation afin d'appliquer les mesures d'accélération.
Chris Stratton

@ChrisStratton - Je n'ai pas dit cela, mais je supposais un mouvement en ligne droite. Votre commentaire est-il toujours exact dans cette situation irréaliste contrainte?
Pete Becker, le

Simplement à 9,8 m / s de l'accélération observée.
Loren Pechtel

1
@LorenPechtel: C'est de toute façon nécessaire, mais cela ne résout pas le problème d'intégration. Imaginez une boîte qui monte, ralentit presque à l'arrêt et accélère à nouveau. Imaginez maintenant une deuxième boîte qui ralentit un peu plus, donc elle descend momentanément, avant de remonter. La différence peut être minime, mais le compteur / décompteur doit être différent. Si votre intégration est légèrement désactivée, vous ne remarquerez pas la différence.
MSalters

1
Un accéléromètre ne mesurerait-il pas zéro pour un objet en chute libre? C'est vraiment plus une mesure de force G, n'est-ce pas?
Octopus le

5

Premièrement, il est important de comprendre comment un accéléromètre se comporte dans un champ gravitationnel, comme nous le vivons ici sur terre. Un accéléromètre ne mesure pas l'accélération, en ce sens qu'il ne mesure pas à lui seul le changement de vitesse. Il mesure le changement de vitesse plus la gravité - ce qui signifie que vous devez prendre la mesure de la gravité si vous prévoyez d'essayer ce que vous décrivez.

En outre, la gravité sera mesurée comme une accélération vers le haut - ce qui est quelque peu contre-intuitif mais logique si vous imaginez un accéléromètre comme étant construit quelque chose comme ceci:

schématique

simuler ce circuit - Schéma créé à l'aide de CircuitLab

J'ai abusé de l'éditeur de schémas pour montrer un roulement à billes suspendu dans un tube par deux ressorts parfaitement amortis. Imaginez que l'accéléromètre effectue sa mesure en vous indiquant à quelle distance de la position de repos se trouve actuellement le roulement à billes. Imaginez maintenant tourner cet appareil sur son extrémité, et vous pouvez voir comment le roulement à billes s'affaisse sous la gravité, et comment cela ne se distingue pas de l'accélération. Je pense que la relativité a quelque chose à dire sur ce sujet, mais de toute façon.

Donc - si vous avez un accéléromètre vertical, et vous supprimez l'effet de la gravité, et les mouvements de votre appareil sont suffisamment plus grands que le bruit de fond de votre accéléromètre, et en plus les mouvements sont suffisamment lisses pour ne pas confondre votre algorithme - alors cela pourrait être possible. Il y a une réponse ci-dessus qui mentionne la chute libre, ce qui serait un problème, mais je suppose d'après votre description que votre appareil ne sera pas en chute libre pendant une période de temps. C'est une supposition cependant.

Si vous voulez vraiment utiliser un accéléromètre, votre meilleure approche pour un problème comme celui-ci est d'enregistrer la sortie de l'accéléromètre d'une manière ou d'une autre (je préfère le sortir sur SPI et l'enregistrer à l'aide d'un analyseur logique USB) et écrire exactement ce que vous faites (ou même vidéo, si vous êtes vraiment désireux). Ensuite, vous pouvez jouer avec des algorithmes hors ligne, sans avoir à vous demander constamment si votre Arduino fait vraiment ce que vous pensez.

Comme d'autres l'ont mentionné, d'autres types de capteurs peuvent être plus appropriés. Nous aurions besoin de plus de détails sur la raison exacte pour laquelle vous essayez ce que vous essayez de commenter, je pense.


2
Ce n'est pas seulement une bizarrerie de l'accéléromètre - un objet qui se trouve dans un champ gravitationnel uniforme ne se distingue pas de celui qui est uniformément accéléré. Dans un sens, l'accéléromètre a raison quand il dit qu'un objet assis sur le sol accélère; nous ne pensons tout simplement pas que c'est parce que nous accélérons au même rythme.
cpast

Oui - je m'en rends compte. L'accéléromètre est aussi juste que possible - mais il est assez contre-intuitif qu'un accéléromètre vertical immobile dans un champ gravitationnel mesure une accélération ascendante .
Dave Branton

Je pense que c'est une meilleure explication: imaginez un homme à l'échelle dans un ascenseur. L'échelle affiche la force qu'elle applique à l'homme (divisée par g). Tout d'abord, il affiche le poids réel, mais lorsque l'ascenseur commence à se déplacer vers le haut, il affiche un poids plus élevé. Et même l'homme se sent plus lourd. Un accéléromètre mesure également la force qu'il applique à une petite masse.
sweber

4

Si l'objet se déplace de haut en bas sur des guides fixes, je pense que la façon la plus simple de compter ses mouvements serait d'utiliser un interrupteur de fin de course qui serait fermé lorsque l'objet est au repos, et ouvert lorsqu'il s'éloigne de sa position de repos.


3

Attention, une inversion de l'accélération ne signifie pas que la boîte s'est retournée. La boîte démarre - vous voyez une accélération vers le haut. Il monte maintenant à un rythme régulier - vous ne voyez aucune accélération. Il ralentit à mi-vitesse - vous voyez une accélération vers le bas. Il continue à mi-vitesse - vous ne voyez aucune accélération. Il accélère - vous voyez une accélération vers le haut. Il s'arrête, vous voyez une accélération à la baisse.

Vous avez vu vers le haut, vers le bas, vers le haut, vers le bas, mais la boîte n'a vraiment bougé. Vous devrez intégrer au fil du temps et avoir suffisamment de précision dans votre accéléromètre pour comprendre dans quelle direction vous allez vraiment - surveillez les erreurs cumulatives, cela pourrait rendre ce problème très difficile!

Avez-vous étudié l'utilisation d'un télémètre laser pour mesurer où se trouve la boîte?


En effet, vous devez intégrer deux fois dans le temps - une fois pour obtenir la vitesse et une fois pour obtenir la distance - ce qui va être rempli d'erreurs cumulatives.
abligh

2

Les accéléromètres mesurent les accélérations. Si le mouvement est effectué avec accélération, il sera détecté, étant donné que l'accéléromètre est suffisamment sensible sur cet axe. La direction de l'accélération sera indiquée par le signe des valeurs lues. Veuillez noter que lors de la mesure d'accélérations sur l'axe vertical, la mesure sera biaisée par la constante d'accélération de la gravitation g.


1
"Si le mouvement est effectué avec accélération" L'objet est initialement au repos. Il ne pouvait pas entrer dans un état de mouvement sans accélérer.
David Richerby

Oui, mais la question est de savoir à quelles étapes le mouvement doit être détecté.
Eugene Sh.

2

Si vous ne voulez pas de contact physique (tel que celui fourni par un interrupteur de fin de course typique ou un micro-interrupteur), vous pouvez monter un aimant et utiliser un interrupteur à lames ou un interrupteur à effet Hall. Ou montez quelque chose qui dépasse légèrement et est opaque, et se déplace à travers un détecteur optique (le genre avec une petite fente).

Un accéléromètre est compliqué, plus cher que tout ce qui précède, et pour la raison expliquée avec éloquence par Pete Becker (et maintenant aussi par Dave Branton), il est peu probable qu'il fonctionne.


Il convient de noter que la situation décrite par @TheDudeAbides rappelle quelque peu celle d'un podomètre.
user3334690

@ user3334690 Je soupçonne que le degré limité de précision des podomètres est en partie dû à la nature prévisible du pas humain. Si nous pouvions arranger des aimants sur chaque surface du sol, je pense que nous pourrions les rendre plus précis avec des commutateurs à effet hall :-)
abligh

1

Beaucoup de bonnes informations ici, mais je n'ai vu personne suggérer un potentiomètre linéaire ...

Simple, appliquez une tension et comptez combien de fois le GPIO lit un HI. Pot linéaire le moins cher? Curseur de volume d'une ancienne radio, réglage de la finition des contrôleurs de jouets R / C, etc.


Impliquez-vous des connexions mécaniques entre l'objet, le pot et la base fixe? Cela n'introduirait-il pas de nouvelles forces et résistances.
Octopus le

1

Si ses rails suivants, qu'en est-il de l'utilisation d'un télémètre à ultrasons? L'arduino peut faire le calcul pour déterminer l'accélération, et ce sera une implémentation beaucoup plus simple que d'attacher des fils à quelque chose qui bouge. Cela fonctionnera certainement mieux si la piste est droite. En voici un. https://www.sparkfun.com/products/639


Bienvenue sur electronics.stackechange! J'espère que vous vous sentirez chez vous ici!
WalyKu

0

Je recommanderais d'utiliser deux fines plaques métalliques pour former un condensateur. Une plaque serait placée sur le dessus de la boîte et l'autre fixée à une certaine hauteur de la boîte. Au fur et à mesure que le boîtier monte et descend, la capacité (C) varie en raison de la variation de la séparation (d) des plaques (C = kA / d). Ce changement peut être «converti» par des moyens appropriés en un changement de tension, de fréquence, etc. puis sous une forme appropriée pour l'interface de l'arduino (une amplification peut être nécessaire).


Cela ne fonctionnera pas. 1: Bien que nous n'ayons pas de dimensions, jouez un peu avec les nombres et vous verrez que la plage dynamique est grande tandis que la capacité peut être très petite. 2 .: Si la configuration est en métal, chacune de vos plaques forme un condensateur avec la configuration. C'est-à-dire que vous avez deux bouchons en série avec une longueur de câble variable entre eux. La capacité sera plus ou moins constante. Il existe des capteurs capacitifs, mais leur principe est différent et ils peuvent mesurer des différences de pas plus de 1 cm.
sweber
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.