x_max) x=x_max; sinon si(x Copier le code ✔ Copié !   Instructions de contrôle du moteur en mode de contrôle d'opération (type de communication 1) void motor_controlmode(uint8_t id, float couple, float PositionMécanique, float vitesse, 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(vitesse,V_MIN,V_MAX,16)>>8; txMsg.tx_data[3]=float_to_uint(vitesse,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); peut_txd(); } Copier le code ✔ Copié !   Arrêt du moteur cadre (type de communication 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; pour(uint8_t i=0;i Copier le code ✔ Copié !   Commande d'écriture de paramètre de mode moteur (type de communication 18, commutation de mode de fonctionnement) mode d'exécution uint8_t ; 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; pour(uint8_t i=0;i Copier le code ✔ Copié !   Commande d'écriture de paramètre de mode moteur (type de communication 18, écriture de paramètre de contrôle) uint16_t index; flotteur 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; pour(uint8_t i=0;i Copier le code ✔ Copié !   4.2.2 Mode de contrôle d'opération Après que le moteur est alimenté, il est en mode de contrôle d'opération par défaut ; Envoyer le cadre de fonctionnement d'activation du moteur (type de communication 3) --> Envoyer la commande de contrôle du moteur en mode de contrôle d'opération (type de communication 1) --> Recevoir le cadre de retour d'information moteur (type de communication 2) 4.2.3 Mode actuel Envoyez la commande d'écriture du paramètre de mode moteur (type de communication 18) et définissez le paramètre de mode d'exécution sur 3 ---> Envoyer le cadre d'activation du moteur (type de communication 3) --> Envoyez la commande d'écriture du paramètre de mode moteur (type de communication 18) et définissez le paramètre iq_ref comme la commande de courant prédéfini. 4.2.4 Mode vitesse Envoyez la commande d'écriture du paramètre de mode moteur (type de communication 18) et définissez le paramètre de mode d'exécution sur 2 ---> Envoyer le cadre d'activation du moteur (type de communication 3) --> Envoyez la commande d'écriture du paramètre de mode moteur (type de communication 18) et définissez le paramètre limit_cur pour la commande de courant maximum prédéfini --> Envoyer la commande d'écriture du paramètre de mode moteur (type de communication 18) pour définir le paramètre spd_ref sur la commande de vitesse prédéfinie. 4.2.5 Mode de localisation Envoyez la commande d'écriture du paramètre de mode moteur (type de communication 18) et définissez le paramètre de mode d'exécution sur 1 --> Envoyer le cadre d'activation du moteur (type de communication 3) --> Envoyez la commande d'écriture du paramètre de mode moteur (type de communication 18) et définissez le paramètre limit_spd sur la commande de vitesse maximale prédéfinie --> Envoyer la commande d'écriture du paramètre de mode moteur (type de communication 18) pour définir le paramètre loc_ref sur la commande de position prédéfinie. 4.2.6 Arrêter l'opération Envoyer le cadre d'arrêt du moteur (type de communication 4) Bibliothèque CyberGear pour M5 stack https://github.com/project-sternbergia/cybergear_m5/tree/main cybergear_m5 Bibliothèque M5 stack pour cybergear "Souviens-toi, avec grand" couple vient une grande responsabilité. Cadre pris en charge Arduino pour ESP32 Appareil pris en charge (ESP32) M5Stack Basic V2.7 Composants H/W (MCP2515) Xiaomi Cybergear M5Stack Basic V2.7 Module Commu M5Stack [M001] Câble Grove Composants H/W (ESP32 + PWRCAN) Xiaomi Cybergear M5Stack Basic V2.7 Module PWRCAN 13.2 avec 2-Ch CAN isolé et 1-Ch RS485 Composants matériels (unité émetteur-récepteur ESP32 + CAN) Xiaomi Cybergear M5Stack Basic V2.7 Module LAN W5500 avec PoE V12 ou Unité CANBus (CA-IS3050G) Câble Grove Comment utiliser Officiel Interface utilisateur graphique outil Ce logiciel nécessite un module CAN vers USB spécifique. La documentation officielle recommande le module USB vers CAN de YourCee, qui prend en charge le protocole série avec un en-tête de trame de 41 54 et une queue de trame de 0D 0A, mais cela n'est pas facilement disponible, donc nous avons cherché sur Aliexpress une alternative. ※ Notez que cela ne fonctionnera pas pour des modules généraux. Testé (pour référence) : Module CAN vers USB Câbles pré-sertis recommandés Câble XT30(2+2) Comment courir échantillon Arduino VA Cloner MCP_CAN_LIB et cygergear_m5 au répertoire de la bibliothèque Arduino. cd ~/Arduino/libraries clone git https://github.com/coryjfowler/MCP_CAN_lib.git clone git 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 Ouvrir cybergear_m5/examples/control_mode_example.ino avec Arduino IDE Mettez ce fichier dans le même dossier que control_mode_example.ino (pour Arduino IDE) Si vous souhaitez utiliser la bibliothèque ESP32_CAN, veuillez commenter ces lignes. Construire et écrire le firmware pour M5Stack Exemple de code control_mode_example.ino Vérifiez le comportement du cybergear à l'aide de la pile M5. Bouton du milieu – Changer le mode de contrôle (mode position -> mode vitesse -> mode actuel) Bouton Droit - Augmenter la valeur de contrôle Bouton gauche - Diminuer la valeur de contrôle cybergear_bilateral.ino Cet exemple utilise deux cybergears pour le leader et le suiveur. Avant de tester cet exemple, veuillez changer l'identifiant CAN du cybergear comme suit. Après cela, écrivez cybergear_m5/exemples/cybergear_bilateral.ino à m5 stack dans l'IDE Arduino. leader cybergear : 0x7F follower cybergear : 0x7E Articles recommandés Micromoteur Xiaomi Cybergear : le moteur intelligent qui révolutionne la robotique Xiaomi CyberGear Motor Driver : Efficacité énergétique et communication intelligente Moteur intelligent du micromoteur Xiaomi CyberGear : guide de sélection des accessoires Le micromoteur Xiaomi CyberGear entre en conflit avec le M5Stack  ">
Aller au contenu

+49 1626571232

info@openelab.io

🚀 Livraison gratuite à partir de 30€ en Allemagne, 50€ dans l'UE !

FAQ

Guide du Micromoteur CyberGear de XiaoMi

28 Feb 2025 0 commentaires

Qu'est-ce que le Micromoteur CyberGear de XiaoMi

Le micromoteur Xiaomi CyberGear est un micromoteur compact mais puissant, conçu pour des applications robotiques et bioniques avancées. Il présente un rapport couple/taille élevé, des temps de réponse rapides et un contrôle précis, permettant des mouvements réalistes et fluides dans les membres et mécanismes robotiques. Son design modulaire et ses algorithmes de contrôle intelligents facilitent l'intégration transparente dans des systèmes complexes, le rendant adapté à des applications allant des prothèses bioniques aux animaux de compagnie robotiques avancés. Xiaomi souligne son potentiel à créer des expériences robotiques plus réalistes et interactives.

 

Manuel d'instruction du micromoteur CyberGear

Précautions

  • Veuillez l'utiliser conformément aux paramètres de fonctionnement spécifiés dans cet article, sinon cela causera des dommages graves à ce produit !
  • Le mode de contrôle ne peut pas être changé pendant que l'articulation est en fonctionnement. Si vous devez changer, vous devez d'abord envoyer une commande d'arrêt avant de changer.
  • Veuillez vérifier si toutes les pièces sont intactes avant utilisation. Si des pièces sont manquantes ou endommagées, veuillez contacter le support technique à temps.
  • Ne démontez pas le moteur à votre guise pour éviter des pannes irrécupérables.
  • Assurez-vous qu'il n'y a pas de court-circuit lors de la connexion du moteur et que l'interface est connectée correctement comme requis.

Mentions légales

Avant d'utiliser ce produit, l'utilisateur doit lire ce manuel attentivement et utiliser le produit conformément au contenu de ce manuel. Si l'utilisateur utilise ce produit en violation du contenu de ce manuel, la société n'assume aucune responsabilité pour tout dommage matériel ou accident corporel. Étant donné que ce produit se compose de nombreuses pièces, ne laissez pas les enfants entrer en contact avec ce produit pour éviter les accidents. Afin de prolonger la durée de vie du produit, veuillez ne pas utiliser ce produit dans des environnements à haute température et haute pression. Ce manuel a essayé d'inclure au mieux diverses introductions de fonctions et instructions d'utilisation au moment de l'impression. Cependant, en raison de l'amélioration continue des fonctions du produit, des changements de conception, etc., il peut encore y avoir des divergences avec les produits achetés par les utilisateurs.
Il peut y avoir des différences entre ce manuel et le produit réel en termes de couleur, d'apparence, etc. Veuillez vous référer au produit réel. Ce manuel est publié par Xiaomi ou ses filiales locales. Xiaomi peut apporter des améliorations et des modifications nécessaires à ce manuel pour des erreurs typographiques, des inexactitudes des dernières informations, ou des améliorations des programmes et/ou équipements à tout moment sans préavis. De tels changements seront téléchargés dans la nouvelle version de ce manuel. Veuillez scanner le code QR de ce manuel pour l'obtenir. Toutes les images sont uniquement à des fins de description fonctionnelle. Veuillez vous référer au produit réel.

Politique après-vente

Le service après-vente de ce produit est strictement conforme à la "Loi sur la protection des droits et intérêts des consommateurs de la République populaire de Chine" et à la "Loi sur la qualité des produits de la République populaire de Chine". Le contenu du service est le suivant :

Période et contenu de garantie

  Les utilisateurs qui passent une commande pour acheter ce produit par le biais de canaux en ligne peuvent bénéficier d'un service de retour sans raison dans les sept jours suivant le jour de la réception. Lors du retour des marchandises, les utilisateurs doivent présenter une preuve d'achat valide et retourner la facture. Les utilisateurs doivent s'assurer que les marchandises retournées conservent leur qualité et leur fonctionnalité d'origine, que leur apparence est intacte, et que les marques et logos des marchandises elles-mêmes et des accessoires sont complets. S'il y a des cadeaux, ils doivent être retournés ensemble. Si le produit est endommagé de manière artificielle, démonté manuellement, si la boîte d'emballage est manquante ou si des pièces de rechange sont manquantes, les retours ne seront pas traités. Les frais logistiques engagés lors du retour des marchandises seront à la charge de l'utilisateur (voir "Normes de facturation du service après-vente" pour les normes de facturation). Si l'utilisateur ne parvient pas à régler les frais logistiques, le montant réel sera déduit du montant du remboursement. Le prix payé sera remboursé à l'utilisateur dans les sept jours suivant la date de réception des marchandises retournées. Les méthodes de remboursement sont les mêmes que les méthodes de paiement. La date d'arrivée spécifique peut être affectée par des facteurs tels que les banques et les institutions de paiement.
  Si un échec de performance non causé par un humain se produit dans les 7 jours suivant le jour où l'utilisateur le signe, le centre de service après-vente Xiaomi s'occupera du retour pour l'utilisateur après inspection et confirmation. Lors du retour du produit, l'utilisateur doit présenter un certificat d'achat valide et retourner la facture. Tous les cadeaux doivent être retournés ensemble.
  Si des dommages non humains ou une défaillance de performance se produisent dans les 7 à 15 jours suivant le jour où l'utilisateur signe, le centre de service après-vente Xiaomi s'occupera de l'échange pour l'utilisateur et remplacera l'ensemble des produits après inspection et confirmation. Après l'échange, la période de garantie de trois ans du produit lui-même sera recalculée.
  De 15 jours à 365 jours à partir du lendemain de la signature par l'utilisateur, après inspection et confirmation par le centre de service après-vente Xiaomi, il s'agit d'un défaut de qualité du produit lui-même, et des services de réparation peuvent être fournis gratuitement. Le produit défectueux remplacé appartient à la société Xiaomi. Le produit non défectueux sera retourné dans son état d'origine. Ce produit quitte l'usine après avoir subi divers tests stricts. S'il y a un défaut de qualité qui n'est pas lié au produit lui-même, nous nous réservons le droit de refuser la demande de retour ou d'échange de l'utilisateur.
Si la politique de service après-vente dans ce manuel est incohérente avec la politique de service après-vente du magasin, la politique de service après-vente du magasin prévaudra.

Règlementations hors garantie : Les situations suivantes ne sont pas couvertes par la garantie :

  Dépasse la période de garantie limitée par les conditions de garantie.
  Dommages au produit causés par une utilisation incorrecte sans suivre les instructions.
  Dommages causés par une opération, un entretien, une installation, une modification, un test et d'autres usages inappropriés.
  Perte mécanique conventionnelle et usure causées par des défauts de non-qualité.
  Dommages causés par des conditions de travail anormales, y compris mais sans s'y limiter à la chute, l'impact, l'immersion dans un liquide, l'impact violent, etc.
  Dommages causés par des catastrophes naturelles (telles que des inondations, des incendies, des coups de foudre, des tremblements de terre, etc.) ou par la force majeure.
  Dommages causés par une utilisation au-delà du couple maximal.
  Les articles qui ne sont pas des produits Xiaomi authentiques peuvent ne pas être en mesure de fournir une preuve d'achat légale.
  D'autres pannes ou dommages non causés par des problèmes tels que la conception du produit, la technologie, la fabrication, la qualité, etc.
  Utilisez ce produit à des fins commerciales.
Si la situation ci-dessus se produit, les utilisateurs doivent payer les frais eux-mêmes. Pour les détails de la politique de service après-vente du groupe, veuillez consulter : https://www.mi.com/service/serviceAgreement?id=17

 

Spécifications du moteur

1.1 Apparence et dimensions d'installation

1.2 État d'utilisation standard

1.2.1 Tension nominale : 24 VDC
1.2.2 Plage de tension de fonctionnement : 16V—28 VDC
1.2.3 Charge nominale (CW) : 4 N.m
1.2.4 Direction de rotation : horaire/anti-horaire vu depuis la direction de l'arbre
1.2.5 Posture d'utilisation : La direction de l'axe est horizontale ou verticale
1.2.6 Température de fonctionnement standard : 25±5°C
1.2.7 Plage de température de fonctionnement : -20 ~ 50°C
1.2.8 Humidité de fonctionnement standard : 65 %
1.2.9 Plage d'humidité de fonctionnement : 5 ~ 85 %, sans condensation
1.2.10 Plage de température de stockage : -30 ~ 70°C
1.2.11 Niveau d'isolation : Classe B

1.3 Caractéristiques électriques

1.3.1 Vitesse à vide : 296 tr/min ±10%
1.3.2 Courant à vide : 0,5 Arms
1.3.3 Charge nominale : 4 N.m
1.3.4 Vitesse de charge nominale : 240 tr/min ±10% 1.3.5 Courant de charge nominal (crête) : 6,5 A ±10% 1.3.6 Charge de crête : 12 N.m
1.3.7 Courant de crête (valeur de crête) : 23A±10%
1.3.8 Résistance d'isolation/enroulement statorique : DC 500VAC, 100M Ohms 1.3.9 Résistance à haute tension/stator et boîtier : 600 VAC, 1s, 2mA 1.3.10 Force électromotrice inverse du moteur : 0.054-0.057Vrms/rpm
1.3.11 Résistance de ligne : 0,45Ω±10%
1.3.12 Constante de couple : 0,87 N.m/Arms
1.3.13 Inductance moteur : 187-339μH
1.3.14 Courbe T-N
1.3.15 Courbe de surcharge maximale Conditions d'essai :
Température ambiante : 25°C
Température limite d'enroulement : 120°C
Vitesse : 24 tr/min
Courbe de charge maximale
Temps de surcharge maximum (s) vs Couple (N.m)
Données de test

Charger Durée de fonctionnement (s)
12 28
11 45
10 60
9 90
8 160
7 320
6 700
5 1800
4.5 2500
4 noté

1.4 Propriétés mécaniques

1.4.1 Poids : 317g±3g
1.4.2 Nombre de pôles : 28 pôles 1.4.3 Nombre de phases : 3 phases
1.4.4 Mode de conduite : FOC
1.4.5 Rapport de réduction : 7,75 : 1

Conduire les informations sur le produit

2.1 Introduction à l'apparence du conducteur et spécifications du produit

Terminal intégré avec alimentation 24V et communication CAN;
Version matérielle et code QR gravé au laser ;
Port de téléchargement MCU ;
point de test de communication CAN;
Voyant lumineux;
Trous d'installation ; 7. "C, A, B" sont les points de soudure des enroulements triphasés ;

Spécifications du produit


Tension nominale de fonctionnement 24VDC
Tension maximale autorisée 28VDC
Courant nominal de fonctionnement 6,5A
Courant maximum autorisé 23A
Consommation d'énergie en veille ≤18 mA
Débit binaire du bus CAN 1 Mbps
Taille Φ58mm
Température de l'environnement de travail -20°C 50°C
Température maximale autorisée par le tableau de contrôle 80°C
Résolution de l'encodeur 14 bits (valeur absolue sur un seul tour)

2.2 Définition de l'interface du conducteur

2.2.1 Diagramme d'interface du pilote
2.2.2 Marques et modèles recommandés d'interfaces de disque

# Modèle de planche Fabricant de marque Modèle de fin de ligne Fabricant de marque
1 XT30PB(2+2)-M.G.B AMASS (AMS) XT30(2+2)-F.G.B AMASS (AMS)
2 2,0 mm-2P femelle / 2,0 mm-2P mâle /
3 2,54 mm-4P femelle / 2,54 mm-4P mâle /
2.2.3 Définition des broches de l'interface du pilote
Alimentation et port de communication CAN
Tapis de test de communication CAN
Port de téléchargement


# Fonction d'interface ÉPINGLE Description
1 Alimentation et communication CAN 1 Alimentation positive (+)
2 Pôle négatif de l'alimentation (-)
3 Communication CAN côté bas CAN_L
4 Communication CAN côté haut CAN_H
2 Point de test de communication CAN 1 Communication CAN côté bas CAN_L
2 Communication CAN côté haut CAN_H
3 Port de téléchargement 1 SWDIO (données)
2 SWCLK (horloge)
3 3V3 (positif 3,3V)
4 GND (masse négative)

2.3 Définition du conducteur voyant lumineux

Lumière de signal bleu et lumière d'indicateur de puissance rouge
Définition de la lumière indicatrice

Voyant d'alimentation (lumière rouge lorsqu'il est allumé) Le voyant d'alimentation est utilisé pour indiquer l'alimentation 3,3V du MCU. Lorsque l'alimentation totale est de 24V, le voyant devient rouge, ce qui prouve que l'ensemble du réseau est alimenté normalement. Si l'alimentation est de 24V, le voyant ne s'allume pas et l'alimentation doit être coupée immédiatement.
Voyant d'indication (lumière bleue lorsqu'il est allumé) Lorsque le voyant lumineux clignote, cela prouve que le MCU fonctionne normalement et que la puce de pilote fonctionne normalement.

2.4 Principaux composants et spécifications


# Type de composant modèle Quantité
1 Puce MCU GD32F303RET6 1 PCS
2 Puce de pilote 6EDL7141 1 PCS
3 puce d'encodeur magnétique AS5047P 1 PCS
4 Thermistance NXFT15XH103FEAB021/NCP18XH103F03RB 2 pièces
5 MOS de puissance JMGG031V06A 6 pièces

Instructions d'utilisation du débogueur (scannez le Code QR à la fin du manuel papier pour obtenir le débogueur)

3.1 Configuration matérielle

Le moteur joint utilise la communication CAN. Il y a deux lignes de communication, qui sont connectées au débogueur via un outil can-to-USB. Le débogueur doit installer le pilote ch340 au préalable et fonctionne en mode AT par défaut.
Il convient de noter que nous avons développé le débogueur basé sur un outil spécifique de can à USB, donc nous devons utiliser notre outil de port série recommandé pour le débogage. Si vous souhaitez le porter sur d'autres plateformes de débogage, vous pouvez vous référer au Chapitre 3 du manuel. développement.
L'outil can to USB recommande d'utiliser le module USB-CAN de YourCee. L'en-tête de trame correspondant au protocole de port série est 41 54 et la queue de trame est 0D 0A.

 

3.2 Interface et description du débogueur

comprennent principalement :
A. Sélection des modules
  • Module d'appareil
  • Module de configuration
  • Module d'analyse
  • Module d'aide
B. Sélection de sous-modules Les modules d'équipement comprennent
  • Connecter ou déconnecter des équipements électriques
  • Informations sur l'équipement motorisé
  • Calibration de l'encodeur moteur
  • Modifier l'ID CAN du moteur
  • Définir la position zéro mécanique du moteur
  • Mise à niveau du programme moteur
Les modules de configuration incluent :
  • Tableau des paramètres, vous pouvez visualiser et modifier les paramètres du moteur.
  • Télécharger les paramètres. Vous pouvez télécharger les paramètres dans le moteur vers le tableau des paramètres.
  • Télécharger les paramètres. Vous pouvez télécharger les données de la table des paramètres vers le moteur.
  • Paramètres d'exportation. Vous pouvez télécharger les données de la table des paramètres sur le local.
  • Réinitialisation d'usine, vous pouvez restaurer les données dans le tableau des paramètres aux paramètres d'usine.
  • Avertissement clair, vous pouvez effacer les erreurs moteur, telles qu'une température excessive, etc.
Les modules d'analyse incluent :
  • Oscilloscope pour visualiser les changements de paramètres au fil du temps
  • Fréquence, vous pouvez ajuster la fréquence des données de visualisation.
  • Canal, vous pouvez configurer les données à afficher.
  • Commencer et arrêter de dessiner
  • Sortie des données de forme d'onde vers local
Les modules d'aide incluent :
  • Instructions d'utilisation, vous pouvez ouvrir le manuel d'instructions.
  • À propos, vous pouvez consulter les informations sur le logiciel.
C. Requête d'information sur le moteur
  • Informations sur l'appareil
  • Informations sur le tableau des paramètres
D. Colonne de données
  • Informations sur le journal
  • Informations de communication
E. Exécuter la zone de débogage
  • Sélectionner l'appareil
  • Zone de fonctionnement pratique, vous pouvez rapidement contrôler la rotation avant et arrière du moteur.
  • Zone de contrôle de mouvement, qui peut contrôler le moteur pour fonctionner dans différents modes.
F. Zone d'affichage du sous-module

3.3 Réglages du moteur

3.3.1 Paramètres de connexion du moteur
Connectez la can au outil USB (installez le pilote ch340, fonctionne en mode AT par défaut), sélectionnez le module de l'appareil, cliquez sur le sous-module de connexion et sélectionnez le port série correspondant.
3.3.2 Paramètres de base
Modifier le numéro d'identification du moteur.
  • La calibration de tressage magnétique du moteur, la réinstallation de la carte moteur et du moteur, ou la reconnexion des fils du moteur dans un ordre différent, etc. nécessitent une recalibration du tressage magnétique.
  • Définir la position zéro (perdue en cas de coupure de courant) et définir la position actuelle à 0.
  • Mise à jour du programme moteur. Lorsque le programme moteur est mis à jour, cliquez sur le bouton de mise à jour pour sélectionner le fichier de mise à jour.
3.3.3 Liste des paramètres
Après avoir connecté avec succès le moteur, cliquez sur le module de tableau de paramètres dans le module de configuration, et tous les paramètres seront affichés dans le journal. Le chargement est réussi, indiquant que les paramètres pertinents du moteur ont été lus avec succès (Remarque : le tableau de paramètres doit être dans l'état de veille du moteur. Configurez dans cet état, si le moteur est en état de fonctionnement, le tableau de paramètres ne peut pas être actualisé) L'interface affichera les paramètres électriques pertinents du moteur. Les paramètres bleus sont les paramètres de stockage internes du moteur. Ils peuvent être trouvés directement après les paramètres correspondants. Modifiez la colonne de valeur précédente. Cliquez sur Télécharger les paramètres pour télécharger les paramètres dans le débogueur vers le moteur. Cliquez sur Télécharger. Les paramètres peuvent télécharger les paramètres du moteur vers le débogueur. Les paramètres verts du moteur sont des paramètres observés, qui sont Les paramètres collectés peuvent être observés en temps réel.
Remarque : Veuillez ne pas modifier à votre guise la limite de couple du moteur, la température de protection et le temps de surchauffe. En raison d'une utilisation illégale de ce livre, si le produit cause des dommages au corps humain ou des dommages irréversibles aux articulations, notre entreprise ne pourra être tenue responsable des conséquences légales.
Tableau des paramètres

Code de fonction Nom de famille Type de paramètre Attributs Valeur maximale Valeur minimale Valeur actuelle (à titre de référence) Remarque
0x0000 Nom de famille Chaîne lire/écrire ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
0x0001 Code à barres Chaîne lire/écrire ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
0x1000 Version du code de démarrage Chaîne lecture seule 0.1.5
0x1001 Date de construction du démarrage Chaîne lecture seule 16 mars 2022
0x1002 Durée de construction du démarrage Chaîne lecture seule 20:22:09
0x1003 Version du code d'application Chaîne lecture seule 0.1.5 Numéro de version du programme moteur
0x1004 Version de l'application Git Chaîne lecture seule 7b844b0fM
0x1005 Date de création de l'application Chaîne lecture seule 14 avril 2022
0x1006 Temps de création d'application Chaîne lecture seule 20:30:22
0x1007 Nom du code de l'application Chaîne lecture seule dog_motor
0x2000 echoPara1 uint16 Configuration 74 5 5
0x2001 echoPara2 uint16 Configuration 74 5 5
0x2002 echoPara3 uint16 Configuration 74 5 5
0x2003 echoPara4 uint16 Configuration 74 5 5
0x2004 échoFreHz uint32 lire/écrire 10000 1 500
0x2005 Décalage mécanique flotter installation 7 -7 4.619583 Décalage d'angle de l'encodeur magnétique du moteur
0x2006 MechPos_init flotter lire/écrire 50 -50 4.52 Angle de référence lors du premier multi-tour
0x2007 limit_torque flotter lire/écrire 12 0 12 Limite de couple
0x2008 Je_FW_MAX flotter lire/écrire 33 0 0 Valeur du courant d'affaiblissement du champ, par défaut 0
0x2009 motor_index uint8 installation 20 0 1 Index moteur, marque la position de l'articulation moteur
0X200a ID_CAN uint8 installation 127 0 1 Cet identifiant de nœud
0x200b PEUT_MAÎTRE uint8 installation 127 0 0 peut héberger l'identifiant
0x200c PEUT_DÉPASSER_TEMPS uint32 lire/écrire 100000 0 0 seuil de délai d'attente, par défaut 0
0x200d Surchauffe du moteur int16 lire/écrire 1500 0 800 Valeur de température de protection du moteur, temp (degré) *10
0x200e dépassement de la température uint32 lire/écrire 1000000 1000 20000 Temps de surchauffe
0x200f Rapport de démultiplication flotter lire/écrire 64 1 7.75 Rapport de transmission
0x2010 Tq_caliType uint8 lire/écrire 1 0 1 Réglage de la méthode de calibration du couple
0x2011 cur_filt_gain flotter lire/écrire 1 0 0.9 Paramètres de filtre actuels
0x2012 cur_kp flotter lire/écrire 200 0 0.025 kp actuel
0x2013 cur_ki flotter lire/écrire 200 0 0.0258 courant électrique ki
0x2014 spd_kp flotter lire/écrire 200 0 2 Vitesse kp
0x2015 spd_ki flotter lire/écrire 200 0 0.021 vitesse ki
0x2016 loc_kp flotter lire/écrire 200 0 30 Localisation kp
0x2017 spd_filt_gain flotter lire/écrire 1 0 0.1 Paramètres du filtre de vitesse
0x2018 limit_spd flotter lire/écrire 200 0 2 Limite de vitesse en mode position
0x2019 limit_cur flotter lire/écrire 23 0 23 Position, limite de courant en mode vitesse
0x3000 timeUse0 uint16 lecture seule (informatique) 5
0x3001 timeUse1 uint16 lecture seule (informatique) 0
0x3002 timeUse2 uint16 lecture seule (informatique) 10
0x3003 timeUse3 uint16 lecture seule (informatique) 0
0x3004 encodeurRaw uint16 lecture seule (informatique) 11396 Valeur d'échantillon de l'encodeur magnétique
0x3005 mcuTemp int16 lecture seule (informatique) 337 température interne mcu *10
0x3006 Température du moteur int16 lecture seule (informatique) 333 température ntc moteur *10
0x3007 vBus(mv) uint16 lecture seule (informatique) 24195 tension du jeu de barres
0x3008 Décalage adc1 int32 lecture seule (informatique) 2084 biais de courant nul du canal d'échantillonnage adc 1
0x3009 Décalage adc2 int32 lecture seule (informatique) 2084 bias de courant nul du canal 2 d'échantillonnage ADC
0x300a adc1Brut uint16 lecture seule (informatique) 1232 valeur d'échantillonnage adc 1
0x300b adc2Raw uint16 lecture seule (informatique) 1212 valeur d'échantillonnage adc 2
0x300c Bus V flotter lecture seule (informatique) 24.195 Tension du jeu de barres V
0x300d cmdId flotter lecture seule (informatique) 0 commande d'identification de sonnerie, A
0x300e cmdIq flotter lecture seule (informatique) 0 commande iq ring, A
0x300f cmdlocref flotter lecture seule (informatique) 0 Commande de boucle de position, rad
0x3010 cmdspdref flotter lecture seule (informatique) 0 Commande de boucle de vitesse, rad/s
0x3011 cmdTorque flotter lecture seule (informatique) 0 Commande de couple, nm
0x3012 cmdPos flotter lecture seule (informatique) 0 avec la commande d'angle de protocole
0x3013 cmdVel flotter lecture seule (informatique) 0 indicateur de vitesse de protocole mit vertueux
0x3014 rotation int16 lecture seule (informatique) 1 nombre de tours
0x3015 modPos flotter lecture seule (informatique) 4.363409 Angle mécanique non calculé du moteur, rad
0x3016 mechPos flotter lecture seule (informatique) 0.777679 Angle de comptage de boucle côté charge, rad
0x3017 mechVel flotter lecture seule (informatique) 0.036618 vitesse de direction côté charge, rad/s
0x3018 elecPos flotter lecture seule (informatique) 4.714761 Angle électrique
0x3019 il flotter lecture seule (informatique) 0 Courant de ligne U, A
0x301a un flotter lecture seule (informatique) 0 Courant de ligne V, A
0x301b ic flotter lecture seule (informatique) 0 Courant de ligne W, A
0x301c cocher uint32 lecture seule (informatique) 31600
0x301d phaseOrdre uint8 lecture seule (informatique) 0 Marqueurs de direction de calibration
0x301e iqf flotter lecture seule (informatique) 0 Valeur du filtre iq, A
0x301f Température du tableau int16 lecture seule (informatique) 359 Température à bord, *10
0x3020 QI flotter lecture seule (informatique) 0 iq valeur originale, A
0x3021 identifiant flotter lecture seule (informatique) 0 id Valeur originale, A
0x3022 défautSta uint32 lecture seule (informatique) 0 Valeur de l'état de défaut
0X3023 avertirSta uint32 lecture seule (informatique) 0 Valeur de statut d'avertissement
0x3024 drv_fault uint16 lecture seule (informatique) 0 Valeur de défaut de puce de pilote
0x3025 drv_temp int16 lecture seule (informatique) 48 Valeur de température du chip du conducteur, degré
0x3026 Uq flotter lecture seule (informatique) 0 q Tension de l'axe
0x3027 Dehors flotter lecture seule (informatique) 0 d Tension de l'axe
0x3028 dtc_u flotter lecture seule (informatique) 0 Cycle de service de sortie U-phase
0x3029 dtc_v flotter lecture seule (informatique) 0 Cycle de service de sortie de la phase V
0x302a dtc_w flotter lecture seule (informatique) 0 Cycle de service de sortie de la phase W
0x302b v_bus flotter lecture seule (informatique) 24.195 vbus en boucle fermée
0x302c v_ref flotter lecture seule (informatique) 0 Tension d'entrée de synthèse vq,vd en boucle fermée
0x302d torque_fdb flotter lecture seule (informatique) 0 Valeur de retour de couple, nm
0x302e rated_i flotter lecture seule (informatique) 8 Courant nominal du moteur
0x302f limit_i flotter lecture seule (informatique) 27 Limite de courant maximum du moteur
3.3.4 Oscilloscope
Cette interface permet de visualiser et d'observer le graphique généré par des données en temps réel. Les données observables incluent le courant Id/Iq du moteur, la température, la vitesse réelle de sortie en temps réel, la position du rotor (encodeur), la position de sortie, etc.
Cliquez sur le module d'oscilloscope dans le module d'analyse, sélectionnez les paramètres appropriés dans le canal (pour les significations des paramètres, veuillez vous référer à 3.3.3), réglez la fréquence de sortie et cliquez sur Démarrer le dessin pour observer le spectre des données, arrêtez le dessin pour cesser d'observer le spectre.

3.4 Démonstration de contrôle

jogging:
Réglez la vitesse maximale, cliquez sur Exécuter, puis cliquez sur JOG pour faire fonctionner le moteur dans les directions avant et arrière.
Mode de commutation de contrôle :
Le mode de contrôle du moteur peut être converti en interface de mode de mouvement.
3.4.1 Mode point zéro
Cliquez sur le bouton de commutation à droite, et le moteur reviendra lentement à la position zéro mécanique.
3.4.2 Mode de contrôle d'opération
Cliquez sur le bouton de commutation à droite, puis définissez les cinq valeurs de paramètre, cliquez sur Démarrer ou Envoi continu, le moteur retournera au cadre de retour et fonctionnera selon l'instruction cible ; cliquez à nouveau sur le bouton de commutation à droite et le moteur s'arrêtera.
3.4.2 Mode actuel
Changez manuellement le mode actuel, cliquez sur le bouton de commutation à droite, puis définissez la valeur de commande du courant Iq, démarrez ou envoyez en continu, le moteur suivra la commande de courant, cliquez à nouveau sur le bouton de commutation à droite, le moteur s'arrêtera.
Cliquez sur le bouton de commutation sur le côté droit du mode de contrôle, entrez l'amplitude et la fréquence du test automatique sinusoïdal, puis cliquez sur le bouton de commutation sur le côté droit du test automatique sinusoïdal, et le iq (A) du moteur fonctionnera selon l'amplitude et la fréquence définies.
3.4.3 Mode vitesse
"Passez manuellement en mode vitesse, cliquez sur le bouton de commutation à droite, puis définissez la valeur de commande de vitesse (-30~30rad/s), démarrez ou envoyez en continu, le moteur suivra la commande de vitesse, cliquez à nouveau sur le bouton de commutation à droite, le moteur s'arrêtera."
3.4.4 Mode de localisation
Changez manuellement le mode de position, cliquez sur le bouton de commutation à droite, puis définissez la valeur de commande de position (rad), démarrez ou envoyez en continu, le moteur suivra la commande de position cible, cliquez à nouveau sur le bouton de commutation à droite, le moteur s'arrêtera. Vous pouvez modifier la vitesse maximale du suivi de position en réglant la vitesse.
Cliquez sur le bouton de commutation sur le côté droit du mode de contrôle, entrez l'amplitude et la fréquence du test automatique basé sur le sinus, puis cliquez sur le bouton de commutation sur le côté droit du test automatique basé sur le sinus. La position du moteur (rad) fonctionnera selon l'amplitude et la fréquence définies.

3.5 Mise à jour du micrologiciel

La première étape consiste à cliquer sur la mise à niveau du module de l'appareil et à sélectionner le fichier bin à graver ; la deuxième étape consiste à confirmer la mise à niveau et le moteur commencera à mettre à jour le firmware. Une fois le progrès terminé, la mise à jour du moteur sera complétée et il redémarrera automatiquement.

Protocole de communication du conducteur et instructions d'utilisation

La communication moteur est une interface de communication CAN 2.0, avec un débit en bauds de 1 Mbps et un format de trame étendu, comme indiqué.

Champ de données ID 29 bits Zone de données de 8 octets
Taille Morceau 28 à 24 Bit 23 ~ 8 Bit 7 ~ 0 Octet 0 ~ 7
Description Type de communication Zone de dates 2 Adresse cible Zone de dates 1
Les modes de contrôle pris en charge par le moteur incluent :
  • Mode de contrôle d'opération : donné 5 paramètres pour le contrôle de l'opération du moteur ;
  • Mode actuel : compte tenu du courant Iq spécifié du moteur ;
  • Mode vitesse : compte tenu de la vitesse de fonctionnement spécifiée du moteur ;
  • Mode de position : Étant donné une position spécifiée du moteur, le moteur se déplacera vers la position spécifiée ;

4.1 Description du type de protocole de communication

4.1.1 Obtenir l'ID de l'appareil (type de communication 0) ; Obtenir l'ID de l'appareil et l'identifiant unique de 64 bits du MCU.
Cadre de demande :

Champ de données ID 29 bits Zone de données de 8 octets
Position Morceau 28 à 24 Bit 23 ~ 8 Bit 7 ~ 0 Octet 0 ~ 7
Description 0 Bit 15 ~ 8 : ID_CAN_Hôte Moteur CAN_ID 0
Cadre de réponse :

Champ de données ID 29 bits Zone de données de 8 octets
Position Morceau 28 à 24 Bit 23 ~ 8 Bit 7 ~ 0 Octet 0 ~ 7
Description 0 Moteur CAN_ID 0xFE identifiant unique MCU 64 bits
4.1.2 Les instructions de contrôle du moteur (type de communication 1) en mode de contrôle d'opération sont utilisées pour envoyer des instructions de contrôle au moteur.
Cadre de demande :

Champ de données ID 29 bits Zone de données de 8 octets
Position Morceau 28 à 24 Bit 23 ~ 8 Bit 7 ~ 0 Octet 0 ~ 7
Description 1 Octet 2 : Couple (0 ~ 65535) correspondant à (- 12Nm ~ 12Nm) Moteur CAN_ID Octet 0 ~ 1 : Angle cible [0 ~ 65535] correspondant à (-4π ~ 4π)
Octet 2 ~ 3 : La vitesse angulaire cible [0 ~ 65535] correspond à (- 30rad/s ~ 30rad/s)
Octet 4 ~ 5 : Kp [0 ~ 65535] correspond à (0.0 ~ 500.0)
Octet 6 ~ 7 : Kd [0 ~ 65535] correspond à (0.0 ~ 5.0)
Cadre de réponse : Cadre de retour d'information du moteur (voir type de communication 2)
4.1.3 Les données de retour d'information du moteur (type de communication 2) sont utilisées pour transmettre l'état de fonctionnement du moteur à l'hôte.

Champ de données ID 29 bits Zone de données de 8 octets
Position Morceau 28 à 24 Bit 23 ~ 8 Bit 7 ~ 0 Octet 0 ~ 7
Description 2 Bit 8 ~ 15 : ID CAN du moteur
Bit 21 ~ 16 : Informations sur les défauts (0 - Non, 1 - Oui)
Bit 21 : non calibré
Bit 20 : échec de l'encodage HALL
Bit 19 : Échec de l'encodage magnétique
Bit 18 : surchauffe
Bit 17 : surintensité
Bit 16 : Défaut de sous-tension
Bit 22 ~ 23 : statut du mode :
0 : Mode de réinitialisation [reset]
1 : Modes sympas [Calibration]
2 : Mode moteur [Run]
Hôte CAN_ID Octet 0 ~ 1 : L'angle actuel [0 ~ 65535] correspond à (-4π ~ 4π)
Octet 2 ~ 3 : La vitesse angulaire actuelle [0 ~ 65535] correspond à (-30rad/s ~ 30rad/s)
Octet 4 ~ 5 : Le couple actuel [0 ~ 65535] correspond à (-12Nm ~ 12Nm)
Octet 6 ~ 7 : Température actuelle : Temp (degrés Celsius) )*10
4.1.4 Fonctionnement d'activation du moteur (type de communication 3)

Champ de données ID 29 bits Zone de données de 8 octets
Position Morceau 28 à 24 Bit 23 ~ 8 Bit 7 ~ 0 Octet 0 ~ 7
Description 3 Bit 15 ~ 8 : ID_CAN_Hôte Moteur CAN_ID
Cadre de réponse : Cadre de retour d'information du moteur de réponse (voir type de communication 2)
4.1.5 Moteur arrêté (type de communication 4)

Champ de données ID 29 bits Zone de données de 8 octets
Position Morceau 28 à 24 Bit 23 ~ 8 Bit 7 ~ 0 Octet 0 ~ 7
Description 4 Bit 15 ~ 8 : ID_CAN_Hôte Moteur CAN_ID Pendant le fonctionnement normal, la zone de données doit être effacée à 0 ;
Lorsque Byte[0]=1 : Effacer la faute ;
Cadre de réponse : Cadre de retour d'information du moteur de réponse (voir type de communication 2)
4.1.6 La définition de la position zéro mécanique du moteur (type de communication 6) définira la position actuelle du moteur à la position zéro mécanique (perdue après une coupure de courant)

Champ de données ID 29 bits Zone de données de 8 octets
Position Morceau 28 à 24 Bit 23 ~ 8 Bit 7 ~ 0 Octet 0 ~ 7
Description 6 Bit 15 ~ 8 : ID_CAN_Hôte Moteur CAN_ID Byte[0]=1
Cadre de réponse : Cadre de retour d'information du moteur de réponse (voir type de communication 2)
4.1.7 Définir le CAN_ID du moteur (type de communication 7) pour changer le CAN_ID actuel du moteur, ce qui prendra effet immédiatement.

Champ de données ID 29 bits Zone de données de 8 octets
Position Morceau 28 à 24 Bit 23 ~ 8 Bit 7 ~ 0 Octet 0 ~ 7
Description 7 Bit 15 ~ 8 : ID_CAN_Hôte
Bit 16 ~ 23 : Nouvel identifiant CAN du moteur
Moteur CAN_ID Byte[0]=1
Cadre de réponse : Cadre de diffusion de moteur de réponse (voir type de communication 0)
4.1.8 Lecture d'un seul paramètre (type de communication 17)

Champ de données ID 29 bits Zone de données de 8 octets
Position Morceau 28 à 24 Bit 23 ~ 8 Bit 7 ~ 0 Octet 0 ~ 7
Description 17 Bit 15 ~ 8 : ID_CAN_Hôte Moteur CAN_ID Octet 0 ~ 1 : index, voir 4.1.11 pour la liste des paramètres
Octet 2 ~ 3 : 00
Octet 4 ~ 7 : 00
Cadre de réponse :

Champ de données ID 29 bits Zone de données de 8 octets
Position Morceau 28 à 24 Bit 23 ~ 8 Bit 7 ~ 0 Octet 0 ~ 7
Description 17 Bit 15 ~ 8 : CAN_ID du moteur Hôte CAN_ID Octet 0 ~ 1 : index, pour la liste des paramètres, voir 4.1.11
Octet 2 ~ 3 : 00
Octet 4 ~ 7 : données de paramètre, 1 octet de données se trouve dans l'octet 4
4.1.9 Écriture d'un seul paramètre (type de communication 18) (perdu après une coupure de courant)

Champ de données ID 29 bits Zone de données de 8 octets
Position Morceau 28 à 24 Bit 23 ~ 8 Bit 7 ~ 0 Octet 0 ~ 7
Description 18 Bit 15 ~ 8 : ID_CAN_Hôte Moteur CAN_ID Octet 0 ~ 1 : index, voir 4.1.11 pour les détails de la liste des paramètres
Octet 2 ~ 3 : 00
Octet 4 ~ 7 : données de paramètre
Cadre de réponse : Cadre de retour d'information du moteur de réponse (voir type de communication 2)
4.1.10 Cadre de retour d'erreur (type de communication 21)

Champ de données ID 29 bits Zone de données de 8 octets
Position Morceau 28 à 24 Bit 23 ~ 8 Bit 7 ~ 0 Octet 0 ~ 7
Description 21 Bit 15 ~ 8 : ID_CAN_Hôte Moteur CAN_ID Octet 0 ~ 3 : valeur de défaut (non 0 : défaut, 0 : normal)
Bit 16 : Un surcourant d'échantillonnage de courant de phase
Bit 15 ~ 8 : défaut de surcharge
Bit 7 : encodeur non calibré
Bit 5 : échantillonnage du courant de phase C en surintensité
Bit 4 : échantillonnage du courant de phase B bit3 : défaut de surtension
Bit 2 : bit de défaut de sous-tension bit1 : bit de défaut de puce de pilote bit0 : bit de défaut de surchauffe du moteur, par défaut 80 degrés
Octet 4 ~ 7 : valeur d'avertissement
Bit 0 : avertissement de surchauffe du moteur, par défaut 75 degrés
4.1.11 Modification du débit en bauds (type de communication 22) (la version 1.2.1.5 peut être modifiée, veuillez vous référer au processus documenté pour la modifier avec précaution. Des erreurs d'opération peuvent causer des problèmes tels que l'impossibilité de se connecter au moteur et l'impossibilité de mettre à jour)

Champ de données ID 29 bits Zone de données de 8 octets
Position Morceau 28 à 24 Bit 23 ~ 8 Bit 7 ~ 0 Octet 0 ~ 7
Description 22 Bit 15 ~ 8 : ID_CAN_Hôte Moteur CAN_ID Byte0 : Taux de baud du moteur
1 : 1 Mbps
2 : 500 kbps
3 : 250 kbps
4 : 125 kbps
Cadre de réponse : Cadre de diffusion de moteur de réponse (voir type de communication 0)
4.1.12 Liste de paramètres unique lisible et écrivable (7019-7020 est lisible par la version du firmware 1.2.1.5)

Index des paramètres nom du paramètre décrire taper Nombre d'octets Valeurs possibles Autorisation
0x7005 run_mode 0 : Mode de contrôle d'opération
1 : Mode de positionnement
2 : Mode vitesse
3 : Mode actuel
uint8 1 W/R
0x7006 iq_ref Commande Iq en mode actuel flotter 4 -23 ~ 23A W/R
0x700A spd_ref Commande de vitesse en mode rapide flotter 4 -30 ~ 30 rad/s W/R
0x700B limit_torque Limite de couple flotter 4 0 à 12 Nm W/R
0x7010 cur_kp Kp du courant flotter 4 Valeur par défaut 0,125 W/R
0x7011 cur_ki Clé actuelle flotter 4 Valeur par défaut 0,0158 W/R
0x7014 cur_filt_gain Coefficient de filtre actuel filt_gain flotter 4 0~1.0, valeur par défaut W/R 0.1 W/R
0x7016 loc_ref Commande d'angle en mode position flotter 4 rad W/R
0x7017 limit_spd Limite de vitesse en mode position flotter 4 0 ~ 30 rad/s W/R
0x7018 limit_cur Limite de courant en mode de position de vitesse flotter 4 0 ~ 23A W/R
0x7019 mechPos Charger le comptage de l'angle mécanique de recouvrement de fin flotter 4 rad R
0x701A iqf valeur du filtre IQ flotter 4 -23 ~ 23A R
0x701B mechVel Vitesse de fin de charge flotter 4 -30 ~ 30 rad/s R
0x701C Bus V tension du bus flotter 4 V R
0x701D rotation Nombre de tours int16 2 Nombre de tours W/R
0x701E loc_kp kp de position flotter 4 Valeur par défaut 30 W/R
0x701F spd_kp Vitesse en kp flotter 4 Valeur par défaut 1 W/R
0x7020 spd_ki Vitesse du ki flotter 4 Valeur par défaut 0,002 W/R

4.2 Instructions d'utilisation du mode de contrôle

4.2.1 Exemple de programme
Les exemples suivants montrent comment contrôler des moteurs dans différents modes (en prenant le gd32f303 comme exemple). Ce qui suit s'appelle des bibliothèques, des fonctions et des définitions de macros pour divers exemples.
#define P_MIN -12.5f
#définir 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

structure exCanIdInfo{
    uint32_t id:8;
    uint32_t data:16;
    mode 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_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;
    sinon si(x < x_min) x= x_min;
    retourner (int) ((x-décalage)*((float)((1<
✔ Copié !

 

Instructions de contrôle du moteur en mode de contrôle d'opération (type de communication 1)
void motor_controlmode(uint8_t id, float couple, float PositionMécanique, float vitesse, 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(vitesse,V_MIN,V_MAX,16)>>8;
    txMsg.tx_data[3]=float_to_uint(vitesse,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);
    peut_txd();
}


✔ Copié !

 

Arrêt du moteur cadre (type de communication 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;
    pour(uint8_t i=0;i<8;i++) {
        txMsg.tx_data[i]=0;
    }
    peut_txd();
}


✔ Copié !

 

Commande d'écriture de paramètre de mode moteur (type de communication 18, commutation de mode de fonctionnement)
mode d'exécution uint8_t ;
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;
    pour(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);
    peut_txd();
}


✔ Copié !

 

Commande d'écriture de paramètre de mode moteur (type de communication 18, écriture de paramètre de contrôle)
uint16_t index;
flotteur 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;
    pour(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);
    peut_txd();
}


✔ Copié !

 

4.2.2 Mode de contrôle d'opération
Après que le moteur est alimenté, il est en mode de contrôle d'opération par défaut ;
Envoyer le cadre de fonctionnement d'activation du moteur (type de communication 3) -->
Envoyer la commande de contrôle du moteur en mode de contrôle d'opération (type de communication 1) -->
Recevoir le cadre de retour d'information moteur (type de communication 2)
4.2.3 Mode actuel
Envoyez la commande d'écriture du paramètre de mode moteur (type de communication 18) et définissez le paramètre de mode d'exécution sur 3 --->
Envoyer le cadre d'activation du moteur (type de communication 3) -->
Envoyez la commande d'écriture du paramètre de mode moteur (type de communication 18) et définissez le paramètre iq_ref comme la commande de courant prédéfini.
4.2.4 Mode vitesse
Envoyez la commande d'écriture du paramètre de mode moteur (type de communication 18) et définissez le paramètre de mode d'exécution sur 2 --->
Envoyer le cadre d'activation du moteur (type de communication 3) -->
Envoyez la commande d'écriture du paramètre de mode moteur (type de communication 18) et définissez le paramètre limit_cur pour la commande de courant maximum prédéfini -->
Envoyer la commande d'écriture du paramètre de mode moteur (type de communication 18) pour définir le paramètre spd_ref sur la commande de vitesse prédéfinie.
4.2.5 Mode de localisation
Envoyez la commande d'écriture du paramètre de mode moteur (type de communication 18) et définissez le paramètre de mode d'exécution sur 1 -->
Envoyer le cadre d'activation du moteur (type de communication 3) -->
Envoyez la commande d'écriture du paramètre de mode moteur (type de communication 18) et définissez le paramètre limit_spd sur la commande de vitesse maximale prédéfinie -->
Envoyer la commande d'écriture du paramètre de mode moteur (type de communication 18) pour définir le paramètre loc_ref sur la commande de position prédéfinie.
4.2.6 Arrêter l'opération
Envoyer le cadre d'arrêt du moteur (type de communication 4)

Bibliothèque CyberGear pour M5 stack

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

cybergear_m5

Bibliothèque M5 stack pour cybergear
"Souviens-toi, avec grand" couple vient une grande responsabilité.

Cadre pris en charge

  • Arduino pour ESP32

Appareil pris en charge (ESP32)

  • M5Stack Basic V2.7

Composants H/W (MCP2515)

Composants H/W (ESP32 + PWRCAN)

Composants matériels (unité émetteur-récepteur ESP32 + CAN)

Comment utiliser Officiel Interface utilisateur graphique outil

Ce logiciel nécessite un module CAN vers USB spécifique. La documentation officielle recommande le module USB vers CAN de YourCee, qui prend en charge le protocole série avec un en-tête de trame de 41 54 et une queue de trame de 0D 0A, mais cela n'est pas facilement disponible, donc nous avons cherché sur Aliexpress une alternative. ※ Notez que cela ne fonctionnera pas pour des modules généraux.
Testé (pour référence) :

Câbles pré-sertis recommandés

  • Câble XT30(2+2)

Comment courir échantillon

Arduino VA

  • Cloner MCP_CAN_LIB et cygergear_m5 au répertoire de la bibliothèque Arduino.
  • cd ~/Arduino/libraries
  • clone git https://github.com/coryjfowler/MCP_CAN_lib.git
  • clone git 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
  • Mettez ce fichier dans le même dossier que control_mode_example.ino (pour Arduino IDE) Si vous souhaitez utiliser la bibliothèque ESP32_CAN, veuillez commenter ces lignes.
  • Construire et écrire le firmware pour M5Stack

Exemple de code

control_mode_example.ino

Vérifiez le comportement du cybergear à l'aide de la pile M5.
  • Bouton du milieu – Changer le mode de contrôle (mode position -> mode vitesse -> mode actuel)
  • Bouton Droit - Augmenter la valeur de contrôle
  • Bouton gauche - Diminuer la valeur de contrôle

cybergear_bilateral.ino

Cet exemple utilise deux cybergears pour le leader et le suiveur. Avant de tester cet exemple, veuillez changer l'identifiant CAN du cybergear comme suit. Après cela, écrivez cybergear_m5/exemples/cybergear_bilateral.ino à m5 stack dans l'IDE Arduino.
  • leader cybergear : 0x7F
  • follower cybergear : 0x7E

Articles recommandés

 

Article précédent
Prochain article

laissez un commentaire

Tous les commentaires du blog sont vérifiés avant la publication

Quelqu'un a récemment acheté un

Merci pour votre subscription!

Cet email a été enregistré !

Achetez le look

Choisissez les options

vu récemment

Modifier l'option
Notification de retour en stock
this is just a warning
Se connecter
Panier
0 articles
RuffRuff App RuffRuff App by Tsun