J'essaie de construire une minuterie semi-analogique. Quelque chose comme ces vieux minuteries dont vous faites pivoter le visage. Je veux un bouton que je peux tourner qui peut être lu par un microcontrôleur, et je veux aussi que le microcontrôleur puisse positionner le bouton. Je voudrais implémenter des "arrêts" en laissant le microcontrôleur pousser le bouton vers certaines positions. En descendant, le bouton doit tourner. Ceci est mon premier projet de ce type; J'ai construit de petits robots dans le passé, mais cela fait de nombreuses années.
J'ai envisagé de pirater un servomoteur pour lire sa position, mais les petits servos de loisirs que j'ai essayés sont trop difficiles à tourner, très bruyants et prennent trop d'élan lorsqu'ils sont tournés. Ils n'agissent pas comme un bon bouton.
J'envisage maintenant un encodeur rotatif connecté à un moteur, mais après avoir chassé sur plusieurs sites (SparkFun, ServoCity, DigiKey, Trossen et quelques autres), je n'ai pas pu trouver quoi que ce soit qui semblait approprié. Je ne sais pas comment trouver un moteur qui aura le bon type de faible couple.
Il semble que cela ne devrait pas être un problème vraiment rare. Existe-t-il une approche assez normale pour créer un bouton qui peut être réglé à la fois par l'utilisateur et par un microcontrôleur?
la source
Réponses:
J'ai quelques options pour vous.
Option 1, construisez votre propre servomécanisme
Comme vous n'avez besoin que d'un couple très faible pour déplacer un bouton, un très petit moteur devrait bien faire le travail. Vous devrez probablement ajouter un peu de friction pour qu'il ne se déplace pas trop facilement, ou utiliser un petit moteur pas à pas avec un couple de détente décent et un petit engrenage.
Un moyen très économique d'obtenir votre retour de position est de trouver une vieille souris opto-mécanique .
Souris opto-mécanique
Connectez l'arbre à votre arbre de moteur / bouton, puis faites rouler votre propre encodeur en quadrature (en prenant les entrées de phase A / B directement dans votre microcontrôleur) ou réutilisez toute la carte de circuit imprimé et connectez la `` souris '' à un port série et lisez sauvegarder la position de la souris X ou Y via le logiciel.
L'article Recycler des souris PS / 2 en générateurs d'impulsions rotatives est un bel exemple de quelqu'un qui fait cela.
Option 2, persévérez avec le servo RC
La raison pour laquelle vos servomoteurs RC sont difficiles à tourner est qu'ils ont un train d'engrenages à rapport élevé pour leur donner le couple dont ils ont besoin, ce qui les rend difficiles à reculer . Jetez un oeil à ce schéma éclaté de la page wikipedia Servomechanism :
Un petit tour de l'arbre de l'actionneur de ce servo RC entraînerait un mouvement important (de plusieurs tours) du moteur, si vous pouviez le faire bouger sans dénuder les engrenages.
Encore une fois, puisque dans votre application, vous n'avez besoin que d'un couple suffisant pour tourner le bouton, vous pouvez peut-être vous débarrasser de cet engrenage et utiliser directement la position du moteur. En retirant ou en réduisant l'engrenage, vous devriez en effet constater que le moteur se déplace très librement. En fait, vous devrez peut-être ajouter un peu de friction (ou laisser un engrenage en place) afin d'éviter que le moteur ne soit très nerveux.
la source
Je ne sais pas s'il y a une approche normale à cela, mais vous devriez certainement regarder une vidéo que j'ai trouvée il y a des années et qui me souffle encore: The Secret Knock Detecting Lock . Fondamentalement, le gars a construit un appareil basé sur Arduino que vous pouvez brancher à votre porte et configurer un coup secret qui le déclenchera pour l'ouvrir ... Génial!
Je suis sûr que seule la vidéo serait assez bonne pour l'inspiration (c'est la première chose qui m'est venue à l'esprit lorsque j'ai lu le titre de votre question), mais après une recherche rapide sur Google, j'ai également trouvé la page explicative qui explique tout cela.
Ceci est une partie de la page instructable où il dit le moteur qu'il utilise et donne quelques recommandations:
la source
Que diriez-vous d'utiliser un
stepper motor
, vous pourrez contrôler exactement la position.la source
Utilisez un potentiomètre rotatif. Connectez-le à une broche ADC de votre micro-contrôleur, et selon la résolution, vous pouvez obtenir entre 256 et 65536 valeurs, que vous pouvez ensuite utiliser pour définir des "arrêts".
la source
La norme de l'industrie pour résoudre ce problème est le déplacement des curseurs .
Ce sont des composants peu coûteux facilement disponibles qui font exactement ce que vous demandez, à l'exception de la partie ronde.
la source