Serielle Servos

Serielle Servos

Animatronic Movie Props

Animatronischer Grogu 2.0

🔸 Zu den anderen Teilen von "Animatronischer Grogu 2.0"

Serielle Bus-Servos

Statt normaler Servos aus dem Modellbau, die über PWM angesteuert werden, verwende ich in diesem Projekt digitale Servos, die über einen seriellen Bus angesteuert werden. Das hat den Vorteil, dass man mehrere Servos an einem einzigen Bus anschließen kann, ohne dass man viele Kabel verlegen muss. Die Servos können dann über eine einzige Leitung statt mit einer sternförmigen Verkabelung angesteuert werden. Das spart Platz und Kabelsalat.

Im animatronischen Grogu sind zwei verschiedene Bauformen solcher Bus-Servos verbaut: Kleine Modelle für die Augen, Ohren und Unterarme und größere Modelle für die Kopfbewegungen und Arme.

Die größeren Servos haben eine Bauform, die meist für die Arme oder Beine von kleinen (humanoiden) Robotern verwendet wird. Sie sind dort meist direkt als Knie- oder Ellenbogengelenk verbaut. Hier verwende ich das Modell STS3215 Metall Digital BUS Robotik 360 Servo 55g 19,5kg 6V-7,4V von Feetech.

STS3215-Servo STS3215-Servo

Die kleinen Servos sind SCS2332 Metall Digital BUS Robotik Servo 20g 4,5kg 4,8V-6V von der Firma Feetech und haben die bekannte Bauform der SG90 oder MG90S Servos.

SCS2332-Servos SCS2332-Servo

An den Spezifikationen kann man schon erkennen, dass beide Servo-Typen nur exakt eine Spannung haben, mit der sie betrieben werden können - sofern man für die Servos nur eine Spannungsquelle verwenden möchte. Daher ist die Spannung der Servos beim Grogu auf 6 Volt festgelegt.

Servo-Controller

Die Bus-Servos können nicht ohne weiteres direkt von einem Mikrocontroller angesteuert werden. Als entsprechendes Interface verwende ich das Serial Bus Servo Driver Board von WaveShare. Es wird über eine serielle UART-Schnittstelle mit dem ESP32 verbunden. Da geraten wird, STS- und SCS-Servos nicht über den gleichen Bus zu betreiben, habe ich zwei dieser Boards verbaut.

BTW: Damit wird auf dem ESP32 mit den hardware-seitigen UART-Schnittstellen langsam knapp: Eine benötigt die Animatronic Workbench, um die Figur live per USB-Kabel zu steuern. Die andere wird für die MP3-Player-Platine benötigt, die ebenfalls über eine UART-Schnittstelle angesteuert wird. Zusammen mit den zwei Servo-Controllern wären also vier UART-Schnittstellen nötig - der ESP32 hat aber nur drei. Daher habe ich die MP3-Player-Platine auf die Software-UART-Schnittstelle umgelegt, da diese nur mit 9600 Baud betrieben wird und somit nicht so zeitkritisch ist.

Servo-IDs

Die Servos werden über ihre IDs angesprochen und sind wie folgt durchgezählt: (Wie beim Arzt ist links/rechts immer aus Sicht des "Patienten" zu verstehen)

ID Servo Typ
1 Augenlider oben SCS2332
2 Augenlider unten SCS2332
3 Mund SCS2332
4 Ohr rechts SCS2332
5 Ohr links SCS2332
6 Kopf links/rechts drehen STS3215
7 Nacken-Neigung rechts STS3215
8 Nacken-Neigung links STS3215
9 Arm rechts STS3215
10 Unterarm rechts SCS2332
11 Arm links STS3215
12 Unterarm links SCS2332

Ausrichtung und Eichung der Servos

Damit die Servos für die verschiedenen Bewegungen richtig angesteuert werden, müssen sie zuerst ausgerichtet und geeicht werden. Die SCS2332 Servos haben einen Wertebereich von 0-1024, die STS3215 Servos von 0-4096. Die Mitte der Bewegung ist somit bei 512 bzw. 2048 und stellt daher optimaler Weise die Default-Position des Servos dar. Die auf den Abbildungen gezeigten Max- und Min-Stellungen sind nicht die Werte für 0 und 1024 bzw. 0 und 4096, sondern die Werte, die für die Bewegungen des Grogu sinnvoll sind. Sie müssen von Hand ermittelt und in das Projekt der Animatronic Workbench eingetragen werden.

Nacken Neigung

Max Min Default

("Min" bedeutet beim Nacken: so tief wie möglich, ohne dass der ESP32 berührt wird)

Arme

Max Min Default

Hände

Max Min Default

Augenlider

Max Min Default

Mund

Max Min Default

Ohren

Ausrichtung der Ohren bei der Montage:

Von vorn von oben von unten

🔸 Zu den anderen Teilen von "Animatronischer Grogu 2.0"