XiaoMi CyberGear Mikromotor Anleitung
28 Feb 2025
0 Kommentare
Was ist XiaoMi CyberGear Mikromotor
Der Xiaomi CyberGear Mikromotor ist ein kompakter, aber leistungsstarker Mikromotor, der für fortschrittliche robotische und bionische Anwendungen entwickelt wurde. Er verfügt über ein hohes Drehmoment-zu-Größe-Verhältnis, schnelle Reaktionszeiten und präzise Steuerung, die realistische und flüssige Bewegungen in robotischen Gliedmaßen und Mechanismen ermöglichen. Sein modulares Design und intelligente Steuerungsalgorithmen erleichtern die nahtlose Integration in komplexe Systeme, was ihn für Anwendungen von bionischen Prothesen bis hin zu fortschrittlichen Robotertieren geeignet macht. Xiaomi betont sein Potenzial, lebensechtere und interaktive robotische Erlebnisse zu schaffen.
CyberGear Mikromotor Bedienungsanleitung
Vorsichtsmaßnahmen
-
Bitte verwenden Sie es gemäß den in diesem Artikel angegebenen Arbeitsparametern, da es sonst zu schweren Schäden an diesem Produkt führen kann!
-
Der Steuerungsmodus kann nicht gewechselt werden, während das Gelenk läuft. Wenn Sie wechseln müssen, müssen Sie vorher einen Stoppbefehl senden.
-
Bitte überprüfen Sie, ob alle Teile vor der Benutzung intakt sind. Wenn Teile fehlen oder beschädigt sind, kontaktieren Sie bitte rechtzeitig den technischen Support.
-
Bauen Sie den Motor nicht willkürlich auseinander, um irreparable Fehler zu vermeiden.
-
Stellen Sie sicher, dass es keinen Kurzschluss gibt, wenn der Motor angeschlossen wird und die Schnittstelle wie erforderlich korrekt angeschlossen ist.
Rechtliche Hinweise
Bevor Sie dieses Produkt verwenden, muss der Benutzer dieses Handbuch sorgfältig lesen und das Produkt gemäß den Inhalten dieses Handbuchs bedienen. Wenn der Benutzer dieses Produkt in Verletzung der Inhalte dieses Handbuchs verwendet, übernimmt das Unternehmen keine Verantwortung für Schäden an Eigentum oder Personenschäden. Da dieses Produkt aus vielen Teilen besteht, lassen Sie Kinder nicht mit diesem Produkt in Kontakt kommen, um Unfälle zu vermeiden. Um die Lebensdauer des Produkts zu verlängern, verwenden Sie dieses Produkt bitte nicht in Umgebungen mit hohen Temperaturen und hohem Druck. Dieses Handbuch hat sich bemüht, verschiedene Funktionsbeschreibungen und Gebrauchsanweisungen zum Zeitpunkt des Drucks einzuschließen. Aufgrund der kontinuierlichen Verbesserung der Produktfunktionen, Designänderungen usw. kann es jedoch weiterhin Abweichungen von den von den Benutzern gekauften Produkten geben.
Es kann Unterschiede zwischen diesem Handbuch und dem tatsächlichen Produkt in Bezug auf Farbe, Aussehen usw. geben. Bitte beziehen Sie sich auf das tatsächliche Produkt. Dieses Handbuch wird von Xiaomi oder seinen lokalen Tochtergesellschaften veröffentlicht. Xiaomi kann jederzeit ohne vorherige Ankündigung notwendige Verbesserungen und Änderungen an diesem Handbuch aufgrund von Druckfehlern, Ungenauigkeiten der neuesten Informationen oder Verbesserungen von Programmen und/oder Geräten vornehmen. Solche Änderungen werden in der neuen Version dieses Handbuchs hochgeladen. Bitte scannen Sie den QR-Code dieses Handbuchs, um es zu erhalten. Alle Bilder dienen nur der funktionalen Beschreibung. Bitte beziehen Sie sich auf das tatsächliche Produkt.
Kundendienst
Der Kundendienst für dieses Produkt erfolgt strikt gemäß dem "Gesetz zum Schutz der Verbraucherrechte und -interessen der Volksrepublik China" und dem "Gesetz über die Produktqualität der Volksrepublik China". Der Serviceinhalt ist wie folgt:
Garantiezeitraum und Inhalt
Benutzer, die eine Bestellung zur Kauf dieses Produkts über Online-Kanäle aufgeben, können innerhalb von sieben Tagen ab dem Tag des Erhalts einen Rückgabeservice ohne Angabe von Gründen in Anspruch nehmen. Bei der Rückgabe von Waren müssen die Benutzer einen gültigen Kaufnachweis vorlegen und die Rechnung zurückgeben. Die Benutzer müssen sicherstellen, dass die zurückgegebenen Waren ihre ursprüngliche Qualität und Funktionalität beibehalten, ihr Erscheinungsbild unversehrt ist und die Marken und Logos der Waren selbst sowie der Zubehörteile vollständig sind. Wenn Geschenke vorhanden sind, müssen diese ebenfalls zurückgegeben werden. Wenn das Produkt absichtlich beschädigt, manuell zerlegt, die Verpackungsbox fehlt oder Ersatzteile fehlen, werden Rückgaben nicht bearbeitet. Die Logistikkosten, die bei der Rückgabe von Waren anfallen, trägt der Benutzer (siehe "Standards für die Gebühren im After-Sales-Service" für die Gebührenstandards). Wenn der Benutzer die Logistikgebühren nicht begleicht, wird der tatsächliche Betrag von der Rückerstattung abgezogen. Der gezahlte Preis wird dem Benutzer innerhalb von sieben Tagen ab dem Datum des Erhalts der zurückgegebenen Waren zurückerstattet. Die Rückerstattungsmethoden sind die gleichen wie die Zahlungsmethoden. Das spezifische Ankunftsdatum kann von Faktoren wie Banken und Zahlungsinstituten beeinflusst werden.
Wenn innerhalb von 7 Tagen nach dem Tag, an dem der Benutzer es entgegengenommen hat, ein Leistungsfehler auftritt, der nicht durch menschliche Schäden verursacht wurde, wird das Xiaomi-Kundendienstzentrum die Rückgabe für den Benutzer nach Überprüfung und Bestätigung bearbeiten. Bei der Rückgabe des Produkts muss der Benutzer einen gültigen Kaufnachweis und die Rückgaberechnung vorlegen. Alle Geschenke müssen zusammen zurückgegeben werden.
"Wenn innerhalb von 7 bis 15 Tagen nach dem Tag, an dem der Benutzer es entgegengenommen hat, ein Schaden oder eine Leistungsstörung auftritt, wird das Xiaomi-Kundendienstzentrum den Austausch für den Benutzer abwickeln und das gesamte Produktset nach Inspektion und Bestätigung ersetzen. Nach dem Austausch wird die Garantiezeit des Produkts neu berechnet."
"Von 15 Tagen bis 365 Tagen ab dem Tag nach der Anmeldung durch den Benutzer, nach Inspektion und Bestätigung durch das Xiaomi-Kundendienstzentrum, handelt es sich um einen Qualitätsfehler des Produkts selbst, und Reparaturdienste können kostenlos bereitgestellt werden. Das ersetzte fehlerhafte Produkt gehört zur Xiaomi Company. Das nicht fehlerhafte Produkt wird in seinem ursprünglichen Zustand zurückgegeben. Dieses Produkt verlässt die Fabrik, nachdem es verschiedenen strengen Tests unterzogen wurde. Wenn es einen Qualitätsfehler gibt, der nicht mit dem Produkt selbst zusammenhängt, behalten wir uns das Recht vor, die Rückgabe- oder Umtauschanfrage des Benutzers abzulehnen."
"Wenn die After-Sales-Richtlinie in diesem Handbuch mit der After-Sales-Richtlinie des Geschäfts unvereinbar ist, hat die After-Sales-Richtlinie des Geschäfts Vorrang."
Nicht-Garantiebedingungen: Die folgenden Situationen sind nicht durch die Garantie abgedeckt:
Überschreitet die durch die Garantiebedingungen festgelegte Garantiezeit.
Produktschäden, die durch unsachgemäße Verwendung ohne Befolgung der Anweisungen verursacht wurden.
Schäden, die durch unsachgemäße Bedienung, Wartung, Installation, Modifikation, Prüfung und andere unsachgemäße Verwendung verursacht werden.
Konventioneller mechanischer Verlust und Verschleiß, verursacht durch Qualitätsmängel.
Schäden, die durch abnormalen Arbeitsbedingungen verursacht werden, einschließlich, aber nicht beschränkt auf Stürze, Aufprall, Flüssigkeitsimmersion, gewaltsame Einwirkung usw.
Schäden, die durch Naturkatastrophen (wie Überschwemmungen, Brände, Blitzeinschläge, Erdbeben usw.) oder höhere Gewalt verursacht werden.
Schaden, der durch Nutzung über das maximale Drehmoment hinaus verursacht wird.
Artikel, die keine echten Xiaomi-Produkte sind, können möglicherweise keinen rechtlichen Kaufnachweis erbringen.
Andere Fehler oder Schäden, die nicht durch Probleme wie Produktdesign, Technologie, Herstellung, Qualität usw. verursacht werden.
Verwenden Sie dieses Produkt für kommerzielle Zwecke.
Wenn die oben genannte Situation eintritt, müssen die Benutzer die Gebühren selbst bezahlen. Für Einzelheiten zur After-Sales-Politik der Gruppe siehe bitte: https://www.mi.com/service/serviceAgreement?id=17
Motorspezifikationen
1.1 Erscheinung und Installationsmaße
1.2 Standardnutzungsstatus
1.2.1 Nennspannung: 24 VDC
1.2.2 Betriebs spannungsbereich: 16V—28 VDC
1.2.3 Nennlast (CW): 4 N.m
1.2.4 Laufrichtung: CW/CCW aus der Richtung der Welle betrachtet
1.2.5 Benutzungsposition: Die Achsrichtung ist horizontal oder vertikal
1.2.6 Standardbetriebstemperatur: 25±5°C
1.2.7 Betriebstemperaturbereich: -20 ~ 50°C
1.2.8 Standardbetriebsfeuchtigkeit: 65%
1.2.9 Betriebliche Luftfeuchtigkeitsspanne: 5 ~ 85 %, keine Kondensation
1.2.10 Lagertemperaturbereich: -30 ~ 70°C
1.2.11 Isolationsniveau: Klasse B
1.3 Elektrische Eigenschaften
1.3.1 Leerlaufdrehzahl: 296 U/min±10%
1.3.2 Leerlaufstrom: 0,5 Arms
1.3.3 Nennlast: 4 N.m
1.3.4 Nennlastdrehzahl: 240 U/min ±10% 1.3.5 Nennlaststrom (Spitze): 6,5 A ±10% 1.3.6 Spitzenlast: 12 N·m
1.3.7 Spitzenstrom (Spitzenwert): 23A±10%
1.3.8 Isolationswiderstand/Statorwicklung: DC 500VAC, 100M Ohm 1.3.9 Hochspannungswiderstand/Stator und Gehäuse: 600 VAC, 1s, 2mA 1.3.10 Rückelektromotorische Kraft des Motors: 0,054-0,057Vrms/Umin
1.3.11 Leitungswiderstand: 0,45Ω±10%
1.3.12 Drehmomentkonstante: 0,87 N.m/Arms
1.3.13 Motorinduktivität: 187-339μH
1.3.14 T-N-Kurve
1.3.15 Maximale Überlastkurve Prüfbedingungen:
Umgebungstemperatur: 25°C
Wickelgrenztemperatur: 120°C
Geschwindigkeit: 24 U/min
Maximallastkurve
Maximale Überlastzeit (s) vs Drehmoment (N.m)
Testdaten
Belastung | Betriebszeit (s) |
12 | 28 |
11 | 45 |
10 | 60 |
9 | 90 |
8 | 160 |
7 | 320 |
6 | 700 |
5 | 1800 |
4.5 | 2500 |
4 | bewertet |
1.4 Mechanische Eigenschaften
1.4.1 Gewicht: 317g±3g
1.4.2 Anzahl der Pole: 28 Pole 1.4.3 Anzahl der Phasen: 3 Phasen
1.4.4 Fahrmodus: FOC
1.4.5 Übersetzungsverhältnis: 7,75:1
Produktinformationen bereitstellen
2.1 Einführung des Fahrerauftritts & Produktspezifikationen
24V-Netzteil und integriertes Terminal für CAN-Kommunikation;
Hardware-Version und Lasergravur-QR-Code;
MCU-Download-Port;
CAN-Kommunikationstestpunkt;
Kontrollleuchte;
Installationslöcher; 7. "C, A, B" sind die Schweißpunkte der Dreiphasenwicklung;
Produktspezifikationen
Nennbetriebsspannung | 24VDC |
Maximal zulässige Spannung | 28VDC |
Nennbetriebsstrom | 6,5A |
Maximal zulässiger Strom | 23A |
Standby-Stromverbrauch | ≤18 mA |
CAN-Bus-Bitrate | 1 Mbit/s |
Größe | Φ58 mm |
Arbeitsumgebungstemperatur | -20°C 50°C |
Maximale Temperatur, die vom Steuerungsboard erlaubt ist | 80°C |
Encoderauflösung | 14-Bit (Einzelrunde Absolutwert) |
2.2 Definition der Treiberoberfläche
2.2.1 Treiber-Schnittstellendiagramm
2.2.2 Empfohlene Marken und Modelle von Schnittstellen für Laufwerke
# | Board-Modell | Markenhersteller | Linienende-Modell | Markenhersteller |
1 | XT30PB(2+2)-M.G.B | AMASS (AMS) | XT30(2+2)-F.G.B | AMASS (AMS) |
2 | 2,0mm-2P Buchse | / | 2,0mm-2P Stecker | / |
3 | 2,54mm-4P Buchse | / | 2,54mm-4P Stecker | / |
2.2.3 Definition der Treiber-Schnittstellenpins
Stromversorgung und CAN-Kommunikationsanschluss
CAN-Kommunikationstestpad
Download-Port
# | Schnittstellenfunktion | STIFT | Beschreibung |
1 | Leistung und CAN-Kommunikation | 1 | Stromversorgung positiv (+) |
2 | Negativer Pol der Stromversorgung (-) | ||
3 | CAN-Kommunikation Niederspannung CAN_L | ||
4 | CAN-Kommunikation High Side CAN_H | ||
2 | CAN-Kommunikationstestpunkt | 1 | CAN-Kommunikation Niederspannung CAN_L |
2 | CAN-Kommunikation High Side CAN_H | ||
3 | Download-Port | 1 | SWDIO (Daten) |
2 | SWCLK(Uhr) | ||
3 | 3V3 (positiv 3,3 V) | ||
4 | GND (negative Masse) |
2.3 Definition des Fahrers Kontrollleuchte
Blaue Signalleuchte und rote Stromanzeigeleuchte
Definition der Anzeigeleuchte
Stromanzeigeleuchte (rote Leuchte, wenn eingeschaltet) | Die Stromanzeige wird verwendet, um die 3,3V-Stromversorgung des MCU anzuzeigen. Wenn die Gesamtstromversorgung 24V beträgt, leuchtet das Licht rot, was beweist, dass das gesamte Netzwerk normal mit Strom versorgt wird. Wenn die Stromversorgung 24V beträgt, leuchtet die Anzeige nicht und die Stromversorgung muss sofort abgeschaltet werden. |
Signalanzeigeleuchte (blaue Leuchte bei eingeschaltet) | Wenn das Signallicht blinkt, beweist dies, dass der MCU normal läuft und der Treiberchip normal funktioniert. |
2.4 Hauptkomponenten und Spezifikationen
# | Komponententyp | Modell | Menge |
1 | MCU-Chip | GD32F303RET6 | 1 Stück |
2 | Treiberchip | 6EDL7141 | 1 Stück |
3 | Magnetischer Encoder-Chip | AS5047P | 1 Stück |
4 | Thermistor | NXFT15XH103FEAB021/NCP18XH103F03RB | 2 STK |
5 | Leistungs-MOS | JMGG031V06A | 6 Stück |
Debugger-Benutzungsanweisungen (scannen Sie die QR-Code am Ende des Handbuchs, um den Debugger zu erhalten)
3.1 Hardwarekonfiguration
Der gemeinsame Motor verwendet die CAN-Kommunikation. Es gibt zwei Kommunikationsleitungen, die über ein CAN-zu-USB-Werkzeug mit dem Debugger verbunden sind. Der Debugger muss im Voraus den CH340-Treiber installieren und arbeitet standardmäßig im AT-Modus.
Es sollte beachtet werden, dass wir den Debugger auf der Grundlage eines spezifischen CAN-zu-USB-Tools entwickelt haben, daher müssen wir unser empfohlenes serielles Port-Tool für das Debugging verwenden. Wenn Sie es auf andere Debugger-Plattformen portieren möchten, können Sie auf Kapitel 3 des Handbuchs verweisen. Entwicklung.
Das CAN-zu-USB-Tool empfiehlt die Verwendung des USB-CAN-Moduls von YourCee. Der Rahmenkopf, der dem seriellen Protokoll entspricht, ist 41 54 und der Rahmenende ist 0D 0A.
3.2 Debugger-Schnittstelle und Beschreibung
umfassen im Wesentlichen:
A. Modulauswahl
-
Gerätemodul
-
Konfigurationsmodul
-
Modul „Analyse“
-
Hilfemodul
B. Auswahl der Untermodule Die Ausrüstungs-Module umfassen
-
Elektrische Geräte anschließen oder trennen
-
Informationen über Motorgeräte
-
Motorencoder-Kalibrierung
-
Motor-CAN-ID ändern
-
Stellen Sie die mechanische Nullposition des Motors ein.
-
Motorprogramm-Upgrade
Konfigurationsmodule umfassen:
-
Parametertabelle, Sie können die Motorparameter anzeigen und ändern.
-
Parameter hochladen. Sie können die Parameter im Motor in die Parametertabelle hochladen.
-
Parameter herunterladen. Sie können die Daten aus der Parametertabelle auf den Motor herunterladen.
-
Exportparameter. Sie können die Daten aus der Parameter-Tabelle lokal herunterladen.
-
Werkseinstellungen zurücksetzen, Sie können die Daten in der Parametertabelle auf die Werkseinstellungen zurücksetzen.
-
Klare Warnung, Sie können Motorfehler wie übermäßige Temperatur usw. löschen.
Analysemodule umfassen:
-
Oszilloskop zur Anzeige von Parameteränderungen über die Zeit
-
Frequenz, Sie können die Frequenz der Datenansicht anpassen.
-
Kanal, Sie können die anzuzeigenden Daten konfigurieren.
-
Zeichnen starten und stoppen
-
Ausgangswellenformdaten lokal ausgeben
Hilfemodule umfassen:
-
Gebrauchsanweisung, Sie können das Handbuch öffnen.
-
Über, Sie können Softwareinformationen anzeigen
C. Motorinformationen Abfrage
-
Geräteinformation
-
Parametertabelleninformationen
D. Datenspalte
-
Protokollinformationen
-
Kommunikationsinformationen
E. Führen Sie den Debugging-Bereich aus
-
Gerät auswählen
-
Bequemer Bedienbereich, Sie können die Vorwärts- und Rückwärtsdrehung des Motors schnell steuern.
-
Bewegungssteuerungsbereich, der den Motor steuern kann, um in verschiedenen Modi zu arbeiten.
F. Untermodulanzeigebereich
3.3 Motoreinstellungen
3.3.1 Motoranschluss Einstellungen
Verbinden Sie die Dose mit dem USB-Werkzeug (installieren Sie den ch340-Treiber, arbeitet standardmäßig im AT-Modus), wählen Sie das Gerätemodul aus, klicken Sie auf das Verbindungsuntermodul und wählen Sie den entsprechenden seriellen Anschluss aus.
3.3.2 Grundeinstellungen
Ändern Sie die Motor-ID-Nummer.
-
Die Kalibrierung des magnetischen Flechtens des Motors, das Wiederanbringen der Motorplatine und des Motors oder das Wiederverbinden der Motorleitungen in einer anderen Reihenfolge usw. erfordern eine erneute Kalibrierung des magnetischen Flechtens.
-
Setzen Sie die Nullposition (verloren im Falle eines Stromausfalls) und setzen Sie die aktuelle Position auf 0.
-
Motorprogramm-Upgrade. Wenn das Motorprogramm aktualisiert wird, klicken Sie auf die Upgrade-Schaltfläche, um die Upgrade-Datei auszuwählen.
3.3.3 Parameterliste
Nachdem der Motor erfolgreich verbunden wurde, klicken Sie im Konfigurationsmodul auf das Parameter-Tabellenmodul, und alle Parameter werden im Protokoll angezeigt. Das Laden war erfolgreich, was darauf hinweist, dass die relevanten Parameter des Motors erfolgreich gelesen wurden (Hinweis: Die Parameter-Tabelle muss sich im Standby-Zustand des Motors befinden. Konfigurieren Sie im Zustand, wenn sich der Motor im Betriebszustand befindet, kann die Parameter-Tabelle nicht aktualisiert werden). Die Schnittstelle zeigt die elektrischen relevanten Parameter des Motors an. Die blauen Parameter sind die internen Speicherparameter des Motors. Sie sind direkt nach den entsprechenden Parametern zu finden. Ändern Sie die Spalte "Vorheriger Wert". Klicken Sie auf "Parameter herunterladen", um die Parameter im Debugger auf den Motor herunterzuladen. Klicken Sie auf "Hochladen". Parameter können die Parameter im Motor in den Debugger hochladen. Die grünen Parameter des Motors sind Beobachtungsparameter, die gesammelten Parameter können in Echtzeit beobachtet werden.
Hinweis: Bitte ändern Sie nicht willkürlich das Drehmomentlimit des Motors, die Schutztemperatur und die Übertemperaturzeit. Aufgrund illegaler Handlungen in diesem Buch, wenn das Produkt Schäden am menschlichen Körper oder irreversible Schäden an Gelenken verursacht, übernimmt unser Unternehmen keine rechtliche Verantwortung für irgendwelche rechtlichen Konsequenzen.
Parametertabelle
Funktionscode | Name | Parametertyp | Eigenschaften | Maximalwert | Mindestwert | Aktueller Wert (zur Referenz) | Anmerkung |
0x0000 | Name | Zeichenfolge | Lesen/Schreiben | ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ | |||
0x0001 | BarCode | Zeichenfolge | Lesen/Schreiben | ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ | |||
0x1000 | BootCodeVersion | Zeichenfolge | schreibgeschützt | 0.1.5 | |||
0x1001 | BootBuildDate | Zeichenfolge | schreibgeschützt | 16. März 2022 | |||
0x1002 | BootBuildTime | Zeichenfolge | schreibgeschützt | 20:22:09 | |||
0x1003 | AppCodeVersion | Zeichenfolge | schreibgeschützt | 0.1.5 | Versionsnummer des Motorprogramms | ||
0x1004 | AppGitVersion | Zeichenfolge | schreibgeschützt | 7b844b0fM | |||
0x1005 | AppBuildDate | Zeichenfolge | schreibgeschützt | 14. April 2022 | |||
0x1006 | AppBuildTime | Zeichenfolge | schreibgeschützt | 20:30:22 | |||
0x1007 | AppCodeName | Zeichenfolge | schreibgeschützt | dog_motor | |||
0x2000 | echoPara1 | uint16 | Aufbau | 74 | 5 | 5 | |
0x2001 | echoPara2 | uint16 | Aufbau | 74 | 5 | 5 | |
0x2002 | echoPara3 | uint16 | Aufbau | 74 | 5 | 5 | |
0x2003 | echoPara4 | uint16 | Aufbau | 74 | 5 | 5 | |
0x2004 | echoFreHz | uint32 | Lesen/Schreiben | 10000 | 1 | 500 | |
0x2005 | MechOffset | schweben | aufstellen | 7 | -7 | 4.619583 | Motor magnetischer Encoder Winkelversatz |
0x2006 | MechPos_init | schweben | Lesen/Schreiben | 50 | -50 | 4.52 | Referenzwinkel während der ersten Mehrfachumdrehung |
0x2007 | limit_torque | schweben | Lesen/Schreiben | 12 | 0 | 12 | Drehmomentbegrenzung |
0x2008 | I_FW_MAX | schweben | Lesen/Schreiben | 33 | 0 | 0 | Feldschwächungsstromwert, Standard 0 |
0x2009 | motor_index | uint8 | aufstellen | 20 | 0 | 1 | Motorindex, markiert die Position des Motorantriebs |
0X200a | CAN-ID | uint8 | aufstellen | 127 | 0 | 1 | Diese Knoten-ID |
0x200b | CAN_MASTER | uint8 | aufstellen | 127 | 0 | 0 | kann ID hosten |
0x200c | CAN_TIMEOUT | uint32 | Lesen/Schreiben | 100000 | 0 | 0 | Kann Timeout-Schwelle, Standard 0 |
0x200d | Motorübertemperatur | int16 | Lesen/Schreiben | 1500 | 0 | 800 | Motorschutztemperaturwert, temp (Grad) *10 |
0x200e | Übertemperaturzeit | uint32 | Lesen/Schreiben | 1000000 | 1000 | 20000 | Übertemperaturzeit |
0x200f | Übersetzungsverhältnis | schweben | Lesen/Schreiben | 64 | 1 | 7.75 | Übersetzungsverhältnis |
0x2010 | Tq_caliType | uint8 | Lesen/Schreiben | 1 | 0 | 1 | Drehmomentkalibrierungsmethoden-Einstellung |
0x2011 | cur_filt_gain | schweben | Lesen/Schreiben | 1 | 0 | 0.9 | Aktuelle Filterparameter |
0x2012 | cur_kp | schweben | Lesen/Schreiben | 200 | 0 | 0.025 | Aktuelle kp |
0x2013 | cur_ki | schweben | Lesen/Schreiben | 200 | 0 | 0.0258 | elektrischer Strom ki |
0x2014 | spd_kp | schweben | Lesen/Schreiben | 200 | 0 | 2 | Geschwindigkeit kp |
0x2015 | spd_ki | schweben | Lesen/Schreiben | 200 | 0 | 0.021 | Geschwindigkeit ki |
0x2016 | loc_kp | schweben | Lesen/Schreiben | 200 | 0 | 30 | Standort kp |
0x2017 | spd_filt_gain | schweben | Lesen/Schreiben | 1 | 0 | 0.1 | Geschwindigkeitsfilterparameter |
0x2018 | limit_spd | schweben | Lesen/Schreiben | 200 | 0 | 2 | Positionsmodus Geschwindigkeitsbegrenzung |
0x2019 | limit_cur | schweben | Lesen/Schreiben | 23 | 0 | 23 | Position, Geschwindigkeitsmodus Stromgrenze |
0x3000 | Zeitnutzung0 | uint16 | schreibgeschützt (Computing) | 5 | |||
0x3001 | Zeitnutzung1 | uint16 | schreibgeschützt (Computing) | 0 | |||
0x3002 | Zeitnutzung2 | uint16 | schreibgeschützt (Computing) | 10 | |||
0x3003 | Zeitverbrauch3 | uint16 | schreibgeschützt (Computing) | 0 | |||
0x3004 | EncoderRaw | uint16 | schreibgeschützt (Computing) | 11396 | Magnetischer Encoder Beispielwert | ||
0x3005 | mcuTemp | int16 | schreibgeschützt (Computing) | 337 | mcu interne Temperatur *10 | ||
0x3006 | Motortemperatur | int16 | schreibgeschützt (Computing) | 333 | Motor NTC-Temperatur *10 | ||
0x3007 | vBus(mv) | uint16 | schreibgeschützt (Computing) | 24195 | Sammelschienenspannung | ||
0x3008 | adc1Offset | int32 | schreibgeschützt (Computing) | 2084 | adc Abtastkanal 1 Nullstrombias | ||
0x3009 | adc2Offset | int32 | schreibgeschützt (Computing) | 2084 | adc-Probenkanal 2 Nullstrombias | ||
0x300a | adc1Raw | uint16 | schreibgeschützt (Computing) | 1232 | adc Abtastwert 1 | ||
0x300b | adc2Raw | uint16 | schreibgeschützt (Computing) | 1212 | adc Abtastwert 2 | ||
0x300c | VBUS | schweben | schreibgeschützt (Computing) | 24.195 | Sammelschienenspannung V | ||
0x300d | Befehls-ID | schweben | schreibgeschützt (Computing) | 0 | ID-Ring-Befehl, A | ||
0x300e | cmdIq | schweben | schreibgeschützt (Computing) | 0 | iq ring befehl, A | ||
0x300f | cmdlocref | schweben | schreibgeschützt (Computing) | 0 | Positionsschleifenbefehl, rad | ||
0x3010 | Befehlszeilentool | schweben | schreibgeschützt (Computing) | 0 | Geschwindigkeitsregelungsbefehl, rad/s | ||
0x3011 | cmdTorque | schweben | schreibgeschützt (Computing) | 0 | Drehmomentbefehl, nm | ||
0x3012 | cmdPos | schweben | schreibgeschützt (Computing) | 0 | mit Protokollwinkelbefehl | ||
0x3013 | BefehlVel | schweben | schreibgeschützt (Computing) | 0 | mit Protokollgeschwindigkeitsanzeige virtuos | ||
0x3014 | Drehung | int16 | schreibgeschützt (Computing) | 1 | Anzahl der Runden | ||
0x3015 | modPos | schweben | schreibgeschützt (Computing) | 4.363409 | Motor nicht berechneter mechanischer Winkel, rad | ||
0x3016 | mechPos | schweben | schreibgeschützt (Computing) | 0.777679 | Lastseitige Schleifenzählmaschine Winkel, rad | ||
0x3017 | mechVel | schweben | schreibgeschützt (Computing) | 0.036618 | Lade-Seitenlenkgeschwindigkeit, rad/s | ||
0x3018 | elektrPos | schweben | schreibgeschützt (Computing) | 4.714761 | Elektrischer Winkel | ||
0x3019 | Es | schweben | schreibgeschützt (Computing) | 0 | U Leitungsstrom, A | ||
0x301a | eins | schweben | schreibgeschützt (Computing) | 0 | V Leitungsstrom, A | ||
0x301b | ic | schweben | schreibgeschützt (Computing) | 0 | W Leitungsstrom, A | ||
0x301c | Tick | uint32 | schreibgeschützt (Computing) | 31600 | |||
0x301d | phaseOrder | uint8 | schreibgeschützt (Computing) | 0 | Kalibrierungsrichtungsmarkierungen | ||
0x301e | iqf | schweben | schreibgeschützt (Computing) | 0 | iq Filterwert, A | ||
0x301f | BrettTemp | int16 | schreibgeschützt (Computing) | 359 | Temperatur an Bord, *10 | ||
0x3020 | iq | schweben | schreibgeschützt (Computing) | 0 | iq ursprünglicher Wert, A | ||
0x3021 | Ausweis | schweben | schreibgeschützt (Computing) | 0 | id Ursprünglicher Wert, A | ||
0x3022 | FehlerSta | uint32 | schreibgeschützt (Computing) | 0 | Fehlerstatuswert | ||
0X3023 | warnSta | uint32 | schreibgeschützt (Computing) | 0 | Warnstatuswert | ||
0x3024 | drv_fault | uint16 | schreibgeschützt (Computing) | 0 | Treiber-Chip-Fehlerwert | ||
0x3025 | drv_temp | int16 | schreibgeschützt (Computing) | 48 | Treiber-Chip-Temperaturwert, Grad | ||
0x3026 | Uq | schweben | schreibgeschützt (Computing) | 0 | q Achsenspannung | ||
0x3027 | Aus | schweben | schreibgeschützt (Computing) | 0 | d Achsenspannung | ||
0x3028 | dtc_u | schweben | schreibgeschützt (Computing) | 0 | U-Phasen-Ausgangs-Duty-Cycle | ||
0x3029 | dtc_v | schweben | schreibgeschützt (Computing) | 0 | V-Phasen-Ausgangs-Duty-Cycle | ||
0x302a | dtc_w | schweben | schreibgeschützt (Computing) | 0 | W-Phasen-Ausgangs-Duty-Cycle | ||
0x302b | v_bus | schweben | schreibgeschützt (Computing) | 24.195 | VBus im geschlossenen Regelkreis | ||
0x302c | v_ref | schweben | schreibgeschützt (Computing) | 0 | Geschlossene Schleifen vq,vd Synthese Eingangsspannung | ||
0x302d | torque_fdb | schweben | schreibgeschützt (Computing) | 0 | Drehmomentrückmeldungswert, nm | ||
0x302e | rated_i | schweben | schreibgeschützt (Computing) | 8 | Motornennstrom | ||
0x302f | limit_i | schweben | schreibgeschützt (Computing) | 27 | Motor maximaler Stromgrenzwert |
3.3.4 Oszilloskop
Diese Schnittstelle unterstützt die Anzeige und Beobachtung des durch Echtzeitdaten generierten Graphen. Die beobachtbaren Daten umfassen Motor Id/Iq-Strom, Temperatur, aktuelle Geschwindigkeit, Rotor (Encoder)-Position, Ausgangsposition usw.
Klicken Sie im Analysemodul auf das Oszilloskopmodul, wählen Sie die entsprechenden Parameter im Kanal aus (für die Bedeutungen der Parameter siehe 3.3.3), stellen Sie die Ausgangsfrequenz ein und klicken Sie auf "Start Zeichnen", um das Datenspektrum zu beobachten. Klicken Sie auf "Zeichnen stoppen", um die Beobachtung des Spektrums zu beenden.
3.4 Kontrolldemo
Joggen laufen:
Stellen Sie die maximale Geschwindigkeit ein, klicken Sie auf Ausführen und dann auf JOG, um den Motor vorwärts und rückwärts zu betreiben.
Steuermoduswechsel:
Der Motorsteuerungsmodus kann in die Bewegungsmodus-Oberfläche umgewandelt werden.
3.4.1 Nullpunktmodus
Klicken Sie auf den Schalter auf der rechten Seite, und der Motor wird langsam in die mechanische Nullposition zurückkehren.
3.4.2 Betriebssteuerungsmodus
Klicken Sie auf die Schaltfläche rechts, setzen Sie dann die fünf Parameterwerte, klicken Sie auf Start oder Kontinuierliches Senden, der Motor kehrt zum Rückmeldungsrahmen zurück und läuft gemäß der Zielanweisung; klicken Sie erneut auf die Schaltfläche rechts und der Motor stoppt.
3.4.2 Aktueller Modus
Schalten Sie den aktuellen Modus manuell um, klicken Sie auf die Schaltfläche rechts, und setzen Sie dann den Iq-Strombefehlwert. Starten oder senden Sie kontinuierlich, der Motor folgt dem Strombefehl. Klicken Sie erneut auf die Schaltfläche rechts, der Motor stoppt.
Klicken Sie auf die Schaltfläche auf der rechten Seite des Steuerungsmodus, geben Sie die Amplitude und Frequenz des sinusförmigen automatischen Tests ein, und klicken Sie dann auf die Schaltfläche auf der rechten Seite des sinusförmigen automatischen Tests. Der IQ (A) des Motors wird entsprechend der festgelegten Amplitude und Frequenz laufen.
3.4.3 Geschwindigkeitsmodus
Wechseln Sie manuell in den Geschwindigkeitsmodus, klicken Sie auf die Schaltfläche rechts, und setzen Sie dann den Geschwindigkeitsbefehl (-30~30rad/s). Starten oder senden Sie kontinuierlich, der Motor folgt dem Geschwindigkeitsbefehl. Klicken Sie erneut auf die Schaltfläche rechts, der Motor stoppt.
3.4.4 Standortmodus
Schalten Sie manuell den Positionsmodus um, klicken Sie auf die Schaltfläche rechts, und setzen Sie dann den Positionsbefehlwert (rad). Starten oder senden Sie kontinuierlich, der Motor folgt dem Zielpositionsbefehl. Klicken Sie erneut auf die Schaltfläche rechts, der Motor stoppt. Sie können die maximale Geschwindigkeit der Positionsverfolgung ändern, indem Sie die Geschwindigkeit einstellen.
Klicken Sie auf die Schaltfläche auf der rechten Seite des Steuerungsmodus, geben Sie die Amplitude und Frequenz des sinusbasierten automatischen Tests ein und klicken Sie dann auf die Schaltfläche auf der rechten Seite des sinusbasierten automatischen Tests. Die Motorposition (rad) wird entsprechend der festgelegten Amplitude und Frequenz ausgeführt.
3.5 Firmware-Update
Der erste Schritt besteht darin, das Upgrade des Gerätemoduls zu klicken und die zu brennende Bin-Datei auszuwählen; der zweite Schritt besteht darin, das Upgrade zu bestätigen, und der Motor beginnt mit der Aktualisierung der Firmware. Nach Abschluss des Fortschritts wird das Motor-Update abgeschlossen und er wird automatisch neu gestartet.
Fahrerkommunikationsprotokoll und Gebrauchsanweisungen
Die Motorcommunication ist eine CAN 2.0 Kommunikationsschnittstelle mit einer Baudrate von 1 Mbps und einem erweiterten Rahmenformat, wie gezeigt.
Datenfeld | 29-Bit-ID | 8 Byte Datenbereich | ||
Größe | Bit 28 ~ 24 | Bit 23 ~ 8 | Bit 7 ~ 0 | Byte 0 ~ 7 |
Beschreibung | Kommunikationstyp | Datumsbereich 2 | Zieladresse | Datenbereich 1 |
Die von dem Motor unterstützten Steuerungsmodi umfassen:
-
Betriebssteuerungsmodus: fünf Parameter für die Motorbetriebssteuerung angegeben;
-
Aktueller Modus: gegeben den angegebenen Iq-Strom des Motors;
-
Geschwindigkeitsmodus: gegeben die angegebene Betriebsdrehzahl des Motors;
-
Positionsmodus: Bei einer angegebenen Position des Motors wird der Motor zur angegebenen Position fahren;
4.1 Beschreibung des Typs des Kommunikationsprotokolls
4.1.1 Geräte-ID abrufen (Kommunikationstyp 0); Holen Sie sich die ID des Geräts und die 64-Bit-MCU-eindeutige Kennung.
Anforderungsrahmen:
Datenfeld | 29-Bit-ID | 8 Byte Datenbereich | ||
Position | Bit 28 ~ 24 | Bit 23 ~ 8 | Bit 7 ~ 0 | Byte 0 ~ 7 |
Beschreibung | 0 | Bit 15 ~ 8: Host CAN_ID | Motor-CAN-ID | 0 |
Antwortrahmen:
Datenfeld | 29-Bit-ID | 8 Byte Datenbereich | ||
Position | Bit 28 ~ 24 | Bit 23 ~ 8 | Bit 7 ~ 0 | Byte 0 ~ 7 |
Beschreibung | 0 | Motor-CAN-ID | OS-Version: | 64-Bit-MCU-eindeutige Kennung |
4.1.2 Motorsteuerungsanweisungen (Kommunikationstyp 1) im Betriebssteuerungsmodus werden verwendet, um Steueranweisungen an den Motor zu senden.
Anforderungsrahmen:
Datenfeld | 29-Bit-ID | 8 Byte Datenbereich | ||
Position | Bit 28 ~ 24 | Bit 23 ~ 8 | Bit 7 ~ 0 | Byte 0 ~ 7 |
Beschreibung | 1 | Byte 2: Drehmoment (0 ~ 65535) entsprechend (- 12Nm ~ 12Nm) | Motor-CAN-ID | Byte 0 ~ 1: Zielwinkel [0 ~ 65535], der (-4π ~ 4π) entspricht Byte 2 ~ 3: Zielwinkelgeschwindigkeit [0 ~ 65535] entspricht (- 30rad/s ~ 30rad/s) Byte 4 ~ 5: Kp [0 ~ 65535] entspricht (0.0 ~ 500.0) Byte 6 ~ 7: Kd [0 ~ 65535] entspricht (0.0 ~ 5.0) |
Antwortrahmen: Antwortmotor-Feedbackrahmen (siehe Kommunikationstyp 2)
4.1.3 Motorfeedbackdaten (Kommunikationstyp 2) werden verwendet, um den Betriebsstatus des Motors an den Host zurückzumelden.
Datenfeld | 29-Bit-ID | 8 Byte Datenbereich | ||
Position | Bit 28 ~ 24 | Bit 23 ~ 8 | Bit 7 ~ 0 | Byte 0 ~ 7 |
Beschreibung | 2 | Bit 8 ~ 15: Motor CAN-ID Bit 21 ~ 16: Fehlerinformation (0 - Nein, 1 - Ja) Bit 21: nicht kalibriert Bit 20: HALL-Codierungsfehler Bit 19: Magnetische Kodierungsfehler Bit 18: Übertemperatur Bit 17: Überstrom Bit 16: Unterspannungsfehler Bit 22 ~ 23: Modusstatus: 0: Reset-Modus [reset] 1: Coole Modi [Calibration] 2: Motormodus [Run] |
Host-CAN-ID | Byte 0 ~ 1: Aktueller Winkel [0 ~ 65535] entspricht (-4π ~ 4π) Byte 2 ~ 3: Aktuelle Winkelgeschwindigkeit [0 ~ 65535] entspricht (-30rad/s ~ 30rad/s) Byte 4 ~ 5: Aktuelles Drehmoment [0 ~ 65535] entspricht (-12Nm ~ 12Nm) Byte 6 ~ 7: Aktuelle Temperatur: Temp (Grad Celsius) )*10 |
4.1.4 Motorbetrieb aktivieren (Kommunikationstyp 3)
Datenfeld | 29-Bit-ID | 8 Byte Datenbereich | ||
Position | Bit 28 ~ 24 | Bit 23 ~ 8 | Bit 7 ~ 0 | Byte 0 ~ 7 |
Beschreibung | 3 | Bit 15 ~ 8: Host CAN_ID | Motor-CAN-ID |
Antwortrahmen: Antwortmotor-Feedbackrahmen (siehe Kommunikationstyp 2)
4.1.5 Motor gestoppt (Kommunikationstyp 4)
Datenfeld | 29-Bit-ID | 8 Byte Datenbereich | ||
Position | Bit 28 ~ 24 | Bit 23 ~ 8 | Bit 7 ~ 0 | Byte 0 ~ 7 |
Beschreibung | 4 | Bit 15 ~ 8: Host CAN_ID | Motor-CAN-ID | Während des normalen Betriebs muss der Datenbereich auf 0 zurückgesetzt werden; Wenn Byte[0]=1: Fehler zurücksetzen; |
Antwortrahmen: Antwortmotor-Feedbackrahmen (siehe Kommunikationstyp 2)
4.1.6 Das Einstellen der mechanischen Nullposition des Motors (Kommunikationstyp 6) setzt die aktuelle Motorposition auf die mechanische Nullposition (verloren nach einem Stromausfall).
Datenfeld | 29-Bit-ID | 8 Byte Datenbereich | ||
Position | Bit 28 ~ 24 | Bit 23 ~ 8 | Bit 7 ~ 0 | Byte 0 ~ 7 |
Beschreibung | 6 | Bit 15 ~ 8: Host CAN_ID | Motor-CAN-ID | Byte[0]=1 |
Antwortrahmen: Antwortmotor-Feedbackrahmen (siehe Kommunikationstyp 2)
4.1.7 Setzen Sie die Motor-CAN_ID (Kommunikationstyp 7), um die aktuelle Motor-CAN_ID zu ändern, die sofort wirksam wird.
Datenfeld | 29-Bit-ID | 8 Byte Datenbereich | ||
Position | Bit 28 ~ 24 | Bit 23 ~ 8 | Bit 7 ~ 0 | Byte 0 ~ 7 |
Beschreibung | 7 | Bit 15 ~ 8: Host CAN_ID Bit 16 ~ 23: Neue Motor CAN_ID |
Motor-CAN-ID | Byte[0]=1 |
Antwortrahmen: Antwortmotor-Broadcast-Rahmen (siehe Kommunikationstyp 0)
4.1.8 Einzelparameterlesung (Kommunikationstyp 17)
Datenfeld | 29-Bit-ID | 8 Byte Datenbereich | ||
Position | Bit 28 ~ 24 | Bit 23 ~ 8 | Bit 7 ~ 0 | Byte 0 ~ 7 |
Beschreibung | 17 | Bit 15 ~ 8: Host CAN_ID | Motor-CAN-ID | Byte 0 ~ 1: Index, siehe 4.1.11 für Parameterliste Byte 2 ~ 3: 00 Byte 4 ~ 7: 00 |
Antwortrahmen:
Datenfeld | 29-Bit-ID | 8 Byte Datenbereich | ||
Position | Bit 28 ~ 24 | Bit 23 ~ 8 | Bit 7 ~ 0 | Byte 0 ~ 7 |
Beschreibung | 17 | Bit 15 ~ 8: Motor CAN_ID | Host-CAN-ID | Byte 0 ~ 1: Index, für Parameterliste siehe 4.1.11 Byte 2 ~ 3: 00 Byte 4 ~ 7: Parameterdaten, 1 Byte Daten befinden sich in Byte 4 |
4.1.9 Einzelparameter-Schreibung (Kommunikationstyp 18) (nach Stromausfall verloren)
Datenfeld | 29-Bit-ID | 8 Byte Datenbereich | ||
Position | Bit 28 ~ 24 | Bit 23 ~ 8 | Bit 7 ~ 0 | Byte 0 ~ 7 |
Beschreibung | 18 | Bit 15 ~ 8: Host CAN_ID | Motor-CAN-ID | Byte 0 ~ 1: Index, siehe 4.1.11 für Details zur Parameterliste Byte 2 ~ 3: 00 Byte 4 ~ 7: Parameterdaten |
Antwortrahmen: Antwortmotor-Feedbackrahmen (siehe Kommunikationstyp 2)
4.1.10 Fehlerfeedbackrahmen (Kommunikationstyp 21)
Datenfeld | 29-Bit-ID | 8 Byte Datenbereich | ||
Position | Bit 28 ~ 24 | Bit 23 ~ 8 | Bit 7 ~ 0 | Byte 0 ~ 7 |
Beschreibung | 21 | Bit 15 ~ 8: Host CAN_ID | Motor-CAN-ID | Byte 0 ~ 3: Fehlerwert (nicht 0: Fehler, 0: normal) Bit 16: Eine Phasenstrom-Sampling-Überstrom Bit 15 ~ 8: Überlastfehler Bit 7: Encoder nicht kalibriert Bit 5: C-Phasenstrom-Sampling-Überstrom Bit 4: B-Phasenstrommessung Überstrom Bit 3: Überspannungsfehler Bit 2: Unterspannungsfehler Bit 1: Treiberchipfehler Bit 0: Motorübertemperaturfehler, Standard 80 Grad Byte 4 ~ 7: Warnwert Bit 0: Motorübertemperaturwarnung, Standard 75 Grad |
4.1.11 Baudrateänderung (Kommunikationstyp 22) (Version 1.2.1.5 kann geändert werden, bitte beachten Sie den Dokumentenprozess, um dies sorgfältig zu ändern. Betriebsfehler können Probleme verursachen, wie z.B. die Unfähigkeit, eine Verbindung zum Motor herzustellen und die Unfähigkeit, ein Upgrade durchzuführen.)
Datenfeld | 29-Bit-ID | 8 Byte Datenbereich | ||
Position | Bit 28 ~ 24 | Bit 23 ~ 8 | Bit 7 ~ 0 | Byte 0 ~ 7 |
Beschreibung | 22 | Bit 15 ~ 8: Host CAN_ID | Motor-CAN-ID | Byte0: Motor-Baudrate 1: 1 Mbit/s 2: 500 kbps 3: 250 kbit/s 4: 125 kbit/s |
Antwortrahmen: Antwortmotor-Broadcast-Rahmen (siehe Kommunikationstyp 0)
4.1.12 Lesbare und beschreibbare Einzelparameterliste (7019-7020 ist lesbar durch Firmware-Version 1.2.1.5)
Parameterindex | Parametername | beschreiben | Typ | Anzahl der Bytes | Mögliche Werte | Erlaubnis |
0x7005 | run_mode | 0: Betriebssteuerungsmodus 1: Positionsmodus 2: Geschwindigkeitsmodus 3: Aktueller Modus |
uint8 | 1 | W/R | |
0x7006 | iq_ref | Aktueller Modus Iq-Befehl | schweben | 4 | -23 bis 23 A | W/R |
0x700A | spd_ref | Geschwindigkeitsmodus Geschwindigkeitsbefehl | schweben | 4 | -30 bis 30 rad/s | W/R |
0x700B | limit_torque | Drehmomentbegrenzung | schweben | 4 | 0~12Nm | W/R |
0x7010 | cur_kp | Kp des Stroms | schweben | 4 | Standardwert 0,125 | W/R |
0x7011 | cur_ki | Aktueller Schlüssel | schweben | 4 | Standardwert 0,0158 | W/R |
0x7014 | cur_filt_gain | Aktueller Filterkoeffizient filt_gain | schweben | 4 | 0~1.0, Standardwert W/R 0.1 | W/R |
0x7016 | loc_ref | Positionsmodus Winkelbefehl | schweben | 4 | rad | W/R |
0x7017 | limit_spd | Positionsmodus Geschwindigkeitsbegrenzung | schweben | 4 | 0 bis 30 rad/s | W/R |
0x7018 | limit_cur | Geschwindigkeitspositionsmodus-Strombegrenzung | schweben | 4 | 0 bis 23 A | W/R |
0x7019 | mechPos | Lastende Überlappungszählung mechanischer Winkel | schweben | 4 | rad | R |
0x701A | iqf | IQ-Filterwert | schweben | 4 | -23 bis 23 A | R |
0x701B | mechVel | Lastendgeschwindigkeit | schweben | 4 | -30 bis 30 rad/s | R |
0x701C | VBUS | Busspannung | schweben | 4 | V | R |
0x701D | Drehung | Anzahl der Umdrehungen | int16 | 2 | Anzahl der Umdrehungen | W/R |
0x701E | loc_kp | kp der Position | schweben | 4 | Standardwert 30 | W/R |
0x701F | spd_kp | Geschwindigkeit in kp | schweben | 4 | Standardwert 1 | W/R |
0x7020 | spd_ki | Geschwindigkeit von Ki | schweben | 4 | Standardwert 0,002 | W/R |
4.2 Anweisungen zur Verwendung des Steuerungsmodus
4.2.1 Programmmuster
"Die folgenden Beispiele zeigen die Steuerung von Motoren in verschiedenen Modi (am Beispiel des gd32f303). Die folgenden werden als Bibliotheken, Funktionen und Makrodefinitionen für verschiedene Beispiele bezeichnet."
#define P_MIN -12.5f #define P_MAX 12,5f #define V_MIN -30.0f #define V_MAX 30.0f #define KP_MIN 0.0f #define KP_MAX 500.0f #define KD_MIN 0.0f #define KD_MAX 5.0f #define T_MIN -12.0f #define T_MAX 12.0f Struktur exCanIdInfo{ uint32_t-ID: 8; uint32_t data:16; uint32_t-Modus: 5; uint32_t res:3; }; can_receive_message_struct rxMsg; can_trasnmit_message_struct txMsg = { .tx_sfid = 0, .tx_efid = 0xff, .tx_ft = CAN_FT_DATA, .tx_ff = CAN_FF_ERWEITERT, .tx_dlen = 8, }; #define txCanIdEx (((struct exCanIdInfo)&(txMsg.tx_efid))) // Parse extended frame id into custom data structure #define rxCanIdEx (((struct exCanIdInfo)&(rxMsg.rx_efid))) int float_to_uint(float x, float x_min, float x_max, int bits) { float span = x_max - x_min; float offset = x_min; if(x > x_max) x=x_max; else if(x < x_min) x= x_min; return (int) ((x-offset)*((float)((1<
✔ Kopiert!
Betriebssteuerungsmodus Motorsteuerungsanweisungen (Kommunikationstyp 1)
void motor_controlmode(uint8_t id, float torque, float MechPosition, float speed, float kp, float kd) { txCanIdEx.mode = 1; txCanIdEx.id = ID; txCanIdEx.res = 0; txCanIdEx.data = float_to_uint(torque,T_MIN,T_MAX,16); txMsg.tx_dlen = 8; txMsg.tx_data[0]=float_to_uint(MechPosition,P_MIN,P_MAX,16)>>8; txMsg.tx_data[1]=float_to_uint(MechPosition,P_MIN,P_MAX,16); txMsg.tx_data[2]=float_to_uint(speed,V_MIN,V_MAX,16)>>8; txMsg.tx_data[3]=float_to_uint(speed,V_MIN,V_MAX,16); txMsg.tx_data[4]=float_to_uint(kp,KP_MIN,KP_MAX,16)>>8; txMsg.tx_data[5]=float_to_uint(kp,KP_MIN,KP_MAX,16); txMsg.tx_data[6]=float_to_uint(kd,KD_MIN,KD_MAX,16)>>8; txMsg.tx_data[7]=float_to_uint(kd,KD_MIN,KD_MAX,16); kann_txd(); }
✔ Kopiert!
Motor stoppt Laufrahmen (Kommunikationstyp 4)
void motor_reset(uint8_t id, uint16_t master_id) { txCanIdEx.mode = 4; txCanIdEx.id = ID; txCanIdEx.res = 0; txCanIdEx.data = master_id; txMsg.tx_dlen = 8; für(uint8_t i=0;i<8;i++) { txMsg.tx_data[i]=0; } kann_txd(); }
✔ Kopiert!
Befehl zum Schreiben von Motormodusparametern (Kommunikationstyp 18, Umschaltung des Betriebsmodus)
uint8_t Ausführungsmodus; uint16_t-Index; void motor_modechange(uint8_t id, uint16_t master_id) { txCanIdEx.mode = 0x12; txCanIdEx.id = ID; txCanIdEx.res = 0; txCanIdEx.data = master_id; txMsg.tx_dlen = 8; für(uint8_t i=0;i<8;i++) { txMsg.tx_data[i]=0; } memcpy(&txMsg.tx_data[0],&index,2); memcpy(&txMsg.tx_data[4],&runmode, 1); kann_txd(); }
✔ Kopiert!
Motormodus-Parameter-Schreibbefehl (Kommunikationstyp 18, Steuerparameter schreiben)
uint16_t-Index; Gleitkomma-Ref; void motor_write(uint8_t id, uint16_t master_id) { txCanIdEx.mode = 0x12; txCanIdEx.id = ID; txCanIdEx.res = 0; txCanIdEx.data = master_id; txMsg.tx_dlen = 8; für(uint8_t i=0;i<8;i++) { txMsg.tx_data[i]=0; } memcpy(&txMsg.tx_data[0],&index,2); memcpy(&txMsg.tx_data[4],&ref,4); kann_txd(); }
✔ Kopiert!
4.2.2 Betriebssteuerungsmodus
Nachdem der Motor eingeschaltet ist, befindet er sich standardmäßig im Betriebssteuerungsmodus;
Sende Motor aktivieren Laufrahmen (Kommunikationstyp 3) -->
Betriebssteuerungsmodus Motorsteuerungsbefehl senden (Kommunikationstyp 1) -->
Empfange Motor-Feedback-Rahmen (Kommunikationstyp 2)
4.2.3 Aktueller Modus
Senden Sie den Schreibbefehl für den Motorbetriebsmodusparameter (Kommunikationstyp 18) und setzen Sie den Betriebsmodusparameter auf 3 --->
Senden Sie den Motoraktivierungsrahmen (Kommunikationstyp 3) -->
Senden Sie den Schreibbefehl für den Motorbetriebsmodus (Kommunikationstyp 18) und setzen Sie den iq_ref-Parameter als den voreingestellten Strombefehl.
4.2.4 Geschwindigkeitsmodus
Senden Sie den Schreibbefehl für den Motormodusparameter (Kommunikationstyp 18) und setzen Sie den Betriebsmodusparameter auf 2 --->
Senden Sie den Motoraktivierungsrahmen (Kommunikationstyp 3) -->
Senden Sie den Schreibbefehl für den Motorbetriebsmodusparameter (Kommunikationstyp 18) und setzen Sie den limit_cur-Parameter für den vordefinierten maximalen Strombefehl -->
Senden Sie den Schreibbefehl für den Motorbetriebsparameter (Kommunikationstyp 18), um den spd_ref-Parameter auf den voreingestellten Geschwindigkeitsbefehl zu setzen.
4.2.5 Standortmodus
Senden Sie den Schreibbefehl für den Motorbetriebsmodusparameter (Kommunikationstyp 18) und setzen Sie den Betriebsmodusparameter auf 1 -->
Senden Sie den Motoraktivierungsrahmen (Kommunikationstyp 3) -->
Senden Sie den Schreibbefehl für den Motorbetriebsparameter (Kommunikationstyp 18) und setzen Sie den Parameter limit_spd auf den vordefinierten Höchstgeschwindigkeitsbefehl -->
Senden Sie den Schreibbefehl für den Motorbetriebsparameter (Kommunikationstyp 18), um den loc_ref-Parameter auf den Vorgabeposition-Befehl zu setzen.
4.2.6 Betrieb stoppen
Motorstopprahmen senden (Kommunikationstyp 4)
CyberGear-Bibliothek für M5-Stack
https://github.com/project-sternbergia/cybergear_m5/tree/main
cybergear_m5
M5 Stack-Bibliothek für Cybergear
"Erinnere dich, mit großem" Drehmoment kommt große Verantwortung.
Unterstütztes Framework
-
Arduino für ESP32
Unterstütztes Gerät (ESP32)
-
M5Stack Basic V2.7
H/W Komponenten (MCP2515)
H/W Komponenten (ESP32 + PWRCAN)
H/W-Komponenten (ESP32 + CAN-Transceiver-Einheit)
So verwenden Sie Official Benutzeroberfläche Werkzeug
Diese Software benötigt ein spezifisches CAN-zu-USB-Modul. Die offizielle Dokumentation empfiehlt das USB-zu-CAN-Modul von YourCee, das das serielle Protokoll mit einem Rahmenkopf von 41 54 und einem Rahmenschwanz von 0D 0A unterstützt, aber dies ist nicht leicht verfügbar, daher haben wir auf Aliexpress nach einer Alternative gesucht. ※ Beachten Sie, dass dies nicht für allgemeine Module funktioniert.
Getestet (zur Referenz):
Empfohlene vorkrimpte Kabel
-
XT30(2+2) Kabel
Wie man laufen Probe
Arduino GEHT
-
cd ~/Arduino/bibliotheken
-
Git-Klon https://github.com/coryjfowler/MCP_CAN_lib.git
-
Git-Klon https://github.com/Locoduino/RingBuffer.git
-
Git-Klon git@github.com:project-sternbergia/arduino-CAN.git
-
Git-Klon https://github.com/project-sternbergia/cybergear_m5.git
-
Öffnen Sie cybergear_m5/examples/control_mode_example.ino mit der Arduino IDE
-
Legen Sie diese Datei in denselben Ordner wie control_mode_example.ino (für die Arduino IDE). Wenn Sie die ESP32_CAN-Bibliothek verwenden möchten, kommentieren Sie diese Zeilen aus.
-
Firmware für M5Stack erstellen und schreiben
Beispielcode
control_mode_example.ino
Überprüfen Sie das Cybergear-Verhalten mithilfe des M5-Stacks.
-
Mittlere Taste – Steuermodus ändern (Positionsmodus -> Geschwindigkeitsmodus -> Aktueller Modus)
-
Rechte Taste - Steuerwert erhöhen
-
Linke Taste - Steuerwert verringern
cybergear_bilateral.ino
Dieses Beispiel verwendet zwei Cybergears für den Führer und den Folger. Bevor Sie dieses Beispiel testen, ändern Sie bitte die Cybergear-CAN-ID wie folgt. Schreiben Sie danach cybergear_m5/beispiele/cybergear_bilateral.ino zum M5 Stack über die Arduino IDE.
-
leader cybergear : 0x7F
-
Follower Cybergear : 0x7E
Empfohlene Artikel
Hinterlassen Sie einen Kommentar
Alle Blog-Kommentare werden vor der Veröffentlichung geprüft