J'ai des servos de loisir ( Power HD 1501MG ) et j'aimerais pouvoir les contrôler (via un Arduino) afin qu'ils se dirigent vers l'angle que j'ai défini ou les mettent en mode de `` course libre '', où la charge les emportera partout où elle ira.
Est-ce même possible, ou vais-je juste finir par dépouiller les engrenages?
Ma première pensée est de simplement tuer le pouvoir du servo, mais la force requise pour les déplacer dans cet état est plus que je ne le souhaiterais.
Si c'est possible, est-ce que je regarde un changement de matériel, ou est-ce que je pourrais le faire dans le logiciel?
Réponses:
Ce que vous demandez ne sera pas très facile avec un servo RC standard.
Ce que vous demandez, c'est un servo à entraînement arrière. IE celui que vous pouvez faire tourner librement en appliquant un couple externe. Il est certainement possible de les créer et ils sont utilisés sur de nombreux robots, mais la plupart des servos RC nécessitent un couple considérable pour les entraîner. Je les appellerais semi-backdrivable.
Qu'est-ce qui vous empêche de les reconduire? Deux choses:
Friction: Tout d'abord, la friction dans la chaîne d'engrenage et le moteur. Les servos RC sont toujours réduits; la sortie tourne plus lentement que le moteur. Bien sûr, cela signifie que lorsque vous essayez de le reculer, vous devez faire tourner le moteur très rapidement. Tout frottement ou engrenage dans le moteur sera ressenti des dizaines de fois à la sortie.
Courant: quelque chose de surprenant à propos des moteurs électriques, c'est que si vous court-circuitez les bornes, elles deviennent plus difficiles à tourner. La rotation du moteur génère un courant électrique qui agit contre votre rotation. L'électronique à l'intérieur du servo pourrait bien laisser passer suffisamment de courant, même lorsqu'il est éteint, ce qui empêche sensiblement la rétrogradation. Dans le passé, j'ai remarqué que certains gros moteurs pas à pas, même sans engrenage, sont presque impossibles à reculer lorsqu'ils sont branchés à un équipement non alimenté. Mais lorsque vous les débranchez, ils peuvent tourner librement.
Ainsi, une façon d'améliorer la conduite arrière est d'empêcher le courant de circuler. La façon évidente de le faire est de déconnecter complètement le moteur de son électronique. Mais cela est difficile à faire, même en utilisant des FET, car les diodes à l'intérieur des FET pourraient bien laisser passer le courant. Cependant, vous pourriez utiliser un relais qui déconnecterait vraiment le moteur. Il suffit de l'utiliser sur l'une des bornes du moteur.
Les servocontrôleurs «appropriés» (comme l' ESCON de Maxon) contiennent en fait un contrôleur de courant qui peut activement empêcher le courant de circuler en appliquant la bonne tension aux bornes du moteur. Remplacer l'électronique du servo par quelque chose capable de contrôler le courant pourrait vraiment aider.
Ce que vous devez faire: ouvrir le servo, dessouder le moteur et le remonter. Est-il facile de faire marche arrière maintenant? Si c'est facile, il peut être possible de faire ce que vous voulez. Si c'est encore trop difficile pour votre application, vous devrez choisir un autre servo ou faire le vôtre. Faites-en un avec un seul étage d'engrenage afin que le frottement de l'engrenage soit réduit autant que possible, et utilisez l'électronique d'entraînement avec une boucle de contrôle de courant pour garantir un flux de courant nul.
la source
Question interessante.
La première option que j'examinerais serait de couper l'alimentation comme vous l'avez suggéré (peut-être contrôler un MOSFET dans un logiciel pour commuter l'alimentation).
Une autre approche plus compliquée pourrait être de surveiller la consommation actuelle du servo pour détecter quand il est sous une lourde charge. Lorsque vous souhaitez passer en mode "fonctionnement libre", demandez à votre logiciel de déplacer en continu le servo dans une position qui se traduit par la consommation de courant la plus faible. Cela n'entraînera pas entièrement un servo "à fonctionnement libre", car il y aura des mouvements instables du servo lorsque le logiciel tentera de trouver la "bonne" position, mais cela pourrait fonctionner selon votre application.
Vous n'auriez pas besoin de modifier vos servos pour surveiller la consommation actuelle. Une carte comme celle-ci de SparkFun se trouvera entre le servo et sa source d'alimentation (vous en avez besoin d'une par servo) et produira une tension analogique (que vous pouvez lire sur une broche ADC du microcontrôleur) qui correspond au courant:
Image de SparkFun
la source
Habituellement, ces types de servos de loisirs ne sont pas conçus pour une rotation continue et incluent souvent une butée mécanique. Attention, ce que je décris ci-dessous est un moyen infaillible de ne jamais obtenir un fonctionnement en boucle fermée réel, mais rendra le servo continu uniquement.
La plupart du temps, vous pouvez faire une recherche rapide en ligne pour "Modification continue pour x servo", mais je vais décrire ici le processus général.
L'envoi d'une commande "centrale" au servo devrait l'empêcher de bouger, tandis que l'envoi d'une commande positive ou négative devrait le faire tourner en continu dans un sens ou dans l'autre. La vitesse de rotation doit être proportionnelle à la "distance" du centre de la commande envoyée.
Si vous souhaitez restaurer le fonctionnement du servo sur votre servo nouvellement modifié, vous pouvez ajouter une sorte d'encodeur pour refermer la boucle.
Alternativement, vous voudrez peut-être regarder le servo de la série Dynamixel , qui permet à la fois un fonctionnement continu et asservi, et inclut une prise en charge Arduino.
la source
Ne vous procurez pas à la place des moteurs décents et conduisez-les via un pont en H comme vous le trouverez sur ce bouclier moteur .
la source