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
-
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
laissez un commentaire
Tous les commentaires du blog sont vérifiés avant la publication