SDK Servomoteurs

Le SDK propose plusieurs méthodes de contrôle et de communication avec les servos, ainsi que quelques méthodes cachées auxquelles il est facile d’accéder.

Explication générale

PWM Explication

Les servos sont commandés par un signal PWM. Un signal PWM est un signal qui s’allume pendant un certain nombre de microsecondes, puis s’éteint pendant un certain nombre de microsecondes. Les servos sont commandés par l’envoi d’impulsions de longueur variable toutes les 20 ms, la longueur des impulsions déterminant l’angle auquel le servo doit se déplacer (ou, pour les servos CR, la vitesse à laquelle il doit se déplacer). La longueur de l’impulsion, exprimée en microsecondes, est appelée largeur d’impulsion PWM. Par défaut, le sdk génère des signaux de 600 à 2400 microsecondes (SDK 0 correspondant à 600 microsecondes et SDK 1 à 2400 microsecondes). Cependant, l’expansion hub peut en fait générer entre 500 et 2500 microsecondes si la plage est définie manuellement.

Alimentation 5V

Tous les servos ont besoin d’un minimum de 5V pour fonctionner, et l’expansion hub génère donc 5V pour alimenter les servos. L’alimentation 5V est partagée entre les paires de ports (0-1, 2-3, 4-5). Par défaut, cette alimentation 5V est désactivée et ne fournit pas de courant. Cependant, toute opération sur les servos, comme le réglage de la position d’un servo, activera l’alimentation 5V sur les deux ports partagés. Désactiver le PWM semble désactiver l’alimentation partagée, mais si un autre servo est utilisé ou actif, l’alimentation 5V restera activée.

Un exemple d'onde PWM pour un servo fabriqué.

Exemple d’ondes PWM de servo. REMARQUE : les angles des servos sont choisis arbitrairement et ne seront pas exacts pour tous les servos.

Avertissement

Chaque paire de deux ports (0-1, 2-3, 4-5) partage la MÊME limitation de 2 ampères, il faut donc veiller à ce que les paires de servos ne tirent pas plus de 2 ampères. Il est recommandé de placer des servos dans un port sur deux lorsque c’est possible.

Méthodes cachées

ServoImplEx

Tous les servos du hub REV sont des instances de ServoImplEx, qui expose quelques méthodes supplémentaires à l’utilisateur, comme le réglage de la plage PWM du servo.

Note

Il n’y a pas d’inconvénient à utiliser ServoImplEx, pour convertir un Servo en un ServoImplEx, l’utilisateur doit simplement convertir le Servo retourné par le hardwareMap` en un ``ServoImplEx.

Conseils:

  • Vous pouvez utiliser setPwmRange() pour augmenter la plage du servo jusqu’à un maximum de 500 à 2500 microsecondes. Cela modifie la cartographie du SDK, 0 devenant la microseconde minimale et 1 la microseconde maximale. L’augmentation de la plage à 500-2500 peut donner plus de portée lors du contrôle de servos qui utilisent une plage PWM de 500-2500, tels que les servos goBILDA et REV Smart Robot Servo.

  • setPwmDisable() et setPwmEnable() peuvent être utilisés pour activer et désactiver le signal PWM d’un servo. Sur certains servos, cela aura pour effet de les mettre hors tension et de les « éteindre » sans qu’ils ne conservent leur puissance. D’autres servos peuvent rester sous tension et maintenir leur position. Le comportement varie d’un fabricant de servos à l’autre. Cela désactivera également l’alimentation 5V si le servo est le seul dans son groupe de ports.

Astuce

Les servos REV Smart Robot et les servos goBILDA cesseront de maintenir leur position lorsque setPwmDisable sera appelé, que l’alimentation 5v soit encore allumée ou non.