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
-
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
-
Öppna cybergear_m5/examples/control_mode_example.ino med Arduino IDE
-
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