Synchronisieren Sie mehrere Mega-Boards, um mehrere Servomotoren zu betreiben

Mein Freund Jules fragt:

Das Ziel ist es, so viele Servomotorsteuerungen wie möglich zu erhalten - sieht so aus, als würde ein Arduino maximal 14 ausgeben?

Digitale E/A-Pins54 (davon 14 mit PWM-Ausgang)

Ich denke, dann wird es ein Softwareproblem, mehrere Mega-Boards zu synchronisieren? - dh 14 x 14 Array mit 14 Boards

Ich denke, wenn Sie "Servomotor" sagen, meinen Sie den integrierten Funksteuerungsmodelltyp von "Servos"? Im Allgemeinen bedeutet „Servomotor“ den Motor, der in einem PID- (oder ähnlichen) Servosystem mit geschlossenem Regelkreis verwendet wird. Aus dem Titel ging ich davon aus, dass es bei dieser Frage um die Implementierung mehrerer simultaner Servoregelkreise auf einem Atmega ging.

Antworten (5)

Ich würde auch den gleichen Weg gehen, den Todbot vorgeschlagen hat. Da ich jedoch ein großer Fan von I2C bin, verwende ich den SD21-Servocontroller, der 21 Servos ansteuern kann. Wenn Sie noch mehr brauchen, gibt es den SD84-Servocontroller, der (Sie haben es erraten) 84 Servos ansteuern kann.

Wenn Sie mehrere Servos ansteuern möchten, ist es möglicherweise besser, einige dedizierte Servocontroller an einen einzelnen Arduino anzuschließen. Es gibt viele Open-Source-Beispiele für Servocontroller, aber Sie können auch vollständig gebaute kaufen. Hier ist zum Beispiel ein Polulu 8-Servo-Controller und ein Pololu 16-Servo-Controller . Holen Sie sich ein paar davon, schließen Sie sie an beliebige digitale Pins des Arduino an und verwenden Sie die SoftSerial-Bibliothek, um Befehle an sie zu senden.

Die von Ihnen empfohlenen Servoregler sind veraltet. Die neue Servocontroller-Familie Maestro ist in jeder Hinsicht besser. pololu.com/catalog/category/12

Ich stimme den anderen zu, verwende einen dedizierten Servocontroller.

Ich bin dabei, meinen eigenen für meinen Hexapod-Roboter zu bauen, siehe hier Quellcode und Schaltpläne verfügbar.

Ein anderer Ansatz ist die Verwendung von "digitalen" Servos, wie z. B. OpenServo . Auf diese Weise können Sie etwa ein Dutzend Servos mit 2 Arduino-Pins und etwa ein Dutzend weitere Servos mit 2 weiteren Pins ansteuern.

Ich verwende einen SSC-32 Servo Controller von Lynxmotion. Es verwendet einen ATmega8 oder ATmega168 und kann bis zu 32 Servos steuern. Auf deren Seite findet man alles (Schaltplan, Firmware) um es zu bauen. Ich habe selbst einen gebaut und es hat gut funktioniert.