Forums › Construction d’unité astromech › Electronique, radiocommande, motorisation › Servos qui tremblent/vibrent/frétillent
- Ce sujet contient 49 réponses, 7 participants et a été mis à jour pour la dernière fois par kethry, le 21 Avr. 2014, 08:46.
-
AuteurMessages
-
3 avril 2014 à 06:50 #7090
Beaucoup auront déjà constaté que certains servos ont tendance à “frétiller” une fois les trappes en position ouverte ou fermée. J’ai créé ce sujet afin de présenter les solutions que vous avez adoptées.
Un thread sur astromech présente ce sujet
http://astromech.net/forums/showthread.php?t=17889http://astromech.net/forums/showthread.php?t=17889” class=”bbcode_url”> Les idées déjà abordées :
– “déconnecter” les servos dans le code quand on ne les utilise pas (Chris sur arduino je suppose)
– utiliser un relay qui coupe le circuit d’alimentation commun aux servos quand non utilisés (Selgus)
– coupe le signal envoyé aux servos (AZSquib dans nouveau code JEDI)
3 avril 2014 à 07:38 #37193AnonymeMerci, je n’y avais pas pensé. Je vais ajouter un relais et modifier mon code.
3 avril 2014 à 07:49 #37194si rien ne fume, tu peux faire un retour ici sur la façon dont tu implémenteras la chose, cela servira à tout le monde, merci ! 4 avril 2014 à 13:52 #37195AnonymeLe relais est commandé. Je fais un retour dès que ça fonctionne. 6 avril 2014 à 10:09 #37196AnonymeVoila j’ai fait mon petit montage et modifié mon code. Maintenant les servomoteurs sont alimentés seulement lorsqu’ ils sont sollicités.
Pour la vidéo le relais se coupe volontairement plus tard pour entendre le grésillement des servomoteurs. (mettre le son à fond)
Je prépare un schéma du montage et plus tard mon code arduino.
Héhé !!! Vous pouvez voir le début de mon appli sur androïd.
[youtube]e0mQR6cBgqE[/youtube] 6 avril 2014 à 17:25 #37197excellent ! oui les plans seraient super.
cela ne rajoute pas de délai notable entre le moment où tu commandes l’ouverture et le moment où les servos répondent ?
6 avril 2014 à 18:55 #37198AnonymeC’est instantané, imperceptible à l’œil nu. J’ai seulement ajouté un délai de 20 millisecondes pour pallier au mouvement mécanique du relais.
6 avril 2014 à 19:54 #37199Personnellement j’ai utilisé une solution “soft”: L’instruction detach() permet de couper l’envoi du signal de commande, le moteur n’est plus alimenté dans ce cas (même si le servo lui-même l’est toujours). Dès qu’on veut à nouveau modifier la position du servo, il faut d’abord envoyer l’instruction attach(), suivie de l’instruction de position.
Il faut seulement prévoir une certaine “élasticité” des commandes car le servo peut bouger légèrement au moment de l’éxécution de “detach()”. Je m’explique: Par exemple pour commander la fermeture de trappe du dôme: pour que la trappe reste bien fermée, il faut programmer la position “fermée” en allant un peu au-delà de la position nécessaire (si la commande se fait avec une liaison un peu “élastique”, le servo n’en souffrira pas), de sorte que si la position su servo bouge légèrement vers la position ouverte lors du “detach()”, la trappe ne s’ouvrira pas pour autant.
J’espère être clair, c’est plus facile à voir qu’à expliquer…
L’intérêt d’avoir des servos inactifs en dehors des actions (ouverture/fermeture) des trappes est double: on évite les frétillements indésirables (et la surconsommation qui va avec) et on peut manoeuvrer les trappes à la main (avec douceur!) afin d’accéder à ou de visualiser l’intérieur du dôme. Elles reprendront leur position correcte dès l’instruction d’ouverture/fermeture suivante.
7 avril 2014 à 06:56 #37200oui merci pour ces précisions (cela entrait dans ma rubrique “déconnecter” les servos dans le code quand on ne les utilise pas”) c’est une bonne solution qui a l’avantage de la simplicité “technique” quand on travaille directement sur arduino ou autre contrôleur
par contre dans mon cas je passe par un contrôleur de servos adafruit en I2C, du coup je pense que le relai reste ma seule solution
7 avril 2014 à 08:08 #37201AnonymeJe passe par une Pololu Mini Maetro 12 en I2C et je ne pense pas que cela soit possible de couper le signal par le « soft ». En tout cas je n’est pas trouvé, à confirmer…… 7 avril 2014 à 10:36 #37202AnonymeLe petit schéma simplifié. [attachment=0]Relais R2D2 Ouessan.jpg[/attachment] 7 avril 2014 à 11:07 #37203AnonymeSi tes masse (GND) ne sont pas commun c’est normal que ça frétille. Si tu veux absolument un isolement des masses, il faut passer par un isolateur optique. 7 avril 2014 à 11:36 #37204Anonymeouessan wrote:Je passe par une Pololu Mini Maetro 12 en I2C et je ne pense pas que cela soit possible de couper le signal par le « soft ». En tout cas je n’est pas trouvé, à confirmer……
Intéressent la fonction i2c de la maestro (je ne savais pas qu’en natif elle avait ça).Sinon pour ma part j’ai fait ceinture et bretelle en faisant un detach depuis l’arduino à chaque fois que je n’utilise plus les servo (peut être même trop souvent…) et une coupure de l’alimentation via un relais lorsque je ne reçoit pas d’instruction pendant 5 minutes.
7 avril 2014 à 12:07 #37205AnonymeJ’ai dit ça moi !!!!! I2C !!!!!! Non c’est en TTL. :confused: 7 avril 2014 à 17:19 #37206AnonymeComme e-fan, je suis étonné que ça fonctionne sans masse commune entre la carte, les servos et l’arduino. Tu es certains de ton schéma ??? Et pour un bien, il faudrait que tu mettes au moins 2 servos pour voir le câblage plus réel et sa complexité. Perso, par rapport à mon équipement (comme xoff), je pense m’orienter sur un seul relai pour piloter l’alimentation des servos sur la carte adafruit.
-
AuteurMessages
- Vous devez être connecté pour répondre à ce sujet.
