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 |
------------
+ +
+ +
la source
Réponses:
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.
la source
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.
la source
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:
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.
la source
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.
la source
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?
la source
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
.la source
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.
la source
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.
la source
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
la source
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).
la source