Closed NicoFarmer closed 2 years ago
Voici le principe de fonctionnement de l'ensemble (MBED + Labotbox)
Côté Labotbox Réception d'un message ETAT_SERVO_AX contenant le numéro du servo [i] concerné et les informations utiles (position, mouvement en cours, ...) A la réception de ce message, création (ou mise à jour) des data concernant ce servo dans le DataManager : ServoAX[i].Position / ServoAX[i].Moving / ..._ Au démarrage de Labotbox, le DataManager ne contient aucune donnée servo AX puisqu'à priori Labotbox ne sait pas quels sont les servos AX utilisés sur l'application embarquée MBED. Les données dans le DataManager apparaîtront au fur et à mesure de la réception du message ETAT_SERVO_AX.
Côté Robot Le module de gestion des servo AX contient dans sa fonction d'init une découverte des servo AX connectés sur le bus (recherche des ID connectés). Une liste des servos détectés est mise à disposition pour le reste de l'application. Le module de diffusion des messages Labotbox utilise cette liste pour envoyer successivement les messages ETAT_SERVO_AX de tous les servos détectes présents. Si 3 servos sont connectés sur le bus, 3 messages ETAT_SERVO_AX seront envoyés successivement lorsqu'il sera l'heure de les diffuser. La découverte se limite aux 20 premiers ID pour limiter le temps de découverte (sachant qu'il y a moins de 10 servos AX au club au moment du développement). La limite des 20 peut être facilement augmentée.
Avec ces principes, les logiciels côté robot et Labotbox s'adaptent automatiquement aux servos connectés ou non sur le bus. Il n'est donc pas nécessaire de les paramétrer pour indiquer quels ID de servos seront utilisés ou non.
Les servomoteurs numériques DYNAMIXEL AX-12 et AX-18 utilisés sur les robots CRLG peuvent fournir des informations utiles à la mise au point des systèmes mécatroniques : retour de position / couple / température / convergence de mouvement, ....
Ajouter dans la messagerie Labotbox un message dans le sens MBED->Labotbox permettant de renvoyer les informations d'un servomoteur d'ID donné.