x_max) x=x_max; else if(x Code kopieren ✔ 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(); } Code kopieren ✔ 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 Code kopieren ✔ 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 Code kopieren ✔ 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 Code kopieren ✔ 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) Xiaomi Cybergear M5Stack Basic V2.7 M5Stack Commu-Modul [M001] Grove-Kabel H/W Komponenten (ESP32 + PWRCAN) Xiaomi Cybergear M5Stack Basic V2.7 PWRCAN 13.2 Modul mit isoliertem 2-Kanal CAN & 1-Kanal RS485 H/W-Komponenten (ESP32 + CAN-Transceiver-Einheit) Xiaomi Cybergear M5Stack Basic V2.7 LAN-Modul W5500 mit PoE V12 oder CANBus Einheit (CA-IS3050G) Grove-Kabel 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): CAN-zu-USB-Modul Empfohlene vorkrimpte Kabel XT30(2+2) Kabel Wie man laufen Probe Arduino GEHT Klon MCP_CAN_LIB Und cygergear_m5 zum Arduino-Bibliotheksverzeichnis. 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 Xiaomi Cybergear Mikromotor: Der intelligente Motor revolutioniert die Robotik Xiaomi CyberGear Motorsteuerung: Effiziente Energie und intelligente Kommunikation Xiaomi CyberGear Mikromotor Intelligenter Motor: Leitfaden zur Zubehörauswahl Xiaomi CyberGear Micromotor kollidiert mit dem M5Stack  ">
Zum Inhalt springen

+49 1626571232

info@openelab.io

🚀 Kostenloser Versand ab 30€ in Deutschland, 50€ in der EU!

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

  • Klon MCP_CAN_LIB Und cygergear_m5 zum Arduino-Bibliotheksverzeichnis.
  • 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

 

Vorheriger Beitrag
Nächster Beitrag

Hinterlassen Sie einen Kommentar

Alle Blog-Kommentare werden vor der Veröffentlichung geprüft

Jemand kaufte vor kurzem ein

Danke fürs Abonnieren!

Diese E-Mail wurde registriert!

Shoppen Sie den Look

Wähle Optionen

zuletzt angesehen

Bearbeitungsoption
Benachrichtigung wieder vorrätig
this is just a warning
Anmeldung
Einkaufswagen
0 Artikel
RuffRuff App RuffRuff App by Tsun