5. Die Finger in Bewegung bringen

Sito: Bios4You
Corso: (4) Robotik in der Biotechnologie
Libro: 5. Die Finger in Bewegung bringen
Stampato da: Guest user
Data: mercoledì, 26 agosto 2026, 09:27

Überblick

Wie zuvor gezeigt wurde, könnte eine der einfachsten Methoden, die Bewegungen der bionischen Hand auszuführen, durch Servomotoren erfolgen, die an Schnüren („Sehnen“) ziehen, welche mit dem am weitesten entfernten beweglichen Teil eines Fingers verbunden sind (siehe Abb. 35).

Abbildung 35. Bewegung eines Fingers der bionischen Hand

Die Motoren könnten von einem vergleichsweise autonomen elektronischen Gerät gesteuert werden – einem Einplatinencomputer (SBC) in der Größe einer Kreditkarte. Es gibt viele solcher Geräte auf dem Markt, aber empfohlen wird der Mikrocontroller Arduino UNO (siehe Abb. 36), weil:

  • Er quelloffen, vergleichsweise günstig und äußerst beliebt bei Elektronik- und Kleinautomatisierungs-Enthusiasten ist;
  • Er als eines der simulierten virtuellen Geräte in TinkerCAD enthalten ist – einer webbasierten, kostenlosen Plattform zum Erlernen von Design. Dies ist ein besonderer Vorteil, da 3D-Modellierung, Schaltungs- und Softwareentwicklung in derselben Umgebung durchgeführt werden können. Darüber hinaus helfen das virtuelle Design, die Modellierung und das Testen der Hardware und Software, Schäden an der Ausrüstung zu vermeiden (und somit Kosten zu sparen), da die virtuellen Hardwareelemente nicht kaputtgehen, wenn sie falsch angeschlossen oder verwendet werden. Einige empfohlene vorbereitende Schritte zur Vermeidung von Schäden bei der Umsetzung des Designs in echter Hardware werden unten erwähnt.

Abbildung 36. Arduino UNO Mikrocontroller (reale Ansicht – links, virtualisiert in TinkerCAD – rechts)

Arduino UNO Mikrocontroller

Der Arduino UNO Mikrocontroller (im Folgenden als „UNO“ bezeichnet) verfügt über begrenzte Rechenressourcen im Vergleich zu Desktop-PCs, Laptops, Tablets oder sogar Mobiltelefonen, ist jedoch für unsere Aufgabe – die Steuerung einer kontrollierten Bewegung – vollkommen geeignet:

  • UNO kann über ein USB-Kabel mit einem Windows-PC verbunden werden, um die Stromversorgung zu gewährleisten und ein Softwareprogramm zu laden;
  • Die Software wird normalerweise in einer eingeschränkten Version der Programmiersprache C innerhalb einer speziellen Arduino-Softwareentwicklungsumgebung namens SKETCH entwickelt. Es ist erwähnenswert, dass die Software auch im Tinker CAD entworfen und getestet, dann als Datei exportiert, von SKETCH gelesen, kompiliert und auf ein UNO-Gerät geladen werden kann.
  • Der UNO mit geladenem Programm kann ohne PC betrieben werden und angeschlossene Geräte steuern, wenn er unabhängig mit Strom versorgt wird (empfohlen: 7-12 Volt Gleichstromversorgung oder 9V Batterie).

A close-up of a computer

Description automatically generated

Abbildung 37. Arduino UNO Mikrocontroller und SKETCH-Programmentwicklungsumgebung. Man kann die einzigen zwei Prozeduren erkennen, die vom UNO ausgeführt werden und entworfen werden müssen: setup() – Initialisierung eines SBC; und loop() – wird wiederholt, solange Stromversorgung vorhanden ist.

A screenshot of a computer

Description automatically generated

Abbildung 38. Abschnitt „Circuits“ (linke Spalte) in Tinker CAD

Arduino UNO in Tinker CAD

Die Modellierung des Elektronik- und Softwaredesigns erfolgt durch den Einstieg in den Abschnitt „Schaltungen“ (Abb. 38) in Tinker CAD (der Abschnitt „3D-Design“ könnte zuvor für die Modellierung von Teilen der Finger verwendet worden sein). Man findet eine umfassende Bibliothek von Tinker CAD-Beispielen und Designs zum Lernen.

Die grafische Entwicklungsumgebung von Tinker CAD besteht aus zwei Teilen: einer virtuellen Elektronik auf der linken Seite und einer Sammlung elektronischer Elemente oder einem Programmiereditor auf der rechten Seite (wie in Abb. 39 zu sehen). Letzterer kann in zwei alternativen Modi verwendet werden:

  • C-Programmeditor, wie im SKETCH – man kann eine C-Programmdatei exportieren, die auf ein echtes UNO geladen werden kann;
  • Grafische Programmierumgebung „CodeBlocks“, die extrem ähnlich zu SCRATCH2 ist. Das CodeBlocks-Programm wird automatisch in ein C-Programm konvertiert (dies gilt jedoch nicht in umgekehrter Richtung, man sollte vorsichtig sein, um die eigene Arbeit nicht zu verlieren).

Im virtuellen Experiment werden 5 Servomotoren verwendet, um die Finger der bionischen Hand zu bewegen, schematisch dargestellt in Abbildung 39 und Abbildung 40. Die Motoren werden vom UNO gesteuert und angetrieben, und 10 Tasten (5 Finger x 2 Richtungen = 2 Reihen von Tasten) werden verwendet, um die Bewegung zu initiieren.

Abbildung 40. Das virtuelle Experiment – 5 Servomotoren (Finger) werden vom UNO bewegt. Es werden zusätzliche Multimeter verwendet, um den Strom durch die Tasten und einen Servomotor zu überprüfen, um eine mögliche Überlastung zu vermeiden

Der Servomotor ist ein digitales Gerät, das eine Spindel auf eine bestimmte Position dreht (meist von 0 bis 180 Grad). Die Motoren (Steuerpins) sollten mit PWM (Pulsweitenmodulation – die Methode zur Angabe der Drehposition) gekennzeichneten digitalen Ausgängen des UNO verbunden werden. Insgesamt gibt es 6 solcher (PWM) digitalen Ausgänge in einem UNO.

Eine Reihe von Tasten (z. B. „Up“) wird mit den analogen Eingängen eines UNO verbunden, eine andere Reihe (z. B. „Down“) von Tasten mit den digitalen Eingängen eines UNO. Es sollte erwähnt werden, dass das Verbinden einer Taste mit einem analogen Eingang und das Auslesen des Wertes etwas mehr Aufwand erfordert als bei einem digitalen Eingang.


2 Grafische Programmierumgebung, entwickelt von MIT.EDU und weit verbreitet zum Programmierenlernen in Schulen https://scratch.mit.edu/

Entwicklung eines Programms

Die Tinker CAD grafische Programmierumgebung (GPE) ist auf die Entwicklung der Funktion loop() beschränkt, die setup() wird standardmäßig ausgeführt. Diese kleine Einschränkung kann überwunden werden, indem die Weiterentwicklung ausschließlich in C erfolgt (ohne CodeBlocks), was für größere praktische Anwendungen akzeptabel sein könnte. Die GPE enthält 6 Arten von „CodeBlocks“-Operationen, die in verschiedenen Farben codiert sind (Abb. 41a): Variablen, Steuerung, Ausgabe, Eingabe, Mathematik (einschließlich der Berechnung von Bedingungen, sogenannte boolesche Operationen, die innerhalb von Steueranweisungen verwendet werden), Notation (Kommentare). Die Anweisungen verschiedener Arten werden entsprechend ihrer Formen miteinander kombiniert.

Das Programm, das die Servomotoren („Finger“) bewegt, besteht aus einem kleineren und zwei größeren Teilen (Abb. 41b), die durch graue Kommentare getrennt sind:

  • Einstellen der Rotationsgeschwindigkeit (Variable rotationStep, rosa) – beim Übertragen des Programms auf ein echtes UNO kann diese Anweisung in die setup()-Prozedur verschoben werden.

  • Anweisungen für jeden Servomotor, sich in eine bestimmte Position zu drehen – 5 Ausgänge (blau), wobei darauf zu achten ist, den richtigen Ausgangspin (auf dem UNO-Board) und die Position (verschiedene Variablen, rosa) anzugeben. Da diese Variablen standardmäßig während der setup() auf 0 gesetzt werden, passiert nach dem Einschalten nichts, bis eine Taste gedrückt wird.

  • Überprüfen der Tastenpaare und Neuberechnung der Position der Servomotoren. Dieser Teil wird (in Abb. 41b nur einmal sichtbar) 5-mal für jedes Set aus 2 Tasten und einem Servomotor wiederholt.

    • Der Zustand (Spannung) der Taste „Up“ wird von einem analogen Eingang gelesen. Der mögliche Messbereich reicht von 0 bis 1023 Einheiten, entsprechend 0 bzw. 5 Volt. Es ist darauf zu achten, den richtigen Eingangspin auf dem UNO-Board anzugeben.

    • Wenn der gelesene Wert größer als 256 (1,25 V) ist, wird die Position eines bestimmten Servomotors neu berechnet, indem sie um den Wert von rotationStep erhöht wird;

    • Die berechnete Position darf 180° nicht überschreiten. Falls dies geschieht, wird sie auf diesen Grenzwert gesetzt.

    • Wurde die Taste „Up“ nicht gedrückt, wird der else-Zweig ausgeführt.

    • Der Zustand der Taste „Down“ wird von einem digitalen Eingang gelesen (0 = Nein, oder 1 = Ja). Es ist darauf zu achten, den richtigen Eingangspin auf dem UNO-Board anzugeben.

    • Wenn der gelesene Wert größer oder gleich 1 ist, wird die Position eines bestimmten Servomotors neu berechnet, indem sie um den Wert von rotationStep verringert wird. Eine zusätzliche arithmetische (Mathematik, grüne Kategorie) Operation war notwendig, um einen negativen Wert von rotationStep zu erhalten.

    • Die berechnete Position darf 0° nicht unterschreiten. Falls dies geschieht, wird sie auf diesen Grenzwert gesetzt.

Abbildung 41. Teil eines grafischen Programms zur Ansteuerung von Servomotoren

Weiter zum nächsten Schritt

Es gibt einige Vorsichtsmaßnahmen, die man beachten sollte, wenn man versucht, ein funktionierendes Hardwaremodell zusammenzubauen:

  • Die Servomotoren haben unterschiedliche Leistungen und könnten unterschiedliche Stromversorgungsschemata erfordern, da das UNO-Board möglicherweise nicht genügend Strom liefert, insbesondere wenn es über eine USB-Verbindung mit Strom versorgt wird.
  • In der Praxis kann es sinnvoll sein, an jedem Fingerende einen Kraftsensor einzusetzen und diesen zum Stoppen einer Bewegung zu verwenden. Solche Sensoren könnten über analoge Eingänge ausgelesen werden, daher ist ein anderes Setup für die Tasten (Umordnung und zusätzliche Komponenten) notwendig.

Um selbst zu beginnen…

Es gibt ein Design, mit dem empfohlen wird zu beginnen (im Tinker CAD), dargestellt in Abb. 42:

  • Nehmen Sie einfach ein virtuelles UNO und einen virtuellen Servomotor.
  • Verbinden Sie die Stromversorgung und Masse vom UNO-Board mit den entsprechenden Pins des Servomotors und den mit PWM markierten Ausgang des UNO mit dem „Signal“-Pin des Servomotors.  Erstellen Sie ein Programm, das den Servomotor zu einer bestimmten Position dreht und zurück.

Abbildung 42. Vorgeschlagene Schaltung für die erste Simulation

AR-basierte Bewegungssimulationen

Bevor Code auf physische Mikrocontroller hochgeladen wird, können die Schüler AR verwenden, um die Fingerbewegungen virtuell zu simulieren. Dies stellt sicher, dass die programmierten Bewegungen präzise sind und verringert das Risiko mechanischer Fehler oder Schäden an Komponenten während realer Tests.