Quel capteur dois-je utiliser pour déterminer si mon projet se déplace?


9

Peu m'importe combien il bouge, à quelle vitesse ou dans quelle direction, je veux juste que mon projet basé sur Arduino sache s'il bouge ou non (donc je peux éteindre les LED de drain à courant élevé lorsque mon vélo est à l'arrêt) économiser ma batterie.)

Est-ce que je veux un accéléromètre, un gyroscope ou un autre type de capteur?


3
À quoi est attaché le projet? Un mouvement linéaire très constant / stable peut être plus difficile à détecter, mais pour les voitures / motos, etc., vous pouvez normalement détecter assez facilement les changements d'orientation et de vibration.
PeterJ

De quel type est votre appareil? C'est terranean, rail, eau, véhicule aérien ou autre chose? Aussi comment définissez-vous le terme «en mouvement»? Par exemple. appareil transporté considéré comme en mouvement ou non?
Vovanium

Modifier pour indiquer le projet monté sur vélo. Ce n'est pas sur les rails ;-).
Robert Atkins

@LeoR Je pensais qu'un accéléromètre serait probablement la solution, mais j'ai trouvé cette réponse: electronics.stackexchange.com/questions/105826/… (capteur de vibrations à ressort). Suis-je en train de trop y penser? Puis-je ajouter quelques éléments passifs à cela pour que le rapport soit "élevé" à une broche Arduino pendant 30 à 60 secondes après la dernière connexion du commutateur?
Robert Atkins

2
Ajoutez une priorité: vous ne voudrez peut-être pas que vos feux s'éteignent aux feux de circulation!
Brian Drummond

Réponses:


10

Si c'est pour une utilisation sur un vélo, j'utiliserais un circuit de détection opto basse puissance sur les rayons de la roue. Il y a plusieurs variantes à cela et il est important de pouvoir pulser la LED pour économiser de l'énergie ainsi, si un rayon passe à 10 fois par seconde (indiquant une vitesse minimale), alors vous devrez alimenter la LED pendant au moins 0,1 secondes et "rechercher" une interruption du faisceau - cela indique un mouvement. Juste une idée.

Vous pouvez également envisager un interrupteur de selle de sorte que si quelqu'un n'est pas assis sur la selle et qu'aucun mouvement n'est détecté, la LED s'éteigne complètement.


5
Traditionnellement, un compteur de vitesse de vélo utilise un commutateur à lames et un aimant attaché à l'un des rayons. Une roue de vélo (en contact avec le sol et sous la puissance humaine) ne peut pas tourner plus vite que le 20hz, donc un interrupteur à lames bon marché peut aller. Pas d'alimentation lorsqu'il n'est pas utilisé, une charge de résistance vers le bas lorsqu'elle est allumée. J'en ai fait exécuter un sans fil pendant des années sur une paire de piles bouton.
Phil

7

Un accéléromètre conviendrait dans la plupart des cas. Techniquement, l'accélération sera nulle à vitesse constante, mais en pratique, à moins que votre projet ne soit monté sur une sorte de rail à vibrations exceptionnellement faibles, vous verrez des accélérations fluctuantes pendant le mouvement. Il devrait être assez simple d'utiliser une moyenne mobile sur chaque axe et de considérer le dispositif comme "mobile" lorsque la variation est supérieure à un certain seuil. Il y aura un peu d'accélération aléatoire détectée lorsque l'appareil est à l'arrêt, mais le seuillage devrait y faire face.

Vous pouvez obtenir des cartes avec des accéléromètres I2C montés sur eux auprès de nombreux fournisseurs d'électronique amateurs. La procédure pour leur parler variera légèrement en fonction de la puce, mais en général, parler aux appareils I2C à partir d'un Arduino est assez facile.


Soyez prudent lorsque vous utilisez uniquement l'accélération, lorsque vous voyagez à vitesse constante, vous verrez également 0 accélération.
helloworld922

7
Je ne pense pas avoir jamais vu un véhicule en mouvement qui se déplace à une vitesse constante. Chaque fois que j'ai joué avec des accéléromètres, vous pouvez très clairement faire la différence entre «en mouvement» et «stationnaire» car pendant que vous vous déplacez, au moins un axe fluctue avec des vibrations et des secousses aléatoires.
LeoR

Vous devez utiliser la variation de la moyenne mobile. Cela vous permettra, par exemple, de placer le vélo sur le côté et de ne pas le déclencher constamment en raison de l'accélération due à la gravité.
Samuel

Montez simplement l'accéléromètre sur le guidon. C'est probablement proche de la LED de toute façon, et le guidon n'est jamais stable pendant la conduite.
MSalters

7

Pendant que vous spécifiez «voir si ça bouge» comme objectif. Je pourrais recommander une autre mesure pour vérifier si le vélo est en mouvement. La quantité de captations d'accéléromètres de bruit est étonnante - il se pourrait que votre situation soit telle qu'il y aura une délimitation claire entre `` en cours d'utilisation et en mouvement '' et `` pas dans l'utilisateur et toujours en mouvement (légèrement) ''. Je ne m'attendrais pas à ce que ce soit le cas cependant.

Il vaut la peine de considérer que si le vélo est attaché à / stationné dans une structure qui se déplace souvent (d'autres attachés ou détachant leurs vélos, trains ou véhicules à proximité, à l'intérieur près d'une pompe de CVC folle, à l'intérieur sur des planchers de bois / rebondissants lorsque quelqu'un passe. ..) alors vos lumières s'allumeront chaque fois que le vélo bouge. Ce n'est pas vraiment ce que tu veux. Vous voulez que les lumières s'allument quand un cycliste (vous) déplace le vélo. À cette fin, un capteur de proximité (qui n'est bloqué que lorsque vous êtes sur le vélo) ou même quelque chose comme un capteur de vitesse / commutateur à lames fonctionnerait. Voici un tutoriel pour un compteur de vitesse de vélo Arduino utilisant un commutateur à lames: http://www.instructables.com/id/Arduino-Bike-Speedometer/ Le bonus de ceci est que vous obtenez une lecture de la vitesse et il serait assez trivial d'ajouter un déclencheur pour les lumières (avec un arrêt différé pour les périodes où le vélo ne bouge pas pour les lumières / la circulation et similaire.)


5

Les accéléromètres comme d'autres l'ont suggéré sont assez faciles à utiliser, en particulier sur un Arduino avec toutes les bibliothèques et cartes de répartition disponibles. Une autre chose qui mérite d'être examinée est un capteur de vibration piézo-électrique comme celui-ci disponible chez Sparkfun pour 2,95 $ pour le moment:

entrez la description de l'image ici

Faites juste attention à noter à quel point la sortie de tension peut être élevée, ils suggèrent d'utiliser un diviseur de résistance pour réduire la tension et d'utiliser une broche ADC. Bien que je ne sois pas trop intéressé personnellement à utiliser les pinces à diode internes dans un AVR si vous utilisez une résistance de limite de courant de la série 1K étant donné le faible courant au départ, je ne vois pas que vous auriez trop de problèmes pour vous connecter à un numérique entrée si cela donne suffisamment de sensibilité et la légère augmentation de Vcc ne causera pas d'autres problèmes jusqu'à ce que les pinces prennent effet.

Quoi qu'il en soit, ce pourrait être un autre capteur qui serait intéressant à examiner. Bien que cela n'ait probablement pas beaucoup d'importance pour un Arduino qui a un courant de repos relativement élevé sur le régulateur et votre projet particulier, ils peuvent être parfaits pour de nombreux projets. Ils ne consomment pas d'énergie et peuvent être utilisés pour réveiller un microcontrôleur d'un sommeil profond en supposant que vous obtenez suffisamment de vibrations pour déclencher un niveau logique élevé.


+1 pour la possibilité d'avoir ce réveil du micro!
Seidleroni

4

Une sorte d' appareil photo et d'optique haute résolution à faible résolution qui prend de nombreuses photos (à des centaines ou des milliers d'images par seconde ) de la surface sur laquelle il se déplace, et les compare en temps réel avec un processeur spécialement conçu pour mesurer le mouvement. De préférence le tout sur une puce, avec une interface MCU pratique.

En d'autres termes, un capteur optique de souris. entrez la description de l'image ici

Malheureusement, il semble que les pièces Avago ne soient plus stockées dans la distribution, mais vous pouvez pirater une souris optique, ce qui vous donnera également l'optique et la LED d'éclairage (vous devrez peut-être modifier l'optique pour obtenir une distance appropriée). La plupart des capteurs semblent provenir de Pixart à Taïwan, et les fiches techniques sont disponibles (souvent faux).


2

Beaucoup de ces réponses sont trop compliquées et entraîneront très probablement des faux positifs et / ou des faux négatifs. Les accéléromètres s'éteindront si le vélo est déplacé du tout et ne se déclencheront pas si vous vous déplacez à une vitesse constante. Prendre des images optiques du sol coûte cher et n'est pas incroyablement fiable si le capteur n'est pas génial. La mesure des vibrations se déclenchera si quelqu'un heurte votre vélo ou s'il est secoué de quelque façon que ce soit.
Il y a une question très simple que vous devez poser pour trouver la bonne réponse: Qu'est-ce qui est différent entre un cycliste qui roule sur le vélo et quelque chose d'autre qui le déplace? La réponse est tout aussi simple: les roues tournent.
Votre solution consiste donc à utiliser quelque chose qui mesure la roue sur l'axe de rotation, quelque chose comme l'idée de la souris de Spehro, peut-être.
Cela garantira que votre système se déclenche si et seulement si un pilote le fait bouger.


Je voudrais aller plus loin et demander "comment puis-je savoir si une personne utilise le vélo?"
hoosierEE

2

Ou vous pouvez sentir quand un cycliste est sur le vélo, comme:

  • course de suspension (par exemple opto-interrupteur sur la fourche avant)
  • pression des pneus (délicate compte tenu de la taille d'un pneu de vélo)
  • cadre flexible (meilleur pour les cadres en acier que l'aluminium ou le carbone)
  • capteurs de pression aux points de contact (poignées, selle, pédales; logique OU ensemble)
  • Interrupteur béquille

2

Si vous ne vous souciez pas du type de mouvement qui se produit, un interrupteur à bille roulante est la solution la plus simple à mettre en œuvre. Il ne nécessite qu'une entrée numérique et un filtre passe-bas.

Un exemple est le Signalquest SQ-SEN-200. Il existe d'autres variantes plus petites et plus grandes de la même technologie (CMS et trou traversant).


Un interrupteur à bille roulante doit-il avoir une notion de "haut"? Comme dans, je prends mon projet et le mets à l'envers par rapport à l'orientation précédente, a-t-il bougé une fois ou se déplace-t-il continuellement selon le commutateur?
Robert Atkins

Il existe peu de variantes d'un tel interrupteur, qui peuvent se déclencher en cas d'inclinaison, de vibration ou de tremblement. Les billes à l'intérieur du composant finissent par se mettre en position de repos, il appartient donc au programmeur de décider quoi faire avec les données générées.
Lior Bilia

0

Pour simplement détecter que l'objet bouge, je suggère un photo-interrupteur avec un pendule quelconque. Prenez-en un comme ça et construisez une "chose mécanique" qui se déplace dans sa zone de détection. http://se.farnell.com/sharp/gp1s53vj000f/photointerrupter-compact/dp/9708065

Vous pourriez probablement récupérer toutes les pièces nécessaires d'une souris d'ordinateur avec un bouton de roue ou un détecteur de mouvement de balle.


2
C'est un accéléromètre mécanique. Un accéléromètre MEMS est moins cher
Scott Seidman

Wow, les circuits MEMS sont vraiment bon marché de nos jours.
Dejvid_no1

Absolument. Un accéléromètre MEMS 3D avec sorties numériques coûte environ 1,50 $ ces jours-ci en quantités modestes (comme 10)
Scott Seidman

2
Il y a 15 ans, je payais environ 1 500 $ pour des accéléromètres avec des capacités que 1,50 $ me procureraient aujourd'hui
Scott Seidman

1
@ScottSeidman C'est vrai, mais les accéléromètres d'équilibrage de force d'aujourd'hui sont encore un ordre de grandeur meilleurs que les meilleurs MEMS pour DC à ~ 100Hz! Malheureusement, ce sont deux ordres de grandeur plus chers.
Phil
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.