Inhaltsverzeichnis:

Jasper der Arduino Hexapod - Gunook
Jasper der Arduino Hexapod - Gunook

Video: Jasper der Arduino Hexapod - Gunook

Video: Jasper der Arduino Hexapod - Gunook
Video: Jasper Arduino Hexapod Robot 2024, Juli
Anonim
Jasper der Arduino Hexapod
Jasper der Arduino Hexapod
Jasper der Arduino Hexapod
Jasper der Arduino Hexapod
Jasper der Arduino Hexapod
Jasper der Arduino Hexapod
Jasper der Arduino Hexapod
Jasper der Arduino Hexapod

Projektdatum: November 2018

ÜBERSICHT (JASPER)

Sechs Bein, drei Servos pro Bein, 18 Servobewegungssystem, gesteuert von einem Arduino Mega. Servos verbunden über Arduino Mega Sensor Shield V2. Kommunikation mit Hexapod über Bluetooth BT12-Modul, das mit einer maßgeschneiderten Android-Anwendung kommuniziert. System mit 2 x 18650, 3400 mAh und 2 x 2400 mA Batteriesatz, jeweils mit Klettverschluss unter dem Körper des Hexapods gehalten. Ein Netz-Kippschalter sowohl für das Servo- als auch für das Steuersystem ist ebenso vorhanden wie eine grüne LED-Einschaltanzeige am Kopf des Hexapods. Befehle werden auf einem 16x2 LCD-Display wiederholt. Videofeed, Lichtring und Ultraschall-Hindernisvermeidung befinden sich im Kopf.

HINWEIS: Aus Gründen der Vernunft empfehle ich dringend die Verwendung von Servos von guter Qualität. Ich begann mit MG995-Servos, 20 davon, von denen 11 entweder durchgebrannt sind, die Zentrierung verloren haben oder einfach nicht mehr funktionieren.

www.youtube.com/embed/ejzGMVskKec

Schritt 1: AUSRÜSTUNG

AUSRÜSTUNG
AUSRÜSTUNG
AUSRÜSTUNG
AUSRÜSTUNG
AUSRÜSTUNG
AUSRÜSTUNG
AUSRÜSTUNG
AUSRÜSTUNG

1. 20 x DS3218-Servos

2. 1x Hexapod-Basissatz

3. 1x Arduino Mega R3

4. 1x Arduino Mega-Sensorschild v2

5. 1 x 2 Bay 18650 Batteriehalter

6. 2 x zweipoliger Netzschalter

7. Grünes LED-Licht und 220kOhm Widerstand

8. 2 x 6V 2800mAh Akkupacks mit Klettverschluss

9. 2 x 18650 x 3400mAh Batterien

10. 1x HC-SR04 Sonarmodul

11. 1x BT12 Bluetooth-Modul

12. 1 x Arduino V3 NodeMcu Lua WIFI ESP8266 12E IOT-Entwicklungsboard

13. 1 x Arducam Mini Modul Kameraschild mit OV2640 2 Megapixel Objektiv

14. 1 x Pixie Neon 16 LCD-Lichtring

15. 1 x 16x2 Zeilen LCD-Display mit angeschlossenem IIC-Adapter.

16. 1 x 5V Netzstecker für Arduino Mega

17. 1 x 5V Micro-USB-Stecker für NodeMcu-Modul.

18. 1 x DC-zu-DC-Abwärtswandlermodul

19. 1 x 70 mm x 120 mm x 39 mm quadratische schwarze Kunststoffbox (Gehäuse)

20. 1 x 70 mm x 50 mm x 70 mm schwarze Kunststoffbox (Kopf)

21. 4 x 40 mm M3-Messing-Abstandshalter plus 4 Gummiauflagen

22. Verschiedene Stecker-zu-Stecker-Überbrückungskabel, Lötzinn, M3-Schrauben und Bolzen und Heißkleber

Bewegung der Beine mit maßgeschneiderter Logik. Kamerabewegung über zwei unabhängige Servos mit Auf-, Ab-, Links-, Rechts- und Mittelbewegung. Kamera wird über WIFI-Verbindung gesteuert und in der WebView-Ansicht in der Android-Anwendung angezeigt.

Schritt 2: SERVOS

SERVOS
SERVOS
SERVOS
SERVOS
SERVOS
SERVOS

Jeder hat maximal 180 Grad to

minimale 0-Grad-Bewegung.

Jedes Servo identifiziert mit drei Zahlenkombinationen, LegCFT; wobei C der Körper (COXA), F der Oberschenkel (FEMUR) und T der Ellbogen (TIBIA) ist, also würde sich 410 auf das vierte Bein und das Tibia-Servo beziehen, ähnlich würde sich 411 auf das vierte Bein und das Tibia-Servo beziehen. Die Nummerierungssequenz wäre 100 bis 611. Jedes Servobein sollte einen gummibasierten Fuß haben, um den Aufprall abzufedern und einen besseren Halt zu bieten.

Bein 1: 100, 110, 111 vorne

Bein 2: 200, 210, 211 Bein2-Bein1

Bein 3: 300, 310, 311 Bein4-Bein3

Bein 4: 400, 410, 411 Bein6-Bein5

Etappe 5: 500, 510, 511 Zurück

Bein 6: 600, 610, 611

Die Standardposition für alle Koax-Servos ist 90 Grad.

Die Standardposition für Femur-Servos ist 90 Grad, 45 Grad ist die Ruheposition.

Die Standardposition für Tibia-Servos für alle Beine ist 90 Grad, die Beine 1, 3 und 5 verwenden 175 Grad als Ruheposition und die Beine 2, 4 und 6 verwenden 5 Grad.

Hals 1: 700 Begrenzt auf 75 bis 105 Grad für Auf- und Abbewegungen

Hals 2: 800 Begrenzt auf 45 bis 135 Grad für linke und rechte Bewegung

Die Servobewegung ist auf drei „Schreibvorgänge“begrenzt, bevor eine Verzögerung von 10 Millisekunden eingeschlossen wird, bevor weitere „Schreib“-Befehle ausgegeben werden. Dies hilft, die Belastung der Batterien zu reduzieren.

Schritt 3: BEFEHLE

BEFEHLE
BEFEHLE
BEFEHLE
BEFEHLE
BEFEHLE
BEFEHLE

A=Stop – Stehen Sie in der Standardposition.

B=vorwärts - walk_forward

C=rückwärts - walk_backward

D=rechts - turn_right

E=links - turn_left

F=Linke Seitwärtsbewegung - crab_left

G=Rechte Seitwärtsbewegung - crab_right

H=Rear_crouch (Beine 1 und 2 in maximaler Position, 3 und 4 Beine in neutraler Position, Beine 5 und 6 in minimaler Position)

I= Front_crouch (Beine 1 und 2 in Minimalposition, 3 und 4 Beine in Neutralposition, Beine 5 und 6 in Maximalposition)

J= Kamera im Galopp – Mitte (Hals 1 und Hals 2 in Mittelstellung, Standardposition)

K=Kamera links - pan_left (Hals 1, Mittelposition, Hals 2 Servo-Minimalposition)

L=Kamera rechts - pan_right (Hals 1, Mittelposition, Hals 2 Servo maximale Position)

M=Kamera oben - pan_up (Hals 1 maximale Position, Hals 2 Servo mittlere Position)

N=Kamera unten - pan_down (Hals 1 Minimalposition, Hals 2 Servo Mittelposition)

O=Ruhe (Hexapod) sitzt auf Stützen.

P=Standing Up – Hexapod steht in der Standardposition auf.

Q=Licht aus

R=Grünes Licht am Pixie Neon Lichtring.

S=Rotes Licht am Pixie Neon Lichtring.

T=Blaues Licht am Pixie Neon Lichtring.

U=Weißes Licht am Pixie Neon Lichtring.

V=Vorderbeine winken.

W=Tonhorn.

X = Kopf von links nach rechts streichen.

Y = Melodie abspielen.

Schritt 4: BEWEGUNG

BEWEGUNG
BEWEGUNG
BEWEGUNG
BEWEGUNG
BEWEGUNG
BEWEGUNG

Die Koax-Servoposition ist längs zur Körperachse, also geradeaus 0 Grad und direkt dahinter 180 Grad. Dieses Coax und alle anderen Servos wären jedoch auf 45 bis 135 Grad begrenzt.

Die Beinbewegungen vorwärts, rückwärts, links und rechts werden alle mit dem Anheben des Beins mit den Servos Femur und Tibia begonnen, gefolgt von der Bewegung des Körperservos und schließlich mit dem erneuten Absenken des gleichen Beins mit den Servos Femur und Tibia.

Vorwärts und rückwärts

Um vorwärts oder rückwärts zu gehen, arbeiten Sie paarweise, 1 und 2, 3 und 4, 5 und 6. Eine einfache Vorwärtsbewegung besteht darin, dass die Beine 1 und 2 von ihrer aktuellen Position so weit wie möglich nach vorne bewegt werden, dann die Beine 3 und 4, und schließlich wiederholen 5 und 6 Beine die gleiche Aktion. Dann bewegen sich alle sechs Coax-Servos aus dieser ausgefahrenen Vorwärtsposition zurück in ihre ursprüngliche Ausgangsposition. Die Umkehrung dieses Vorgangs wird verwendet, um sich rückwärts zu bewegen. Als Teil der Vorwärtsbewegung sucht die Ultraschalleinheit HC_SR04 nach Hindernissen vor Ihnen und wenn eines gefunden wird, drehen Sie den Hexapod zufällig nach links oder rechts.

Links und rechts

Um linke oder rechte Beinpaare zu bewegen, arbeiten Sie zusammen, aber in entgegengesetzte Richtungen. Um zum Beispiel nach rechts zu drehen, bewegt sich Bein 1 von der aktuellen Position zurück in die 135-Grad-Position, während sich Bein 2 nach vorne in die 45-Grad-Position bewegt. Dies wird für die Beinpaare 3 und 4 sowie für die Beine 5 und 6 wiederholt. Dabei bewegen sich die Coax-Servos in ihre ursprüngliche Position zurück in ihre neue Position, indem sie den Körper in die Bewegungsrichtung verdrehen, d.h. rechts. Dieser Vorgang wird so lange fortgesetzt, bis die erforderliche Linksdrehung abgeschlossen ist. Die Umkehrung dieses Vorgangs wird verwendet, um nach links abzubiegen, dh Bein 1 bewegt sich von seiner aktuellen Position nach vorne in die 45-Grad-Position, während sich Bein 2 nach hinten in die 135-Grad-Position bewegt.

Aufstehen und ausruhen

Bei beiden Prozessen wird das Koax-Servo eines der Beine nicht verwendet. Zum Aufrichten bewegt sich das Tibia-Servo für alle Beine von seiner aktuellen Position auf seine maximale Position von 45 Grad, während sich dieselben Femur-Servos zum Ruhen auf ihre niedrigste Position bewegen Position, 175 oder 5 Grad. Die gleiche Bewegung gilt für die Tibia-Servos, die sich im Stehen auf ihr Maximum von 45 Grad und auf ihr Minimum bewegen, d.h. 175 oder 5 Grad zum Ausruhen.

Vorne ducken und rückwärts hocken

Auch hier sind die Prozesse Spiegelbilder voneinander. Beim Vorwärtsbeugen befinden sich die Beine 1 und 2 in der niedrigsten Position, während die Beine 5 und 6 in ihrer höchsten Position sind. In beiden Fällen nehmen die Beine 4 und 5 eine neutrale Position ein, die mit den Beinsets 1 und 2 sowie 5 und 6 übereinstimmt. Beim Rückwärtshocken befinden sich die Beine 1 und 2 in ihrer höchsten Position, während die Beine 5 und 6 in ihrer niedrigsten Position sind.

Schritt 5: KOPFKAMERA/SONAR

KOPFKAMERA/SONAR
KOPFKAMERA/SONAR
KOPFKAMERA/SONAR
KOPFKAMERA/SONAR
KOPFKAMERA/SONAR
KOPFKAMERA/SONAR

Der Kopf besteht aus einer quadratischen Kunststoffbox 38 mm x 38 mm x 38 mm mit abnehmbarem Deckel. Die Box/der Kopf hat eine begrenzte vertikale und horizontale Bewegung. Die Bewegung wird durch die Verwendung von zwei Servos erreicht, eines am Körper des Roboters und ein zweites am ersten Servokörper und dessen Arm am Kopf befestigt. 7,4 V, die von zwei 18650-Batterien geliefert werden, versorgen das Arduino V3 NodeMcu Lua WIFI ESP8266 12E IOT-Entwicklungsboard DEVKIT, das an einem Arducam Mini Module Camera Shield mit OV2640 2 Megapixel Objektiv befestigt ist. Diese Anordnung ermöglicht es dem Roboter, Hindernisse zu erkennen und Live-Videos über das integrierte WLAN zu streamen. Sonar mit einem HC-SR04 und mögliche Lichtmanagementinformationen würden zum Arduino Mega zurückfließen.

Mein Dank geht an Dmainmun für seinen Arducam Instructables-Artikel, der mir sehr geholfen hat, zu verstehen, wie Arducam für den Videostream verwendet werden kann.

Batterie

Es wurde beschlossen, zwei Akkus zu verwenden, einen für die Komponenten des Kopfes und das Arduino Mega Board und einen zweiten für die Stromversorgung aller Servos. Das erste Paket bestand aus 2 x 18650 3400mAh Batterien mit 7,4 V. Das zweite Pack bestand aus 2 x 6V 2800mAh Akkupacks, die parallel geschaltet waren, was eine 6,4V-Versorgung ergab, aber eine erhöhte Kapazität von 5600mAh, die mit Klettbändern an der Unterseite des Hexapods befestigt wurden.

Schritt 6: BEINBEWEGUNG

BEINBEWEGUNG
BEINBEWEGUNG
BEINBEWEGUNG
BEINBEWEGUNG
BEINBEWEGUNG
BEINBEWEGUNG

Arme können entweder paarweise oder einzeln arbeiten. Jeder Arm besteht aus einem Körpergelenk namens Coax mit einer Bewegung von 45 bis 135 Grad, einem Oberschenkelgelenk namens Femur mit einer Bewegung von 45 bis 135 Grad und schließlich einem Ellenbogengelenk namens Tibia oder Endeffektor mit einer Bewegung von 45 bis 135 Grad. Es wurde eine maßgeschneiderte Software geschrieben, um die Bewegung der Beine zu ermöglichen.

Arten der Beinbewegung:

Beim Coax zeigt 45 Grad vom Kopf nach hinten, 90 Grad ist die neutrale Position und 135 Grad zeigt nach vorne.

Beim Femur sind 45 Grad die höchste Position vom Boden, 90 Grad die neutrale Position und 135 Grad die niedrigste Position vom Boden.

Für die Tibia ist 45 Grad die am weitesten vom Körper entfernte Position, 90 Grad ist die neutrale Position und 135 Grad ist die nächste Position zum Körper.

Angenommen, alle Servos befinden sich in der neutralen Position, 90 Grad.

Vorwärts: Bein 1 und 2, Femur hebt sich auf 135 Grad, Coax bewegt sich auf 45 Grad, Tibia bewegt sich auf 45 Grad am weitesten vom Körper entfernt, Femur senkt sich auf 45 Grad. Dies wird für Beinpaar 3 und 4 und Beinpaar 5 und 6 wiederholt. Alle 6 Koax-Servos bewegen sich von 45 Grad nach hinten auf 90 Grad, neutrale Position, alle 6 Femur-Servos bewegen sich von 45 Grad bis 90 Grad, neutrale Position. Schließlich bewegen sich alle Tibia-Servos von 45 Grad auf 90 Grad, neutrale Position.

Umgekehrt: Beginnen Sie mit den Beinen 5 und 6, dann 3 und 4 und schließlich den Beinen 1 und 2, ansonsten ist die Bewegung für Coax, Femur und Tibia gleich.

Links: Beine 1, 3 und 5 bewegen sich in Rückwärtsrichtung, während Beine 2, 4 und 6 sich in Vorwärtsrichtung bewegen. Sowohl die Vorwärts- als auch die Rückwärtsbewegung entsprechen der standardmäßigen Vorwärts- und Rückwärtsbewegung. Um die Drehung aller sechs Coax-Servos abzuschließen, bewegen Sie 45 Grad, wodurch der Körper gedreht wird.

Rechts: Beine 2, 4 und 6 bewegen sich in Rückwärtsrichtung, während Beine 1, 3 und 5 sich in Vorwärtsrichtung bewegen. Sowohl die Vorwärts- als auch die Rückwärtsbewegung entsprechen der standardmäßigen Vorwärts- und Rückwärtsbewegung. Die Koax-Bewegung ist ähnlich wie oben, jedoch in umgekehrter Richtung.

Ruhe: Alle Coax- und Femur-Servos in neutraler Position, alle Tibia-Servos in unterster Position 45 Grad, wodurch sowohl Vorder-, Mittel- und Hinterbeine effektiv geduckt werden.

Hinten kauern, vorne stehen: Beine 1 und 2 in höchster Position, Beine 3 und 4 in neutraler Position und Beine 5 und 6 in niedrigster Position.

Hinten stehen, vorne hocken: Beine 1 und niedrigste Position, Beine 3 und 4 in neutraler Position und Beine 5 und 6 in höchster Position.

Krabbe links: Beine 1 und 5 heben und strecken sich nach links, gleichzeitig heben und kontrahieren Beine 2 und 6 unter dem Körper. Wenn alle vier dieser Beine auf dem Boden sind, kehren alle Tibias in ihre neutrale Position zurück. Schließlich wiederholen die Beine 3 und 4 den gleichen Vorgang.

Krabbe rechts: Beine 2 und 6 heben und strecken sich nach rechts aus, gleichzeitig heben sich Beine 1 und 5 und ziehen sich unter dem Körper zusammen. Wenn alle vier dieser Beine auf dem Boden sind, kehren alle Tibias in ihre neutrale Position zurück. Schließlich wiederholen die Beine 3 und 4 den gleichen Vorgang.

Linke Kopfbewegung: Hals 1 Servo 45 Grad. Beide Servos kehren in die Neutralstellung 90 zurück.

Rechte Kopfbewegung: Hals 1 Servo 135 Grad

Kopfbewegung nach oben: Hals 2 Servo 45 Grad

Kopfbewegung nach unten: Hals 2 Servo 135 Grad

Schwenkkopfbewegung: Hals 2 bewegt sich von 45 bis 135 Grad

SERVOS

Nach ersten Tests wurden die Servos MG995 und MG996 alle ersetzt. Alle 20 Servos wurden durch DS32228 20kg Servos ersetzt, die eine deutlich verbesserte Zentrierung und erhöhte Tragfähigkeit boten.

Es ist wichtig, jedes Servo mit einem geeigneten Testprogramm gründlich zu testen. Ich habe das einfache Beispielprogramm „Sweep“modifiziert, um speziell auf 0, 90 und 180 Positionen zu testen. Diese Testroutine wurde für jedes Servo mindestens 5 Minuten lang ausgeführt und dann einen Tag später wiederholt.

HINWEIS: Die Verwendung eines standardmäßigen Arduino Uno-Boards, das über ein USB-Kabel mit Strom versorgt wird, liefert möglicherweise nicht genug Spannung, um bestimmte Servos zu betreiben. Ich fand, dass die 4,85 V, die das Servo vom Uno erhielt, ein unberechenbares Verhalten bei den DS3218-Servos verursachten und diese Spannung auf 5,05 V erhöhte, um dieses Problem zu beheben. Also beschloss ich, die Servos mit 6 V zu betreiben. Am Ende stellte ich fest, dass eine Spannung von 6,4 V erforderlich war, da die 6 V ein unregelmäßiges Verhalten der Servos verursachten.

Schritt 7: KONSTRUKTION

KONSTRUKTION
KONSTRUKTION
KONSTRUKTION
KONSTRUKTION
KONSTRUKTION
KONSTRUKTION

BEINE

Begonnen mit dem Auslegen der Hexapod-Bausatzteile. Alle kreisförmigen Servohörner erforderten die Vergrößerung des Mattierungslochs in beiden Enden des Femurs und aller Koaxlöcher. Jedes Servohorn wurde mit vier Schrauben und einer fünften Schraube durch die Mitte des Servokopfes an seinem entsprechenden Koax und Femur befestigt. Alle Servokörper wurden mit vier Schrauben und Muttern befestigt. Die Koax-Servohalterung für jedes der sechs Beine hatte ein Lager, das mit einer einzigen Schraube und Mutter an der Unterseite der Halterung befestigt war. Jede Koax-Servohalterung wurde mit vier Schrauben und Muttern an ihrer Femur-Servohalterung befestigt, wobei diese Halterung um 90 Grad gedreht wurde. Der Kopf des Femur-Servos wurde an einem Ende des Femur-Arms befestigt, während das andere Ende des Femurs am Tibia-Servokopf befestigt war. Die sechs Tibia-Servos wurden mit vier Schrauben und Muttern an der Oberseite der sechs Beine befestigt. Jeder Beinendeffektor wurde mit einem weichen Gummistiefel überzogen, um zusätzlichen Halt zu bieten. Es wurde festgestellt, dass das mitgelieferte Servohorn zu groß war, um es in den Koax-, Femur- und Tibia-Anschlüssen zu befestigen, sodass alle Mittellöcher auf 9 mm vergrößert wurden. Mein Dank an "Toglefritz" für seine Capers II instructable in Bezug auf die Konstruktionselemente des Hexapod-Bausatzes. Ich bin jedoch in einem Bereich von der Konstruktion abgewichen, nämlich der Befestigung der Servohörner an beiden Enden des Femurs. Ich beschloss, das Mittelloch des Femurs zu vergrößern, damit die Mitte des Servohorns hindurchgehen kann, wodurch das Servohorn zusätzliche Festigkeit erhält, da es näher am Servo war und diese beiden Gelenke das maximale Drehmoment erfahren. Jedes Servohorn wurde mit zwei M2.2 selbstschneidenden Schrauben am Femur befestigt, wobei die Enden dieser Schrauben entfernt und flach gefeilt wurden. Alle M3-Schrauben waren fest verriegelt.

KAROSSERIE

Der Korpus besteht aus zwei Platten mit jeweils sechs Löchern, wobei jedes Loch zur Befestigung des Koax-Servohorns dient. An der Unterseite der Bodenplatte wurden zwei 6V 2800mAh Akkus mittels Klettverschluss befestigt. Es wurden vier M3-Abstandshalter angebracht, die bis knapp über die Unterseite des Batteriehalters hinausragen und auf den Boden jeweils eine weiche Gummimanschette aufgeschoben wurde, die eine stabile Basis bietet, auf der der Hexapod ruhen kann. Im oberen Bereich der Bodenplatte sind der Arduino Mega und sein Sensorschild mit vier 5 mm Abstandshaltern befestigt. Auf der Oberseite der Bodenplatte wurden 4 x M3 Abstandshalter von 6cm Höhe angebracht, diese umschlossen den Arduino Mega und boten Unterstützung für die obere Platte. An der oberen Platte war eine 120 mm x 70 mm x 30 mm große Box befestigt, die das erste der Nackenservos und den LCD-Bildschirm beherbergt. Ein zweiter 2 Schacht, 2 x 18650 Batteriehalter wurde an der Unterseite der oberen Platte an der Rückseite des Arduino Mega Boards angebracht, die zur Vorderseite des Hexapods zeigt.

Die obere Platte hat sechs Servohörner, die jeweils mit vier M2.2-Schrauben befestigt sind. Auf der Oberseite der Platte ist eine 70 mm x 120 mm x 30 mm große Box installiert, in der ein 18650-Batteriehalter mit 2 Einschüben, ein zweipoliger Schalter, eine grüne LED und ein IC2 16 x 2 LCD-Display installiert sind. Darüber hinaus ist auch das erste Halsservo installiert, Strom- und das zweite Halsservo-Datenkabel führen durch ein Loch, um das zweite Servo und das Arduino V3 NodeMcu-Modul zu versorgen. Ein weiteres Datenkabel führt durch die Topbox und speist das Ultraschallmodul HC-SR04, das sich wiederum im Kopf befindet. Ein zweites Daten- und Stromkabel ist ebenfalls am Kopf vorbeigeführt, um den Pixie-LED-Ring mit Strom zu versorgen.

Die beiden Servo-Datenkabel und das HC-SR04-Datenkabel werden durch die obere Platte geführt, während das Bluetooth-Modul mit einem Neon-Formpad und Heißkleber an der Unterseite der Platte befestigt wird. Das Kabelmanagement der verbleibenden 18 Servodatenkabel muss vorhanden sein, bevor versucht wird, die obere Platte an der unteren Platte mit 4 x M3-Schrauben zu befestigen, die in die 4 x M3-Abstandshalter passen, die an der unteren Platte befestigt wurden. Als Teil des Befestigungsvorgangs der oberen Bodenplatte müssen auch alle sechs Coax-Servos in ihre richtige Position gebracht werden, wobei das Lager in das Loch der Bodenplatte und der Servokopf in das Horn der oberen Platte passt. Nach der Montage werden die Oberseiten der sechs Coax-Servos mit 6 M3-Schrauben befestigt. Aufgrund der Position der Servohörner für die sechs Coax Servos mussten die 4 x M3 Abstandshalter in der Höhe um 2mm reduziert werden, damit die Coax Servolager richtig in der Bodenplatte sitzen.

KOPF

Der Kopf besteht aus zwei Servos im 90-Grad-Winkel, eines befindet sich in der Box, die an der oberen Platte befestigt ist, und das zweite ist über das Servohorn mit einem U-förmigen Abschnitt aus Messingblech am ersten befestigt. Das Horn des zweiten Servos ist an einer L-förmigen Messinghalterung befestigt, die selbst mit zwei Schrauben und Muttern an einer 70 mm x 70 mm x 50 mm großen Box befestigt ist. Die Box bildet den Kopf, in dem die Ardcam-Kamera, das HC-SR04-Ultraschallmodul und das Arduino V3 NodeMcu-Modul sowie die Power-LED installiert sind. Sowohl der Sende- als auch der Empfangssensorkopf des Ultraschallmoduls ragen ebenso wie das Kameraobjektiv durch die Vorderseite der Box. Um das Objektiv an der Außenseite der Box herum befindet sich ein 16-LCD-Nero-Pixie-Ring. Die NodeMcu-Power-LED wird durch ein Loch in der Rückplatte des Kopfes gesehen, das Stromkabel, das Datenkabel des Ultraschallmoduls und die Pixie Neon-Datenstromkabel treten durch ein Loch zwischen der Rückplatte und der Kopfplatte ein.

ELEKTRONIK

Die folgenden Fritzing-Diagramme zeigen die Körper- und Kopfelektronik. Die VCC- und GRD-Leitungen sind für die 20 Servos aus Gründen der Übersichtlichkeit nicht dargestellt. Das Bluetooth-Modul steuert über die Android-App die Hexapod-Bewegung einschließlich seiner Nackenservos. Das WIFI-basierte Arduino NodeMcu-Modul steuert das Arducam-Kameramodul. Alle Servos sind über einen einzigen Block mit VCC-, GRD- und Signalleitungen an das Arduino-Sensorschild angeschlossen. Zum Verbinden von Bluetooth BT12, HC-SR04 und IC2 LCD werden standardmäßige 20 cm DuPont-Überbrückungskabel verwendet.

BEINKALIBRIERUNG

Dies ist einer der schwierigsten Bereiche der Vorbereitung, bevor an der Bewegung des Hexapods gearbeitet wird. Die ursprüngliche Idee ist, alle Beine auf die folgenden einzustellen, Koax-Servos auf 90 Grad, Femur-Servos auf 90 Grad und Tibia-Servos auf 90 mit der physischen Beinposition auf 105 Grad für die Beine 2, 4 und 6 und 75 Grad eingestellt für Beine 1, 3 und 5. Der Hexapod wurde auf eine ebene Fläche gestellt, die auf den vier Stützen unter dem Batteriegehäuse ruhte. Seine Beine wurden in gleichen Abständen zwischen jedem Bein und in gleichem Abstand vom Körper positioniert. Alle diese Positionen wurden auf der ebenen Fläche markiert. Bei der Konstruktion der Beine wurde der Mittelpunkt jedes Servos gefunden, dies sollte die 90-Grad-Position des Servos sein. Diese 90-Grad-Standardposition wird bei allen Servos verwendet.

Die Innenflächen der Koax-Servos 2 und 5 sind parallel zueinander, dies gilt für die Servos 1 und 6 sowie 3 und 4. Alle Femur- und Koax-Servos werden während der Bauphase um 90 Grad zueinander fixiert. An allen Femur-Servos ist der Femur-Arm in einem 90-Grad-Winkel befestigt. Alle Tibia-Servos sind im 90-Grad-Winkel an der Tibia befestigt. 2, 4 und 6 Tibia-Servos sind mit 105 Grad am Femurarm befestigt, während Tibia-Servos 1, 3 und 5 mit 75 Grad am Femurarm befestigt sind.

Es ist wichtig zu beachten, dass während des Tests alle Servos auf Temperatur überwacht werden sollten. Ein heißes Servo bedeutet, dass das Servo zu hart arbeitet und ausfallen könnte, die meisten Servos fühlen sich warm an.

Die anfängliche Kalibrierung besteht darin, den Hexapod aus seiner Ruheposition nach dem Einschalten in eine stehende Position zu bringen, die sowohl stabil, stabil, waagerecht ist und vor allem keines der Servos überhitzt. Um eine stabile Position beizubehalten, ist es notwendig, mit einer Verzögerung von weniger als 20 Millisekunden auf jedes Servo zu schreiben, 10 Millisekunden wurden verwendet. Alle Servos können sich nur von 0 bis 180 Grad bewegen und von 180 Grad zurück auf 0, also für alle Femurservos sind 0 und 180 Grad vertikal und 90 Grad horizontal.

Vor dem Anschließen jedes Servos wurde ein Initialisierungsschreiben an jedes der zuvor definierten Servos gesendet, das ihm seinen aktuellen Ruhewinkel, d.h. die aktuelle Position, in der sich das Servo im Ruhezustand befindet. Dies waren 90 Grad für alle Coax-Servos, 55 Grad für Femur- und Tibia-Servos 1, 3 und 5 und 125 Grad für Femur- und Tibia-Servos 2, 4 und 6.

Es ist wichtig zu beachten, dass die Batterien zu Beginn der Kalibrierungssitzung immer vollständig geladen sein sollten.

Der Hexapod startet immer aus einer Ruheposition, wobei der gesamte Körper von den vier Füßen gestützt wird. Von dieser Position aus werden alle Femur- und Tibia-Servos von ihrer Startposition bis in ihre Stehposition gefahren, an welcher Stelle alle Servos auf 90 Grad stehen. Um die Stehposition zu vervollständigen, wird der Befehl „Steh“ausgegeben. Dieser Befehl erfordert, dass sich alle Beine in zwei Sätzen von drei Beinbewegungen anheben und wieder absetzen, Beine 1, 5 und 4 sowie 2, 6 und 3.

Schritt 8: SOFTWARE

Die Software besteht aus drei Teilen, Teil eins ist der Arduino-Code, der auf dem Arduino Mega läuft, Teil zwei ist der Arduino-Code, der auf dem NodeMcu-Modul im Kopf läuft. Die Kommunikation erfolgt über die Bluetooth BT12-Einheit, die Befehle vom Android-Tablet empfängt, nämlich einem Samsung Tab 2, auf dem eine von Android Studio erstellte benutzerdefinierte Anwendung ausgeführt wird. Es ist diese Anwendung, die Befehle an den Hexapod sendet. Dieselbe Anwendung empfängt auch Live-Video-Feeds vom NodeMcu-Modul über das integrierte WIFI.

ANDROID-CODE

Der maßgeschneiderte Android-Code, der mit Android Studio entwickelt wurde, bietet die Plattform, auf der die Zwei-Bildschirm-Anwendung ausgeführt wird. Die Anwendung hat zwei Bildschirme, der Hauptbildschirm ermöglicht es dem Benutzer, dem Hexapod Befehle zu erteilen und den vom Hexapod-Kopf kommenden Video-Feed anzuzeigen. Der zweite Bildschirm, auf den über die WIFI-Taste zugegriffen wird, ermöglicht es dem Benutzer, sich einerseits mit dem Hexapod-Bluetooth und andererseits mit dem WIFI-Hotspot zu verbinden, der von der NodeMCU Arduino-Karte im Hexapod-Kopf generiert wird. Die Anwendung sendet Einzelbuchstabenbefehle über eine serielle 9600 Baud vom Tablet über das eingebettete Bluetooth an das BT12 Bluetooth, das mit dem Hexapod verbunden ist.

ARDUINO-CODE

Die Codeentwicklung begann mit der Entwicklung eines Testprogramms, das die Grundfunktionen des Hexapods, seinen Kopf und Körper, testen sollte. Da der Kopf und seine Bedienung komplett vom Körper getrennt sind, wurde seine Softwareentwicklung parallel zum Körperfunktionscode getestet. Der Kopfoperationscode basierte weitgehend auf einer früheren Entwicklung mit der Einbeziehung von Servobewegungen. Der Code beinhaltete den Betrieb eines 16x2-LCD-Displays, des Ultraschallmoduls HC-SR04 und eines 16-LED-Lichtrings. Eine weitere Codeentwicklung war erforderlich, um den WIFI-Zugang zum Live-Video-Feed vom Kopf zu ermöglichen.

Der Körperfunktionscode wurde ursprünglich entwickelt, um die anfängliche Servobefestigung und die anfängliche Position im Ruhezustand bereitzustellen. Aus dieser Position wurde der Hexapod so programmiert, dass er einfach steht. Die Entwicklung ging dann mit zusätzlichen Bewegungen des Hexapods und der Kombination der Kopf- und Körpercodeabschnitte mit der seriellen Kommunikation mit der Android-App weiter.

Der Testservocode ermöglichte die Entwicklung von Bein- und Körperbewegungen, nämlich:

1. InitLeg - Ermöglicht eine Ruhebeinposition, eine stehende Beinposition, eine Krabben-Ausgangsposition für das Gehen nach links oder rechts, eine anfängliche Beinposition für das Vorwärts- oder Rückwärtsgehen.

2. Wave – Erlaubt den Vorderbeinen, viermal zu winken, bevor sie in die stehende Position zurückkehren.

3. TurnLeg – Ermöglicht dem Hexapod, sich nach links oder rechts zu drehen.

4. MoveLeg – Ermöglicht dem Hexapod, vorwärts oder rückwärts zu gehen.

5. CrouchLeg- Ermöglicht dem Hexapod, sich entweder nach vorne auf seine Vorderbeine oder nach hinten auf seine Hinterbeine zu ducken.

Die Beinbewegung basiert auf der Zusammenarbeit von Beinpaaren, sodass die Beine 1 und 2, 3 und 4, 5 und 6 paarweise arbeiten. Die Bewegung besteht aus zwei grundlegenden Aktionen, einem Vorwärtsstrecken und Ziehen und einem Rückwärtsschieben. Um rückwärts zu gehen, werden diese beiden Bewegungen umgekehrt, also zum Beispiel vorwärts gehen, die Beine 1 und 2 ziehen, während die Beine 5 und 6 schieben, die Beine 3 und 4 geben Stabilität. Krabbenlaufen ist einfach dieselbe Aktion, aber um 90 Grad zum Körper eingestellt, in diesem Fall bewegen sich die Beine 3 und 4 auch auf die gleiche Weise wie die anderen Beine. Beim Gehen bewegen sich die Beinpaare abwechselnd, während beim Krabbengehen die Beine 1 und 5 als Paar arbeiten, während das Bein 3 mit abwechselnden Schritten zu den Beinen 1 und 5 arbeitet.

Bewegung Es folgt eine Funktionsbeschreibung für jede der Hauptbewegungsfunktionen, von denen jede aus Bewegungselementen besteht, die in einer festgelegten Reihenfolge zusammengeführt und ausgeführt werden.

RUHEN: Ausgehend von einer stehenden Position bewegen sich alle Femur-Servos nach oben, um den Körper auf die vier Stützen abzusenken. Gleichzeitig bewegen sich alle Tibia-Servos alle nach innen.

STEHEN: Ausgehend von der Ruheposition fahren alle Tibia-Servos nach außen, danach fahren alle Femur-Servos in die 90-Grad-Position, zuletzt fahren alle Tibia-Servos gleichzeitig in die 90-Grad-Position.

LINKS DREHEN: Die Beine 1, 3 und 5 bewegen sich um 45 Grad nach hinten vom Kopf weg, gleichzeitig bewegen sich die Beine 2, 4 und 6 nach vorne zum Kopf. Sobald alle Coax-Servos abgeschlossen sind, bewegen sich alle Coax-Servos von ihrer aktuellen Position zurück in die Standard-90-Grad-Position, diese Bewegung würde gegen den Uhrzeigersinn zum Körper erfolgen.

RECHTS DREHEN: Beine 1, 3 und 5 bewegen sich um 45 Grad nach vorne zum Kopf, gleichzeitig bewegen sich die Beine 2, 4 und 6 nach hinten weg vom Kopf zum Kopf. Sobald alle Coax-Servos abgeschlossen sind, bewegen sich alle Coax-Servos von ihrer aktuellen Position zurück in die Standard-90-Grad-Position, diese Bewegung würde im Uhrzeigersinn zum Körper erfolgen.

VORHÜCKEN: Beine 1 und 2 werden mit den Femur- und Tibia-Servos abgesenkt, während die Beine 5 und 6 mit ihren Femur- und Tibia-Servos angehoben werden, die Beine 3 und 4 bleiben in der Standardposition.

HÜCKEN SIE RÜCKWÄRTS: Beine 1 und 2 werden mit den Femur- und Tibia-Servos angehoben, während die Beine 5 und 6 mit ihren Femur- und Tibia-Servos abgesenkt werden, die Beine 3 und 4 bleiben in der Standardposition.

WAVING: Diese Routine verwendet nur die Beine 1 und 2. Die Coax-Servos bewegen sich in einem 50-Grad-Bogen, während sich Femur und Tibia ebenfalls in einem 50-Grad-Bogen bewegen. Die Beine 3 und 4 bewegen sich um 20 Grad nach vorne in Richtung des Kopfes, dies bietet eine stabilere Plattform.

VORWÄRTSGEHEN: Die Beine 1 und 6, 2 und 5 und 3 und 4 müssen zusammenarbeiten. Während also Bein 1 den Körper zieht, muss Bein 6 den Körper drücken. Sobald diese Aktion abgeschlossen ist, müssen Beine 2 und 5 dieselbe Aktion ausführen, während jeder dieser Aktionszyklen stattfindet, müssen Beine 3 und 4 ihre ausführen Routine voranbringen.

Die anfänglichen Testbeinmodulfunktionen ermöglichten ein Design für jede der drei Beinbewegungen. Drei Beinbewegungen sind erforderlich, da die gegenüberliegenden Beine einfach die umgekehrten Bewegungen ausführen. Ein neues kombiniertes Bein 1, 3 und 6 Modul wurde entwickelt, getestet und für ein zweites umgekehrtes Bein 2, 4 und 5 Bein Modul kopiert. Das Testen der Beinbewegungen des Hexapods wurde erreicht, indem der Hexapod auf einem erhöhten Block platziert wurde, um den Beinen volle Bewegung zu ermöglichen, ohne den Boden zu berühren. Die Messungen wurden durchgeführt, während sich die Beine bewegten, und es wurde festgestellt, dass sich alle Beine horizontal um eine Strecke von 80 mm bewegen, während sie gleichzeitig während der Bewegung an ihrem tiefsten Punkt 10 mm über dem Boden blieben. Das bedeutet, dass der Hexapod während der Bewegung einfach von einer Seite zur anderen schaukelt und alle Beine während der Bewegung eine gleiche Zugkraft haben.

RÜCKWÄRTSGEHEN:

KRABBE WALKING LINKS: Die anfängliche Bewegung beginnt mit den Beinen 1, 2, 5 und 6, die sich alle um 45 Grad in Fahrtrichtung drehen. Damit sind alle Strecken in Fahrtrichtung ausgerichtet, die Strecken 3 und 4 sind bereits richtig ausgerichtet. Femur und Tibia jedes Beins beginnend in der standardmäßigen 90-Grad-Position. Diese Gangart besteht aus zwei Sätzen von drei Beinen, die abwechselnd mit den Beinen 1, 5 und 4 und den Beinen 3, 2 und 6 arbeiten. Jeder Satz von drei Beinen funktioniert durch Ziehen mit den Vorderbeinen, dh 1 und 5 und Drücken mit Bein 4 wird diese Bewegung dann umgekehrt, so dass Bein 3 zieht, während Beine 2 und 6 drücken, keines der Coax-Servos arbeitet während dieser Bewegung. Jeder Satz von drei Beinen hebt den stationären anderen Satz von Beinen an, während sich der erste Satz bewegt.

KRABBE, DIE RECHTS GEHT:

HINWEIS: Der Kopf dreht sich entweder nach links oder rechts in Richtung des Krabbengangs. Dadurch kann die Ultraschallerkennung HC-SR04 beim Gehen verwendet werden.

BEINSTELLUNG: Damit der Hexapod waagerecht steht, müssen alle Beine auf gleicher Höhe stehen. Durch Platzieren des Hexapods auf Blöcken und anschließender Verwendung der Stand- und Rest-Routinen war es möglich, den Abstand jedes Endeffektors über dem Boden zu messen. Ich habe jedem Endeffektor Gummistiefel hinzugefügt, um einerseits den Halt zu erhöhen, aber auch um eine kleine Anpassung an die Beinlänge zu ermöglichen, mit dem Ziel von 5 mm oder weniger zwischen allen Beinen. Die Einstellung jedes Servos auf 90 Grad war einfach, aber die Befestigung jedes Servohorns an beiden Enden des Femurs kann und verursachte Probleme, da sehr kleine Unterschiede in den Drehwinkeln der inneren Dornen der Hörner dazu führen, dass sich die Beinhöhen um 20 mm unterscheiden. Das Verändern der Schrauben zu anderen Befestigungslöchern in den Servohörnern korrigiert diesen 20 mm Höhenunterschied. Ich war entschlossen, dieses Problem mit dieser Methode zu beheben, anstatt diese Höhenunterschiede mit einer Software ausgleichen zu müssen.

Empfohlen: