Synchronisez plusieurs cartes Mega pour exécuter plusieurs servomoteurs

8

Mon ami Jules demande:

L'objectif est d'obtenir autant de commandes de servomoteurs que possible - on dirait que le maximum qu'un Arduino produira est de 14?

Broches d'E / S numériques54 (dont 14 fournissent une sortie PWM)

Je suppose que cela devient alors un problème logiciel pour synchroniser plusieurs cartes Mega? - ie tableau 14 x 14 utilisant 14 cartes

mad_z
la source
Je pense que quand vous dites "servo-moteur", vous voulez dire le type de "servo" de modèle de radiocommande intégrée? Généralement, "servomoteur" signifie le moteur utilisé dans un système d'asservissement en boucle fermée PID (ou similaire). D'après le titre, je pensais que cette question concernait l'implémentation de plusieurs boucles d'asservissement simultanées sur un atmega.
Connor Wolf

Réponses:

7

Si vous souhaitez piloter plusieurs servos, la meilleure solution pourrait être de raccorder quelques servocommandes dédiées à un seul Arduino. Il existe de nombreux exemples open source de servocontrôleurs, mais vous pouvez également en acheter de pleins. Par exemple, voici un contrôleur servo Polulu 8 et un contrôleur servo Pololu 16 . Obtenez-en quelques-uns, connectez-les à toutes les broches numériques de l'Arduino et utilisez la bibliothèque SoftSerial pour leur envoyer des commandes.

todbot
la source
Les servocommandes que vous recommandez sont obsolètes. La nouvelle famille de servocontrôleurs Maestro est meilleure à tous points de vue. pololu.com/catalog/category/12
ryantm
1

Je suis d'accord avec les autres gars, utilisez un servo contrôleur dédié.

Je suis en train de construire le mien pour mon robot hexapode, voir ici le code source et les schémas disponibles.

Len Holgate
la source
1

Une autre approche consiste à utiliser des servos "numériques", comme OpenServo . De cette façon, vous pouvez piloter une douzaine de servos à l'aide de 2 broches Arduino et une douzaine de servos ou plus à l'aide de 2 broches supplémentaires.

davidcary
la source
1

J'utilise un servo-contrôleur SSC-32 de Lynxmotion. Il utilise un ATmega8 ou ATmega168 et peut contrôler jusqu'à 32 servos. Vous pouvez trouver tout (schéma de circuit, firmware) pour le construire sur leur page. J'en ai construit un moi-même et cela a bien fonctionné.

Achim
la source