Inhaltsverzeichnis:

Walking Strandbeest, Java/Python und App-gesteuert - Gunook
Walking Strandbeest, Java/Python und App-gesteuert - Gunook

Video: Walking Strandbeest, Java/Python und App-gesteuert - Gunook

Video: Walking Strandbeest, Java/Python und App-gesteuert - Gunook
Video: Strandbeest Initial Steps 2024, November
Anonim

Von arrowlikeFollow More vom Autor:

Experimentelles Studium der einfachen harmonischen Bewegung
Experimentelles Studium der einfachen harmonischen Bewegung
Experimentelles Studium der einfachen harmonischen Bewegung
Experimentelles Studium der einfachen harmonischen Bewegung

Dieses Strandbeest-Kit ist eine DIY-Arbeit, die auf dem von Theo Jansen erfundenen Strandbeest basiert. Erstaunt über das geniale mechanische Design möchte ich es mit voller Manövrierfähigkeit und als nächstes mit Computerintelligenz ausstatten. In diesem anweisbaren arbeiten wir am ersten Teil, der Manövrierfähigkeit. Wir decken auch die mechanische Struktur für den Computer in Kreditkartengröße ab, damit wir mit Computer Vision und KI-Verarbeitung spielen können. Um die Bauarbeiten und die Eance zu vereinfachen, habe ich kein Arduino oder einen ähnlichen programmierbaren Computer verwendet, sondern einen Bluetooth-Hardware-Controller gebaut. Dieser Controller, der als Terminal fungiert, der mit der Roboterhardware interagiert, wird von einem leistungsfähigeren System wie einer Android-Telefon-App oder RaspberryPi usw. gesteuert. Die Steuerung kann entweder eine Mobiltelefon-UI-Steuerung oder eine programmierbare Steuerung in Python- oder Java-Sprache sein. Ein SDK für jede Programmiersprache ist Open Source und wird unter https://github.com/xiapeiqing/m2robots.git. bereitgestellt

Da das Mini-Strandbeest-Benutzerhandbuch die Bauschritte ziemlich klar erklärt, konzentrieren wir uns in dieser Anleitung auf die Informationen, die normalerweise nicht im Benutzerhandbuch behandelt werden, und die elektrischen / elektronischen Teile.

Wenn wir eine intuitivere Idee zum mechanischen Zusammenbau dieses Bausatzes benötigen, stehen einige gute Videos zum Thema Zusammenbau zur Verfügung, wie zum Beispiel

Lieferungen

Um den mechanischen Teil zu konstruieren und alle elektrischen Verbindungen dieses Strandbeests herzustellen, sollte es weniger als 1 Stunde dauern, wenn die Wartezeit für den 3D-Druck nicht mitgezählt wird. Es benötigt folgende Teile:

(1) 1x Standard-Strandbeest-Kit (https://webshop.strandbeest.com/ordis-parvus)

(2) 2x Gleichstrommotor mit Getriebe (https://www.amazon.com/Greartisan-50RPM-Torque-Re…)

(3) 1x Bluetooth-Controller (https://ebay.us/Ex61kC?cmpnId=5338273189)

(4) 1x LiPo-Akku (3,7V, Kapazität nach Wahl in mAh)

(5) 12x M2x5,6mm Holzschrauben

(6) Carbon- oder Bambusstab mit 2 mm Durchmesser

3D-Druck der folgenden Teile:

(1) 1x Robotik-Hauptkörper

(3D-Druck-Designdatei mit Bluetooth-Controller nur herunterladen)

(3D-Druck-Designdatei mit zusätzlichem OrangePi Nano-Download)

(2) 2x Antriebswellenflansch (3D-Druck-Designdatei herunterladen)

(3) 2x Netzteilhalterung (3D-Druck-Designdatei herunterladen)

Andere:

Android-Handy. Gehen Sie zum Google Playstore, suchen Sie nach M2ROBOTS und installieren Sie die Kontroll-App.

Falls es schwierig ist, auf den Google Playstore zuzugreifen, besuchen Sie meine persönliche Homepage für eine alternative App-Download-Methode

Schritt 1: Teileorganisation

Teileorganisation
Teileorganisation
Teileorganisation
Teileorganisation
Teileorganisation
Teileorganisation
Teileorganisation
Teileorganisation

In diesem Schritt organisieren wir alle zu montierenden Teile. Abb.1. zeigt alle gebrauchsfertigen Kunststoffteile, aus denen wir das Modell Strandbeest bauen. Sie werden im Spritzgussverfahren hergestellt, was im Vergleich zu anderen spanenden Fertigungsverfahren wie 3D-Druck oder Fräsen sehr effizient ist. Aus diesem Grund möchten wir den größten Nutzen aus dem Massenprodukt ziehen und nur die geringste Anzahl von Teilen anpassen.

Wie in Abb.2 gezeigt, hat jedes Stück Kunststoffplatte ein beschriftetes Alphabet, einzelne Teile haben keine Beschriftung. Nach dem Auseinandernehmen gibt es keine Beschriftung mehr. Um dieses Problem zu lösen, können wir Teile des gleichen Typs in verschiedene Kästchen legen oder einfach mehrere Bereiche auf einem Blatt Papier markieren und eine Art von Teilen in einen Bereich legen, siehe Abb. 3.

Um das Kunststoffteil von der größeren Montage-Kunststoffplatte abzuschneiden, sind Schere und Messer möglicherweise nicht so effizient und sicher wie die in Abb. 4 und 5 gezeigte Zange.

Alles hier ist aus Plastik, außer das Material der Zehen ist Gummi, siehe Abb.6. Wir können nach den vorgefertigten Schnitten schneiden. Die weiche Natur des Gummimaterials sorgt für eine bessere Greifleistung des Strandbeests. Dies gilt insbesondere beim Erklimmen einer Steigung. In späteren Themen können wir seine Fähigkeit testen, in verschiedenen Neigungswinkeln zu klettern, mit und ohne Gummizehen. Wenn kein Schlupf auftritt, spricht man von Haftreibung. Sobald es den Halt verliert, wird es zur Gleitreibung. Der Reibungskoeffizient hängt von den verwendeten Materialien ab, deshalb haben wir die Gummizehen. Wie man ein Experiment entwirft, die Hand hebt und etwas sagt.

Die letzte Abbildung enthält die "ECU", "Powertrain" und das Chassis dieses Modells Strandbeest.

Schritt 2: Punkte, die bei der mechanischen Montage zu beachten sind

Zu beachtende Punkte bei der mechanischen Montage
Zu beachtende Punkte bei der mechanischen Montage
Zu beachtende Punkte bei der mechanischen Montage
Zu beachtende Punkte bei der mechanischen Montage
Zu beachtende Punkte bei der mechanischen Montage
Zu beachtende Punkte bei der mechanischen Montage

Das Mini-Strandbeest hat eine ziemlich gute Bedienungsanleitung. Es sollte eine leichte Aufgabe sein, der Anleitung zu folgen und die Montage abzuschließen. Ich werde diese Inhalte überspringen und einige interessante Punkte hervorheben, die unsere Aufmerksamkeit verdienen.

In Abb. 1 ist eine Seite des Schlitzes, der die Gummizehen hält, eine 90-Grad-Ecke, während die andere Seite eine 45-Grad-Neigung hat, die offiziell als Fase bezeichnet wird. Eine solche Neigung führt die Gummizehe so, dass sie in den Kunststofffuß passt. Versuchen Sie, die Zehen von der Seite mit Fase zu installieren, siehe Abb.2, dann versuchen Sie es mit der anderen Seite. Der Unterschied ist sehr auffällig. Die rechte Seite von Abb.3 ist die Kurbel in unserem Stranbeest. Es ist der Kurbel in einem Motor, Automotor, Motorradmotor sehr ähnlich, alle haben die gleiche Struktur. Bei einem Strandbeest treibt die Kurbel, wenn sie sich dreht, die Füße an, sich zu bewegen. Bei einem Motor ist es die Bewegung des Kolbens, der die Kurbel zum Drehen antreibt. Eine solche 120-Grad-Trennung in einem Kreis führt auch zu einem Drehstrommotor oder -generator, wobei die elektrische Leistung 120 Grad voneinander entfernt ist, wie in Fig. 4 gezeigt. Nachdem wir die mechanischen Teile für die linke und rechte Karosserie zusammengebaut haben, beginnen wir nun mit der Arbeit an den Teilen, die wir dem Strandbeest hinzufügen, siehe Abb.5. Abb. 6 ist der Schritt, in dem wir die 3D-gedruckte Motorklemme verwenden, um den Motor am 3D-gedruckten Chassis zu befestigen. Der Trick in diesem Schritt besteht darin, dass keine der Schrauben festgezogen werden sollte, bevor die Motorposition so eingestellt wird, dass die Seitenfläche des Chassis mit der Oberfläche des Motors übereinstimmt. Sind wir mit der Ausrichtung zufrieden, können wir alle Schrauben festziehen. Gehen Sie weiter zu Abb.7, wir arbeiten an der Installation der Flanschkupplung und verbinden den Motorausgang mit der Kurbel. Die Motorseite ist schwieriger zu montieren als der kurbelseitige Anschluss, siehe Abb.8. Deshalb verbinden wir zuerst den motorseitigen Flansch. Sobald die Flanschkupplung für beide Motoren installiert ist, wie in Abb. 9 gezeigt, verwenden wir zwei Stücke Carbonstangen mit 2 mm Durchmesser, um das Chassis und die linke/rechte Laufstruktur zu verbinden. Dies geschieht in Abb. 10. Insgesamt verwenden wir 3 Stück Carbonstäbe, um diese Einheiten zu verbinden. In diesem Schritt verbinden wir jedoch nur zwei davon, da wir die Kurbel drehen und die Verbindung zwischen Flansch und Kurbel montieren müssen. Wenn 3 Stück Carbonstäbe angebracht wurden, ist es schwieriger, die relative Position einzustellen und zu verbinden. Schließlich haben wir das endgültig zusammengebaute mechanische System in Abb.11. Im nächsten Schritt arbeiten wir an der Elektronik.

Schritt 3: Elektrischer Anschluss

Elektrische Verbindung
Elektrische Verbindung
Elektrische Verbindung
Elektrische Verbindung
Elektrische Verbindung
Elektrische Verbindung

Alle elektronischen Systeme benötigen eine Stromversorgung. Wir können einen 1-Zellen-Akku an einer geeigneten Stelle platzieren, zum Beispiel unter der Platine in Abb.1. Die Polarität der Stromversorgung ist so entscheidend, dass sie eine gesonderte Darstellung verdient. Abb. 2 hebt den Batterieanschluss hervor. In der Anschaltbaugruppe ist die Polarität mit „+“und „GND“gekennzeichnet, siehe Abb.3. Wenn der Akku leer ist, wird ein USB-Kabel zum Aufladen des Akkus verwendet, siehe Abb. 4. Die LED „Aufladung läuft“erlischt automatisch, wenn der Akku wieder voll ist. Der letzte Schritt besteht darin, die Motorausgänge mit den Motoranschlüssen auf der Controllerplatine zu verbinden. Es gibt 3 Motoranschlüsse, die in Abb. 3 mit der Nummer 16 gekennzeichnet sind. In Abb. 5 ist der linke Motor mit dem ganz linken Anschluss verbunden, der mit PWM12 gekennzeichnet ist, und der rechte Motor ist mit dem mittleren Anschluss verbunden. Derzeit ist das Linksdrehen eines Tanks (Differentialantriebsfahrzeug) als Dekrement der Motoreingangsleistung fest codiert, die an den PWM12-Motoranschluss angeschlossen ist. Daher sollte der an den PWM12-Port angeschlossene Motor die linken Füße antreiben. Ich werde später alle Mischfunktionen so umwandeln, dass sie vom Benutzer konfiguriert werden können. Durch Vertauschen der Motorsteckerwahl oder Umkehren der Motorsteckerrichtung können wir das Problem beheben, z in umgekehrter Reihenfolge an die Steuerspannung angeschlossen.

Schritt 4: App-Einstellungen und Bedienung

App-Einstellungen und Bedienung
App-Einstellungen und Bedienung
App-Einstellungen und Bedienung
App-Einstellungen und Bedienung
App-Einstellungen und Bedienung
App-Einstellungen und Bedienung
App-Einstellungen und Bedienung
App-Einstellungen und Bedienung

Wir laden zunächst eine Android-App aus dem Google Play Store herunter, siehe Abb. 1. Diese App hat viele andere Funktionen, die wir in diesem anweisbaren nicht abdecken können, wir werden uns nur auf die direkt verwandten Themen für Strandbeest konzentrieren.

Schalten Sie den Hardware-Bluetooth-Controller ein, er wird in der Liste der Erkennungsgeräte angezeigt. Ein langer Klick bringt uns zur Over-the-Air-Download-Funktion, um später "instructabled" zu werden. Bevor wir die Steuerung anklicken und starten, nehmen wir zunächst einige Konfigurationen vor, indem wir oben rechts auf "Einstellungen" klicken. In Abb.2 ist es unter dem Symbol … versteckt. Abb. 3 zeigt mehrere Einstellungskategorien. Diese in der App konfigurierten Einstellungen werden auf drei Arten umgesetzt: 1) Einige Einstellungen wirken sich nur auf den Betrieb der App aus, z. Sie leben in der App. In einigen späteren Anleitungen werden wir zeigen, wie wir sie durch unsere Python / Java-Programme ersetzen. 2) Einige Einstellungen werden als Teil des Steuerprotokolls in der Luft an die Hardware gesendet, wie z Kanal entsprechend dem Benutzerbefehl und der aktuellen Einstellung) 3) werden einige Einstellungen an den nichtflüchtigen Speicher im Hardware-Controller gesendet. Daher befolgt die Hardware diese Einstellungen jedes Mal, wenn sie ohne Konfiguration eingeschaltet wird. Ein Beispiel ist der Bluetooth-Broadcast-Name des Geräts. Diese Art von Einstellungen erfordert einen Power-Cycle, um wirksam zu werden. Die erste Kategorie, in die wir eintauchen, sind die "Allgemeinen Einstellungen" in Abb. 4. Die „App-Steuerungsfunktion“in Abb. 5 definiert, welche Rolle diese App spielt, ein Controller für das Hardwaregerät über eine direkte Bluetooth-Verbindung; eine Brücke über Intranet/Internet zur Telepräsenzsteuerung; usw. Als nächstes teilt die Seite „HW-Typ“in Abb. 6 der App mit, dass Sie mit einem Fahrzeug mit Differentialantrieb arbeiten, daher muss der „Tank“-Modus ausgewählt werden. Insgesamt stehen uns 6 PWM-Ausgänge zur Verfügung. Für das Strandbeest müssen wir Kanal 1 bis 4 gemäß Abb. 7 konfigurieren. Jeder PWM-Kanal wird in einem der folgenden Modi betrieben: 1) Servo normal: RC-Servo gesteuert durch 1 bis 2 ms PWM-Signal 2) Servo-Reverse: Der Controller kehrt die Benutzersteuerung für seinen Ausgang um 3) DC-Motor-Tastverhältnis: a DC Motor oder ein elektrisches Leistungsgerät, kann im Duty-Cycle-Modus betrieben werden, 0 % ist ausgeschaltet, 100 % ist immer eingeschaltet. 4) DC-Motor-Arbeitszyklusumkehr: Auch hier kehrt der Controller die Benutzersteuerung für seinen Ausgang um Da wir einen Gleichstrommotor verwenden und die Motordrehrichtung durch die Hardware-Verdrahtungsreihenfolge berücksichtigen, wählen wir "DC-Motor-Arbeitszyklus" für Kanal 1 bis 4, siehe Abb.8. Wir müssen auch 2 PWM-Kanäle zu 1 H-Brücke zusammenführen, um eine bidirektionale Steuerung zu ermöglichen. Dieser Schritt ist in Fig. 9 gezeigt. Im Modus „2 PWM-Kanäle zu 1 H-Brücke“werden Kanal 1, 3 und 5 verwendet, um beide zugeordneten Kanäle zu steuern. Dies führt dazu, dass die Gassteuerung und die Auf-Ab-Steuerung des Joysticks von seinem Standardkanal 2 auf Kanal 3 neu zugeordnet werden müssen. Dies wird in den Einstellungen in Abb. 10 erreicht. Wie in Fig. 11 gezeigt ist, ist jeder Kanal so konfiguriert, dass er eine beliebige Eingangsquelle verwendet.

Bingo, jetzt haben wir die erforderliche Mindestkonfiguration abgeschlossen und können zur Seite mit dem sichtbaren Bluetooth-Gerät zurückkehren und es verbinden. Versuchen Sie in Abb. 12, den Joystick zu spielen, und wir können mit diesem Strandbeest Spaß haben. Versuchen Sie, eine Steigung zu erklimmen, erinnern Sie sich an die Analyse der Reibung zwischen den Materialtypen und lesen Sie die geschätzte Fluglage des Flugreglers ab, die in der mit „RPY(deg)“beschrifteten Zeile angezeigt wird. Die vier Einträge in dieser Zeile sind Roll, Nick, Gierwinkel geschätzt vom Gyroskop und Beschleunigungsmesser an Bord; der letzte Eintrag ist die neigungskompensierte Kompassausgabe.

Zukünftige Arbeit: In den folgenden Anleitungen werden wir nach und nach die Programmierschnittstelle abdecken, Ihre Lieblingssprache Java oder Python auswählen, um mit dem Strandbeest zu interagieren, und den Strandbeest-Status nicht mehr vom Handybildschirm lesen. Wir werden auch mit der Programmierung auf dem Linux-Computer vom Typ RaspberryPi für fortgeschrittenere Programmierthemen beginnen, siehe letzte Abbildung. Checkout https://xiapeiqing.github.io/doc/kits/strandbeest/roboticKits_strandbeest/ für die mechanischen Teile des 3D-Drucks und https://github.com/xiapeiqing/m2robots.git für SDK und Beispielcode, wenn du sofort beginnen möchtest. Lassen Sie mich wissen, was Ihre gewünschte Programmiersprache ist, wenn nicht Java oder Python, ich kann eine neue Version des SDK hinzufügen.

Viel Spaß beim Hacken und bleiben Sie dran für die folgenden Anleitungen.

Empfohlen: