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
-
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
laat een reactie achter
Alle blogreacties worden vóór publicatie gecontroleerd