Inhaltsverzeichnis:
- Schritt 1: Komponenten
- Schritt 2: 3D-Druckkomponenten
- Schritt 3: Montage der Schlangen
- Schritt 4: Schaltung
- Schritt 5: Stromversorgung der Schlange
- Schritt 6: Testen Sie, dass alles funktioniert
- Schritt 7: Code
- Schritt 8: Skalen gegen Räder
- Schritt 9: Slithering Motion (einachsige Schlange)
Video: Bioinspirierte Roboterschlange - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:20
Ich wurde inspiriert, dieses Projekt zu beginnen, nachdem ich Forschungsvideos von baumkletternden Roboterschlangen und Roboteraalen gesehen hatte. Dies ist mein erster Versuch, Roboter mit schlangenförmiger Fortbewegung zu bauen, aber es wird nicht mein letzter sein! Abonnieren Sie YouTube, wenn Sie zukünftige Entwicklungen sehen möchten.
Im Folgenden skizziere ich den Bau von 2 verschiedenen Schlangen zusammen mit den Dateien für den 3D-Druck und eine Diskussion über den Code und die Algorithmen, um eine schlangenähnliche Bewegung zu erzielen. Wenn Sie weiter lernen möchten, würde ich nach dem Lesen dieses instructable vorschlagen, die Links im Abschnitt Referenzen am Ende der Seite zu lesen.
Dieses anweisbare ist technisch ein 2-in-1, in dem ich erkläre, wie man 2 verschiedene Versionen einer Roboterschlange macht. Wenn Sie nur daran interessiert sind, eine der Schlangen zu bauen, ignorieren Sie die Anweisungen für die andere Schlange. Auf diese 2 verschiedenen Schlangen wird von nun an Bezug genommen, indem die folgenden Ausdrücke austauschbar verwendet werden:
- Einachsige Schlange, 1D-Schlange oder gelbe und schwarze Schlange
- Doppelachsenschlange, 2D-Schlange oder weiße Schlange
Natürlich können Sie die Schlangen in jedem gewünschten Farbfilament drucken. Der einzige Unterschied zwischen den beiden Schlangen besteht darin, dass in der 2D-Schlange jeder Motor um 90 Grad relativ zum vorherigen gedreht ist, während in der 1D-Schlange alle Motoren in einer einzigen Achse ausgerichtet sind.
Ein letztes Vorwort ist, dass, während jede meiner Schlangen nur 10 Servos hat, es möglich ist, die Schlangen mit mehr oder weniger Servos zu machen. Zu beachten ist, dass Sie mit weniger Servos weniger erfolgreiche Bewegungen erzielen, und mit mehr Servos werden Sie wahrscheinlich mit der Serpentinenbewegung erfolgreicher sein, aber Sie müssen Kosten, Stromaufnahme (siehe spätere Bemerkungen) und die Anzahl der Pins berücksichtigen auf dem Arduino verfügbar. Fühlen Sie sich frei, die Länge der Schlange zu ändern, denken Sie jedoch daran, dass Sie auch den Code ändern müssen, um diese Änderung zu berücksichtigen.
Schritt 1: Komponenten
Dies ist eine Stückliste für eine einzelne Schlange. Wenn Sie beide Schlangen herstellen möchten, müssen Sie das Volumen der Komponenten verdoppeln.
- 10 MG996R-Servos*
- 1,75 mm 3D-Druckfilament
- 10 Kugellager, Teilenummer 608 (ich habe meine vom äußeren Rand von Jitterspin Fidget Spinnern geborgen)
- 20 kleine Kugellager, Teilenummer r188, für die Räder** (ich habe meins aus dem inneren Teil von Jitterspin Fidget Spinnern geborgen)
- 40 Kreuzschlitzschrauben 6-32 x 1/2" (oder ähnlich)
- 8 längere Schrauben (ich habe keine Teilenummer, aber sie haben den gleichen Durchmesser wie die Schrauben oben)
- Mindestens 20 Stück 4-Zoll-Zipties (es liegt an Ihnen, wie viele Sie verwenden möchten)
- 5m roter und schwarzer 20-Gauge-Draht oder dicker***
- Standarddraht mit 22 Gauge
- 30 Stiftleisten (aufgeteilt in 10 Lose von 3)
- Arduino Nano
- 3D-gedruckte Teile (siehe nächster Abschnitt)
- Irgendeine Form der Stromversorgung (siehe Abschnitt: "Die Schlange mit Strom versorgen" für weitere Informationen), ich habe persönlich ein modifiziertes ATX-Netzteil verwendet
- 1000uF 25V Elektrolytkondensator
- Schrumpfschlauch in verschiedenen Größen, Lötmittel, Kleber und andere verschiedene Werkzeuge
* Sie können andere Typen verwenden, müssen jedoch die 3D-Dateien neu gestalten, damit sie zu Ihren Servos passen. Auch wenn Sie versuchen, kleinere Servos wie das sg90 zu verwenden, werden Sie möglicherweise feststellen, dass diese nicht stark genug sind (ich habe dies nicht getestet und es liegt an Ihnen, zu experimentieren).
**Sie brauchen keine kleinen Kugellager für die Räder zu verwenden, ich hatte einfach viel herumliegen. Alternativ können Sie LEGO-Räder oder andere Spielzeugräder verwenden.
*** Dieser Draht kann bis zu 10 Ampere durchlaufen, zu dünn und der Strom wird ihn schmelzen. Weitere Informationen finden Sie auf dieser Seite.
Schritt 2: 3D-Druckkomponenten
Wenn Sie die 1D-Schlange herstellen, drucken Sie diese Stücke.
Wenn Sie die 2D-Schlange herstellen, drucken Sie diese Stücke.
Wichtiger Hinweis: Die Skala könnte falsch sein! Ich entwerfe meine Komponenten in Fusion 360 (in mm-Einheiten), exportierte das Design als.stl-Datei in die MakerBot-Software und druckte es dann auf einem Qidi Tech-Drucker (eine Klonversion des MakerBot Replicator 2X). Irgendwo in diesem Workflow gibt es einen Fehler und alle meine Ausdrucke fallen zu klein aus. Ich war nicht in der Lage, den Ort des Fehlers zu identifizieren, aber ich habe eine vorübergehende Lösung für die Skalierung jedes Drucks auf 106% in der MakerBot-Software. Dies behebt das Problem.
Beachten Sie daher, dass die obigen Dateien beim Ausdrucken möglicherweise falsch skaliert sind. Ich schlage vor, nur ein Stück zu drucken und zu prüfen, ob es zu Ihrem MG996R-Servo passt, bevor Sie alle drucken.
Wenn Sie eine der Dateien drucken, teilen Sie mir bitte mit, was das Ergebnis ist: wenn der Druck zu klein, genau richtig, zu groß ist und um wie viel Prozent. Indem wir als Community zusammenarbeiten, können wir den Ort des Fehlers mit verschiedenen 3D-Druckern und.stl-Slicern beheben. Sobald das Problem behoben ist, werde ich diesen Abschnitt und die obigen Links aktualisieren.
Schritt 3: Montage der Schlangen
Der Montageprozess ist bei beiden Versionen der Schlange meist gleich. Der einzige Unterschied besteht darin, dass in der 2D-Schlange jeder Motor um 90 Grad relativ zum vorherigen gedreht ist, während in der 1D-Schlange alle Motoren in einer einzigen Achse ausgerichtet sind.
Beginnen Sie mit dem Abschrauben des Servos, bewahren Sie die Schrauben auf und entfernen Sie das Ober- und Unterteil des schwarzen Kunststoffrahmens und achten Sie darauf, dass Sie keine Zahnräder verlieren! Schieben Sie das Servo in den 3D-gedruckten Rahmen, ausgerichtet wie in den obigen Bildern. Ersetzen Sie die Oberseite des Servogehäuses und schrauben Sie sie mit vier 6-32 1/2 Schrauben fest. Speichern Sie die Unterseite des Servorahmens (falls Sie sie in späteren Projekten wieder verwenden möchten) und ersetzen Sie sie durch die 3D Bedrucktes Gehäuse, einziger Unterschied ist der zusätzliche Drehknopf für ein Kugellager zum Überschieben Servo wieder zusammenschrauben, 10 mal wiederholen.
WICHTIG: Bevor Sie fortfahren, müssen Sie Code zum Arduino hochladen und jedes Servo um 90 Grad bewegen. Andernfalls könnten Sie ein oder mehrere Servos und/oder die 3D-gedruckten Rahmen brechen. Wenn Sie sich nicht sicher sind, wie Sie ein Servo um 90 Grad bewegen, lesen Sie diese Seite. Verbinden Sie grundsätzlich das rote Kabel des Servos mit 5V am Arduino, das braune Kabel mit GND und das gelbe Kabel mit dem digitalen Pin 9, dann laden Sie den Code im Link hoch.
Jetzt, da sich jedes Servo auf 90 Grad befindet, fahren Sie fort:
Verbinden Sie die 10 Segmente, indem Sie den 3D-gedruckten Knopf aus einem Servogehäuse in das Loch eines zweiten Segmentstücks stecken, dann mit etwas Kraft die Achse des Servos in das Loch drücken (siehe Bilder oben und Video zur Verdeutlichung). Wenn Sie die 1D-Schlange erstellen, sollten alle Segmente ausgerichtet sein, wenn Sie die 2D-Schlange erstellen, sollte jedes Segment um 90 Grad zum vorherigen Segment gedreht werden. Beachten Sie, dass der Schwanz- und Kopfrahmen nur die halbe Länge der anderen Segmente haben, verbinden Sie sie, aber kommentieren Sie die pyramidenförmigen Teile nicht, bis wir die Verkabelung abgeschlossen haben.
Bringen Sie den x-förmigen Servoarm an und schrauben Sie ihn fest. Schieben Sie das Kugellager über den 3D-gedruckten Knopf. Dazu müssen die 2 halbkreisförmigen Pfosten vorsichtig zusammengedrückt werden. Abhängig von der verwendeten Filamentmarke und der Fülldichte können die Pfosten zu spröde sein und brechen, ich denke nicht, dass dies der Fall sein wird, aber wenden Sie dennoch keine übermäßige Kraft an. Ich persönlich habe PLA-Filament mit 10% Infill verwendet. Sobald das Kugellager eingeschaltet ist, sollte es durch die Überhänge am Knauf verriegelt bleiben.
Schritt 4: Schaltung
Die Schaltung ist bei beiden Roboterschlangen gleich. Stellen Sie während des Verdrahtungsvorgangs sicher, dass genügend Verdrahtungsraum für jedes Segment vorhanden ist, um sich vollständig zu drehen, insbesondere in der 2D-Schlange.
Oben ist ein Schaltplan für die Verkabelung mit nur 2 Servos. Ich habe versucht, eine Schaltungszeichnung mit 10 Servos zu machen, aber es wurde viel zu überfüllt. Der einzige Unterschied zwischen diesem Bild und dem wirklichen Leben besteht darin, dass Sie 8 weitere Servos parallel verdrahten und die PWM-Signaldrähte mit den Pins des Arduino Nano verbinden müssen.
Beim Verdrahten der Stromleitungen habe ich ein einzelnes Stück 18-Gauge-Draht (dick genug, um 10 Ampere standzuhalten) als 5-V-Hauptleitung verwendet, die über die Länge der Schlange verläuft. Mit Abisolierzangen entfernte ich in 10 regelmäßigen Abständen einen kleinen Abschnitt des Isolators und lötete ein kurzes Stück Draht aus jedem dieser Intervalle eine Gruppe von 3 Stiftleisten. Wiederholen Sie dies ein zweites Mal für den schwarzen 18-GND-GND-Draht und einen zweiten Steckerstift. Schließlich löten Sie einen längeren Draht an den 3. männlichen Header-Pin, dieser Pin überträgt das PWM-Signal vom Arduino Nano im Kopf der Schlange zum Servo (der Draht muss lang genug sein, um zu erreichen, auch wenn sich die Segmente biegen). Bringen Sie den Schrumpfschlauch nach Bedarf an. Verbinden Sie die 3 männlichen Header-Pins mit den 3 weiblichen Header-Pins der Servodrähte. Wiederholen Sie dies 10 Mal für jeden der 10 Servos. Letztendlich wird damit erreicht, dass die Servos parallel verdrahtet und PWM-Signalkabel zum Nano geführt werden. Der Grund für die männlichen / weiblichen Header-Pins war, dass Sie Segmente leicht auseinandernehmen und Servos ersetzen können, wenn sie brechen, ohne alles auszulöten.
Löten Sie die GND- und 5V-Drähte mit einem Kondensator und Schraubklemmen an eine 3x7-Loch-Perfplatine im Schwanz. Der Zweck des Kondensators besteht darin, alle beim Starten der Servos verursachten Stromspitzen zu entfernen, die den Arduino Nano zurücksetzen können (wenn Sie keinen Kondensator haben, können Sie wahrscheinlich ohne ihn auskommen, aber es ist besser, auf der sicheren Seite zu sein).. Denken Sie daran, dass der lange Stift von Elektrolytkondensatoren an die 5V-Leitung und der kürzere Stift an die GND-Leitung angeschlossen werden muss. Löten Sie das GND-Kabel an den GND-Pin des Nano und das 5V-Kabel an den 5V-Pin. Beachten Sie, wenn Sie eine andere Spannung verwenden (siehe nächster Abschnitt), beispielsweise eine Lipo-Batterie mit 7,4 V, dann verbinden Sie das rote Kabel mit dem Vin-Pin, NICHT mit dem 5 V-Pin, dadurch wird der Pin zerstört.
Löten Sie die 10 PWM-Signaldrähte an die Pins des Arduino Nano. Ich habe meine in der folgenden Reihenfolge verdrahtet, Sie können wählen, ob Sie Ihre anders verdrahten möchten, aber denken Sie daran, dass Sie dann die servo.attach () -Zeilen im Code ändern müssen. Wenn Sie sich nicht sicher sind, wovon ich rede, verdrahten Sie es einfach auf die gleiche Weise wie ich und Sie werden keine Probleme haben. Um vom Servo am Schwanz der Schlange bis zum Kopf der Schlange zu verdrahten, habe ich meine beiden Schlangen in der folgenden Reihenfolge verdrahtet. Anschließen der Signalpins an: A0, A1, A2, A3, A4, A5, D4, D3, D8, D7.
Verwenden Sie Kabelbinder, um die Verkabelung zu reinigen. Bevor Sie fortfahren, prüfen Sie, ob sich alle Segmente mit genügend Spielraum für die Drähte bewegen können, ohne dass sie auseinander gezogen werden. Nun, da die Verkabelung fertig ist, können wir die pyramidenförmigen Kappen von Kopf und Schwanz aufschrauben. Beachten Sie, dass der Schwanz ein Loch für das Seil hat, um herauszukommen, und der Kopf hat ein Loch für das Arduino-Programmierkabel.
Schritt 5: Stromversorgung der Schlange
Da die Servos parallel geschaltet sind, bekommen sie alle die gleiche Spannung, aber der Strom muss addiert werden. Wenn man sich das Datenblatt für MG996r-Servos ansieht, können sie im Betrieb jeweils bis zu 900 mA ziehen (vorausgesetzt, kein Abwürgen). Somit beträgt die Gesamtstromaufnahme bei gleichzeitiger Bewegung aller 10 Servos 0,9A*10=9A. Daher funktioniert ein normaler 5V, 2A Steckdosenadapter nicht. Ich beschloss, ein ATX-Netzteil zu modifizieren, das 5 V bei 20 A leistet. Ich werde nicht erklären, wie das geht, da es bereits viel auf Instructables und YouTube diskutiert wurde. Eine schnelle Online-Suche zeigt Ihnen, wie Sie eines dieser Netzteile modifizieren können.
Angenommen, Sie haben das Netzteil modifiziert, müssen Sie einfach ein langes Kabel zwischen dem Netzteil und den Schraubklemmen an der Schlange anschließen.
Eine andere Möglichkeit ist die Verwendung eines integrierten Lipo-Akkus. Ich habe dies nicht versucht, daher liegt es an Ihnen, eine Halterung für die Batterien zu entwerfen und sie zu verdrahten. Beachten Sie die Betriebsspannungen, die Stromaufnahme der Servos und des Arduino (löten Sie nichts anderes als 5 V an) der 5V-Pin auf dem Arduino, gehen Sie zum Vin-Pin, wenn Sie eine höhere Spannung haben).
Schritt 6: Testen Sie, dass alles funktioniert
Bevor Sie fortfahren, testen Sie einfach, ob alles funktioniert. Laden Sie diesen Code hoch. Ihre Schlange sollte jedes Servo einzeln zwischen 0-180 bewegen und dann in einer geraden Linie abschließen. Wenn dies nicht der Fall ist, stimmt etwas nicht, wahrscheinlich ist die Verkabelung falsch oder die Servos waren ursprünglich nicht um 90 Grad zentriert, wie im Abschnitt "Montage der Schlangen" erwähnt.
Schritt 7: Code
Derzeit gibt es keine Fernbedienung für die Schlange, alle Bewegungen sind vorprogrammiert und Sie können auswählen, was Sie möchten. Ich werde eine Fernbedienung in Version 2 entwickeln, aber wenn Sie sie aus der Ferne steuern möchten, würde ich vorschlagen, sich andere Tutorials zu Instructables anzusehen und die Schlange so anzupassen, dass sie Bluetooth-kompatibel ist.
Wenn Sie die 1D-Schlange erstellen, laden Sie diesen Code hoch.
Wenn Sie die 2D-Schlange erstellen, laden Sie diesen Code hoch.
Ich ermutige Sie, mit dem Code herumzuspielen, Ihre eigenen Änderungen vorzunehmen und neue Algorithmen zu erstellen. Lesen Sie die nächsten Abschnitte für eine detaillierte Erklärung jeder Art von Fortbewegung und wie der Code dafür funktioniert.
Schritt 8: Skalen gegen Räder
Eine der wichtigsten Möglichkeiten, wie sich Schlangen vorwärts bewegen können, ist die Form ihrer Schuppen. Die Skalen ermöglichen eine leichtere Vorwärtsbewegung. Für eine weitere Erklärung sehen Sie sich dieses Video ab 3:04 an, um zu sehen, wie Schuppen der Schlange helfen, sich vorwärts zu bewegen. Ein Blick auf 3:14 im selben Video zeigt den Effekt, wenn die Schlangen in einem Ärmel sind, wodurch die Reibung der Schuppen beseitigt wird. Wie in meinem YouTube-Video gezeigt, bewegt sich die 1D-Roboterschlange, wenn sie versucht, ohne Schuppen auf Gras zu gleiten, weder vorwärts noch rückwärts, da sich die Kräfte zu einer Nettosumme summieren. Daher müssen wir der Unterseite des Roboters einige künstliche Schuppen hinzufügen.
Die Forschung zur Nachbildung der Fortbewegung über Waagen wurde an der Harvard University durchgeführt und in diesem Video demonstriert. Ich war nicht in der Lage, eine ähnliche Methode zu entwickeln, um die Waage auf meinem Roboter auf und ab zu bewegen, und habe mich stattdessen dafür entschieden, passive 3D-gedruckte Waagen an der Unterseite zu befestigen.
Leider erwies sich dies als wirkungslos (siehe in meinem YouTube-Video bei 3:38), da die Schuppen immer noch über die Oberfläche des Teppichs glitten, anstatt sich an den Fasern zu verfangen und die Reibung zu erhöhen.
Wenn Sie mit den von mir erstellten Skalen experimentieren möchten, können Sie die Dateien von meinem GitHub in 3D drucken. Wenn Sie Ihre eigenen erfolgreich machen, lassen Sie es mich in den Kommentaren unten wissen!
Mit einem anderen Ansatz habe ich versucht, Räder aus R188-Kugellagern mit Schrumpfschlauch über der Außenseite als "Reifen" zu verwenden. Sie können die Kunststoffradachsen aus den.stl-Dateien auf meinem GitHub in 3D drucken. Während Räder biologisch nicht genau sind, sind sie insofern mit Skalen vergleichbar, als die Vorwärtsdrehung einfach ist, aber die Bewegung von Seite zu Seite deutlich schwieriger. Das gelungene Ergebnis der Räder seht ihr in meinem YouTube-Video.
Schritt 9: Slithering Motion (einachsige Schlange)
Erster Preis beim Make it Move-Wettbewerb