XiaoMi CyberGear Mikromotorguide

Vad är XiaoMi CyberGear Micromotor

Xiaomi CyberGear Micromotor är en kompakt men kraftfull mikromotor designad för avancerade robot- och bioniska tillämpningar. Den har ett högt vridmoment i förhållande till storleken, snabba responstider och precis kontroll, vilket möjliggör realistiska och flytande rörelser i robotarmar och mekanismer. Dess modulära design och intelligenta styralgoritmer underlättar sömlös integration i komplexa system, vilket gör den lämplig för tillämpningar från bioniska proteser till avancerade robotdjur. Xiaomi betonar dess potential att skapa mer livfulla och interaktiva robotupplevelser.

 

CyberGear Micromotor bruksanvisning

Försiktighetsåtgärder

  • Använd den enligt de arbetsparametrar som anges i denna artikel, annars kan det orsaka allvarliga skador på produkten!
  • Styrningsläget kan inte bytas medan leden är igång. Om du behöver byta måste du skicka ett stoppkommando innan bytet.
  • Vänligen kontrollera att alla delar är hela innan användning. Om delar saknas eller är skadade, kontakta teknisk support i tid.
  • Montera inte isär motorn på egen hand för att undvika oåterkalleliga fel.
  • Se till att det inte finns någon kortslutning när motorn ansluts och att gränssnittet är korrekt anslutet enligt kraven.

Juridiska meddelanden

Innan du använder denna produkt måste användaren läsa denna manual noggrant och använda produkten i enlighet med innehållet i denna manual. Om användaren använder denna produkt i strid med innehållet i denna manual, tar företaget inget ansvar för eventuella egendomsskador eller personskador. Eftersom denna produkt består av många delar, låt inte barn komma i kontakt med produkten för att undvika olyckor. För att förlänga produktens livslängd, använd inte produkten i miljöer med hög temperatur och högt tryck. Denna manual har försökt inkludera olika funktionsintroduktioner och användarinstruktioner vid tryckningstillfället. På grund av kontinuerliga förbättringar av produktfunktioner, designändringar osv. kan det dock fortfarande finnas skillnader jämfört med de produkter som användarna köpt.
Det kan finnas skillnader mellan denna manual och den faktiska produkten när det gäller färg, utseende osv. Vänligen hänvisa till den faktiska produkten. Denna manual är utgiven av Xiaomi eller dess lokala dotterbolag. Xiaomi kan när som helst göra nödvändiga förbättringar och ändringar i denna manual för tryckfel, felaktigheter i den senaste informationen eller förbättringar av program och/eller utrustning utan föregående meddelande. Sådana ändringar kommer att laddas upp till den nya versionen av denna manual. Vänligen skanna QR-koden på denna manual för att få den. Alla bilder är endast för funktionell beskrivning. Vänligen hänvisa till den faktiska produkten.

Eftermarknadspolicy

Eftermarknadstjänsten för denna produkt följer strikt "Konsumenträttighets- och intresseskyddslagen i Folkrepubliken Kina" och "Produktkvalitetslagen i Folkrepubliken Kina". Serviceinnehållet är följande:

Garantiperiod och innehåll

  Användare som beställer denna produkt via onlinekanaler kan utnyttja en returrätt utan angivande av skäl inom sju dagar från mottagningsdagen. Vid retur måste användaren visa giltigt inköpsbevis och returkvittot. Användaren måste säkerställa att de returnerade varorna behåller sin ursprungliga kvalitet och funktionalitet, att utseendet är intakt samt att varumärken och logotyper på varorna och tillbehören är kompletta. Eventuella gåvor måste returneras tillsammans. Om produkten är konstgjort skadad, demonterad manuellt, förpackningsboxen saknas eller reservdelar saknas, kommer returer inte att behandlas. Logistikkostnader vid retur ska bäras av användaren (se "Eftermarknadstjänstens avgiftsstandarder" för avgiftsregler). Om användaren inte betalar logistikkostnaderna, kommer det faktiska beloppet att dras av från återbetalningsbeloppet. Det betalda priset återbetalas till användaren inom sju dagar från mottagandet av de returnerade varorna. Återbetalningsmetoder är samma som betalningsmetoder. Den specifika ankomstdagen kan påverkas av faktorer som banker och betalningsinstitut.
  Om ett funktionsfel som inte beror på mänsklig skada inträffar inom 7 dagar från dagen efter att användaren tagit emot produkten, kommer Xiaomis eftermarknadsservicecenter att hantera returärendet för användaren efter inspektion och bekräftelse. Vid retur av produkten måste användaren visa upp ett giltigt inköpsbevis och returkvittot. Eventuella gåvor måste returneras tillsammans.
  Om icke-mänskliga skador eller prestandafel uppstår inom 7 till 15 dagar från dagen efter att användaren kvitterar, kommer Xiaomis efterförsäljningscenter att hantera bytesärendet för användaren och byta ut hela produktuppsättningen efter inspektion och bekräftelse. Efter bytet kommer produktens tre-garantiperiod att räknas om.
  Från 15 dagar till 365 dagar från dagen efter att användaren kvitterar, efter inspektion och bekräftelse av Xiaomis efterförsäljningscenter, är det ett kvalitetsfel i produkten själv och reparationsservice kan tillhandahållas kostnadsfritt. Den utbytta defekta produkten tillhör Xiaomi Company. Icke-defekta produkter returneras i ursprungligt skick. Denna produkt lämnar fabriken efter att ha genomgått olika strikta tester. Om det finns något kvalitetsfel som inte är relaterat till produkten själv, har vi rätt att neka användarens retur- eller bytesbegäran.
Om efterförsäljningspolicyn i denna manual är inkonsekvent med butikens efterförsäljningspolicy, ska butikens policy gälla.

Icke-garantiregler: Följande situationer täcks inte av garantin:

  Överskrider garantiperioden som begränsas av garantivillkoren.
  Produktskador orsakade av felaktig användning utan att följa instruktionerna.
  Skador orsakade av felaktig användning, underhåll, installation, modifiering, testning och annan olämplig användning.
  Konventionellt mekaniskt slitage och förlust orsakad av icke-kvalitetsfel.
  Skador orsakade av onormala arbetsförhållanden, inklusive men inte begränsat till fall, stötar, vätskeindränkning, våldsam påverkan etc.
  Skador orsakade av naturkatastrofer (såsom översvämningar, bränder, blixtnedslag, jordbävningar etc.) eller force majeure.
  Skador orsakade av användning utöver maximal vridmoment.
  Artiklar som inte är äkta Xiaomi-produkter kanske inte kan tillhandahålla lagligt inköpsbevis.
  Andra fel eller skador som inte orsakas av problem som produktdesign, teknik, tillverkning, kvalitet etc.
  Använd denna produkt för kommersiella ändamål.
Om ovanstående situation uppstår måste användarna själva stå för kostnaderna. För detaljer om koncernens eftermarknadspolicy, se: https://www.mi.com/service/serviceAgreement?id=17

 

Motorspecifikationer

1.1 Utseende och installationsmått

1.2 Standard användningsstatus

1.2.1 Märkspänning: 24 VDC
1.2.2 Driftsvoltintervall: 16V—28 VDC
1.2.3 Märkbelastning (medurs): 4 N.m
1.2.4 Riktning för rotation: Medurs/moturs sett från axelns riktning
1.2.5 Användningsställning: Axelriktningen är horisontell eller vertikal
1.2.6 Standard driftstemperatur: 25±5°C
1.2.7 Driftstemperaturområde: -20 ~ 50°C
1.2.8 Standard driftfuktighet: 65 %
1.2.9 Driftfuktighetsintervall: 5 ~ 85 %, ingen kondensation
1.2.10 Förvaringstemperaturområde: -30 ~ 70°C
1.2.11 Isoleringsklass: Klass B

1.3 Elektriska egenskaper

1.3.1 Tomgångshastighet: 296 rpm±10%
1.3.2 Tomgångsström: 0,5 Arms
1.3.3 Märkbelastning: 4 N.m
1.3.4 Märkbelastningshastighet: 240rpm±10% 1.3.5 Märkbelastningsström (topp): 6,5A±10% 1.3.6 Toppbelastning: 12 N.m
1.3.7 Topppström (toppvärde): 23A±10%
1.3.8 Isoleringsresistans/statorlindning: DC 500VAC, 100M Ohm 1.3.9 Högspänningsresistans/stator och hölje: 600 VAC, 1s, 2mA 1.3.10 Motorens bakre elektromotoriska kraft: 0,054-0,057Vrms/rpm
1.3.11 Ledningsresistans: 0,45Ω±10%
1.3.12 Vridmomentkonstant: 0,87N.m/Arms
1.3.13 Motorinduktans: 187-339μH
1.3.14 T-N-kurva
1.3.15 Maximal överbelastningskurva Testförhållanden:
Omgivningstemperatur: 25°C
Vindbegränsningstemperatur: 120°C
Hastighet: 24rpm
Maximal lastkurva
Maximal överbelastningstid (s) vs vridmoment (N.m)
Testdata

Last Drifttid (s)
12 28
11 45
10 60
9 90
8 160
7 320
6 700
5 1800
4.5 2500
4 klassificerad

1.4 Mekaniska egenskaper

1.4.1 Vikt: 317g±3g
1.4.2 Antal poler: 28 poler 1.4.3 Antal faser: 3 faser
1.4.4 Drivläge: FOC
1.4.5 Utväxlingsförhållande: 7,75:1

Drivproduktinformation

2.1 Drivare utseende introduktion & produktspecifikationer

24V strömförsörjning och CAN-kommunikation integrerad terminal;
Hårdvaruversion och lasergraverad QR-kod;
MCU-nedladdningsport;
CAN-kommunikationstestpunkt;
Indikatorlampa;
Installationshål; 7. “C, A, B” är svetsningspunkterna för trefaslindningen;

Produktspecifikationer


Märkspänning vid drift 24VDC
Maximal tillåten spänning 28VDC
Märkström vid drift 6.5A
Maximal tillåten ström 23A
Strömförbrukning i viloläge ≤18 mA
CAN-bussens bithastighet 1 Mbps
Storlek Φ58mm
Arbetstemperatur för miljön -20°C 50°C
Maximal temperatur tillåten av styrkortet 80°C
Kodare upplösning 14 bitar (absolutvärde med enkel varv)

2.2 Definition av drivrutinsgränssnitt

2.2.1 Diagram över drivrutinsgränssnitt
2.2.2 Rekommenderade varumärken och modeller av drivrutinsgränssnitt

# Kortmodell Varumärkestillverkare Linjens ändmodell Varumärkestillverkare
1 XT30PB(2+2)-M.G.B AMASS (AMS) XT30(2+2)-F.G.B AMASS (AMS)
2 2,0 mm-2-polig hona / 2,0 mm-2-polig hane /
3 2,54 mm-4-polig hona / 2,54 mm-4-polig hane /
2.2.3 Definition av drivrutinsgränssnittets stift
Strömförsörjning och CAN-kommunikationsport
CAN-kommunikationstestplatta
Nedladdningsport


# Gränssnittsfunktion STIFT Beskrivning
1 Ström och CAN-kommunikation 1 Strömförsörjning positiv (+)
2 Negativ pol för strömförsörjning (-)
3 CAN-kommunikation låg sida CAN_L
4 CAN-kommunikation hög sida CAN_H
2 CAN-kommunikation testpunkt 1 CAN-kommunikation låg sida CAN_L
2 CAN-kommunikation hög sida CAN_H
3 Nedladdningsport 1 SWDIO (data)
2 SWCLK (klocka)
3 3V3 (positiv 3,3V)
4 GND (negativ jord)

2.3 Definition av drivrutin indikatorlampa

Blå signallampa och röd strömindikatorlampa
Definition av indikatorlampa

Strömindikatorlampa (rött ljus när den är på) Strömindikatorlampan används för att indikera MCU:s 3,3V strömförsörjning. När den totala strömingången är 24V tänds lampan röd, vilket bevisar att hela nätverket är strömförsatt normalt. Om strömförsörjningen är 24V och indikatorlampan inte lyser måste strömmen omedelbart brytas.
Signalindikatorlampa (blått ljus när den är på) När signallampan blinkar bevisar det att MCU:n fungerar normalt och att drivrutinschipet fungerar normalt

2.4 Huvudkomponenter och specifikationer


# Komponenttyp Modell Kvantitet
1 MCU-chip GD32F303RET6 1 ST
2 Drivrutinschip 6EDL7141 1 ST
3 Magnetisk kodarchip AS5047P 1 ST
4 Termistor NXFT15XH103FEAB021/NCP18XH103F03RB 2 ST
5 Effekt MOS JMGG031V06A 6 ST

Instruktioner för användning av debugger (skanna QR-kod i slutet av pappersmanualen för att få debuggningsverktyget)

3.1 Hårdvarukonfiguration

Den gemensamma motorn använder CAN-kommunikation. Det finns två kommunikationslinjer som är anslutna till debuggningsverktyget via ett can-till-USB-verktyg. Debuggningsverktyget behöver installera ch340-drivrutinen i förväg och fungerar som standard i AT-läge.
Det bör noteras att vi utvecklade debuggern baserat på ett specifikt can till USB-verktyg, så vi behöver använda vårt rekommenderade seriella portverktyg för felsökning. Om du vill porta det till andra debuggerplattformar kan du hänvisa till kapitel 3 i manualen. utveckling.
Can till USB-verktyget rekommenderar att använda YourCees USB-CAN-modul. Ramhuvudet som motsvarar seriell portprotokoll är 41 54 och ramens svans är 0D 0A.

 

3.2 Debuggergränssnitt och beskrivning

inkluderar huvudsakligen:
A. Val av modul
  • Enhetsmodul
  • Konfigurationsmodul
  • Analysmodul
  • Hjälpmodul
B. Val av delmodul Utrustningsmoduler inkluderar
  • Anslut eller koppla bort elektrisk utrustning
  • Information om motorutrustning
  • Motorens encoderkalibrering
  • Ändra motor CAN-ID
  • Ställ in motorns mekaniska nollposition
  • Motorprogramuppgradering
Konfigurationsmoduler inkluderar:
  • Parameterlista, du kan visa och ändra motorparametrar
  • Ladda upp parametrar. Du kan ladda upp parametrarna i motorn till parameterlistan
  • Ladda ner parametrar. Du kan ladda ner data från parameterlistan till motorn
  • Exportera parametrar. Du kan ladda ner data från parameterlistan till lokal
  • Återställ fabriksinställningar, du kan återställa data i parameterlistan till fabriksinställningarna.
  • Rensa varning, du kan rensa motorfel, såsom övertemperatur, etc.
Analysmoduler inkluderar:
  • Oscilloskop för att visa parameterändringar över tid
  • Frekvens, du kan justera frekvensen för visning av data
  • Kanal, du kan konfigurera data som ska visas
  • Starta och stoppa ritning
  • Exportera vågformsdata till lokal
Hjälpmoduler inkluderar:
  • Bruksanvisning, där du kan öppna bruksanvisningen
  • Om, där du kan se mjukvaruinformation
C. Motorinformationsförfrågan
  • Enhetsinformation
  • Parametertabellsinformation
D. Datakolumn
  • Logginformation
  • Kommunikationsinformation
E. Kör felsökningsområde
  • Välj enhet
  • Bekvämt driftsområde, där du snabbt kan styra motorns framåt- och bakåtriktade rotation
  • Rörelsestyrningsområde, som kan styra motorn att arbeta i olika lägen
F. Delmodulens visningsområde

3.3 Motorinställningar

3.3.1 Motoranslutningsinställningar
Anslut CAN till USB-verktyget (installera ch340-drivrutin, arbetar som standard i AT-läge), välj enhetsmodulen, klicka på anslutningsundermodulen och välj motsvarande seriell portanslutning.
3.3.2 Grundinställningar
Ändra motor-ID-numret.
  • Kalibrering av motorens magnetiska fläta, återmontering av motorstyrelsen och motorn, eller återanslutning av motorledningarna i en annan ordning, kräver omkalibrering av magnetisk fläta.
  • Ställ in nollpositionen (förloras vid strömavbrott) och ställ in aktuell position till 0.
  • Motorprogramuppgradering. När motorprogrammet uppdateras, klicka på uppgraderingsknappen för att välja uppgraderingsfilen för att uppgradera.
3.3.3 Parameterlista
Efter att motorn har anslutits framgångsrikt, klicka på parametertabellmodulen i konfigurationsmodulen, och alla parametrar visas i loggen. Inläsningen är framgångsrik, vilket indikerar att relevanta parametrar för motorn har lästs framgångsrikt (Obs: parametertabellen måste vara i motorns viloläge för att konfigureras, om motorn är i driftläge kan inte parametertabellen uppdateras). Gränssnittet visar motorens elektriska relevanta parametrar. De blå parametrarna är motorens interna lagringsparametrar. De kan hittas direkt efter motsvarande parametrar. Ändra föregående värdekolumn. Klicka på Ladda ner parametrar för att ladda ner parametrarna från debuggningsverktyget till motorn. Klicka på Ladda upp parametrar för att ladda upp parametrarna i motorn till debuggningsverktyget. De gröna parametrarna för motorn är observerade parametrar, vilka är de insamlade parametrarna som kan observeras i realtid.
Obs: Vänligen ändra inte motorens vridmomentgräns, skyddstemperatur och övertemperaturtid godtyckligt. På grund av olaglig användning av denna bok, om produkten orsakar skada på människokroppen eller oåterkallelig skada på leder, kommer vårt företag inte att hållas ansvarigt för några juridiska konsekvenser eller rättsligt ansvar.
Parametertabell

Funktionskod Namn Parametertyp Attribut Maximivärde Minimivärde Aktuellt värde (för referens) Anmärkning
0x0000 Namn Sträng läs/skriv ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
0x0001 Streckkod Sträng läs/skriv ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
0x1000 BootCodeVersion Sträng endast läsning 0.1.5
0x1001 BootBuildDate Sträng endast läsning Mar 16 2022
0x1002 BootBuildTime Sträng endast läsning 20:22:09
0x1003 AppCodeVersion Sträng endast läsning 0.1.5 Motorprogramversionnummer
0x1004 AppGitVersion Sträng endast läsning 7b844b0fM
0x1005 AppBuildDate Sträng endast läsning Apr 14 2022
0x1006 AppBuildTime Sträng endast läsning 20:30:22
0x1007 AppCodeName Sträng endast läsning dog_motor
0x2000 echoPara1 uint16 Konfiguration 74 5 5
0x2001 echoPara2 uint16 Konfiguration 74 5 5
0x2002 echoPara3 uint16 Konfiguration 74 5 5
0x2003 echoPara4 uint16 Konfiguration 74 5 5
0x2004 echoFreHz uint32 läs/skriv 10000 1 500
0x2005 MechOffset flyttal ställer in 7 -7 4.619583 Motor magnetisk encoder vinkeloffset
0x2006 MechPos_init flyttal läs/skriv 50 -50 4.52 Referensvinkel under initial flervarv
0x2007 limit_torque flyttal läs/skriv 12 0 12 Momentgräns
0x2008 I_FW_MAX flyttal läs/skriv 33 0 0 Fältförsvagning strömvärde, standard 0
0x2009 motor_index uint8 ställer in 20 0 1 Motorindex, markerar motorledens position
0X200a CAN_ID uint8 ställer in 127 0 1 Detta nod-id
0x200b CAN_MASTER uint8 ställer in 127 0 0 can värd-id
0x200c CAN_TIMEOUT uint32 läs/skriv 100000 0 0 can timeout tröskel, standard 0
0x200d motorÖverTemp int16 läs/skriv 1500 0 800 Motorskyddstemperaturvärde, temp (grader) *10
0x200e överTempTid uint32 läs/skriv 1000000 1000 20000 Övertemperaturtid
0x200f GearRatio flyttal läs/skriv 64 1 7.75 Växelförhållande
0x2010 Tq_caliType uint8 läs/skriv 1 0 1 Inställning för vridmomentkalibreringsmetod
0x2011 cur_filt_gain flyttal läs/skriv 1 0 0.9 Strömfilterparametrar
0x2012 cur_kp flyttal läs/skriv 200 0 0.025 Ström kp
0x2013 cur_ki flyttal läs/skriv 200 0 0.0258 elektrisk ström ki
0x2014 spd_kp flyttal läs/skriv 200 0 2 Hastighet kp
0x2015 spd_ki flyttal läs/skriv 200 0 0.021 hastighet ki
0x2016 loc_kp flyttal läs/skriv 200 0 30 Plats kp
0x2017 spd_filt_gain flyttal läs/skriv 1 0 0.1 Hastighetsfilterparametrar
0x2018 limit_spd flyttal läs/skriv 200 0 2 Positionsläges hastighetsgräns
0x2019 limit_cur flyttal läs/skriv 23 0 23 Position, hastighetsläge strömgräns
0x3000 timeUse0 uint16 skrivskyddad (dator) 5
0x3001 timeUse1 uint16 skrivskyddad (dator) 0
0x3002 timeUse2 uint16 skrivskyddad (dator) 10
0x3003 timeUse3 uint16 skrivskyddad (dator) 0
0x3004 encoderRaw uint16 skrivskyddad (dator) 11396 Magnetisk kodare provvärde
0x3005 mcuTemp int16 skrivskyddad (dator) 337 mcu intern temperatur *10
0x3006 motorTemp int16 skrivskyddad (dator) 333 motor ntc temperatur *10
0x3007 vBus(mv) uint16 skrivskyddad (dator) 24195 bussbars-spänning
0x3008 adc1Offset int32 skrivskyddad (dator) 2084 adc provkanal 1 nollströmsförskjutning
0x3009 adc2Offset int32 skrivskyddad (dator) 2084 adc provkanal 2 nollströmsförskjutning
0x300a adc1Raw uint16 skrivskyddad (dator) 1232 adc Provningsvärde 1
0x300b adc2Raw uint16 skrivskyddad (dator) 1212 adc Provningsvärde 2
0x300c VBUS flyttal skrivskyddad (dator) 24.195 Bussbars-spänning V
0x300d cmdId flyttal skrivskyddad (dator) 0 id ringkommando, A
0x300e cmdIq flyttal skrivskyddad (dator) 0 iq ringkommando, A
0x300f cmdlocref flyttal skrivskyddad (dator) 0 Positionsloopkommando, rad
0x3010 cmdspdref flyttal skrivskyddad (dator) 0 Hastighetsloopkommando, rad/s
0x3011 cmdTorque flyttal skrivskyddad (dator) 0 Vridmomentkommando, nm
0x3012 cmdPos flyttal skrivskyddad (dator) 0 mit Protokoll Vinkelkommando
0x3013 cmdVel flyttal skrivskyddad (dator) 0 mit protokoll hastighetsindikator virtuos
0x3014 rotation int16 skrivskyddad (dator) 1 antal varv
0x3015 modPos flyttal skrivskyddad (dator) 4.363409 Motor okalkylerad mekanisk vinkel, rad
0x3016 mechPos flyttal skrivskyddad (dator) 0.777679 Lastsida loopräknande maskinvinkel, rad
0x3017 mechVel flyttal skrivskyddad (dator) 0.036618 Lastsida styrhastighet, rad/s
0x3018 elecPos flyttal skrivskyddad (dator) 4.714761 Elektrisk vinkel
0x3019 ia flyttal skrivskyddad (dator) 0 U linjeström, A
0x301a ib flyttal skrivskyddad (dator) 0 V linjeström, A
0x301b ic flyttal skrivskyddad (dator) 0 W linjeström, A
0x301c tick uint32 skrivskyddad (dator) 31600
0x301d phaseOrder uint8 skrivskyddad (dator) 0 Kalibreringsriktning markörer
0x301e iqf flyttal skrivskyddad (dator) 0 iq filtervärde, A
0x301f boardTemp int16 skrivskyddad (dator) 359 Temperatur på kortet, *10
0x3020 iq flyttal skrivskyddad (dator) 0 iq ursprungligt värde, A
0x3021 id flyttal skrivskyddad (dator) 0 id Ursprungligt värde, A
0x3022 faultSta uint32 skrivskyddad (dator) 0 Felstatusvärde
0X3023 warnSta uint32 skrivskyddad (dator) 0 Varningsstatusvärde
0x3024 drv_fault uint16 skrivskyddad (dator) 0 Drivrutinchipets felvärde
0x3025 drv_temp int16 skrivskyddad (dator) 48 Drivrutinchipets temperaturvärde, grader
0x3026 Uq flyttal skrivskyddad (dator) 0 q-axelspänning
0x3027 Ud flyttal skrivskyddad (dator) 0 d-axelspänning
0x3028 dtc_u flyttal skrivskyddad (dator) 0 U-fas utgångsarbetscykel
0x3029 dtc_v flyttal skrivskyddad (dator) 0 V fas utgångsarbetscykel
0x302a dtc_w flyttal skrivskyddad (dator) 0 W fas utgångsarbetscykel
0x302b v_bus flyttal skrivskyddad (dator) 24.195 vbus i sluten slinga
0x302c v_ref flyttal skrivskyddad (dator) 0 Sluten slinga vq, vd syntes ingångsspänning
0x302d torque_fdb flyttal skrivskyddad (dator) 0 Vridmomentåterkopplingsvärde, nm
0x302e rated_i flyttal skrivskyddad (dator) 8 Motorns märkström
0x302f limit_i flyttal skrivskyddad (dator) 27 Motorns maximala strömgräns
3.3.4 Oscilloskop
Detta gränssnitt stöder visning och observation av grafen som genereras av realtidsdata. Observerbara data inkluderar motor Id/Iq-ström, temperatur, utgångens realtidshastighet, rotor (encoder) position, utgångsposition med mera.
Klicka på oscilloskopmodulen i analysmodulen, välj lämpliga parametrar i kanalen (för parameterbetydelser, se 3.3.3), ställ in utgångsfrekvensen och klicka på Starta ritning för att observera dataspektrumet, stoppa ritningen för att sluta observera spektrumet.

3.4 Kontroll-demo

jog-körning:
Ställ in maxhastighet, klicka på Kör och klicka sedan på JOG för att köra motorn framåt och bakåt
Växling av kontrolläge:
Motorkontrollläget kan växlas till rörelselägegränssnittet.
3.4.1 Nollpunktsläge
Klicka på växlingsknappen till höger, och motorn återgår långsamt till mekanisk nollposition.
3.4.2 Driftskontrolläge
Klicka på växlingsknappen till höger, ställ sedan in de fem parametervärdena, klicka på Start eller Kontinuerlig sändning, motorn återgår till återkopplingsramen och kör enligt målkommandot; klicka på växlingsknappen till höger igen så stannar motorn.
3.4.2 Strömläge
Byt manuellt aktuell läge, klicka på växlingsknappen till höger och ställ sedan in Iq strömkommando-värdet, starta eller skicka kontinuerligt, motorn följer strömkommandot, klicka på växlingsknappen till höger igen, motorn stannar.
Klicka på växlingsknappen på höger sida av kontrollläget, ange amplituden och frekvensen för den sinusformade automatiska testen, och klicka sedan på växlingsknappen på höger sida av den sinusformade automatiska testen, och motorns iq (A) kommer att köras enligt den inställda amplituden och frekvensen.
3.4.3 Hastighetsläge
Växla manuellt till hastighetsläge, klicka på växlingsknappen till höger, och ställ sedan in hastighetskommando (-30~30rad/s), starta eller skicka kontinuerligt, motorn följer hastighetskommandot, klicka på växlingsknappen till höger igen, motorn stannar.
3.4.4 Positionsläge
Växla manuellt till positionsläge, klicka på växlingsknappen till höger, ställ sedan in positionskommando (rad), starta eller skicka kontinuerligt, motorn följer målpositionskommandot, klicka på växlingsknappen till höger igen, motorn stannar. Du kan ändra maximal hastighet för positionsföljning genom att ställa in hastigheten.
Klicka på växlingsknappen på höger sida av kontrollläget, ange amplituden och frekvensen för den sinusbaserade automatiska testen, och klicka sedan på växlingsknappen på höger sida av den sinusbaserade automatiska testen. Motorpositionen (rad) kommer att röra sig enligt den inställda amplituden och frekvensen.

3.5 Firmwareuppdatering

Det första steget är att klicka på uppgradering av enhetsmodulen och välja bin-filen som ska brännas; det andra steget är att bekräfta uppgraderingen och motorn kommer att börja uppdatera firmware. Efter att processen är klar kommer motoruppdateringen att vara slutförd och den startar om automatiskt.

Drivrutinens kommunikationsprotokoll och användarinstruktioner

Motorkommunikationen är CAN 2.0 kommunikationsgränssnitt, med en baudrate på 1 Mbps och ett utökat ramformat, som visas

Datafält 29-bitars ID 8 Byte dataområde
Storlek Bit 28 ~ 24 Bit 23 ~ 8 Bit 7 ~ 0 Byte 0 ~ 7
Beskrivning Kommunikationstyp Dataområde 2 Måladress Dataområde 1
De kontrolllägen som stöds av motorn inkluderar:
  • Driftskontrolläge: angivna 5 parametrar för motorstyrning;
  • Strömläge: Givet den specificerade Iq-strömmen för motorn;
  • Hastighetsläge: Givet den specificerade driftshastigheten för motorn;
  • Positionsläge: Givet en specificerad position för motorn, kommer motorn att köra till den angivna positionen;

4.1 Beskrivning av kommunikationsprotokolltyp

4.1.1 Hämta enhets-ID (kommunikationstyp 0); Hämta enhetens ID och 64-bitars MCU unika identifierare
Förfrågningsruta:

Datafält 29-bitars ID 8 byte dataområde
Position Bit 28 ~ 24 Bit 23 ~ 8 Bit 7 ~ 0 Byte 0 ~ 7
Beskrivning 0 Bit 15 ~ 8: Värddatorns CAN_ID Motor CAN_ID 0
Svarsruta:

Datafält 29-bitars ID 8 byte dataområde
Position Bit 28 ~ 24 Bit 23 ~ 8 Bit 7 ~ 0 Byte 0 ~ 7
Beskrivning 0 Motor CAN_ID 0xFE 64-bitars MCU unikt identifierare
4.1.2 Motorstyrningsinstruktioner (kommunikationstyp 1) i driftkontrolläge används för att skicka styrinstruktioner till motorn.
Förfrågningsruta:

Datafält 29-bitars ID 8 byte dataområde
Position Bit 28 ~ 24 Bit 23 ~ 8 Bit 7 ~ 0 Byte 0 ~ 7
Beskrivning 1 Byte 2: Vridmoment (0 ~ 65535) motsvarar (- 12Nm ~ 12Nm) Motor CAN_ID Byte 0 ~ 1: Målvinkel [0 ~ 65535] motsvarar (-4π ~ 4π)
Byte 2 ~ 3: Mål vinkelhastighet [0 ~ 65535] motsvarar (- 30rad/s ~ 30rad/s)
Byte 4 ~ 5: Kp [0 ~ 65535] motsvarar (0,0 ~ 500,0)
Byte 6 ~ 7: Kd [0 ~ 65535] motsvarar (0,0 ~ 5,0)
Svarsruta: Svara med motoråterkopplingsruta (se kommunikationstyp 2)
4.1.3 Motoråterkopplingsdata (kommunikationstyp 2) används för att återkoppla motorens driftstatus till värden

Datafält 29-bitars ID 8 byte dataområde
Position Bit 28 ~ 24 Bit 23 ~ 8 Bit 7 ~ 0 Byte 0 ~ 7
Beskrivning 2 Bit 8 ~ 15: Motor CAN-ID
Bit 21 ~ 16: Felformation (0 - Nej, 1 - Ja)
Bit 21: inte kalibrerad
Bit 20: HALL-kodningsfel
Bit 19: Magnetisk kodningsfel
Bit 18: övertemperatur
Bit 17: överström
Bit 16: Underspänningsfel
Bit 22 ~ 23: lägesstatus:
0: Återställningsläge [återställ]
1: Cali-läge [Kalibrering]
2: Motorns läge [Kör]
Host CAN_ID Byte 0 ~ 1: Aktuell vinkel [0 ~ 65535] motsvarar (-4π ~ 4π)
Byte 2 ~ 3: Aktuell vinkelhastighet [0 ~ 65535] motsvarar (-30rad/s ~ 30rad/s)
Byte 4 ~ 5: Aktuellt vridmoment [0 ~ 65535] motsvarar (-12Nm ~ 12Nm)
Byte 6 ~ 7: Aktuell temperatur: Temp (grader Celsius) )*10
4.1.4 Motor aktiverad (kommunikationstyp 3)

Datafält 29-bitars ID 8 byte dataområde
Position Bit 28 ~ 24 Bit 23 ~ 8 Bit 7 ~ 0 Byte 0 ~ 7
Beskrivning 3 Bit 15 ~ 8: Värddatorns CAN_ID Motor CAN_ID
Svarram: Svara motoråterkopplingsram (se kommunikationstyp 2)
4.1.5 Motor stoppad (kommunikationstyp 4)

Datafält 29-bitars ID 8 byte dataområde
Position Bit 28 ~ 24 Bit 23 ~ 8 Bit 7 ~ 0 Byte 0 ~ 7
Beskrivning 4 Bit 15 ~ 8: Värddatorns CAN_ID Motor CAN_ID Under normal drift måste dataområdet rensas till 0;
När Byte[0]=1: Rensa fel;
Svarram: Svara motoråterkopplingsram (se kommunikationstyp 2)
4.1.6 Inställning av motorens mekaniska nollposition (kommunikationstyp 6) kommer att ställa in aktuell motorposition till den mekaniska nollpositionen (förloras vid strömavbrott)

Datafält 29-bitars ID 8 byte dataområde
Position Bit 28 ~ 24 Bit 23 ~ 8 Bit 7 ~ 0 Byte 0 ~ 7
Beskrivning 6 Bit 15 ~ 8: Värddatorns CAN_ID Motor CAN_ID Byte[0]=1
Svarram: Svara motoråterkopplingsram (se kommunikationstyp 2)
4.1.7 Ställ in motor CAN_ID (kommunikationstyp 7) för att ändra aktuell motor CAN_ID, vilket träder i kraft omedelbart.

Datafält 29-bitars ID 8 byte dataområde
Position Bit 28 ~ 24 Bit 23 ~ 8 Bit 7 ~ 0 Byte 0 ~ 7
Beskrivning 7 Bit 15 ~ 8: Värddatorns CAN_ID
Bit 16 ~ 23: Ny motor CAN_ID
Motor CAN_ID Byte[0]=1
Svarsruta: Svarsmotor sändningsruta (se kommunikationstyp 0)
4.1.8 Läsning av enskild parameter (kommunikationstyp 17)

Datafält 29-bitars ID 8 byte dataområde
Position Bit 28 ~ 24 Bit 23 ~ 8 Bit 7 ~ 0 Byte 0 ~ 7
Beskrivning 17 Bit 15 ~ 8: Värddatorns CAN_ID Motor CAN_ID Byte 0 ~ 1: index, se 4.1.11 för parameterlista
Byte 2 ~ 3: 00
Byte 4 ~ 7: 00
Svarsruta:

Datafält 29-bitars ID 8 byte dataområde
Position Bit 28 ~ 24 Bit 23 ~ 8 Bit 7 ~ 0 Byte 0 ~ 7
Beskrivning 17 Bit 15 ~ 8: Motor CAN_ID Host CAN_ID Byte 0 ~ 1: index, för parameterlista, se 4.1.11
Byte 2 ~ 3: 00
Byte 4 ~ 7: parameterdata, 1 byte data finns i Byte 4
4.1.9 Skrivning av enskild parameter (kommunikationstyp 18) (förloras vid strömavbrott)

Datafält 29-bitars ID 8 byte dataområde
Position Bit 28 ~ 24 Bit 23 ~ 8 Bit 7 ~ 0 Byte 0 ~ 7
Beskrivning 18 Bit 15 ~ 8: Värddatorns CAN_ID Motor CAN_ID Byte 0 ~ 1: index, se 4.1.11 för detaljer om parameterlistan
Byte 2 ~ 3: 00
Byte 4 ~ 7: parameterdata
Svarram: Svara motoråterkopplingsram (se kommunikationstyp 2)
4.1.10 Felåterkopplingsram (kommunikationstyp 21)

Datafält 29-bitars ID 8 byte dataområde
Position Bit 28 ~ 24 Bit 23 ~ 8 Bit 7 ~ 0 Byte 0 ~ 7
Beskrivning 21 Bit 15 ~ 8: Värddatorns CAN_ID Motor CAN_ID Byte 0 ~ 3: felvärde (inte 0: fel, 0: normalt)
Bit 16: A-fas strömprovtagning överström
Bit 15 ~ 8: överbelastningsfel
Bit 7: encoder inte kalibrerad
Bit 5: C-fas strömprovtagning överström
Bit 4: B-fas strömprovtagning överström bit3: överspänningsfel
Bit 2: underspänningsfel bit1: drivrutinskapsfel bit0: motor övertemperaturfel, standard 80 grader
Byte 4 ~ 7: varningsvärde
Bit 0: motor övertemperaturvarning, standard 75 grader
4.1.11 Baudrate-ändring (kommunikationstyp 22) (version 1.2.1.5 kan ändras, vänligen följ dokumentprocessen noggrant för att ändra. Felaktig hantering kan orsaka problem som att inte kunna ansluta till motorn och att inte kunna uppgradera)

Datafält 29-bitars ID 8 byte dataområde
Position Bit 28 ~ 24 Bit 23 ~ 8 Bit 7 ~ 0 Byte 0 ~ 7
Beskrivning 22 Bit 15 ~ 8: Värddatorns CAN_ID Motor CAN_ID Byte0: Motorens baudrate
1: 1Mbps
2: 500kbps
3: 250kbps
4: 125kbps
Svarsruta: Svarsmotor sändningsruta (se kommunikationstyp 0)
4.1.12 Läsbar och skrivbar lista med enskilda parametrar (7019-7020 är läsbara med firmwareversion 1.2.1.5)

Parameterindex parameternamn beskriv typ Antal byte Möjliga värden Behörighet
0x7005 run_mode 0: Driftskontrolläge
1: Positionsläge
2: Hastighetsläge
3: Strömläge
uint8 1 W/R
0x7006 iq_ref Strömläge Iq-kommando flyttal 4 -23 ~ 23A W/R
0x700A spd_ref Hastighetsläges hastighetskommando flyttal 4 -30 ~ 30rad/s W/R
0x700B limit_torque Momentgräns flyttal 4 0~12Nm W/R
0x7010 cur_kp Kp för strömmen flyttal 4 Standardvärde 0,125 W/R
0x7011 cur_ki Ström Ki flyttal 4 Standardvärde 0,0158 W/R
0x7014 cur_filt_gain Strömfilterkoefficient filt_gain flyttal 4 0~1.0, standardvärde W/R 0.1 W/R
0x7016 loc_ref Positionsläges vinkelkommando flyttal 4 rad W/R
0x7017 limit_spd Positionsläges hastighetsgräns flyttal 4 0 ~ 30rad/s W/R
0x7018 limit_cur Hastighet Positionsläge Strömgräns flyttal 4 0 ~ 23A W/R
0x7019 mechPos Ladda slutvarvsräkning mekanisk vinkel flyttal 4 rad R
0x701A iqf iq filtervärde flyttal 4 -23 ~ 23A R
0x701B mechVel Laständens hastighet flyttal 4 -30 ~ 30rad/s R
0x701C VBUS buss-spänning flyttal 4 V R
0x701D rotation Antal varv int16 2 Antal varv W/R
0x701E loc_kp kp för position flyttal 4 Standardvärde 30 W/R
0x701F spd_kp Hastighet i kp flyttal 4 Standardvärde 1 W/R
0x7020 spd_ki Hastighet för ki flyttal 4 Standardvärde 0,002 W/R

4.2 Instruktioner för användning av kontrolläge

4.2.1 Programexempel
Följande ger exempel på styrning av motorer i olika lägen (med gd32f303 som exempel). Nedan kallas bibliotek, funktioner och makrodefinitioner för olika exempel.
#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

struct exCanIdInfo{
    uint32_t id:8;
    uint32_t data:16;
    uint32_t mode: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<
✔ Kopierat!

 

Driftskontrollläge motorstyrningsinstruktioner (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);
    can_txd();
}


✔ Kopierat!

 

Motor stopp körningsram (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;
    for(uint8_t i=0;i<8;i++) {
        txMsg.tx_data[i]=0;
    }
    can_txd();
}


✔ Kopierat!

 

Motorlägesparameter skrivkommando (kommunikationstyp 18, växling av driftläge)
uint8_t runmode;
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;
    for(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);
    can_txd();
}


✔ Kopierat!

 

Motorlägesparameter skrivkommando (kommunikationstyp 18, kontrollparameter skrivning)
uint16_t index;
float 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;
    for(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);
    can_txd();
}


✔ Kopierat!

 

4.2.2 Driftstyrningsläge
Efter att motorn är påslagen är den som standard i driftstyrningsläge;
Skicka motor aktivera körningsram (kommunikationstyp 3) -->
Skicka driftkontrolläge motorstyrningskommando (kommunikationstyp 1) -->
Ta emot motorfeedbackram (kommunikationstyp 2)
4.2.3 Strömläge
Skicka motorlägesparameter skrivkommando (kommunikationstyp 18) och ställ in runmode-parametern till 3 --->
Skicka motor aktivera körningsram (kommunikationstyp 3) -->
Skicka motorlägesparameter skrivkommando (kommunikationstyp 18) och ställ in iq_ref-parametern till förinställt strömskommando
4.2.4 Hastighetsläge
Skicka motorlägesparameter skrivkommando (kommunikationstyp 18) och ställ in runmode-parametern till 2 --->
Skicka motor aktivera körningsram (kommunikationstyp 3) -->
Skicka motorlägesparameter skrivkommando (kommunikationstyp 18) och ställ in limit_cur-parametern för förinställt maxströmskommando -->
Skicka motorlägesparameter skrivkommando (kommunikationstyp 18) för att ställa in spd_ref-parametern till förinställt hastighetskommando
4.2.5 Lägesläge
Skicka motorlägesparameter skrivkommando (kommunikationstyp 18) och ställ in runmode-parametern till 1 -->
Skicka motor aktivera körningsram (kommunikationstyp 3) -->
Skicka motorlägesparameter skrivkommando (kommunikationstyp 18) och ställ in limit_spd-parametern till förinställt maxhastighetskommando -->
Skicka motorlägesparameter skrivkommando (kommunikationstyp 18) för att ställa in loc_ref-parametern till förinställt positionskommando
4.2.6 Stoppa drift
Skicka motorstopp-ram (kommunikationstyp 4)

CyberGear-bibliotek för M5 stack

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

cybergear_m5

M5 stack-bibliotek för cybergear
"Kom ihåg, med stort vridmoment kommer stort ansvar."

Stött ramverk

  • Arduino för ESP32

Stödd enhet (ESP32)

  • M5Stack Basic V2.7

Hårdvarukomponenter (MCP2515)

Hårdvarukomponenter (ESP32 + PWRCAN)

Hårdvarukomponenter (ESP32 + CAN Transceiver-enhet)

Hur man använder Officiell GUI verktyg

Denna mjukvara kräver en specifik CAN till USB-modul. Den officiella dokumentationen rekommenderar YourCee's USB till CAN-modul, som stöder seriellt protokoll med ramhuvud 41 54 och ramstjärt 0D 0A, men denna är inte lättillgänglig, så vi sökte på Aliexpress efter ett alternativ. ※ Observera att detta inte fungerar för allmänna moduler.
Testad (för referens):

Rekommenderade förkrympta kablar

  • XT30(2+2) Kabel

Hur man köra exempel

Arduino IDE

  • Klona MCP_CAN_LIB och cygergear_m5 till Arduino Library-katalogen.
  • cd ~/Arduino/libraries
  • git clone https://github.com/coryjfowler/MCP_CAN_lib.git
  • git clone https://github.com/Locoduino/RingBuffer.git
  • git clone git@github.com:project-sternbergia/arduino-CAN.git
  • git clone https://github.com/project-sternbergia/cybergear_m5.git
  • Lägg denna fil i samma mapp som control_mode_example.ino (för Arduino IDE) Om du vill använda ESP32_CAN-biblioteket, kommentera in denna rad.
  • Bygg och skriv firmware till M5Stack

Exempelkod

control_mode_example.ino

Kontrollera cybergear-beteendet med M5Stack.
  • Mittenknapp - Byt kontrollläge (Positionsläge -> Hastighetsläge -> Strömläge)
  • Höger knapp - Öka kontrollvärde
  • Vänster knapp - Minska kontrollvärde

cybergear_bilateral.ino

Detta exempel använder två cybergears för ledare och följare. Innan du testar detta exempel, ändra cybergear CAN-id enligt följande. Skriv sedan cybergear_m5/examples/cybergear_bilateral.ino till m5 stack genom Arduino IDE.
  • ledarens cybergear : 0x7F
  • följarens cybergear : 0x7E

Rekommenderade artiklar

 

Lämna en kommentar

Din e-postadress kommer inte att publiceras. Obligatoriska fält är märkta med *

Registrera dig för vårt nyhetsbrev

Få de senaste nyheterna om våra produkter och specialerbjudanden.