x_max) x=x_max; altrimenti se(x Copia il codice ✔ Copiato!   Istruzioni di controllo del motore in modalità di controllo operativo (tipo di comunicazione 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); = 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(velocità,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); puoi_txd(); } Copia il codice ✔ Copiato!   Motore fermo telaio (tipo di comunicazione 4) void motor_reset(uint8_t id, uint16_t master_id) { txCanIdEx.mode = 4; txCanIdEx.id = id; txCanIdEx.res = 0; txCanIdEx.data = master_id; = 8; for(uint8_t i=0;i Copia il codice ✔ Copiato!   Comando di scrittura del parametro della modalità motore (tipo di comunicazione 18, commutazione della modalità operativa) uint8_t modalità di esecuzione; uint16_t indice; void motor_modechange(uint8_t id, uint16_t master_id) { txCanIdEx.mode = 0x12; txCanIdEx.id = id; txCanIdEx.res = 0; txCanIdEx.data = master_id; = 8; for(uint8_t i=0;i Copia il codice ✔ Copiato!   Comando di scrittura del parametro della modalità motore (tipo di comunicazione 18, scrittura del parametro di controllo) uint16_t indice; riferimento float; void motor_write(uint8_t id, uint16_t master_id) { txCanIdEx.mode = 0x12; txCanIdEx.id = id; txCanIdEx.res = 0; txCanIdEx.data = master_id; = 8; for(uint8_t i=0;i Copia il codice ✔ Copiato!   4.2.2 Modalità di controllo operativo Dopo che il motore è acceso, è in modalità di controllo operativo per impostazione predefinita; Invia abilitazione motore telaio in esecuzione (tipo di comunicazione 3) --> Invia comando di controllo motore in modalità di controllo operazione (tipo di comunicazione 1) --> Ricevi il frame di feedback del motore (tipo di comunicazione 2) 4.2.3 Modalità corrente Invia il comando di scrittura del parametro della modalità motore (tipo di comunicazione 18) e imposta il parametro runmode su 3 ---> Invia il telaio di attivazione del motore (tipo di comunicazione 3) --> Invia il comando di scrittura del parametro della modalità motore (tipo di comunicazione 18) e imposta il parametro iq_ref come comando di corrente preimpostato. 4.2.4 Modalità velocità Invia il comando di scrittura del parametro della modalità motore (tipo di comunicazione 18) e imposta il parametro runmode su 2 ---> Invia il telaio di attivazione del motore (tipo di comunicazione 3) --> Invia il comando di scrittura del parametro della modalità motore (tipo di comunicazione 18) e imposta il parametro limit_cur per il comando di corrente massima preimpostato --> Invia il comando di scrittura del parametro della modalità motore (tipo di comunicazione 18) per impostare il parametro spd_ref al comando di velocità preimpostato. 4.2.5 Modalità di localizzazione Invia il comando di scrittura del parametro della modalità motore (tipo di comunicazione 18) e imposta il parametro runmode su 1 --> Invia il telaio di attivazione del motore (tipo di comunicazione 3) --> Invia il comando di scrittura del parametro della modalità motore (tipo di comunicazione 18) e imposta il parametro limit_spd al comando di velocità massima preimpostata --> Invia il comando di scrittura del parametro della modalità motore (tipo di comunicazione 18) per impostare il parametro loc_ref al comando di posizione preimpostata. 4.2.6 Interrompere l'operazione Invia telaio di arresto motore (tipo di comunicazione 4) Libreria CyberGear per M5 stack https://github.com/project-sternbergia/cybergear_m5/tree/main cybergear_m5 Libreria M5 stack per cybergear "Ricorda, con grande coppia viene una grande responsabilità." Framework supportato Arduino per ESP32 Dispositivo supportato (ESP32) M5Stack di base V2.7 Componenti H/W (MCP2515) Attrezzatura per la sicurezza Xiaomi M5Stack di base V2.7 Modulo Commu M5Stack [M001] Cavo del boschetto Componenti H/W (ESP32 + PWRCAN) Attrezzatura per la sicurezza Xiaomi M5Stack di base V2.7 Modulo PWRCAN 13.2 con 2-Ch CAN isolato e 1-Ch RS485 Componenti H/W (ESP32 + unità ricetrasmettitore CAN) Attrezzatura per la sicurezza Xiaomi M5Stack di base V2.7 Modulo LAN W5500 con PoE V12 O Unità CANBus (CA-IS3050G) Cavo del boschetto Come usare Official GUI attrezzo Questo software richiede un modulo specifico da CAN a USB. La documentazione ufficiale raccomanda il modulo USB a CAN di YourCee, che supporta il protocollo seriale con un'intestazione di frame di 41 54 e una coda di frame di 0D 0A, ma questo non è facilmente disponibile, quindi abbiamo cercato un'alternativa su Aliexpress. ※ Nota che questo non funzionerà per moduli generali. Testato (per riferimento): Modulo CAN-USB Cavi pre-crimpati raccomandati Cavo XT30(2+2) Come correre campione Arduino VA Clone MCP_CAN_LIB E cygergear_m5 alla directory della libreria Arduino. 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 clone git https://github.com/project-sternbergia/cybergear_m5.git Apri cybergear_m5/examples/control_mode_example.ino con Arduino IDE Metti questo file nella stessa cartella di control_mode_example.ino (per Arduino IDE) Se vuoi utilizzare la libreria ESP32_CAN, per favore commenta queste righe. Costruisci e scrivi firmware per M5Stack Codice di esempio control_mode_example.ino Controlla il comportamento del cybergear utilizzando lo stack M5. Pulsante centrale - Modifica modalità di controllo (Modalità posizione -> Modalità velocità -> Modalità corrente) Pulsante Destro - Aumenta il valore di controllo Pulsante Sinistro - Riduci valore di controllo cybergear_bilateral.ino Questo esempio utilizza due cybergear per il leader e il follower. Prima di testare questo esempio, si prega di cambiare l'ID del can del cybergear come segue. Dopo di che scrivi cybergear_m5/esempi/cybergear_bilateral.ino a m5 stack attraverso l'IDE di Arduino. leader cybergear : 0x7F follower cybergear : 0x7E Articoli consigliati Micromotore Xiaomi Cybergear: il motore intelligente che rivoluziona la robotica Xiaomi CyberGear Motor Driver: Potenza Efficiente e Comunicazione Intelligente Motore intelligente Micromotore Xiaomi CyberGear: guida alla selezione degli accessori Il micromotore Xiaomi CyberGear si scontra con l'M5Stack  ">
Salta al contenuto

+49 1626571232

info@openelab.io

🚀 Spedizione gratuita da 30€ in Germania, 50€ nell'UE!

Guida al Micromotore CyberGear di XiaoMi

28 Feb 2025 0 Commenti

Che cos'è il Micromotore CyberGear di XiaoMi

Il Micromotore Xiaomi CyberGear è un micromotore compatto ma potente, progettato per applicazioni robotiche e bioniche avanzate. Presenta un elevato rapporto coppia-dimensione, tempi di risposta rapidi e un controllo preciso, consentendo movimenti realistici e fluidi negli arti e nei meccanismi robotici. Il suo design modulare e gli algoritmi di controllo intelligenti facilitano l'integrazione senza soluzione di continuità in sistemi complessi, rendendolo adatto per applicazioni che vanno dalle protesi bioniche agli animali robotici avanzati. Xiaomi sottolinea il suo potenziale per creare esperienze robotiche più realistiche e interattive.

 

Manuale di Istruzioni del Micromotore CyberGear

Precauzioni

  • Si prega di utilizzarlo secondo i parametri di lavoro specificati in questo articolo, altrimenti causerà danni gravi a questo prodotto!
  • La modalità di controllo non può essere cambiata mentre il giunto è in funzione. Se è necessario cambiare, è necessario inviare un comando di arresto prima di cambiare.
  • Si prega di controllare che tutte le parti siano integre prima dell'uso. Se mancano parti o sono danneggiate, contattare tempestivamente il supporto tecnico.
  • Non smontare il motore a piacere per evitare guasti irreparabili.
  • Assicurati che non ci sia un cortocircuito quando colleghi il motore e che l'interfaccia sia collegata correttamente come richiesto.

Note legali

Prima di utilizzare questo prodotto, l'utente deve leggere attentamente questo manuale e utilizzare il prodotto in conformità con i contenuti di questo manuale. Se l'utente utilizza questo prodotto in violazione dei contenuti di questo manuale, l'azienda non si assume alcuna responsabilità per danni materiali o incidenti di infortuni personali. Poiché questo prodotto è composto da molte parti, non lasciare che i bambini entrino in contatto con questo prodotto per evitare incidenti. Per prolungare la vita utile del prodotto, si prega di non utilizzare questo prodotto in ambienti ad alta temperatura e alta pressione. Questo manuale ha cercato di includere varie introduzioni alle funzioni e istruzioni per l'uso al momento della stampa. Tuttavia, a causa del continuo miglioramento delle funzioni del prodotto, cambiamenti di design, ecc., potrebbero esserci ancora discrepanze con i prodotti acquistati dagli utenti.
"Potrebbero esserci differenze tra questo manuale e il prodotto reale in termini di colore, aspetto, ecc. Si prega di fare riferimento al prodotto reale. Questo manuale è pubblicato da Xiaomi o dalle sue filiali locali. Xiaomi può apportare miglioramenti e modifiche necessari a questo manuale per errori di battitura, imprecisioni delle informazioni più recenti o miglioramenti a programmi e/o attrezzature in qualsiasi momento senza preavviso. Tali modifiche saranno caricate nella nuova versione di questo manuale. Si prega di scansionare il codice QR di questo manuale per ottenerlo. Tutte le immagini sono solo per descrizione funzionale. Si prega di fare riferimento al prodotto reale."

Politica post-vendita

Il servizio post-vendita di questo prodotto è rigorosamente conforme alla "Legge sulla protezione dei diritti e degli interessi dei consumatori della Repubblica Popolare Cinese" e alla "Legge sulla qualità dei prodotti della Repubblica Popolare Cinese". Il contenuto del servizio è il seguente:

Periodo e contenuto della garanzia

  Gli utenti che effettuano un ordine per acquistare questo prodotto tramite canali online possono usufruire di un servizio di reso senza motivo entro sette giorni dalla data di ricezione. Al momento della restituzione della merce, gli utenti devono presentare una prova d'acquisto valida e restituire la fattura. Gli utenti devono garantire che i beni restituiti mantengano la loro qualità e funzionalità originali, che il loro aspetto sia intatto e che i marchi e i loghi dei beni stessi e degli accessori siano completi. Se ci sono regali, devono essere restituiti insieme. Se il prodotto è danneggiato artificialmente, smontato manualmente, la scatola di imballaggio è mancante o i pezzi di ricambio sono mancanti, i resi non verranno elaborati. I costi logistici sostenuti per la restituzione della merce saranno a carico dell'utente (vedere "Standard di Carico del Servizio Post-vendita" per gli standard di carico). Se l'utente non riesce a saldare le spese logistiche, l'importo effettivo sarà detratto dall'importo del rimborso. Il prezzo pagato sarà restituito all'utente entro sette giorni dalla data di ricezione della merce restituita. I metodi di rimborso sono gli stessi dei metodi di pagamento. La data di arrivo specifica può essere influenzata da fattori come banche e istituzioni di pagamento.
  Se si verifica un guasto di prestazione non causato da danni umani entro 7 giorni dal giorno successivo alla firma dell'utente, il centro assistenza post-vendita Xiaomi gestirà il reso per l'utente dopo ispezione e conferma. Quando si restituisce il prodotto, l'utente deve presentare un certificato di acquisto valido e restituire la fattura. Eventuali regali devono essere restituiti insieme.
  Se si verifica un danno non umano o un guasto delle prestazioni entro 7 giorni fino a 15 giorni dal giorno successivo alla firma dell'utente, il centro assistenza post-vendita Xiaomi gestirà l'operazione di scambio per l'utente e sostituirà l'intero set di prodotti dopo ispezione e conferma. Dopo lo scambio, il periodo di garanzia del prodotto stesso sarà ricalcolato.
  Da 15 giorni a 365 giorni dal giorno successivo alla firma da parte dell'utente, dopo ispezione e conferma da parte del centro assistenza post-vendita Xiaomi, si tratta di un difetto di qualità del prodotto stesso e i servizi di riparazione possono essere forniti gratuitamente. Il prodotto difettoso sostituito appartiene alla Xiaomi Company. Il prodotto non difettoso sarà restituito nelle sue condizioni originali. Questo prodotto lascia la fabbrica dopo aver superato vari test rigorosi. Se c'è un difetto di qualità che non è correlato al prodotto stesso, ci riserviamo il diritto di rifiutare la richiesta di reso o cambio dell'utente.
Se la politica di post-vendita in questo manuale è incoerente con la politica di post-vendita del negozio, prevarrà la politica di post-vendita del negozio.

Regolamenti non di garanzia: Le seguenti situazioni non sono coperte dalla garanzia:

  Supera il periodo di garanzia limitato dai termini di garanzia.
  Danno al prodotto causato da un uso scorretto senza seguire le istruzioni.
  Danni causati da un'operazione, manutenzione, installazione, modifica, test e altro uso improprio.
  Perdita meccanica convenzionale e usura causate da difetti di non qualità.
  Danni causati da condizioni di lavoro anomale, inclusi ma non limitati a cadute, impatti, immersione in liquidi, impatti violenti, ecc.
  Danni causati da disastri naturali (come inondazioni, incendi, fulmini, terremoti, ecc.) o forza maggiore.
  Danno causato dall'uso oltre la coppia massima.
  Gli articoli che non sono prodotti genuini Xiaomi potrebbero non essere in grado di fornire una prova legale di acquisto.
  Altri guasti o danni non causati da problemi come design del prodotto, tecnologia, produzione, qualità, ecc.
  Utilizza questo prodotto per scopi commerciali.
Se si verifica la situazione sopra descritta, gli utenti devono pagare le spese da soli. Per i dettagli della politica post-vendita del gruppo, si prega di consultare: https://www.mi.com/service/serviceAgreement?id=17

 

Specifiche del motore

1.1 Aspetto e dimensioni di installazione

1.2 Stato di utilizzo standard

1.2.1 Tensione nominale: 24 VDC
1.2.2 Intervallo di tensione di funzionamento: 16V—28 VDC
1.2.3 Carico nominale (CW): 4 N.m
1.2.4 Direzione di rotazione: CW/CCW vista dalla direzione dell'albero
1.2.5 Posizione d'uso: La direzione dell'asse è orizzontale o verticale
1.2.6 Temperatura operativa standard: 25±5°C
1.2.7 Intervallo di temperatura di funzionamento: -20 ~ 50°C
1.2.8 Umidità operativa standard: 65%
1.2.9 Intervallo di umidità operativa: 5 ~ 85%, senza condensazione
1.2.10 Intervallo di temperatura di stoccaggio: -30 ~ 70°C
1.2.11 Livello di isolamento: Classe B

1.3 Caratteristiche elettriche

1.3.1 Velocità a vuoto: 296 rpm±10%
1.3.2 Corrente a vuoto: 0,5 Arms
1.3.3 Carico nominale: 4 N.m
1.3.4 Velocità di carico nominale: 240rpm±10% 1.3.5 Corrente di carico nominale (picco): 6.5A±10% 1.3.6 Carico di picco: 12 N.m
1.3.7 Corrente di picco (valore di picco): 23A±10%
1.3.8 Resistenza di isolamento/avvolgimento statore: DC 500VAC, 100M Ohm 1.3.9 Resistenza ad alta tensione/statore e involucro: 600 VAC, 1s, 2mA 1.3.10 Forza elettromotrice inversa del motore: 0.054-0.057Vrms/rpm
1.3.11 Resistenza della linea: 0,45Ω±10%
1.3.12 Costante di coppia: 0,87N.m/Arms
1.3.13 Induttanza del motore: 187-339μH
1.3.14 Curva T-N
1.3.15 Curva di sovraccarico massimo Condizioni di prova:
Temperatura ambiente: 25°C
Temperatura limite di avvolgimento: 120°C
Velocità: 24 giri al minuto
Curva di carico massimo
Tempo massimo di sovraccarico (s) vs Coppia (N.m)
Dati di prova

Carico Tempo di funzionamento (s)
12 28
11 45
10 60
9 90
8 160
7 320
6 700
5 1800
4.5 2500
4 valutato

1.4 Proprietà meccaniche

1.4.1 Peso: 317g±3g
1.4.2 Numero di poli: 28 poli 1.4.3 Numero di fasi: 3 fasi
1.4.4 Modalità di guida: FOC
1.4.5 Rapporto di riduzione: 7.75:1

Guida alle informazioni sul prodotto

2.1 Introduzione all'aspetto del driver e specifiche del prodotto

Terminale integrato con alimentazione 24V e comunicazione CAN;
Versione hardware e codice QR inciso al laser;
Porta di download MCU;
Punto di test di comunicazione CAN;
Spia luminosa;
Fori di installazione; 7. "C, A, B" sono i punti di saldatura dell'avvolgimento trifase;

Specifiche del prodotto


Tensione nominale di esercizio 24VDC
Tensione massima consentita 28VDC
Corrente nominale di funzionamento 6,5 A
Corrente massima consentita 23A
Consumo di energia in standby ≤18mA
Velocità in bit del bus CAN 1 Mbps
Misurare Φ58mm
Temperatura dell'ambiente di lavoro Temperatura -20°C 50°C
Temperatura massima consentita dalla scheda di controllo 80°C
Risoluzione dell'encoder 14bit (valore assoluto a singolo giro)

2.2 Definizione dell'interfaccia del driver

2.2.1 Diagramma dell'interfaccia del driver
2.2.2 Marche e modelli raccomandati di interfacce di drive

# Modello di scheda Produttore del marchio Modello di fine linea Produttore del marchio
1 XT30PB(2+2)-M.G.B AMMASSARE (AMS) XT30(2+2)-F.G.B AMMASSARE (AMS)
2 2,0mm-2P femmina / 2,0mm-2P maschio /
3 2,54mm-4P femmina / 2,54mm-4P maschio /
2.2.3 Definizione dei pin dell'interfaccia del driver
Alimentazione e porta di comunicazione CAN
piastra di test comunicazione CAN
Porta di download


# Funzione di interfaccia SPILLO Descrizione
1 Potenza e comunicazione CAN 1 Alimentazione positiva (+)
2 Polo negativo dell'alimentazione (-)
3 comunicazione CAN lato basso CAN_L
4 Comunicazione CAN lato alto CAN_H
2 Punto di test della comunicazione CAN 1 comunicazione CAN lato basso CAN_L
2 Comunicazione CAN lato alto CAN_H
3 Porta di download 1 SWDIO(dati)
2 SWCLK(orologio)
3 3V3 (positivo 3,3V)
4 GND (massa negativa)

2.3 Definizione di driver spia luminosa

Luce di segnale blu e luce indicatrice di alimentazione rossa
Definizione della luce indicatrice

Spia di alimentazione (luce rossa quando accesa) La luce indicatrice di alimentazione viene utilizzata per indicare l'alimentazione del MCU a 3,3V. Quando l'input totale di alimentazione è di 24V, la luce diventa rossa, il che dimostra che l'intera rete è alimentata normalmente. Se l'alimentazione è di 24V, la luce indicatrice non si accende e l'alimentazione deve essere interrotta immediatamente.
Indicatore luminoso (luce blu quando è accesa) Quando la luce di segnale lampeggia, dimostra che l'MCU sta funzionando normalmente e che il chip driver sta funzionando normalmente.

2.4 Componenti principali e specifiche


# Tipo di componente modello Quantità
1 Chip MCU GD32F303RET6 1 PZ
2 Chip del conducente 6EDL7141 1 PZ
3 Chip encoder magnetico AS5047P 1 PZ
4 Termistore NXFT15XH103FEAB021/NCP18XH103F03RB 2 PZ
5 MOS di potenza Codice articolo: JMGG031V06A 6 PZ

Istruzioni per l'uso del debugger (scansiona il QR Code alla fine del manuale cartaceo per ottenere il debugger)

3.1 Configurazione hardware

Il motore congiunto utilizza la comunicazione CAN. Ci sono due linee di comunicazione, che sono collegate al debugger tramite uno strumento can-to-USB. Il debugger deve installare in anticipo il driver ch340 e funziona in modalità AT per impostazione predefinita.
Si deve notare che abbiamo sviluppato il debugger basato su uno strumento specifico da CAN a USB, quindi dobbiamo utilizzare il nostro strumento di porta seriale raccomandato per il debug. Se desideri portarlo su altre piattaforme di debugger, puoi fare riferimento al Capitolo 3 del manuale. sviluppo.
Lo strumento can to USB consiglia di utilizzare il modulo USB-CAN di YourCee. L'intestazione del frame corrispondente al protocollo della porta seriale è 41 54 e la coda del frame è 0D 0A.

 

3.2 Interfaccia e descrizione del debugger

includono principalmente:
A. Selezione del modulo
  • Modulo dispositivo
  • Modulo di configurazione
  • Modulo di analisi
  • Modulo di aiuto
B. Selezione del sottogruppo I moduli di attrezzatura includono
  • Collegare o scollegare apparecchiature elettriche
  • Informazioni sulle attrezzature motorie
  • Calibrazione dell'encoder del motore
  • Modificare l'ID CAN del motore
  • Imposta la posizione di zero meccanico del motore
  • Aggiornamento del programma motorio
I moduli di configurazione includono:
  • Tabella dei parametri, puoi visualizzare e modificare i parametri del motore
  • Carica parametri. Puoi caricare i parametri nel motore nella tabella dei parametri.
  • Scarica i parametri. Puoi scaricare i dati dalla tabella dei parametri al motore.
  • Esporta parametri. Puoi scaricare i dati dalla tabella dei parametri sul locale.
  • Ripristino di fabbrica, puoi ripristinare i dati nella tabella dei parametri alle impostazioni di fabbrica.
  • Chiara avvertenza, puoi cancellare gli errori del motore, come temperatura eccessiva, ecc.
I moduli di analisi includono:
  • Oscilloscopio per visualizzare le variazioni dei parametri nel tempo
  • Frequenza, puoi regolare la frequenza di visualizzazione dei dati
  • Canale, puoi configurare i dati da visualizzare
  • Inizia e smetti di disegnare
  • Esporta i dati dell'onda di uscita in locale
I moduli di aiuto includono:
  • Istruzioni per l'uso, puoi aprire il manuale delle istruzioni
  • Informazioni, puoi visualizzare le informazioni sul software
C. Richiesta di informazioni sul motore
  • Informazioni sul dispositivo
  • Informazioni sulla tabella dei parametri
D. Colonna dati
  • Informazioni di registro
  • Informazioni sulla comunicazione
E. Esegui l'area di debug
  • Seleziona dispositivo
  • Area di operazione conveniente, puoi controllare rapidamente la rotazione in avanti e indietro del motore.
  • Area di controllo del movimento, che può controllare il motore per operare in diverse modalità.
F. Area di visualizzazione del sottogruppo

3.3 Impostazioni del motore

3.3.1 Impostazioni di connessione del motore
Collegare la can al tool USB (installare il driver ch340, lavorare in modalità AT per impostazione predefinita), selezionare il modulo del dispositivo, fare clic sul sottomodulo di connessione e selezionare la corrispondente connessione della porta seriale.
3.3.2 Impostazioni di base
Modifica il numero di identificazione del motore.
  • La calibrazione della treccia magnetica del motore, la reinstallazione della scheda del motore e del motore, o la riconnessione dei fili del motore in un ordine diverso, ecc. richiedono una nuova calibrazione della treccia magnetica.
  • Imposta la posizione zero (persa in caso di interruzione di corrente) e imposta la posizione attuale a 0.
  • Aggiornamento del programma motore. Quando il programma motore viene aggiornato, fare clic sul pulsante di aggiornamento per selezionare il file di aggiornamento da utilizzare per l'aggiornamento.
3.3.3 Elenco dei parametri
Dopo aver collegato con successo il motore, fai clic sul modulo della tabella dei parametri nel modulo di configurazione e tutti i parametri verranno visualizzati nel registro. Il caricamento è riuscito, indicando che i parametri rilevanti del motore sono stati letti con successo (Nota: la tabella dei parametri deve essere nello stato di attesa del motore. Configura nello stato, se il motore è in stato di funzionamento, la tabella dei parametri non può essere aggiornata) L'interfaccia mostrerà i parametri elettrici rilevanti del motore. I parametri blu sono i parametri di memoria interna del motore. Possono essere trovati direttamente dopo i parametri corrispondenti. Modifica la colonna del valore precedente. Fai clic su Scarica Parametri per scaricare i parametri nel debugger al motore. Fai clic su Carica. I parametri possono caricare i parametri nel motore al debugger. I parametri verdi del motore sono parametri osservati, che sono I parametri raccolti possono essere osservati in tempo reale.
Nota: Si prega di non modificare a piacere il limite di coppia del motore, la temperatura di protezione e il tempo di sovratemperatura. A causa di operazioni illegali di questo libro, se il prodotto causa danni al corpo umano o danni irreversibili alle articolazioni, la nostra azienda non sarà ritenuta responsabile per eventuali conseguenze legali.
Tabella dei parametri

Codice funzione Cognome Tipo di parametro Attributi Valore massimo Valore minimo Valore attuale (per riferimento) Osservazione
0x0000 Cognome Corda leggere/scrivere yyyyyyyyyyyyyyyyyyyyyy
0x0001 Codice a barre Corda leggere/scrivere yyyyyyyyyyyyyyyyyyyyyy
0x1000 VersioneCodiceBoot Corda solo lettura 0.1.5
0x1001 Datadicostruzioneavvio Corda solo lettura 16 marzo 2022
0x1002 Tempo di avvio Corda solo lettura 20:22:09
0x1003 VersioneCodiceApp Corda solo lettura 0.1.5 Numero di versione del programma motore
0x1004 VersioneAppGit Corda solo lettura 7b844b0fM
0x1005 Data di compilazione dell'app Corda solo lettura 14 aprile 2022
0x1006 Tempo di compilazione dell'app Corda solo lettura 20:30:22
0x1007 NomeCodiceApp Corda solo lettura dog_motor
0x2000 ecoPara1 Uint16 Configurazione 74 5 5
0x2001 ecoPara2 Uint16 Configurazione 74 5 5
0x2002 ecoPara3 Uint16 Configurazione 74 5 5
0x2003 ecoPara4 Uint16 Configurazione 74 5 5
0x2004 ecoFreHz uint32 leggere/scrivere 10000 1 500
0x2005 Offset meccanico galleggiante impostare 7 -7 4.619583 Offset angolare dell'encoder magnetico del motore
0x2006 MechPos_init galleggiante leggere/scrivere 50 -50 4.52 Angolo di riferimento durante il primo multi-giro
0x2007 limit_torque galleggiante leggere/scrivere 12 0 12 Limite di coppia
0x2008 I_FW_MAX galleggiante leggere/scrivere 33 0 0 Valore della corrente di indebolimento del campo, predefinito 0
0x2009 motor_index uint8 impostare 20 0 1 Indice motore, segna la posizione dell'articolazione motore
0X200a ID CANE uint8 impostare 127 0 1 Questo nodo id
0x200b CAN_MASTER uint8 impostare 127 0 0 può ospitare id
0x200c CAN_TIMEOUT uint32 leggere/scrivere 100000 0 0 soglia di timeout, predefinita 0
0x200d Sovratemperatura motore int16 leggere/scrivere 1500 0 800 Valore di temperatura di protezione del motore, temp (gradi) *10
0x200e sovraTemperaturaTempo uint32 leggere/scrivere 1000000 1000 20000 Tempo di sovratemperatura
0x200f Rapporto di trasmissione galleggiante leggere/scrivere 64 1 7.75 Rapporto di trasmissione
0x2010 Tipo Tq_cali uint8 leggere/scrivere 1 0 1 Impostazione del metodo di calibrazione della coppia
0x2011 cur_filt_gain galleggiante leggere/scrivere 1 0 0.9 Parametri di filtro attuali
0x2012 cur_kp galleggiante leggere/scrivere 200 0 0.025 kp attuale
0x2013 cur_ki galleggiante leggere/scrivere 200 0 0.0258 corrente elettrica ki
0x2014 spd_kp galleggiante leggere/scrivere 200 0 2 Velocità kp
0x2015 spd_ki galleggiante leggere/scrivere 200 0 0.021 velocità ki
0x2016 loc_kp galleggiante leggere/scrivere 200 0 30 Posizione kp
0x2017 spd_filt_gain galleggiante leggere/scrivere 1 0 0.1 Parametri del filtro di velocità
0x2018 limit_spd galleggiante leggere/scrivere 200 0 2 Limite di velocità in modalità posizione
0x2019 limit_cur galleggiante leggere/scrivere 23 0 23 Posizione, limite corrente della modalità di velocità
0x3000 tempoUsa0 Uint16 sola lettura (informatica) 5
0x3001 tempoUso1 Uint16 sola lettura (informatica) 0
0x3002 tempoUso2 Uint16 sola lettura (informatica) 10
0x3003 tempoUso3 Uint16 sola lettura (informatica) 0
0x3004 codificatoreRaw Uint16 sola lettura (informatica) 11396 Valore di Campione dell'Encoder Magnetico
0x3005 mcuTemp int16 sola lettura (informatica) 337 temperatura interna mcu *10
0x3006 Temperatura del motore int16 sola lettura (informatica) 333 temperatura ntc motore *10
0x3007 vBus(mv) Uint16 sola lettura (informatica) 24195 tensione della sbarra
0x3008 adc1Spostamento int32 sola lettura (informatica) 2084 bias di corrente zero del canale 1 di campionamento ADC
0x3009 adc2Offset int32 sola lettura (informatica) 2084 bias di corrente zero del canale 2 del campione adc
0x300a adc1Grezzo Uint16 sola lettura (informatica) 1232 valore di campionamento adc 1
0x300b adc2Raw Uint16 sola lettura (informatica) 1212 valore di campionamento adc 2
0x300c VBUS galleggiante sola lettura (informatica) 24.195 Tensione della sbarra collettrice V
0x300d IDcmd galleggiante sola lettura (informatica) 0 comando anello id, A
0x300e cmdIq galleggiante sola lettura (informatica) 0 comando iq ring, A
0x300f cmdlocref galleggiante sola lettura (informatica) 0 Comando di anello di posizione, rad
0x3010 riferimentocmdspd galleggiante sola lettura (informatica) 0 Comando del loop di velocità, rad/s
0x3011 cmdcoppia galleggiante sola lettura (informatica) 0 Comando di coppia, nm
0x3012 Posizione cmd galleggiante sola lettura (informatica) 0 con comando angolare del protocollo
0x3013 cmdVel galleggiante sola lettura (informatica) 0 indicatore di velocità del protocollo mit virtuoso
0x3014 rotazione int16 sola lettura (informatica) 1 numero di giri
0x3015 modPos galleggiante sola lettura (informatica) 4.363409 Angolo meccanico non calcolato del motore, rad
0x3016 Meccanismo di posizione galleggiante sola lettura (informatica) 0.777679 Angolo della Macchina di Controllo del Loop a Carico, rad
0x3017 MeccanicoVel galleggiante sola lettura (informatica) 0.036618 velocità di sterzo lato carico, rad/s
0x3018 elettropompe galleggiante sola lettura (informatica) 4.714761 Angolo elettrico
0x3019 Esso galleggiante sola lettura (informatica) 0 Corrente di linea U, A
0x301a uno galleggiante sola lettura (informatica) 0 V corrente di linea, A
0x301b circuito integrato galleggiante sola lettura (informatica) 0 W corrente di linea, A
0x301c tic tac uint32 sola lettura (informatica) 31600
0x301d faseOrdine uint8 sola lettura (informatica) 0 Marcatori di direzione di calibrazione
0x301e iqf galleggiante sola lettura (informatica) 0 iq Valore del filtro, A
0x301f Temperatura del bordo int16 sola lettura (informatica) 359 Temperatura a bordo, *10
0x3020 quoziente intellettivo galleggiante sola lettura (informatica) 0 valore originale iq, A
0x3021 id galleggiante sola lettura (informatica) 0 id Valore originale, A
0x3022 colpaSta uint32 sola lettura (informatica) 0 Valore dello stato di errore
0X3023 avvertireSta uint32 sola lettura (informatica) 0 Valore di stato di avviso
0x3024 drv_fault Uint16 sola lettura (informatica) 0 Valore di guasto del chip del driver
0x3025 drv_temp int16 sola lettura (informatica) 48 Valore della temperatura del chip del driver, grado
0x3026 Uq galleggiante sola lettura (informatica) 0 q Tensione dell'asse
0x3027 Fuori galleggiante sola lettura (informatica) 0 Tensione dell'asse d
0x3028 dtc_u galleggiante sola lettura (informatica) 0 Ciclo di lavoro dell'uscita U-fase
0x3029 dtc_v galleggiante sola lettura (informatica) 0 Ciclo di lavoro dell'uscita V Phase
0x302a dtc_w galleggiante sola lettura (informatica) 0 Ciclo di lavoro dell'uscita della fase W
0x302b v_bus galleggiante sola lettura (informatica) 24.195 vbus in circuito chiuso
0x302c v_ref galleggiante sola lettura (informatica) 0 Tensione di ingresso della sintesi vq,vd a circuito chiuso
0x302d torque_fdb galleggiante sola lettura (informatica) 0 Valore di feedback di coppia, nm
0x302e rated_i galleggiante sola lettura (informatica) 8 Corrente nominale del motore
0x302f limit_i galleggiante sola lettura (informatica) 27 Limite massimo di corrente del motore
3.3.4 Oscilloscopio
Questa interfaccia supporta la visualizzazione e l'osservazione del grafico generato dai dati in tempo reale. I dati osservabili includono la corrente Id/Iq del motore, la temperatura, la velocità reale in tempo reale, la posizione del rotore (encoder), la posizione di uscita, ecc.
Clicca sul modulo oscilloscopio nel modulo di analisi, seleziona i parametri appropriati nel canale (per i significati dei parametri, fare riferimento a 3.3.3), imposta la frequenza di uscita e clicca su Inizia Disegno per osservare lo spettro dei dati, ferma il disegno per smettere di osservare lo spettro.

3.4 Demo di controllo

fare jogging:
Imposta la velocità massima, fai clic su Esegui e poi fai clic su JOG per far funzionare il motore in avanti e indietro.
Modalità di commutazione del controllo:
La modalità di controllo del motore può essere convertita nell'interfaccia della modalità di movimento.
3.4.1 Modalità punto zero
Clicca il pulsante di attivazione a destra e il motore tornerà lentamente alla posizione zero meccanica.
3.4.2 Modalità di controllo operativo
Clicca il pulsante di attivazione a destra, poi imposta i cinque valori dei parametri, clicca su Avvia o Invio Continuo, il motore tornerà al telaio di feedback e funzionerà secondo l'istruzione target; clicca di nuovo il pulsante di attivazione a destra e il motore si fermerà.
3.4.2 Modalità corrente
Passare manualmente alla modalità attuale, fare clic sul pulsante di commutazione a destra, quindi impostare il valore del comando di corrente Iq, avviare o inviare continuamente, il motore seguirà il comando di corrente, fare clic di nuovo sul pulsante di commutazione a destra, il motore si fermerà.
Clicca il pulsante di attivazione sul lato destro della modalità di controllo, inserisci l'ampiezza e la frequenza del test automatico sinusoidale, e poi clicca il pulsante di attivazione sul lato destro del test automatico sinusoidale, e l'iq (A) del motore funzionerà secondo l'ampiezza e la frequenza impostate.
3.4.3 Modalità velocità
Passare manualmente alla modalità velocità, fare clic sul pulsante di commutazione a destra, quindi impostare il valore del comando di velocità (-30~30rad/s), avviare o inviare continuamente, il motore seguirà il comando di velocità, fare clic di nuovo sul pulsante di commutazione a destra, il motore si fermerà.
3.4.4 Modalità di localizzazione
Passare manualmente alla modalità di posizione, fare clic sul pulsante di commutazione a destra, quindi impostare il valore del comando di posizione (rad), avviare o inviare continuamente, il motore seguirà il comando di posizione target, fare clic di nuovo sul pulsante di commutazione a destra, il motore si fermerà. È possibile modificare la velocità massima di seguimento della posizione impostando la velocità.
Clicca il pulsante di attivazione sul lato destro della modalità di controllo, inserisci l'ampiezza e la frequenza del test automatico basato su seno, e poi clicca il pulsante di attivazione sul lato destro del test automatico basato su seno. La posizione del motore (rad) funzionerà secondo l'ampiezza e la frequenza impostate.

3.5 Aggiornamento del firmware

Il primo passo è cliccare sull'aggiornamento del modulo dispositivo e selezionare il file binario da scrivere; il secondo passo è confermare l'aggiornamento e il motore inizierà ad aggiornare il firmware. Dopo che il progresso è completato, l'aggiornamento del motore sarà completato e si riavvierà automaticamente.

Protocollo di comunicazione del driver e istruzioni per l'uso

La comunicazione del motore è un'interfaccia di comunicazione CAN 2.0, con una velocità di baud di 1 Mbps e un formato di frame esteso, come mostrato.

Campo dati ID a 29 bit Area dati da 8 byte
Misurare Po 28 ~ 24 Parte 23 ~ 8 Po 7 ~ 0 Da 0 a 7
Descrizione Tipo di comunicazione Zona data 2 Indirizzo di destinazione Area data 1
I modi di controllo supportati dal motore includono:
  • Modalità di controllo dell'operazione: dati 5 parametri per il controllo dell'operazione del motore;
  • Modalità attuale: dato il valore di corrente Iq specificato del motore;
  • Modalità velocità: dato il numero di giri specificato del motore;
  • Modalità posizione: Data una posizione specificata del motore, il motore si muoverà verso la posizione specificata;

4.1 Descrizione del tipo di protocollo di comunicazione

4.1.1 Ottieni l'ID del dispositivo (tipo di comunicazione 0); Ottieni l'ID del dispositivo e l'identificatore unico MCU a 64 bit
Richiedi frame:

Campo dati ID a 29 bit Area dati da 8 byte
Posizione Po 28 ~ 24 Parte 23 ~ 8 Po 7 ~ 0 Da 0 a 7
Descrizione 0 Bit 15 ~ 8: Host CAN_ID CAN_ID motore 0
Frame di risposta:

Campo dati ID a 29 bit Area dati da 8 byte
Posizione Po 28 ~ 24 Parte 23 ~ 8 Po 7 ~ 0 Da 0 a 7
Descrizione 0 CAN_ID motore 0xFE identificatore univoco MCU a 64 bit
4.1.2 Le istruzioni di controllo del motore (tipo di comunicazione 1) in modalità di controllo operativo vengono utilizzate per inviare istruzioni di controllo al motore.
Richiedi frame:

Campo dati ID a 29 bit Area dati da 8 byte
Posizione Po 28 ~ 24 Parte 23 ~ 8 Po 7 ~ 0 Da 0 a 7
Descrizione 1 Byte 2: Coppia (0 ~ 65535) corrispondente a (- 12Nm ~ 12Nm) CAN_ID motore Byte 0 ~ 1: Angolo target [0 ~ 65535] corrispondente a (-4π ~ 4π)
Byte 2 ~ 3: La velocità angolare target [0 ~ 65535] corrisponde a (- 30rad/s ~ 30rad/s)
Byte 4 ~ 5: Kp [0 ~ 65535] corrisponde a (0.0 ~ 500.0)
Byte 6 ~ 7: Kd [0 ~ 65535] corrisponde a (0.0 ~ 5.0)
Frame di risposta: Frame di feedback del motore di risposta (vedi tipo di comunicazione 2)
4.1.3 I dati di feedback del motore (tipo di comunicazione 2) vengono utilizzati per restituire lo stato operativo del motore all'host.

Campo dati ID a 29 bit Area dati da 8 byte
Posizione Po 28 ~ 24 Parte 23 ~ 8 Po 7 ~ 0 Da 0 a 7
Descrizione 2 Bit 8 ~ 15: ID CAN del motore
Bit 21 ~ 16: Informazioni di errore (0 - No, 1 - Sì)
Bit 21: non calibrato
Bit 20: errore di codifica HALL
Bit 19: Errore di codifica magnetica
Bit 18: sovratemperatura
Bit 17: sovracorrente
Bit 16: Guasto da sottotensione
Bit 22 ~ 23: stato della modalità:
0: Modalità di ripristino [reset]
1: modalità interessanti [Calibration]
2: Modalità motore [Run]
ID host CAN Byte 0 ~ 1: L'angolo attuale [0 ~ 65535] corrisponde a (-4π ~ 4π)
Byte 2 ~ 3: La velocità angolare attuale [0 ~ 65535] corrisponde a (-30rad/s ~ 30rad/s)
Byte 4 ~ 5: La coppia attuale [0 ~ 65535] corrisponde a (-12Nm ~ 12Nm)
Byte 6 ~ 7: Temperatura attuale: Temp (gradi Celsius) )*10
4.1.4 Operazione di abilitazione del motore (tipo di comunicazione 3)

Campo dati ID a 29 bit Area dati da 8 byte
Posizione Po 28 ~ 24 Parte 23 ~ 8 Po 7 ~ 0 Da 0 a 7
Descrizione 3 Bit 15 ~ 8: Host CAN_ID CAN_ID motore
Frame di risposta: Frame di feedback del motore di risposta (vedi tipo di comunicazione 2)
4.1.5 Motore fermo (tipo di comunicazione 4)

Campo dati ID a 29 bit Area dati da 8 byte
Posizione Po 28 ~ 24 Parte 23 ~ 8 Po 7 ~ 0 Da 0 a 7
Descrizione 4 Bit 15 ~ 8: Host CAN_ID CAN_ID motore Durante il funzionamento normale, l'area dati deve essere azzerata a 0;
Quando Byte[0]=1: Cancella errore;
Frame di risposta: Frame di feedback del motore di risposta (vedi tipo di comunicazione 2)
4.1.6 Impostare la posizione zero meccanica del motore (tipo di comunicazione 6) imposterà la posizione attuale del motore alla posizione zero meccanica (persa dopo un'interruzione di corrente)

Campo dati ID a 29 bit Area dati da 8 byte
Posizione Po 28 ~ 24 Parte 23 ~ 8 Po 7 ~ 0 Da 0 a 7
Descrizione 6 Bit 15 ~ 8: Host CAN_ID CAN_ID motore Byte[0]=1
Frame di risposta: Frame di feedback del motore di risposta (vedi tipo di comunicazione 2)
4.1.7 Imposta il CAN_ID del motore (tipo di comunicazione 7) per cambiare l'attuale CAN_ID del motore, che avrà effetto immediato.

Campo dati ID a 29 bit Area dati da 8 byte
Posizione Po 28 ~ 24 Parte 23 ~ 8 Po 7 ~ 0 Da 0 a 7
Descrizione 7 Bit 15 ~ 8: Host CAN_ID
Bit 16 ~ 23: Nuovo motor CAN_ID
CAN_ID motore Byte[0]=1
Frame di risposta: Frame di broadcast del motore di risposta (vedi tipo di comunicazione 0)
4.1.8 Lettura di un singolo parametro (tipo di comunicazione 17)

Campo dati ID a 29 bit Area dati da 8 byte
Posizione Po 28 ~ 24 Parte 23 ~ 8 Po 7 ~ 0 Da 0 a 7
Descrizione 17 Bit 15 ~ 8: Host CAN_ID CAN_ID motore Byte 0 ~ 1: indice, vedere 4.1.11 per l'elenco dei parametri
Byte 2 ~ 3: 00
Byte 4 ~ 7: 00
Frame di risposta:

Campo dati ID a 29 bit Area dati da 8 byte
Posizione Po 28 ~ 24 Parte 23 ~ 8 Po 7 ~ 0 Da 0 a 7
Descrizione 17 Bit 15 ~ 8: Motor CAN_ID ID host CAN Byte 0 ~ 1: indice, per l'elenco dei parametri, vedere 4.1.11
Byte 2 ~ 3: 00
Byte 4 ~ 7: dati del parametro, 1 byte di dati è in Byte 4
4.1.9 Scrittura di un singolo parametro (tipo di comunicazione 18) (perso dopo un'interruzione di corrente)

Campo dati ID a 29 bit Area dati da 8 byte
Posizione Po 28 ~ 24 Parte 23 ~ 8 Po 7 ~ 0 Da 0 a 7
Descrizione 18 Bit 15 ~ 8: Host CAN_ID CAN_ID motore Byte 0 ~ 1: indice, vedere 4.1.11 per i dettagli della lista dei parametri
Byte 2 ~ 3: 00
Byte 4 ~ 7: dati del parametro
Frame di risposta: Frame di feedback del motore di risposta (vedi tipo di comunicazione 2)
4.1.10 Quadro di feedback di errore (tipo di comunicazione 21)

Campo dati ID a 29 bit Area dati da 8 byte
Posizione Po 28 ~ 24 Parte 23 ~ 8 Po 7 ~ 0 Da 0 a 7
Descrizione 21 Bit 15 ~ 8: Host CAN_ID CAN_ID motore Byte 0 ~ 3: valore di errore (non 0: errore, 0: normale)
Bit 16: Un sovraccarico di campionamento della corrente di fase
Bit 15 ~ 8: errore di sovraccarico
Bit 7: encoder non calibrato
Bit 5: campionamento della corrente di fase C sovracorrente
Bit 4: campionamento della corrente di fase B bit3: guasto da sovratensione
Bit 2: errore di sottotensione bit1: errore del chip driver bit0: errore di surriscaldamento del motore, predefinito 80 gradi
Byte 4 ~ 7: valore di avviso
Bit 0: avviso di surriscaldamento del motore, default 75 gradi
4.1.11 Modifica della velocità di trasmissione (tipo di comunicazione 22) (la versione 1.2.1.5 può essere modificata, si prega di fare riferimento al processo documentale per modificarla con attenzione. Errori di operazione possono causare problemi come l'impossibilità di connettersi al motore e l'impossibilità di eseguire l'aggiornamento)

Campo dati ID a 29 bit Area dati da 8 byte
Posizione Po 28 ~ 24 Parte 23 ~ 8 Po 7 ~ 0 Da 0 a 7
Descrizione 22 Bit 15 ~ 8: Host CAN_ID CAN_ID motore Byte0: Velocità di baud del motore
1: 1 Mbps
2: 500 kbps
3: 250 kbps
4: 125 kbps
Frame di risposta: Frame di broadcast del motore di risposta (vedi tipo di comunicazione 0)
4.1.12 Elenco di parametri singoli leggibile e scrivibile (7019-7020 è leggibile dalla versione del firmware 1.2.1.5)

Indice dei parametri nome del parametro descrivere tipo Numero di byte Valori possibili Permesso
0x7005 run_mode 0: Modalità di controllo operativa
1: Modalità posizione
2: Modalità velocità
3: Modalità corrente
uint8 1 V/R
0x7006 iq_ref Comando Iq Corrente galleggiante 4 -23 ~ 23A V/R
0x700A spd_ref Comando di velocità in modalità veloce galleggiante 4 -30 ~ 30rad/s V/R
0x700B limit_torque Limite di coppia galleggiante 4 0~12Nm V/R
0x7010 cur_kp Kp di corrente galleggiante 4 Valore predefinito 0,125 V/R
0x7011 cur_ki Chiave corrente galleggiante 4 Valore predefinito 0,0158 V/R
0x7014 cur_filt_gain Coefficiente di filtro attuale filt_gain galleggiante 4 0~1.0, valore predefinito W/R 0.1 V/R
0x7016 loc_ref Comando angolare in modalità posizione galleggiante 4 potente V/R
0x7017 limit_spd Limite di velocità in modalità posizione galleggiante 4 0 ~ 30rad/s V/R
0x7018 limit_cur Limite Corrente della Modalità di Posizione Veloce galleggiante 4 Da 0 a 23A V/R
0x7019 Meccanismo di posizione Carico fine conteggio sovrapposizione angolo meccanico galleggiante 4 potente R
0x701A iqf valore del filtro iq galleggiante 4 -23 ~ 23A R
0x701B MeccanicoVel Velocità di fine carico galleggiante 4 -30 ~ 30rad/s R
0x701C VBUS tensione del bus galleggiante 4 V R
0x701D rotazione Numero di giri int16 2 Numero di giri V/R
0x701E loc_kp kp di posizione galleggiante 4 Valore predefinito 30 V/R
0x701F spd_kp Velocità in kp galleggiante 4 Valore predefinito 1 V/R
0x7020 spd_ki Velocità del ki galleggiante 4 Valore predefinito 0,002 V/R

4.2 Istruzioni per l'uso della modalità di controllo

4.2.1 Esempio di programma
"Di seguito vengono forniti esempi di controllo dei motori in varie modalità (prendendo come esempio il gd32f303). Di seguito sono riportate librerie, funzioni e definizioni di macro per vari esempi."
#define P_MIN -12.5f
#definisci P_MAX 12.5f
#define V_MIN -30.0f
#definisci V_MAX 30.0f
#definisci KP_MIN 0.0f
#define KP_MAX 500.0f
#definisci KD_MIN 0.0f
#definisci KD_MAX 5.0f
#define T_MIN -12.0f
#definisci T_MAX 12.0f

struttura exCanIdInfo{
    Italiano:
    uint32_t data:16;
    modalità uint32_t: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_ESTESO,
    .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;
    altrimenti se(x < x_min) x= x_min;
    ritorna (int) ((x-offset)*((float)((1<
✔ Copiato!

 

Istruzioni di controllo del motore in modalità di controllo operativo (tipo di comunicazione 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);
    = 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(velocità,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);
    puoi_txd();
}


✔ Copiato!

 

Motore fermo telaio (tipo di comunicazione 4)
void motor_reset(uint8_t id, uint16_t master_id) {
    txCanIdEx.mode = 4;
    txCanIdEx.id = id;
    txCanIdEx.res = 0;
    txCanIdEx.data = master_id;
    = 8;
    for(uint8_t i=0;i<8;i++) {
        txMsg.tx_data[i]=0;
    }
    puoi_txd();
}


✔ Copiato!

 

Comando di scrittura del parametro della modalità motore (tipo di comunicazione 18, commutazione della modalità operativa)
uint8_t modalità di esecuzione;
uint16_t indice;
void motor_modechange(uint8_t id, uint16_t master_id) {
    txCanIdEx.mode = 0x12;
    txCanIdEx.id = id;
    txCanIdEx.res = 0;
    txCanIdEx.data = master_id;
    = 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);
    puoi_txd();
}


✔ Copiato!

 

Comando di scrittura del parametro della modalità motore (tipo di comunicazione 18, scrittura del parametro di controllo)
uint16_t indice;
riferimento float;
void motor_write(uint8_t id, uint16_t master_id) {
    txCanIdEx.mode = 0x12;
    txCanIdEx.id = id;
    txCanIdEx.res = 0;
    txCanIdEx.data = master_id;
    = 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);
    puoi_txd();
}


✔ Copiato!

 

4.2.2 Modalità di controllo operativo
Dopo che il motore è acceso, è in modalità di controllo operativo per impostazione predefinita;
Invia abilitazione motore telaio in esecuzione (tipo di comunicazione 3) -->
Invia comando di controllo motore in modalità di controllo operazione (tipo di comunicazione 1) -->
Ricevi il frame di feedback del motore (tipo di comunicazione 2)
4.2.3 Modalità corrente
Invia il comando di scrittura del parametro della modalità motore (tipo di comunicazione 18) e imposta il parametro runmode su 3 --->
Invia il telaio di attivazione del motore (tipo di comunicazione 3) -->
Invia il comando di scrittura del parametro della modalità motore (tipo di comunicazione 18) e imposta il parametro iq_ref come comando di corrente preimpostato.
4.2.4 Modalità velocità
Invia il comando di scrittura del parametro della modalità motore (tipo di comunicazione 18) e imposta il parametro runmode su 2 --->
Invia il telaio di attivazione del motore (tipo di comunicazione 3) -->
Invia il comando di scrittura del parametro della modalità motore (tipo di comunicazione 18) e imposta il parametro limit_cur per il comando di corrente massima preimpostato -->
Invia il comando di scrittura del parametro della modalità motore (tipo di comunicazione 18) per impostare il parametro spd_ref al comando di velocità preimpostato.
4.2.5 Modalità di localizzazione
Invia il comando di scrittura del parametro della modalità motore (tipo di comunicazione 18) e imposta il parametro runmode su 1 -->
Invia il telaio di attivazione del motore (tipo di comunicazione 3) -->
Invia il comando di scrittura del parametro della modalità motore (tipo di comunicazione 18) e imposta il parametro limit_spd al comando di velocità massima preimpostata -->
Invia il comando di scrittura del parametro della modalità motore (tipo di comunicazione 18) per impostare il parametro loc_ref al comando di posizione preimpostata.
4.2.6 Interrompere l'operazione
Invia telaio di arresto motore (tipo di comunicazione 4)

Libreria CyberGear per M5 stack

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

cybergear_m5

Libreria M5 stack per cybergear
"Ricorda, con grande coppia viene una grande responsabilità."

Framework supportato

  • Arduino per ESP32

Dispositivo supportato (ESP32)

  • M5Stack di base V2.7

Componenti H/W (MCP2515)

Componenti H/W (ESP32 + PWRCAN)

Componenti H/W (ESP32 + unità ricetrasmettitore CAN)

Come usare Official GUI attrezzo

Questo software richiede un modulo specifico da CAN a USB. La documentazione ufficiale raccomanda il modulo USB a CAN di YourCee, che supporta il protocollo seriale con un'intestazione di frame di 41 54 e una coda di frame di 0D 0A, ma questo non è facilmente disponibile, quindi abbiamo cercato un'alternativa su Aliexpress. ※ Nota che questo non funzionerà per moduli generali.
Testato (per riferimento):

Cavi pre-crimpati raccomandati

  • Cavo XT30(2+2)

Come correre campione

Arduino VA

  • Clone MCP_CAN_LIB E cygergear_m5 alla directory della libreria Arduino.
  • 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
  • clone git https://github.com/project-sternbergia/cybergear_m5.git
  • Metti questo file nella stessa cartella di control_mode_example.ino (per Arduino IDE) Se vuoi utilizzare la libreria ESP32_CAN, per favore commenta queste righe.
  • Costruisci e scrivi firmware per M5Stack

Codice di esempio

control_mode_example.ino

Controlla il comportamento del cybergear utilizzando lo stack M5.
  • Pulsante centrale - Modifica modalità di controllo (Modalità posizione -> Modalità velocità -> Modalità corrente)
  • Pulsante Destro - Aumenta il valore di controllo
  • Pulsante Sinistro - Riduci valore di controllo

cybergear_bilateral.ino

Questo esempio utilizza due cybergear per il leader e il follower. Prima di testare questo esempio, si prega di cambiare l'ID del can del cybergear come segue. Dopo di che scrivi cybergear_m5/esempi/cybergear_bilateral.ino a m5 stack attraverso l'IDE di Arduino.
  • leader cybergear : 0x7F
  • follower cybergear : 0x7E

Articoli consigliati

 

Articolo precedente
Articolo successivo

Lascia un commento

Tutti i commenti del blog vengono controllati prima della pubblicazione

Qualcuno ha recentemente acquistato un

Grazie per esserti iscritto!

Questa email è stata registrata!

Acquista il look

Scegli Opzioni

visualizzato recentemente

Modifica opzione
Notifica di disponibilità
this is just a warning
Login
Carrello della spesa
0 elementi
RuffRuff App RuffRuff App by Tsun