x_max) x=x_max; else if(x Kopieer code ✔ Gekopieerd!   Bedieningsmodus motorbesturingsinstructies (communicatietype 1) void motor_controlmode(uint8_t id, float torque, float MechPosition, float speed, float kp, float kd) { txCanIdEx.modus = 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(snelheid,V_MIN,V_MAX,16)>>8; txMsg.tx_data[3]=float_to_uint(snelheid,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); kan_txd(); } Kopieer code ✔ Gekopieerd!   Motor stopt met draaien frame (communicatietype 4) void motor_reset(uint8_t id, uint16_t master_id) { txCanIdEx.modus = 4; txCanIdEx.id = id; txCanIdEx.res = 0; txCanIdEx.data = master_id; txMsg.tx_dlen = 8; voor(uint8_t i=0;i Kopieer code ✔ Gekopieerd!   Motor modus parameter schrijfopdracht (communicatietype 18, schakelen van bedrijfsmodus) uint8_t uitvoeringsmodus; 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; voor(uint8_t i=0;i Kopieer code ✔ Gekopieerd!   Motor modus parameter schrijfopdracht (communicatietype 18, controleparameter schrijven) uint16_t-index; drijvende 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; voor(uint8_t i=0;i Kopieer code ✔ Gekopieerd!   4.2.2 Bedrijfsbedieningsmodus Nadat de motor is ingeschakeld, bevindt deze zich standaard in de bedieningsmodus; Stuur motor inschakelen loopframe (communicatietype 3) --> Stuur operationele controlemodus motorbesturingscommando (communicatietype 1) --> Ontvang motorfeedbackframe (communicatietype 2) 4.2.3 Huidige modus Stuur het schrijfcommando voor de motor modusparameter (communicatietype 18) en stel de runmodeparameter in op 3 ---> Stuur het motor inschakelen run frame (communicatietype 3) --> Stuur het schrijfcommando voor de motorstandparameter (communicatietype 18) en stel de iq_ref-parameter in als de vooraf ingestelde stroomopdracht. 4.2.4 Snelheidsmodus Stuur het schrijfcommando voor de motor modusparameter (communicatietype 18) en stel de runmode parameter in op 2 ---> Stuur het motor inschakelen run frame (communicatietype 3) --> Stuur het schrijfcommando voor de motor modusparameter (communicatietype 18) en stel de limit_cur parameter in voor het vooraf ingestelde maximale stroomcommando --> Stuur het schrijfcommando voor de motormodusparameter (communicatietype 18) om de spd_ref-parameter in te stellen op de vooraf ingestelde snelheid. 4.2.5 Locatiemodus Stuur het schrijfcommando voor de motor modusparameter (communicatietype 18) en stel de runmodeparameter in op 1 --> Stuur het motor inschakelen run frame (communicatietype 3) --> Stuur het schrijfcommando voor de motor modusparameter (communicatietype 18) en stel de limit_spd parameter in op de vooraf ingestelde maximale snelheid opdracht --> Stuur het schrijfcommando voor de motorstandparameter (communicatietype 18) om de loc_ref-parameter in te stellen op het vooraf ingestelde positiecommando. 4.2.6 Stop de werking Stuur motor stopframe (communicatietype 4) CyberGear-bibliotheek voor M5-stack https://github.com/project-sternbergia/cybergear_m5/tree/main cybergear_m5 M5 stack bibliotheek voor cybergear "Vergeet niet, met grote koppel komt grote verantwoordelijkheid. Ondersteund raamwerk Arduino voor ESP32 Ondersteund apparaat (ESP32) M5Stack Basis V2.7 H/W Componenten (MCP2515) Xiaomi Cybergear M5Stack Basis V2.7 M5Stack Commu module [M001] Grove kabel H/W Componenten (ESP32 + PWRCAN) Xiaomi Cybergear M5Stack Basis V2.7 PWRCAN 13.2 Module met Geïsoleerde 2-Ch CAN & 1-Ch RS485 H/W-componenten (ESP32 + CAN-zendontvanger) Xiaomi Cybergear M5Stack Basis V2.7 LAN-module W5500 met PoE V12 of CANBus Unit (CA-IS3050G) Grove kabel Hoe u Officieel gebruikt GUI hulpmiddel Deze software vereist een specifieke CAN naar USB-module. De officiële documentatie raadt de USB naar CAN-module van YourCee aan, die het seriële protocol ondersteunt met een frame-header van 41 54 en een frame-tail van 0D 0A, maar deze is niet gemakkelijk verkrijgbaar, dus hebben we Aliexpress doorzocht naar een alternatief. ※ Let op dat dit niet werkt voor algemene modules. Getest (ter referentie): CAN naar USB-module Aanbevolen voorgekrimpte kabels XT30(2+2) kabel Hoe loop steekproef Arduino GAAT Kloon MCP_CAN_LIB En cygergear_m5 naar de Arduino-bibliotheekdirectory. cd ~/Arduino/libraries git-kloon https://github.com/coryjfowler/MCP_CAN_lib.git git-kloon https://github.com/Locoduino/RingBuffer.git git kloon git@github.com:project-sternbergia/arduino-CAN.git git kloon https://github.com/project-sternbergia/cybergear_m5.git Open cybergear_m5/examples/control_mode_example.ino met Arduino IDE Plaats dit bestand in dezelfde map als control_mode_example.ino (voor Arduino IDE). Als je de ESP32_CAN-bibliotheek wilt gebruiken, commentaar dan op deze regels. Bouw en schrijf firmware voor M5Stack Voorbeeldcode control_mode_example.ino Controleer het gedrag van cybergear met behulp van M5-stack. Middelste knop - Controlemodus wijzigen (Positiemodus -> Snelheidsmodus -> Huidige modus) Rechtermuisknop - Verhoog controlewaarde Linkerknop - Verlaag controlewaarde cybergear_bilateral.ino Dit voorbeeld gebruikt twee cybergears voor leider en volger. Voordat je dit voorbeeld test, wijzig dan de cybergear kan-id als volgt. Schrijf daarna cybergear_m5/voorbeelden/cybergear_bilateral.ino naar m5 stack via Arduino IDE. leider cybergear : 0x7F volger cybergear : 0x7E Aanbevolen artikelen Xiaomi Cybergear Micromotor: de intelligente motor die een revolutie teweegbrengt in de robotica Xiaomi CyberGear Motor Driver: Efficiënte Kracht en Slimme Communicatie Xiaomi CyberGear Micromotor Intelligente motor: selectiegids voor accessoires Xiaomi CyberGear Micromotor botst met de M5Stack  ">
Doorgaan naar artikel

+49 1626571232

info@openelab.io

🚀 Gratis verzending vanaf 30€ in Duitsland, 50€ in de EU!

XiaoMi CyberGear Micromotor Gids

28 Feb 2025 0 Opmerkingen

Wat is XiaoMi CyberGear Micromotor

De Xiaomi CyberGear Micromotor is een compacte maar krachtige micromotor, ontworpen voor geavanceerde robotica- en bionische toepassingen. Het heeft een hoge koppel-naar-grootte verhouding, snelle responstijden en nauwkeurige controle, waardoor realistische en vloeiende bewegingen in robotische ledematen en mechanismen mogelijk zijn. Het modulaire ontwerp en de intelligente controle-algoritmen vergemakkelijken naadloze integratie in complexe systemen, waardoor het geschikt is voor toepassingen variërend van bionische protheses tot geavanceerde robotdieren. Xiaomi benadrukt het potentieel om meer levensechte en interactieve robotervaringen te creëren.

 

CyberGear Micromotor Gebruikershandleiding

Voorzorgsmaatregelen

  • Gebruik het alstublieft volgens de werkparameters die in dit artikel zijn gespecificeerd, anders kan dit ernstige schade aan dit product veroorzaken!
  • De bedieningsmodus kan niet worden gewijzigd terwijl het gewricht draait. Als u wilt schakelen, moet u eerst een stopcommando verzenden voordat u schakelt.
  • Controleer alstublieft of alle onderdelen intact zijn voor gebruik. Als er onderdelen ontbreken of beschadigd zijn, neem dan tijdig contact op met de technische ondersteuning.
  • Demonteer de motor niet naar willekeur om onherstelbare fouten te voorkomen.
  • Zorg ervoor dat er geen kortsluiting is bij het aansluiten van de motor en dat de interface correct is aangesloten zoals vereist.

Juridische mededelingen

Voordat u dit product gebruikt, moet de gebruiker deze handleiding zorgvuldig lezen en het product bedienen in overeenstemming met de inhoud van deze handleiding. Als de gebruiker dit product gebruikt in strijd met de inhoud van deze handleiding, aanvaardt het bedrijf geen enkele verantwoordelijkheid voor schade aan eigendommen of persoonlijke verwondingen. Aangezien dit product uit veel onderdelen bestaat, laat kinderen niet in contact komen met dit product om ongelukken te voorkomen. Om de levensduur van het product te verlengen, gebruik dit product niet in omgevingen met hoge temperaturen en hoge druk. Deze handleiding heeft zijn best gedaan om verschillende functie-invoeringen en gebruiksinstructies op het moment van drukken op te nemen. Echter, vanwege de voortdurende verbetering van productfuncties, ontwerpwijzigingen, enz., kunnen er nog steeds discrepanties zijn met de door gebruikers aangekochte producten.
Er kunnen verschillen zijn tussen deze handleiding en het daadwerkelijke product wat betreft kleur, uiterlijk, enz. Raadpleeg het daadwerkelijke product. Deze handleiding is gepubliceerd door Xiaomi of zijn lokale dochterondernemingen. Xiaomi kan op elk moment noodzakelijke verbeteringen en wijzigingen aan deze handleiding aanbrengen voor typografische fouten, onnauwkeurigheden van de laatste informatie, of verbeteringen aan programma's en/of apparatuur zonder voorafgaande kennisgeving. Dergelijke wijzigingen zullen worden geüpload naar de nieuwe versie van deze handleiding. Scan de QR-code van deze handleiding om deze te verkrijgen. Alle afbeeldingen zijn alleen voor functionele beschrijving. Raadpleeg het daadwerkelijke product.

Aftersalesbeleid

De after-sales service van dit product is strikt in overeenstemming met de "Wet op de bescherming van consumentenrechten en -belangen van de Volksrepubliek China" en de "Wet op de productkwaliteit van de Volksrepubliek China". De service-inhoud is als volgt:

Garantieperiode en inhoud

  Gebruikers die een bestelling plaatsen om dit product via online kanalen aan te schaffen, kunnen binnen zeven dagen na de dag van ontvangst genieten van een retourservice zonder opgave van reden. Bij het retourneren van goederen moeten gebruikers een geldig aankoopbewijs overleggen en de factuur retourneren. Gebruikers moeten ervoor zorgen dat de geretourneerde goederen hun oorspronkelijke kwaliteit en functionaliteit behouden, dat hun uiterlijk intact is, en dat de handelsmerken en logo's van de goederen zelf en accessoires compleet zijn. Als er geschenken zijn, moeten deze samen worden geretourneerd. Als het product kunstmatig beschadigd is, handmatig is gedemonteerd, de verpakking ontbreekt of de reserveonderdelen ontbreken, worden retouren niet verwerkt. De logistieke kosten die ontstaan bij het retourneren van goederen zijn voor rekening van de gebruiker (zie "Standaarden voor het in rekening brengen van after-sales service" voor de tarieven). Als de gebruiker de logistieke kosten niet betaalt, wordt het werkelijke bedrag van het terugbetalingsbedrag afgetrokken. De betaalde prijs wordt binnen zeven dagen na de datum van ontvangst van de geretourneerde goederen aan de gebruiker terugbetaald. De terugbetalingsmethoden zijn dezelfde als de betaalmethoden. De specifieke aankomstdatum kan worden beïnvloed door factoren zoals banken en betalingsinstellingen.
  Als er binnen 7 dagen na de dag waarop de gebruiker het heeft ondertekend een prestatie-uitval optreedt die niet door mensen is veroorzaakt, zal het Xiaomi after-sales servicecentrum de retourzending voor de gebruiker afhandelen na inspectie en bevestiging. Bij het retourneren van het product moet de gebruiker een geldig aankoopbewijs en de retourfactuur overleggen. Alle geschenken moeten samen worden geretourneerd.
  Als er binnen 7 tot 15 dagen na de dag waarop de gebruiker het heeft ondertekend niet-menselijke schade of prestatieproblemen optreden, zal het Xiaomi after-sales servicecentrum de ruilzaken voor de gebruiker afhandelen en de gehele set producten vervangen na inspectie en bevestiging. Na de ruil zal de drie-garantieperiode van het product zelf opnieuw worden berekend.
  Van 15 dagen tot 365 dagen vanaf de dag na de ondertekening door de gebruiker, na inspectie en bevestiging door het Xiaomi after-sales servicecentrum, is het een kwaliteitsfout van het product zelf, en kunnen reparatiediensten kosteloos worden aangeboden. Het vervangen defecte product behoort toe aan Xiaomi Company. Het niet-defecte product wordt in originele staat geretourneerd. Dit product verlaat de fabriek na verschillende strenge tests te hebben ondergaan. Als er een kwaliteitsfout is die niet gerelateerd is aan het product zelf, behouden wij ons het recht voor om het retour- of omruilverzoek van de gebruiker te weigeren.
Als het after-sales beleid in deze handleiding inconsistent is met het after-sales beleid van de winkel, heeft het after-sales beleid van de winkel voorrang.

Niet-garantievoorschriften: De volgende situaties vallen niet onder de garantie:

  Overschrijdt de garantieperiode die is beperkt door de garantievoorwaarden.
  Productbeschadiging veroorzaakt door onjuist gebruik zonder de instructies te volgen.
  Schade veroorzaakt door onjuiste bediening, onderhoud, installatie, modificatie, testen en ander onjuist gebruik.
  Conventioneel mechanisch verlies en slijtage veroorzaakt door niet-kwaliteitsfouten.
  Schade veroorzaakt door abnormale arbeidsomstandigheden, inclusief maar niet beperkt tot vallen, impact, onderdompeling in vloeistof, gewelddadige impact, enz.
  Schade veroorzaakt door natuurrampen (zoals overstromingen, branden, blikseminslagen, aardbevingen, enz.) of overmacht.
  Schade veroorzaakt door gebruik buiten het piek koppel.
  Artikelen die geen echte Xiaomi-producten zijn, kunnen mogelijk geen wettig aankoopbewijs leveren.
  Andere fouten of schade die niet veroorzaakt zijn door problemen zoals productontwerp, technologie, productie, kwaliteit, enz.
  Gebruik dit product voor commerciële doeleinden.
Als de bovenstaande situatie zich voordoet, moeten gebruikers de kosten zelf betalen. Voor details van het after-salesbeleid van de groep, zie: https://www.mi.com/service/serviceAgreement?id=17

 

Motor specificaties

1.1 Uiterlijk en installatie-afmetingen

1.2 Standaard gebruiksstatus

1.2.1 Nominale spanning: 24 VDC
1.2.2 Bedrijfsspanningsbereik: 16V—28 VDC
1.2.3 Beoordeelde belasting (CW): 4 N.m
1.2.4 Draairichting: CW/CCW gezien vanuit de richting van de as
1.2.5 Gebruikshouding: De asrichting is horizontaal of verticaal
1.2.6 Standaard bedrijfstemperatuur: 25±5°C
1.2.7 Bedrijfstemperatuurbereik: -20 ~ 50°C
1.2.8 Standaard werkvochtigheid: 65%
1.2.9 Bedrijfshumiditeitsbereik: 5 ~ 85%, geen condensatie
1.2.10 Opslagtemperatuurbereik: -30 ~ 70°C
1.2.11 Isolatieniveau: Klasse B

1.3 Elektrische kenmerken

1.3.1 Leegloop snelheid: 296 tpm±10%
1.3.2 Leegloopstroom: 0,5 Arms
1.3.3 Geclassificeerde belasting: 4 N.m
1.3.4 Nominale belasting snelheid: 240rpm±10% 1.3.5 Nominale belastingstroom (piek): 6.5A±10% 1.3.6 Piekbelasting: 12 N.m
1.3.7 Piektijd (piekwaarde): 23A±10%
1.3.8 Isolatieweerstand/statorwikkeling: DC 500VAC, 100M Ohm 1.3.9 Hoogspanningsweerstand/stator en behuizing: 600 VAC, 1s, 2mA 1.3.10 Motor terug electromotorische kracht: 0.054-0.057Vrms/rpm
1.3.11 Lijnweerstand: 0,45Ω±10%
1.3.12 Koppelconstante: 0,87N.m/Arms
1.3.13 Motorinductantie: 187-339μH
1.3.14 T-N-curve
1.3.15 Maximale overbelastingscurve Testomstandigheden:
Omgevings temperatuur: 25°C
Wikkellimiettemperatuur: 120°C
Snelheid: 24 tpm
Maximale belastingcurve
Maximale overbelastingsduur (s) vs Koppel (N.m)
Testgegevens

Laden Bedrijfstijd(en)
12 28
11 45
10 60
9 90
8 160
7 320
6 700
5 1800
4.5 2500
4 beoordeeld

1.4 Mechanische eigenschappen

1.4.1 Gewicht: 317g±3g
1.4.2 Aantal polen: 28 polen 1.4.3 Aantal fasen: 3 fasen
1.4.4 Rijmodus: FOC
1.4.5 Verminderingsverhouding: 7.75:1

Stuur productinformatie

2.1 Introductie van de uitstraling van de bestuurder & productspecificaties

24V voeding en CAN-communicatie geïntegreerde terminal;
Hardwareversie en lasergegraveerde QR-code;
MCU-downloadpoort;
CAN-communicatietestpunt;
Indicatielampje;
Installatiegaten; 7. “C, A, B” zijn de laspunten van de driefasige winding;

Product specificaties


Beoordeelde bedrijfsvoltage 24VDC
Maximale toegestane spanning 28VDC
Beoordeelde bedrijfsstroom 6.5A
Maximale toegestane stroom 23A
Standby-energieverbruik ≤18mA
CAN-bus bitsnelheid 1 Mbps
Maat Φ58mm
Werkomgevingstemperatuur -20°C 50°C
Maximale temperatuur toegestaan door de regelaar 80°C
Encoderresolutie 14bit (enkele ronde absolute waarde)

2.2 Definitie van de stuurinterface

2.2.1 Stuurprogramma-interface diagram
2.2.2 Aanbevolen merken en modellen van schijfinterfaces

# Bordmodel Merk fabrikant Lijn eindmodel Merk fabrikant
1 XT30PB(2+2)-M.G.B VERZAMELEN (AMS) XT30(2+2)-F.G.B VERZAMELEN (AMS)
2 2,0 mm-2P vrouwelijk / 2,0 mm-2P mannelijk /
3 2,54 mm-4P vrouwelijk / 2,54 mm-4P mannelijk /
2.2.3 Definitie van de pinnen van de stuurinterface
Voedingsaansluiting en CAN-communicatiepoort
CAN-communicatietestpad
Downloadpoort


# Interfacefunctie PIN Beschrijving
1 Power en CAN-communicatie 1 Voeding positief (+)
2 Negatieve pool van de voeding (-)
3 CAN-communicatie lage kant CAN_L
4 CAN-communicatie hoge kant CAN_H
2 CAN-communicatietestpunt 1 CAN-communicatie lage kant CAN_L
2 CAN-communicatie hoge kant CAN_H
3 Downloadpoort 1 SWDIO(gegevens)
2 SWCLK(klok)
3 3V3 (positief 3,3V)
4 GND (negatieve massa)

2.3 Definitie van bestuurder indicatielampje

Blauw signaallicht en rode voedingsindicatorlicht
Definitie van het indicatielampje

Voedingsindicatorlampje (rood licht wanneer aan) Het voedingsindicatorlampje wordt gebruikt om de MCU 3.3V voedingsbron aan te geven. Wanneer de totale stroominvoer 24V is, wordt het lampje rood, wat bewijst dat het hele netwerk normaal van stroom wordt voorzien. Als de voeding 24V is, brandt het indicatorlampje niet en moet de stroom onmiddellijk worden uitgeschakeld.
Signaalindicatorlamp (blauw licht wanneer aan) Wanneer het signaallampje knippert, bewijst dit dat de MCU normaal functioneert en de driverchip normaal werkt.

2.4 Hoofdcomponenten en specificaties


# Componenttype Model Hoeveelheid
1 MCU-chip GD32F303RET6 1 stuk
2 Stuurprogrammachip 6EDL7141 1 stuk
3 Magnetische encoderchip AS5047P 1 stuk
4 Thermistor NXFT15XH103FEAB021/NCP18XH103F03RB 2 STUKS
5 Krachtige MOS JMGG031V06A 6 STUKS

Debugger gebruiksinstructies (scan de QR-code aan het einde van de papieren handleiding om de debugger te verkrijgen)

3.1 Hardwareconfiguratie

De gezamenlijke motor maakt gebruik van CAN-communicatie. Er zijn twee communicatielijnen, die via een can-naar-USB-tool zijn verbonden met de debugger. De debugger moet vooraf de ch340-stuurprogramma installeren en werkt standaard in AT-modus.
Het moet worden opgemerkt dat we de debugger hebben ontwikkeld op basis van een specifieke can naar USB-tool, dus we moeten onze aanbevolen seriële poorttool gebruiken voor debugging. Als je het naar andere debuggerplatforms wilt porten, kun je hoofdstuk 3 van de handleiding raadplegen. ontwikkeling.
De can naar USB-tool raadt aan om de USB-CAN-module van YourCee te gebruiken. De framekop die overeenkomt met het seriële poortprotocol is 41 54 en de frame-einde is 0D 0A.

 

3.2 Debugger-interface en beschrijving

omvatten voornamelijk:
A. Moduleselectie
  • Apparaatmodule
  • Configuratiemodule
  • Analysemodule
  • Helpmodule
B. Submodule selectie Apparatuurmodules omvatten
  • Verbind of ontkoppel elektrische apparatuur
  • Informatie over motorvoertuigen
  • Motorencoder kalibratie
  • Wijzig motor CAN-ID
  • Stel de mechanische nulpositie van de motor in
  • Motorprogramma-upgrade
Configuratiemodules omvatten:
  • Parameter tabel, u kunt motorparameters bekijken en wijzigen
  • Uploadparameters. U kunt de parameters in de motor naar de parameter tabel uploaden.
  • Downloadparameters. U kunt de gegevens van de parameter tabel naar de motor downloaden.
  • Exporteerparameters. U kunt de gegevens van de parameter tabel naar de lokale schijf downloaden.
  • Fabrieksinstellingen herstellen, u kunt de gegevens in de parameter tabel terugzetten naar de fabrieksinstellingen.
  • Duidelijke waarschuwing, u kunt motorfouten wissen, zoals overmatige temperatuur, enz.
Analysemodules omvatten:
  • Oscilloscoop om parameterveranderingen in de tijd te bekijken
  • Frequentie, je kunt de frequentie van het bekijken van gegevens aanpassen.
  • Kanaal, je kunt de gegevens configureren die bekeken moeten worden.
  • Start en stop met tekenen
  • Gegevens van de uitgangsgolfvorm naar lokaal uitvoeren
Helpmodules omvatten:
  • Instructies voor gebruik, u kunt de handleiding openen
  • Over, u kunt software-informatie bekijken
C. Motorinformatiequery
  • Apparaat informatie
  • Parameter tabelinformatie
D. Gegevenskolom
  • Logboekinformatie
  • Communicatie-informatie
E. Voer het foutopsporingsgebied uit
  • Selecteer apparaat
  • Gemakkelijke bedieningsruimte, je kunt snel de voorwaartse en achterwaartse rotatie van de motor bedienen.
  • Bewegingscontrolegebied, dat de motor kan aansteken om in verschillende modi te werken.
F. Submodule weergavegebied

3.3 Motorinstellingen

3.3.1 Motorverbinding instellingen
Verbind de can met de USB-tool (installeer de ch340-stuurprogramma, werkt standaard in AT-modus), selecteer de apparaatsmodule, klik op de verbindingssubmodule en selecteer de bijbehorende seriële poortverbinding.
3.3.2 Basisinstellingen
Wijzig het motor-ID-nummer.
  • Motor magnetische vlechtkalibratie, het opnieuw installeren van de motorplaat en motor, of het opnieuw aansluiten van de motorbedrading in een andere volgorde, enz. vereisen een nieuwe magnetische vlechtkalibratie.
  • Stel de nulpositie in (verloren bij stroomuitval) en stel de huidige positie in op 0.
  • Motorprogramma-upgrade. Wanneer het motorprogramma wordt bijgewerkt, klik op de upgradeknop om het upgradebestand te selecteren voor de upgrade.
3.3.3 Parameterlijst
Na het succesvol aansluiten van de motor, klik op de parameter tabelmodule in de configuratiemodule, en alle parameters worden weergegeven in het logboek. De laadoperatie is succesvol, wat aangeeft dat de relevante parameters van de motor succesvol zijn gelezen (Opmerking: de parameter tabel moet zich in de standby-toestand van de motor bevinden. Configureer in deze toestand, als de motor in de werkende toestand is, kan de parameter tabel niet worden vernieuwd) De interface toont de elektrische relevante parameters van de motor. De blauwe parameters zijn de interne opslagparameters van de motor. Ze kunnen direct worden gevonden na de overeenkomstige parameters. Wijzig de kolom met de vorige waarde. Klik op Parameters downloaden om de parameters in de debugger naar de motor te downloaden. Klik op Upload. Parameters kunnen de parameters in de motor naar de debugger uploaden. De groene parameters van de motor zijn geobserveerde parameters, die zijn de verzamelde parameters die in real-time kunnen worden waargenomen.
Opmerking: Wijzig de koppelgrens van de motor, de beschermtemperatuur en de overtemperatuur tijd niet naar eigen inzicht. Vanwege onwettige handelingen met dit boek, als het product schade toebrengt aan het menselijk lichaam of onomkeerbare schade aan gewrichten veroorzaakt, kan ons bedrijf niet aansprakelijk worden gesteld voor enige juridische gevolgen.
Parametertabel

Functiecode Yam Parametertype Kenmerken Maximale waarde Minimale waarde Huidige waarde (ter referentie) Opmerking
0x0000 Yam Snaar lezen/schrijven ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
0x0001 Streepjescode Snaar lezen/schrijven ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
0x1000 BootCodeVersie Snaar alleen lezen 0.1.5
0x1001 BootBuildDatum Snaar alleen lezen 16 mrt 2022
0x1002 BootBuildTime Snaar alleen lezen 20:22:09
0x1003 AppCodeVersie Snaar alleen lezen 0.1.5 Versienummer motorprogramma
0x1004 AppGitVersie Snaar alleen lezen 7b844b0fM
0x1005 AppBuildDatum Snaar alleen lezen 14 april 2022
0x1006 AppBuildTime Snaar alleen lezen 20:30:22
0x1007 AppCodeNaam Snaar alleen lezen dog_motor
0x2000 echoPara1 uint16 Configuratie 74 5 5
0x2001 echoPara2 uint16 Configuratie 74 5 5
0x2002 echoPara3 uint16 Configuratie 74 5 5
0x2003 echoPara4 uint16 Configuratie 74 5 5
0x2004 echoFreHz uint32 lezen/schrijven 10000 1 500
0x2005 Mech-offset vlot opzetten 7 -7 4.619583 Motor magnetische encoder hoekoffset
0x2006 MechPos_init vlot lezen/schrijven 50 -50 4.52 Referentiehoek tijdens initiële multi-turn
0x2007 limit_torque vlot lezen/schrijven 12 0 12 Koppellimiet
0x2008 Ik_FW_MAX vlot lezen/schrijven 33 0 0 Waarde van de veldverzwakkingsstroom, standaard 0
0x2009 motor_index uint8 opzetten 20 0 1 Motorindex, markeert de positie van het motorjoint
0X200a CAN_ID uint8 opzetten 127 0 1 Deze knooppunt-id
0x200b CAN_MASTER uint8 opzetten 127 0 0 kan host-id
0x200c KAN_TIMEOUT uint32 lezen/schrijven 100000 0 0 kan time-outdrempel, standaard 0
0x200d motorOverTemp int16 lezen/schrijven 1500 0 800 Motorbeschermings temperatuurwaarde, temp (graad) *10
0x200e overTempTijd uint32 lezen/schrijven 1000000 1000 20000 Overtemperatuur tijd
0x200f Overbrengingsverhouding vlot lezen/schrijven 64 1 7.75 Transmissieverhouding
0x2010 Tq_caliType uint8 lezen/schrijven 1 0 1 Instelling van de koppelkalibratiemethode
0x2011 cur_filt_gain vlot lezen/schrijven 1 0 0.9 Huidige filterparameters
0x2012 cur_kp vlot lezen/schrijven 200 0 0.025 Huidige kp
0x2013 cur_ki vlot lezen/schrijven 200 0 0.0258 elektrische stroom ki
0x2014 spd_kp vlot lezen/schrijven 200 0 2 Snelheid kp
0x2015 spd_ki vlot lezen/schrijven 200 0 0.021 snelheid ki
0x2016 loc_kp vlot lezen/schrijven 200 0 30 Locatie kp
0x2017 spd_filt_gain vlot lezen/schrijven 1 0 0.1 Snelheidsfilterparameters
0x2018 limit_spd vlot lezen/schrijven 200 0 2 Snelheidslimiet in positie modus
0x2019 limit_cur vlot lezen/schrijven 23 0 23 Positie, snelheidsmodus huidige limiet
0x3000 tijdGebruik0 uint16 alleen-lezen (computing) 5
0x3001 tijdGebruik1 uint16 alleen-lezen (computing) 0
0x3002 tijdGebruik2 uint16 alleen-lezen (computing) 10
0x3003 tijdGebruik3 uint16 alleen-lezen (computing) 0
0x3004 encoderRaw uint16 alleen-lezen (computing) 11396 Magnetische Encoder Voorbeeldwaarde
0x3005 mcuTemp int16 alleen-lezen (computing) 337 mcu interne temperatuur *10
0x3006 motorTemp int16 alleen-lezen (computing) 333 motor ntc temperatuur *10
0x3007 vBus(mv) uint16 alleen-lezen (computing) 24195 busbarspanning
0x3008 adc1-offset int32 alleen-lezen (computing) 2084 adc Sampling Kanaal 1 Nulstroombias
0x3009 adc2-offset int32 alleen-lezen (computing) 2084 adc monsterkanaal 2 nulstroombias
0x300a adc1Rauw uint16 alleen-lezen (computing) 1232 adc Sampling waarde 1
0x300b adc2Raw uint16 alleen-lezen (computing) 1212 adc Sampling waarde 2
0x300c VBUS vlot alleen-lezen (computing) 24.195 Busbarspanning V
0x300d cmd-ID vlot alleen-lezen (computing) 0 id ring commando, A
0x300e cmdIq vlot alleen-lezen (computing) 0 iq ring commando, A
0x300f cmdlocref vlot alleen-lezen (computing) 0 Positieluscommando, rad
0x3010 cmdspdref vlot alleen-lezen (computing) 0 Snelheidsluscommando, rad/s
0x3011 cmdKoppel vlot alleen-lezen (computing) 0 Koppelcommando, nm
0x3012 cmdPos vlot alleen-lezen (computing) 0 met Protocol Hoek Commando
0x3013 cmdVel vlot alleen-lezen (computing) 0 mit protocol snelheid indicator deugdzaam
0x3014 rotatie int16 alleen-lezen (computing) 1 aantal ronden
0x3015 modPos vlot alleen-lezen (computing) 4.363409 Motor onberekende mechanische hoek, rad
0x3016 mechPos vlot alleen-lezen (computing) 0.777679 Ladingzijde Loop Tellen Machinerichting, rad
0x3017 mechVel vlot alleen-lezen (computing) 0.036618 lastzijde stuur snelheid, rad/s
0x3018 elecPos vlot alleen-lezen (computing) 4.714761 Elektrische hoek
0x3019 Het vlot alleen-lezen (computing) 0 U-lijnstroom, A
0x301a een vlot alleen-lezen (computing) 0 V-lijnstroom, A
0x301b ik vlot alleen-lezen (computing) 0 W-lijnstroom, A
0x301c teek uint32 alleen-lezen (computing) 31600
0x301d faseOrder uint8 alleen-lezen (computing) 0 Kalibratierichtingmarkers
0x301e IQF vlot alleen-lezen (computing) 0 iq Filterwaarde, A
0x301f bordTemp int16 alleen-lezen (computing) 359 Temperatuur aan boord, *10
0x3020 iq vlot alleen-lezen (computing) 0 iq originele waarde, A
0x3021 id vlot alleen-lezen (computing) 0 id Oorspronkelijke waarde, A
0x3022 foutSta uint32 alleen-lezen (computing) 0 Waarde van de foutstatus
0X3023 waarschuwenSta uint32 alleen-lezen (computing) 0 Waarschuwingsstatuswaarde
0x3024 drv_fault uint16 alleen-lezen (computing) 0 Driver Chip Foutwaarde
0x3025 drv_temp int16 alleen-lezen (computing) 48 Driver Chip Temperatuurwaarde, graad
0x3026 Uq vlot alleen-lezen (computing) 0 q Asspanning
0x3027 Uit vlot alleen-lezen (computing) 0 d Asspanning
0x3028 dtc_u vlot alleen-lezen (computing) 0 U-fase uitgangsduurcyclus
0x3029 dtc_v vlot alleen-lezen (computing) 0 V Fase Uitgangs Duty Cycle
0x302a dtc_w vlot alleen-lezen (computing) 0 W Fase Uitgangs Duty Cycle
0x302b v_bus vlot alleen-lezen (computing) 24.195 vbus in gesloten lus
0x302c v_ref vlot alleen-lezen (computing) 0 Gesloten-lus vq,vd synthese-ingangsspanning
0x302d torque_fdb vlot alleen-lezen (computing) 0 Koppelterugkoppelingswaarde, nm
0x302e rated_i vlot alleen-lezen (computing) 8 Nominale motorstroom
0x302f limit_i vlot alleen-lezen (computing) 27 Motor maximale stroomlimiet
3.3.4 Oscilloscoop
Deze interface ondersteunt het bekijken en observeren van de grafiek die is gegenereerd door realtime gegevens. De waarneembare gegevens omvatten motor Id/Iq-stroom, temperatuur, output realtime snelheid, rotor (encoder) positie, output positie, enz.
Klik op de oscilloscopemodule in de analysemodule, selecteer de juiste parameters in het kanaal (voor de betekenis van de parameters, zie 3.3.3), stel de uitgangsfrequentie in en klik op Start Tekenen om het dataspectrum te observeren, stop met tekenen om te stoppen met het observeren van het spectrum.

3.4 Controle demo

joggen rennen:
Stel de maximale snelheid in, klik op Start en klik vervolgens op JOG om de motor in voorwaartse en achterwaartse richting te laten draaien.
Besturingsmodus schakelen:
De motorbesturingsmodus kan worden omgezet naar de bewegingsmodusinterface.
3.4.1 Nulpuntmodus
Klik op de schakelknop aan de rechterkant, en de motor zal langzaam terugkeren naar de mechanische nulpositie.
3.4.2 Bedrijfsbedieningsmodus
Klik op de schakelknop aan de rechterkant, stel vervolgens de vijf parameterwaarden in, klik op Start of Continue Verzenden, de motor keert terug naar het feedbackframe en draait volgens de doelinstructie; klik opnieuw op de schakelknop aan de rechterkant en de motor stopt.
3.4.2 Huidige modus
Schakel handmatig de huidige modus over, klik op de schakelknop aan de rechterkant en stel vervolgens de Iq-stroomopdrachtwaarde in, start of verzend continu, de motor zal de huidige opdracht volgen, klik opnieuw op de schakelknop aan de rechterkant, de motor stopt.
Klik op de schakelknop aan de rechterkant van de bedieningsmodus, voer de amplitude en frequentie van de sinusgolf automatische test in, en klik vervolgens op de schakelknop aan de rechterkant van de sinus automatische test. De iq (A) van de motor zal draaien volgens de ingestelde amplitude en frequentie.
3.4.3 Snelheidsmodus
Schakel handmatig over naar de snelheidsmodus, klik op de schakelknop aan de rechterkant en stel vervolgens de snelheidscommando waarde in (-30~30rad/s), start of verzend continu, de motor zal het snelheidscommando volgen, klik opnieuw op de schakelknop aan de rechterkant, de motor stopt.
3.4.4 Locatiemodus
Schakel handmatig de positie-modus in, klik op de schakelknop aan de rechterkant, stel vervolgens de positiecommando-waarde in (rad), start of verzend continu, de motor zal het doelpositiecommando volgen, klik opnieuw op de schakelknop aan de rechterkant, de motor stopt. U kunt de maximale snelheid van het volgen van de positie aanpassen door de snelheid in te stellen.
Klik op de schakelknop aan de rechterkant van de bedieningsmodus, voer de amplitude en frequentie van de sinusgebaseerde automatische test in en klik vervolgens op de schakelknop aan de rechterkant van de sinusgebaseerde automatische test. De motorpositie (rad) zal draaien volgens de ingestelde amplitude en frequentie.

3.5 Firmware-update

De eerste stap is om op de upgrade van de apparaatsmodule te klikken en het bin-bestand te selecteren dat moet worden gebrand; de tweede stap is om de upgrade te bevestigen en de motor zal beginnen met het bijwerken van de firmware. Nadat de voortgang is voltooid, is de motorupdate voltooid en zal deze automatisch opnieuw opstarten.

Bestuurder communicatieprotocol en gebruiksinstructies

Motorcommunicatie is de CAN 2.0 communicatie-interface, met een baudrate van 1 Mbps en een uitgebreid frameformaat, zoals weergegeven.

Gegevensveld 29-bits-ID 8 Byte gegevensgebied
Maat Stuk 28 ~ 24 Stuk 23 ~ 8 Bit7 ~ 0 Byte0 ~ 7
Beschrijving Communicatietype Datumgebied 2 Doeladres Gegevensgebied 1
De door de motor ondersteunde bedieningsmodi zijn:
  • Operationele controlemodus: gegeven 5 parameters voor motorbedieningscontrole;
  • Huidige modus: gegeven de gespecificeerde Iq-stroom van de motor;
  • Snelheidsmodus: gegeven de opgegeven bedrijfssnelheid van de motor;
  • Positiemodus: Gegeven een gespecificeerde positie van de motor, zal de motor naar de gespecificeerde positie draaien;

4.1 Beschrijving van het type communicatieprotocol

4.1.1 Verkrijg apparaat-ID (communicatietype 0); Verkrijg de ID van het apparaat en de 64-bits unieke identificatie van de MCU
Verzoekframe:

Gegevensveld 29-bits-ID 8 byte gegevensgebied
Positie Stuk 28 ~ 24 Stuk 23 ~ 8 Bit7 ~ 0 Byte0 ~ 7
Beschrijving 0 Bit 15 ~ 8: Host CAN_ID Motor-CAN_ID 0
Reactiekader:

Gegevensveld 29-bits-ID 8 byte gegevensgebied
Positie Stuk 28 ~ 24 Stuk 23 ~ 8 Bit7 ~ 0 Byte0 ~ 7
Beschrijving 0 Motor-CAN_ID 0xFE 64-bits MCU unieke identificatie
4.1.2 Motorbesturingsinstructies (communicatietype 1) in de bedieningsmodus worden gebruikt om besturingsinstructies naar de motor te sturen.
Verzoekframe:

Gegevensveld 29-bits-ID 8 byte gegevensgebied
Positie Stuk 28 ~ 24 Stuk 23 ~ 8 Bit7 ~ 0 Byte0 ~ 7
Beschrijving 1 Byte 2: Koppel (0 ~ 65535) overeenkomend met (- 12Nm ~ 12Nm) Motor-CAN_ID Byte 0 ~ 1: Doelhoek [0 ~ 65535] overeenkomend met (-4π ~ 4π)
Byte 2 ~ 3: Doelhoeksnelheid [0 ~ 65535] komt overeen met (- 30rad/s ~ 30rad/s)
Byte 4 ~ 5: Kp [0 ~ 65535] komt overeen met (0.0 ~ 500.0)
Byte 6 ~ 7: Kd [0 ~ 65535] komt overeen met (0.0 ~ 5.0)
Antwoordframe: Antwoordmotorfeedbackframe (zie communicatietype 2)
4.1.3 Motorfeedbackgegevens (communicatietype 2) worden gebruikt om de motorstatus terug te koppelen aan de host.

Gegevensveld 29-bits-ID 8 byte gegevensgebied
Positie Stuk 28 ~ 24 Stuk 23 ~ 8 Bit7 ~ 0 Byte0 ~ 7
Beschrijving 2 Bit 8 ~ 15: Motor CAN ID
Bit 21 ~ 16: Foutinformatie (0 - Nee, 1 - Ja)
Bit 21: niet gekalibreerd
Bit 20: HALL codering fout
Bit 19: Fout bij magnetische codering
Bit 18: over temperatuur
Bit 17: overstroom
Bit 16: Onder spanning fout
Bit 22 ~ 23: modusstatus:
0: Reset-modus [reset]
1: Cali-modus [Calibration]
2: Motormodus [Run]
Host-CAN_ID Byte 0 ~ 1: Huidige hoek [0 ~ 65535] komt overeen met (-4π ~ 4π)
Byte 2 ~ 3: Huidige hoeksnelheid [0 ~ 65535] komt overeen met (-30rad/s ~ 30rad/s)
Byte 4 ~ 5: Huidig koppel [0 ~ 65535] komt overeen met (-12Nm ~ 12Nm)
Byte 6 ~ 7: Huidige temperatuur: Temp (graden Celsius) )*10
4.1.4 Motor inschakelen (communicatietype 3)

Gegevensveld 29-bits-ID 8 byte gegevensgebied
Positie Stuk 28 ~ 24 Stuk 23 ~ 8 Bit7 ~ 0 Byte0 ~ 7
Beschrijving 3 Bit 15 ~ 8: Host CAN_ID Motor-CAN_ID
Antwoordframe: Antwoordmotorfeedbackframe (zie communicatietype 2)
4.1.5 Motor gestopt (communicatietype 4)

Gegevensveld 29-bits-ID 8 byte gegevensgebied
Positie Stuk 28 ~ 24 Stuk 23 ~ 8 Bit7 ~ 0 Byte0 ~ 7
Beschrijving 4 Bit 15 ~ 8: Host CAN_ID Motor-CAN_ID Tijdens normale werking moet het gegevensgebied op 0 worden gewist;
Wanneer Byte[0]=1: Verwijder fout;
Antwoordframe: Antwoordmotorfeedbackframe (zie communicatietype 2)
4.1.6 Het instellen van de mechanische nulpositie van de motor (communicatietype 6) zal de huidige motorpositie instellen op de mechanische nulpositie (verloren na stroomuitval)

Gegevensveld 29-bits-ID 8 byte gegevensgebied
Positie Stuk 28 ~ 24 Stuk 23 ~ 8 Bit7 ~ 0 Byte0 ~ 7
Beschrijving 6 Bit 15 ~ 8: Host CAN_ID Motor-CAN_ID Byte[0]=1
Antwoordframe: Antwoordmotorfeedbackframe (zie communicatietype 2)
4.1.7 Stel motor CAN_ID (communicatietype 7) in om de huidige motor CAN_ID te wijzigen, wat onmiddellijk van kracht zal zijn.

Gegevensveld 29-bits-ID 8 byte gegevensgebied
Positie Stuk 28 ~ 24 Stuk 23 ~ 8 Bit7 ~ 0 Byte0 ~ 7
Beschrijving 7 Bit 15 ~ 8: Host CAN_ID
Bit 16 ~ 23: Nieuwe motor CAN_ID
Motor-CAN_ID Byte[0]=1
Antwoordframe: Antwoordmotorbroadcastframe (zie communicatietype 0)
4.1.8 Enkele parameterlezen (communicatietype 17)

Gegevensveld 29-bits-ID 8 byte gegevensgebied
Positie Stuk 28 ~ 24 Stuk 23 ~ 8 Bit7 ~ 0 Byte0 ~ 7
Beschrijving 17 Bit 15 ~ 8: Host CAN_ID Motor-CAN_ID Byte 0 ~ 1: index, zie 4.1.11 voor parameterlijst
Byte 2 ~ 3:00
Byte 4 ~ 7:00
Reactiekader:

Gegevensveld 29-bits-ID 8 byte gegevensgebied
Positie Stuk 28 ~ 24 Stuk 23 ~ 8 Bit7 ~ 0 Byte0 ~ 7
Beschrijving 17 Bit 15 ~ 8: Motor CAN_ID Host-CAN_ID Byte 0 ~ 1: index, voor parameterlijst, zie 4.1.11
Byte 2 ~ 3:00
Byte 4 ~ 7: parametergegevens, 1 byte gegevens bevinden zich in Byte 4
4.1.9 Enkele parameter schrijven (communicatietype 18) (verloren na stroomuitval)

Gegevensveld 29-bits-ID 8 byte gegevensgebied
Positie Stuk 28 ~ 24 Stuk 23 ~ 8 Bit7 ~ 0 Byte0 ~ 7
Beschrijving 18 Bit 15 ~ 8: Host CAN_ID Motor-CAN_ID Byte 0 ~ 1: index, zie 4.1.11 voor details van de parameterlijst
Byte 2 ~ 3:00
Byte 4 ~ 7: parametergegevens
Antwoordframe: Antwoordmotorfeedbackframe (zie communicatietype 2)
4.1.10 Fout feedback frame (communicatietype 21)

Gegevensveld 29-bits-ID 8 byte gegevensgebied
Positie Stuk 28 ~ 24 Stuk 23 ~ 8 Bit7 ~ 0 Byte0 ~ 7
Beschrijving 21 Bit 15 ~ 8: Host CAN_ID Motor-CAN_ID Byte 0 ~ 3: foutwaarde (niet 0: fout, 0: normaal)
Bit 16: Een fase-stroommonstering overbelasting
Bit 15 ~ 8: overbelastingsfout
Bit 7: encoder niet gekalibreerd
Bit 5: C-fase stroommonstering overbelasting
Bit 4: B-fase stroommeting overbelastingsbit 3: overspanningsfout
Bit 2: onderspanningsfout bit1: stuurchipfout bit0: motor overtemperatuurfout, standaard 80 graden
Byte 4 ~ 7: waarschuwingswaarde
Bit 0: motor overtemperatuur waarschuwing, standaard 75 graden
4.1.11 Wijziging van de baudrate (communicatietype 22) (versie 1.2.1.5 kan worden gewijzigd, raadpleeg het documentproces om dit zorgvuldig te wijzigen. Bedrijfsfouten kunnen problemen veroorzaken zoals het niet kunnen verbinden met de motor en het niet kunnen upgraden)

Gegevensveld 29-bits-ID 8 byte gegevensgebied
Positie Stuk 28 ~ 24 Stuk 23 ~ 8 Bit7 ~ 0 Byte0 ~ 7
Beschrijving 22 Bit 15 ~ 8: Host CAN_ID Motor-CAN_ID Byte0: Motor baudrate
1: 1 Mbps
2: 500 kbps
3: 250 kbps
4: 125 kbps
Antwoordframe: Antwoordmotorbroadcastframe (zie communicatietype 0)
4.1.12 Leesbare en schrijfbare enkele parameterlijst (7019-7020 is leesbaar door firmwareversie 1.2.1.5)

Parameterindex parameternaam beschrijven type Aantal bytes Mogelijke waarden Toestemming
0x7005 run_mode 0: Bedrijfsbedieningsmodus
1: Positiemodus
2: Snelheidsmodus
3: Huidige modus
uint8 1 W/R
0x7006 iq_ref Huidige Modus Iq Opdracht vlot 4 -23 ~ 23A W/R
0x700A spd_ref Snelheidsmodus snelheidscommando vlot 4 -30 ~ 30rad/s W/R
0x700B limit_torque Koppellimiet vlot 4 0~12Nm W/R
0x7010 cur_kp Kp van stroom vlot 4 Standaardwaarde 0,125 W/R
0x7011 cur_ki Huidige sleutel vlot 4 Standaardwaarde 0,0158 W/R
0x7014 cur_filt_gain Huidige filtercoëfficiënt filt_gain vlot 4 0~1.0, standaardwaarde W/R 0.1 W/R
0x7016 loc_ref Positiemodus hoekcommando vlot 4 tof W/R
0x7017 limit_spd Snelheidslimiet in positie modus vlot 4 0 ~ 30rad/s W/R
0x7018 limit_cur Snelheidspositie-modus stroomlimiet vlot 4 0 ~ 23A W/R
0x7019 mechPos Laad eindoverlap tellen mechanische hoek vlot 4 tof R
0x701A IQF iq-filterwaarde vlot 4 -23 ~ 23A R
0x701B mechVel Laad eindsnelheid vlot 4 -30 ~ 30rad/s R
0x701C VBUS busspanning vlot 4 V R
0x701D rotatie Aantal beurten int16 2 Aantal beurten W/R
0x701E loc_kp kp van positie vlot 4 Standaardwaarde 30 W/R
0x701F spd_kp Snelheid in kp vlot 4 Standaardwaarde 1 W/R
0x7020 spd_ki Snelheid van ki vlot 4 Standaardwaarde 0,002 W/R

4.2 Instructies voor het gebruik van de controlemodus

4.2.1 Programma voorbeeld
Het volgende biedt voorbeelden van het aansturen van motoren in verschillende modi (met de gd32f303 als voorbeeld). Het volgende wordt bibliotheken, functies en macrodefinities voor verschillende voorbeelden genoemd.
#define P_MIN -12.5f
#definieer P_MAX 12.5f
#define V_MIN -30.0f
#definieer 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

structuur 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_EXTENDED,
    .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<
✔ Gekopieerd!

 

Bedieningsmodus motorbesturingsinstructies (communicatietype 1)
void motor_controlmode(uint8_t id, float torque, float MechPosition, float speed, float kp, float kd) {
    txCanIdEx.modus = 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(snelheid,V_MIN,V_MAX,16)>>8;
    txMsg.tx_data[3]=float_to_uint(snelheid,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);
    kan_txd();
}


✔ Gekopieerd!

 

Motor stopt met draaien frame (communicatietype 4)
void motor_reset(uint8_t id, uint16_t master_id) {
    txCanIdEx.modus = 4;
    txCanIdEx.id = id;
    txCanIdEx.res = 0;
    txCanIdEx.data = master_id;
    txMsg.tx_dlen = 8;
    voor(uint8_t i=0;i<8;i++) {
        txMsg.tx_data[i]=0;
    }
    kan_txd();
}


✔ Gekopieerd!

 

Motor modus parameter schrijfopdracht (communicatietype 18, schakelen van bedrijfsmodus)
uint8_t uitvoeringsmodus;
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;
    voor(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);
    kan_txd();
}


✔ Gekopieerd!

 

Motor modus parameter schrijfopdracht (communicatietype 18, controleparameter schrijven)
uint16_t-index;
drijvende 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;
    voor(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);
    kan_txd();
}


✔ Gekopieerd!

 

4.2.2 Bedrijfsbedieningsmodus
Nadat de motor is ingeschakeld, bevindt deze zich standaard in de bedieningsmodus;
Stuur motor inschakelen loopframe (communicatietype 3) -->
Stuur operationele controlemodus motorbesturingscommando (communicatietype 1) -->
Ontvang motorfeedbackframe (communicatietype 2)
4.2.3 Huidige modus
Stuur het schrijfcommando voor de motor modusparameter (communicatietype 18) en stel de runmodeparameter in op 3 --->
Stuur het motor inschakelen run frame (communicatietype 3) -->
Stuur het schrijfcommando voor de motorstandparameter (communicatietype 18) en stel de iq_ref-parameter in als de vooraf ingestelde stroomopdracht.
4.2.4 Snelheidsmodus
Stuur het schrijfcommando voor de motor modusparameter (communicatietype 18) en stel de runmode parameter in op 2 --->
Stuur het motor inschakelen run frame (communicatietype 3) -->
Stuur het schrijfcommando voor de motor modusparameter (communicatietype 18) en stel de limit_cur parameter in voor het vooraf ingestelde maximale stroomcommando -->
Stuur het schrijfcommando voor de motormodusparameter (communicatietype 18) om de spd_ref-parameter in te stellen op de vooraf ingestelde snelheid.
4.2.5 Locatiemodus
Stuur het schrijfcommando voor de motor modusparameter (communicatietype 18) en stel de runmodeparameter in op 1 -->
Stuur het motor inschakelen run frame (communicatietype 3) -->
Stuur het schrijfcommando voor de motor modusparameter (communicatietype 18) en stel de limit_spd parameter in op de vooraf ingestelde maximale snelheid opdracht -->
Stuur het schrijfcommando voor de motorstandparameter (communicatietype 18) om de loc_ref-parameter in te stellen op het vooraf ingestelde positiecommando.
4.2.6 Stop de werking
Stuur motor stopframe (communicatietype 4)

CyberGear-bibliotheek voor M5-stack

https://github.com/project-sternbergia/cybergear_m5/tree/main

cybergear_m5

M5 stack bibliotheek voor cybergear
"Vergeet niet, met grote koppel komt grote verantwoordelijkheid.

Ondersteund raamwerk

  • Arduino voor ESP32

Ondersteund apparaat (ESP32)

  • M5Stack Basis V2.7

H/W Componenten (MCP2515)

H/W Componenten (ESP32 + PWRCAN)

H/W-componenten (ESP32 + CAN-zendontvanger)

Hoe u Officieel gebruikt GUI hulpmiddel

Deze software vereist een specifieke CAN naar USB-module. De officiële documentatie raadt de USB naar CAN-module van YourCee aan, die het seriële protocol ondersteunt met een frame-header van 41 54 en een frame-tail van 0D 0A, maar deze is niet gemakkelijk verkrijgbaar, dus hebben we Aliexpress doorzocht naar een alternatief. ※ Let op dat dit niet werkt voor algemene modules.
Getest (ter referentie):

Aanbevolen voorgekrimpte kabels

  • XT30(2+2) kabel

Hoe loop steekproef

Arduino GAAT

  • Kloon MCP_CAN_LIB En cygergear_m5 naar de Arduino-bibliotheekdirectory.
  • cd ~/Arduino/libraries
  • git-kloon https://github.com/coryjfowler/MCP_CAN_lib.git
  • git-kloon https://github.com/Locoduino/RingBuffer.git
  • git kloon git@github.com:project-sternbergia/arduino-CAN.git
  • git kloon https://github.com/project-sternbergia/cybergear_m5.git
  • Plaats dit bestand in dezelfde map als control_mode_example.ino (voor Arduino IDE). Als je de ESP32_CAN-bibliotheek wilt gebruiken, commentaar dan op deze regels.
  • Bouw en schrijf firmware voor M5Stack

Voorbeeldcode

control_mode_example.ino

Controleer het gedrag van cybergear met behulp van M5-stack.
  • Middelste knop - Controlemodus wijzigen (Positiemodus -> Snelheidsmodus -> Huidige modus)
  • Rechtermuisknop - Verhoog controlewaarde
  • Linkerknop - Verlaag controlewaarde

cybergear_bilateral.ino

Dit voorbeeld gebruikt twee cybergears voor leider en volger. Voordat je dit voorbeeld test, wijzig dan de cybergear kan-id als volgt. Schrijf daarna cybergear_m5/voorbeelden/cybergear_bilateral.ino naar m5 stack via Arduino IDE.
  • leider cybergear : 0x7F
  • volger cybergear : 0x7E

Aanbevolen artikelen

 

Vorig bericht
Volgende bericht

laat een reactie achter

Alle blogreacties worden vóór publicatie gecontroleerd

Iemand heeft onlangs een gekocht

Bedankt voor het abonneren!

Deze e-mail is geregistreerd!

Shop de look

Kies opties

Recent bekeken

Bewerk optie
Terug op voorraad melding
this is just a warning
Log in
Winkelmand
0 artikelen
RuffRuff App RuffRuff App by Tsun