Hallo allerseits! Die Entwicklung von Hexapod ist aktiv und es ist an der Zeit, die grundlegenden Änderungen im Design und in den Plänen für die Firmware aufzuzeigen. Aufgrund des langwierigen Designs neuer Elektronik und Gehäuse gab es eine große Pause bei der Veröffentlichung neuer Artikel. Im Prinzip wird dies der Artikel sein, wie immer viele Bilder.
Entwicklungsstadien:Teil 1 - DesignTeil 2 - MontageTeil 3 - KinematikTeil 4 - mathematische Trajektorien und SequenzenTeil 5 - ElektronikTeil 6 - Übergang zum 3D-DruckEinige allgemeine Punkte
Ich habe dem Projekt einen neuen Namen gegeben, da im aktuellen nichts Praktisches darüber spricht. Tatsächlich ist SKYNET ein Himmelsnetzwerk oder so ähnlich (Himmel - Himmel, Netz - Netzwerk). In diesem Fall gibt es kein Netzwerk und noch mehr den Himmel.
Der neue Name ist
AIWM (Artificial Intelligence Walking Machine) - eine Laufmaschine mit künstlicher Intelligenz. Auf Kosten der Intelligenz ist es hier zu früh, aber plötzlich kann ich bis zu diesem Punkt leben :)
Ich habe eine kurze Demo mit einer Beschreibung der aktuellen Funktionen erstellt (die Vorschau eines neuen Designs beginnt ab der 2. Minute).
Funktionsänderungen
Während der Neugestaltung entstanden viele Ideen und Komplexitäten. Einige unnötige Teile wurden entfernt und neue Funktionen hinzugefügt. Hier ist eine Liste der Änderungen, deren Umsetzung geplant ist:
- Multiprozessor-Architektur. Derzeit sind 3 MCUs geplant: Bildverarbeitungssteuerung (Broadcom BCM2835), Leistungssteuerung (STM32F030), Kopfsteuerung (STM32F373);
- Der Machine Vision Controller ist ein fertiges Raspberry Pi Zero-Modul, das die Erfassung, Verarbeitung und Erkennung von Objekten aus der Kamera übernimmt. Damit ist die gesamte dafür notwendige Hardware verbunden. Die Kommunikation erfolgt über das ModBus-Protokoll im Slave-Modus;
- Der Leistungsregler ist ein leistungsstarker (bis zu 250 W) DC-DC mit der Möglichkeit, die Ausgangsspannung während der Kommunikation anzupassen. Es versorgt die gesamte Elektronik des Hexapods und ist sein Herz. Vielleicht wird es in Zukunft möglich sein, auf die direkte Stromversorgung von Antrieben mit 7,4 V umzuschalten, aber solche Antriebe sind selbst bei Ali ziemlich teuer. Die Kommunikation erfolgt über das ModBus-Protokoll im Slave-Modus;
- Der Head Controller ist das Bindeglied in dieser Architektur. Er beschäftigt sich mit Bewegungsverarbeitung und bietet eine Schnittstelle für die Kommunikation mit der Außenwelt. Die Kommunikation erfolgt nach dem ModBus-Protokoll im Slave-Modus (Außenwelt) und im Master-Modus (Interprozesskommunikation);
- Unterstützung für Video-Streaming oder WIFI-Bildübertragung zur Steuerung außerhalb der Sichtlinie, wenn genügend freie Ressourcen des Raspberry Pi Zero vorhanden sind;
- Es wurde beschlossen, die Steuerung auf Bluetooth zu übertragen (die fertige BLE-UART HM-10-Brücke wird verwendet), da WIFI theoretisch bereits für die Übertragung von Videos an das Bedienfeld belegt ist. Außerdem möchte ich in der Lage sein, Firmware oder Konfiguration von einem Remote-Server aus im Handumdrehen zu aktualisieren. Wenn Sie WIFI für die Kommunikation verwenden, werden Sie nicht mehr online gehen.
- Management von RGB-LEDs vor, um im Dunkeln zu leuchten und gleichzeitig den Status der FW anzuzeigen;
- Berührungssensoren sind in die Struktur der Beine integriert, wodurch ein intelligenterer Bewegungsalgorithmus möglich wird.
Kopfsteuerung oder Steuerplatine
Ich hatte keine Lust mehr auf das derzeitige Sandwich-Board, und es wurde beschlossen, ein neues Control-Board zu entwerfen, das die Neuerungen im Design berücksichtigt. Im Designprozess wurde das Display rausgeworfen (nicht wirklich, wofür er dort gebraucht wird) und ein Ultraschall-Entfernungsmesser (damals Guano). Unterwegs habe ich beschlossen, auf STM32F373 umzusteigen, um Arduino endlich loszuwerden, und das Vorhandensein von FPU in diesem Prozessor macht wirklich Sinn, es zu installieren.
Nach einer Woche der Erstellung der Schaltung und der Verfolgung erschien ein elektronischer Prototyp der Platine. Insgesamt dauerte die Entwicklung 20 Stunden. Um die Anzahl möglicher Fehlerquellen zu verringern, ist ein schrittweiser Übergang zu neuer Elektronik geplant. In diesem Fall wird der erste Steuerungsplan in Verbindung mit der alten Stromversorgungsplatine gestartet.
Zur Kompatibilität mit aktueller Android-Software wird ein Footprint unter der WIFI-UART-Bridge bereitgestellt, die jetzt im Prototyp verwendet wird. Die Screenshots der Platine sind unten dargestellt (WIFI-UART wurde in der 3D-Ansicht entfernt, da Altium sein Modell aus irgendeinem Grund vollständig einfarbig anzeigt). Tatsächlich spielt es keine Rolle, was für die Kommunikation verwendet wird - Hauptsache, der Schnittstellenausgang verfügt über UART.
Die folgenden Anschlüsse befinden sich auf der Platine:
- Die Hauptstromversorgung besteht aus 12V + Kontakten vom Ausgleichsstecker zur Überwachung der Spannung jeder Zelle, auf deren Grundlage Sie auch den Typ der angeschlossenen Batterie bestimmen können (Anzahl der Zellen);
- einen Anschluss zum Übertragen von Signalen zur Leistungsplatine für Servos;
- Anschlüsse für Bildverarbeitungssteuerung und Leistungssteuerung;
- Anschluss zur Steuerung der vorderen RGB-LEDs;
- Anschlüsse für Berührungssensoren an den Gliedmaßen;
- Ein Anschluss zum Anschluss eines Piezo-Emitters. Es wird davon ausgegangen, dass der Hochtöner bereits einen Regelkreis hat und wir nur die Leistung schalten.
Alles ist ganz einfach und der Wechsel zu STM sollte schmerzfrei sein. Ich habe den Code erfolgreich entworfen und es reicht aus, die mit Peripherieregistern arbeitenden Treiber zu ersetzen.
Leistungsregler
Als meine Erfahrung in der Elektronik durch eine Reihe von Versuchen und Irrtümern zunahm, konnte ich endlich DC-DC nachvollziehen. Tatsächlich gibt es dort nichts Kompliziertes, die Hauptsache ist zu wissen, wie die Spule funktioniert und warum sie dort tatsächlich benötigt wird.
Um eine leistungsstarke Last zu steuern, die in diesem Fall aus 18 Antrieben mit einem Durchschnittsverbrauch von 12 bis 15 A besteht, ist etwas Effizienteres als einfaches Gleichstrom-Gleichstrom-Verhältnis erforderlich. Der Flaschenhals ist in der Regel die Diode, die bei hohen Strömen den Raum zu heizen beginnt. Die Versorgungsspannung der Frequenzumrichter beträgt 6 V bei einer Eingangsspannung von bis zu 12 V. In diesem Fall arbeitet die Diode ca. 50% des Zyklus (eine grobe Schätzung ohne Berücksichtigung des Spannungsabfalls und anderer Freuden). Dementsprechend ist selbst bei Verwendung einer Schottky-Diode die ihr zugewiesene Leistung groß genug, um über die Wärmeableitung nachzudenken.
Zur Rettung kommen synchrone DC-DCs, bei denen anstelle einer Diode ein Feldeffekttransistor eingesetzt wird. Bei guten Transistoren ist der Kanalwiderstand niedrig genug, um große Ströme ohne nennenswerte Wärmeerzeugung zu treiben. Die Hauptunterschiede zwischen asynchronem Gleichstrom und synchronem Gleichstrom sind nachstehend aufgeführt:
Nachdem ich eine Reihe von Informationen gelesen hatte, entschied ich mich im Allgemeinen für die Anforderungen:
- Die Fähigkeit, Ströme bis zu 20A im Nennmodus zu treiben;
- Übergang in den Notbetrieb unter Verletzung des normalen Betriebsmodus: Überhitzung oder Sättigung der Spule, Überhitzung der Leistungsschalter, niedrige Eingangsspannung, Kurzschluss, unzureichende Ausgangsspannung und andere Freuden;
- Möglichkeit zur Kommunikation mit DC-DC, um Messwerte zu erhalten: Eingangs- und Ausgangsspannungen, Stromverbrauch, Spulentemperaturen und Leistungsschalter;
- Angemessene Effizienz;
Ich habe beschlossen, DC-DC mit dem Mikrocontroller STM32F030 zu entwickeln, der einen Cent kostet und über alle Peripheriegeräte verfügt, die ich zur Lösung meiner Probleme benötige. Der einzige Nachteil der Verwendung dieses MK ist eine ziemlich grobe Spannungseinstellung mit einer Stufe von 25 mV bei einer Frequenz von 100 kHz. Um eine höhere Genauigkeit zu erzielen, müssen Sie MK mit integrierten hochauflösenden Timern verwenden oder die Schaltfrequenz von Transistoren verringern. Für meine Anforderungen ist dieser Schritt der Spannungsregelung völlig ausreichend.
Im Moment wurde der erste Prototyp entworfen und zusammengebaut, der die Effizienz der Schaltung zeigte. Der Wirkungsgrad für grobe Messungen beträgt 87% bei einem Strom von 11 A in der Debug-Konfiguration der Platine unter Verwendung von Schutzwiderständen gegen Durchgangsströme (erforderlich zum Einstellen der Totzeit zwischen den Schalttransistoren).
Weitere Details zu DC-DC werden etwas später erscheinen, wenn ich daran denke. Ziemlich viele interessante Punkte, der Geruch von gebratenen Shutter-Treibern und MK :) Übrigens, die Transistoren erwiesen sich als so stark, dass infolge des Fehlers der fließende Strom die Leiterplatte verbrannte und gleichzeitig die Transistoren intakt blieben.
Ein bisschen über das neue Gebäude
Die Elektronik ist sehr interessant, aber Sie müssen auch die Mechanik nicht vergessen. Schließlich hat der Hexapod ein ausreichend geschlossenes Gehäuse erhalten, aus dem Drähte und Leiterplattenstücke nicht herausragen. Hier ist er
Während des Designs habe ich versucht, die Größe der Gliedmaßen und des Körpers selbst nicht zu verändern, da sich die vorherige Version in Bezug auf Geschwindigkeit und Belastung der Laufwerke bewährt hat. Im Allgemeinen blieb nur die Idee der Lage der Beine und Größen aus dem vorherigen Gebäude, der Rest wurde neu gestaltet.
Der schwierigste Teil des Designs war die Entwicklung des Rumpfdesigns. Anfangs wollte ich dieses Geschäft wegen der Diskrepanz zwischen Fantasie und Realität mehrmals aufgeben, aber Tag für Tag tauchten dekorative Elemente auf und dieses Gefühl war verschwunden. Schließlich mahlt der Bildhauer sein Schaffen auch nicht sofort, und dieser Moment muss nur erlebt werden.
Das Gehäuse ist ein Teilesatz für die spätere Montage mit M3-Bolzenschrauben (an einigen Stellen können Sie Kunststoffbefestigungen verwenden, z. B. für die obere und untere Abdeckung), um das Gewicht zu reduzieren. In diesem Fall werden die Schrauben mit vorgeschnittenen Gewinden direkt in den Kunststoff in die dafür vorgesehenen Bohrungen eingeschraubt.
Der Sockel wird aus drei verschiedenen Teilen mit Rillen zusammengesetzt und anschließend verschraubt. Es gibt keine Konstruktionsidee, es in Teile zu unterteilen, es sind nur die physischen Fähigkeiten des Druckers (220 x 220), und ich möchte es nicht wirklich erweitern, also muss ich herausfinden, wie ich aus dieser Situation herauskomme. Dies hat seinen eigenen Vorteil - im Falle einer Beschädigung reicht es aus, nur das beschädigte Teil nachzudrucken, was Plastik und Reparaturzeit spart (während der Tests kann alles passieren).
Nachdem Sie alle Teile miteinander verbunden und die Antriebe und die Elektronik installiert haben, wird das Ganze mit 6-mm-Abdeckungen verschlossen, die auf die gleiche Weise mit Schrauben befestigt werden. Auf der mittleren Abdeckung ist eine Steuerplatine installiert, die dann mit einer Dekorplatte verschlossen wird.
Die Kraft des Körpers wird darauf gelegt, von 0,5 m Höhe auf eine feste Oberfläche zu fallen, ohne die Unversehrtheit zu verletzen. Übrigens hat die Sperrholzversion des Rumpfes die harten Belastungsbedingungen im Flugzeug nicht überstanden, während der Rumpf in eine große Beule gepackt war und infolgedessen das Bein gebrochen war.
Die Extremitätenantriebe wurden auf FEMUR umgestellt, wodurch die Last durch die Gewichtsreduzierung von TIBIA infolge der Übertragung der Befestigungselemente und der Verlagerung des Servomotors näher an den Hebelanfang leicht reduziert werden sollte. Und es ist besser im Design, wenn TIBIA und COXA auf dem FEMUR-Teil installiert werden, und nicht wie zuvor umgekehrt.
COXA, FEMUR und TIBIA? - Was ist das? Nach vorläufigen Berechnungen dauert das Bedrucken des Gehäuses 670 g Kunststoff und 51 Stunden kontinuierliches Bedrucken mit einer Schicht von 0,2 mm und einer Düsendicke von 0,4 mm. Im Allgemeinen ist es für Geld etwas billiger als Sperrholz, aber das Design ist sogar sinnlos zu vergleichen und es lohnt sich.
PS
Über Anregungen zu dem Fall würde ich mich freuen. Zum Zeitpunkt dieses Schreibens wurde der Fall bereits gedruckt, es ist jedoch noch Zeit, Änderungen an den verbleibenden Details vorzunehmen. Ich bin der einzige Entwickler dieses gesamten Projekts und manchmal gibt es Phasen, in denen mir keine neuen Gedanken einfallen - jetzt beginnt diese Phase :)
Ein paar Bilder vom Druckvorgang