Aller au contenu


Dens26

Inscrit(e) (le) 26 mai 2015
Déconnecté Dernière activité déc. 02 2024 08:10
-----

Messages que j'ai postés

Dans le sujet : Comment attirer par un fromage (factice) une souris (factice) ?

02 décembre 2024 - 08:10

Salut! J'adore l'idée.


Dans le sujet : Roby/ Robot bipede basé sur le kit Bioloid Comprehensive

25 septembre 2024 - 10:47

Petit retour.

 

C'est OK pour la récupération des data des servomoteurs AX_12.

 

J'avais inversé les fil GND et Data. Heureusement, ça na pas occasionné de dommage sur les servomoteur testé. :dash2:

 

Fichier joint  Capture d'écran 2024-09-25 232701.png   55,72 Ko   11 téléchargement(s)

 

Il me reste à créer cette fonction syncWrite() qui n'es pas existante dans la bibliothéque Ax_12

https://github.com/j...rvo-library.git


Dans le sujet : Roby/ Robot bipede basé sur le kit Bioloid Comprehensive

25 septembre 2024 - 01:59

Merci pour vos retour.

Je suis effectivement en train de faire des test avec 2 servomoteurs AX-12+ et AX-12A car il y a les deux sur le robot

Je me concentre sur la réception de données des servomoteurs sur la pin rx

J'ai suivi cette vidéo sans succès pour l'instant
https://youtu.be/FNL...PGc7yWSv6oZmEw0

Une fois que j'arriverai à récupérer les donnes des AX-12 je pourrai me pencher sur la fonction syncWrite() afin d'envoyer les positions sur tout les servos en même temps

Dans le sujet : Roby/ Robot bipede basé sur le kit Bioloid Comprehensive

25 septembre 2024 - 11:33

Salut les makers,

Voici la bête !

Fichier joint  WhatsApp Image 2024-09-25 à 12.12.25_4c540295.jpg   115,7 Ko   10 téléchargement(s)

 

En ce moment, je travaille sur l'application Roby Motion et le code Arduino. J'arrive à envoyer des instructions via le pin TX, mais je rencontre des difficultés à recevoir des informations via le pin RX.

Les instructions de position sont envoyées à chaque servomoteur dans une boucle for comme ceci :

for (int i = 0; 26; i++) {
  if (pos[i] != -1)
    ax12a.moveSpeed(i + 1, pos[i], 312);
}

Le problème est que chaque boucle prend environ 15 à 20 ms pour être exécutée.

 

Cela peut sembler peu, mais entre le servo_1 et le servo_26, il peut s'écouler jusqu'à 500 ms.

Sachant qu'un tour complet de 300° prend environ 1 seconde pour une rotation de 0 à 1023, le servo_1 est déjà à mi-course alors que l'information de position n'a même pas encore été envoyée au servo_26.

 

Je suis donc en train de chercher une solution pour envoyer un paquet d'instructions que les servomoteurs AX-12 exécuteraient simultanément, mais j'avoue galérer un peu.

Actuellement, le data des AX-12 est connectée directement sur le RX/TX de l'Arduino.

 

J'arrive à transmettre des informations via le pin TX, mais toujours pas à recevoir via le pin RX.

J'avais déjà réussi à faire fonctionner tout ça, mais j'ai malheureusement perdu mon travail 😞.

 

À suivre...


Dans le sujet : Roby/ Robot bipede basé sur le kit Bioloid Comprehensive

12 septembre 2024 - 02:37

Salut les makers.

 

Petite présentation des avancé concernant Roby.

 

J'ai avancé sur l'application Roby Motion dont voici l'interface :

Fichier joint  Roby_Motion.jpg   119,89 Ko   9 téléchargement(s)

 

Fonctionnalités actuelles de Roby Motion :

  1. Gestion des animations servo-moteurs :

    • Importer et gérer des animations complètes pour Roby, avec des étapes successives contenant des positions spécifiques pour chaque servo (jusqu'à 26 servos).
    • L'application permet de jouer une animation complète en envoyant toutes les étapes, avec les pauses (Break) et les vitesses (Speed) définies pour chaque étape.
    • Possibilité d'envoyer une étape unique en spécifiant manuellement les positions des servos.
  2. Interface utilisateur intuitive :

    • Affichage graphique des étapes : Pour chaque animation, les étapes sont listées dans un tableau interactif avec des colonnes pour les positions des servos, les pauses et les vitesses.
    • Modification dynamique des étapes : Chaque étape peut être modifiée directement dans le tableau (positions des servos, vitesse, pause).
    • Boutons pour ajouter ou supprimer des étapes : Il est possible d'ajouter jusqu'à 10 étapes ou d'en supprimer si nécessaire.
    • Réorganisation des étapes : L'utilisateur peut déplacer une étape vers le haut ou le bas pour ajuster l'ordre des mouvements.
  3. Gestion des paramètres d'animation :

    • Possibilité de définir les paramètres de lecture comme :
      • Le nombre de répétitions d'une animation (RepeatTime),
      • Le taux de vitesse global (SpeedRate),
      • La force d'inertie pour adoucir les mouvements (InertialForce).
    • Sauvegarde des animations sous format JSON, et possibilité de les importer ultérieurement pour continuer à travailler dessus.
    • Affichage du nom du fichier ouvert dans la barre de titre de l'application avec une étoile (*) pour signaler les modifications non sauvegardées.
  4. Fonctionnalité de joint softness :

    • Ajustement de la softness (souplesse) pour chaque articulation. Chaque articulation peut être configurée individuellement dans le tableau associé.
  5. Calcul et gestion des temps d'exécution :

    • L'application calcule automatiquement le temps total d'exécution de chaque étape en fonction des différences de positions et des vitesses.
    • Le temps de pause est ajusté dynamiquement selon la vitesse du servo pour que le mouvement reste fluide, même à des vitesses plus faibles.
    • Le temps réel d'exécution total d'une animation est affiché, prenant en compte le nombre de répétitions et le taux de vitesse global.
  6. Sécurisation des données :

    • Avant d'importer un fichier, l'application vérifie si un autre fichier est déjà ouvert et non sauvegardé, et prévient l'utilisateur pour éviter toute perte de données.
    • Vérification des données entrées : Si les valeurs des positions, des vitesses ou des pauses dépassent les limites autorisées, l'application affiche un message d'erreur et restaure les valeurs précédentes.
  7. Interaction avec l'Arduino Mega 2560 :

    • L'application communique avec l'Arduino Mega 2560 pour contrôler les servo-moteurs.
    • Les commandes envoyées peuvent jouer une animation complète ou une étape unique, avec une gestion du temps et des pauses ajustées par rapport au temps de mouvement réel des servos.
    • Gestion automatique des temps de transmission et d'exécution pour éviter les décalages entre les étapes (inclusion d'une compensation pour le temps pris par les servos à atteindre leur position).
  8. Sauvegarde et exportation :

    • L'utilisateur peut sauvegarder les animations créées et les exporter sous format JSON pour les partager ou les réutiliser.
    • Les boutons de sauvegarde sont dynamiquement activés/désactivés selon l'état des modifications (ex. l'étoile s'affiche dans la barre de titre si des modifications sont en cours).