Aller au contenu


Photo

Modification d'un (micro) servo pour robot à pattes


  • Veuillez vous connecter pour répondre
194 réponses à ce sujet

#1 pat92fr

pat92fr

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 672 messages
  • Gender:Male

Posté 18 septembre 2020 - 11:32

Bonjour,

 

--- EDITION 12-01-2021 ---

 

Le projet de modification d'un micro servo de type MG9x est arrivé à son terme. La réalisation est documentée sur hackaday.io.

 

 

IMG20210109225448.jpg IMG20210109225906.jpg

 

Le design matériel et logiciel est sur github : SMSModGit

 

Une collection de vidéo (playlist) présente les fonctionnalités de ce petit module couplé à un MG92b, dont voici quelques extraits :

 

https://youtu.be/zlluPpIHIOk

IMG20210109235811.jpg

https://youtu.be/zrTxHTn-A60

IMG20210110104031.jpg

https://youtu.be/ZC6DH60ER2E

IMG20210109122924.jpg

 

N'hésitez pas à liker le projet sur hackaday.io et youtube ! Merci.

 

A bientôt !

 

 

--- FIN EDITION ---

 

Je me lance dans la réalisation d'un mini robot quadrupède, et je rencontre quelques difficultés avec l'utilisation de micro servo du commerce (ex. : sg90, mg90, mg92). 

 

A mon sens, voici la situation actuelle avec les servos dont je dispose actuellement (mg90/92) :

 

Avantages :

- Très compact (évidemment)

- Très léger

- Couple assez élevé

- Plutôt robuste du point de vue mécanique

 

Problèmes :

- Position du neutre et course angulaire différentes d'un modèle à l'autre,

- Asservissement 'modélisme' pas adapté à la robotique (vibrations)

- Alimentation limitée à 6V ou 6.6V (+ parasites renvoyés dans l'alimentation)

- Pas de protection en température

- Pas de retour de position

- Pas de retour d'effort

 

 

Il existe certainement des micro servos haut de gamme HV, permettant de régler tout ou partie de ces problèmes. Ma crainte est que le coût de tels servos soit trop élevé, sachant qu'il en faut 8 à 12 pour un simple quadrupède. En outre, investir dans de tels servos n'est pas l'approche que je souhaite suivre pour le moment. Et, je ne suis pas sûr de trouver facilement la bonne référence. Je ne suis pas sur non plus que cette solution règle les principaux problèmes que je rencontre.

 

L'idée que je souhaite développer à travers ce nouveau sujet, est de modifier un servo existant (pas cher), en conservant la partie mécanique et en remplaçant la partie électronique, pour atteindre un niveau de performance et de fonctionnalités permettant de concevoir un robot quadrupède dans de bonnes conditions. Je publie ce sujet ici pour partager mon expérience dans ce projet, et pour profiter de vos conseils ! Voyons ensemble où cela nous conduit...

 

L'un des articles les plus pertinents que j'ai trouvé est le suivant :

https://backyardrobo...t-servo-motion/

https://youtu.be/48NxrRw1iC8

 

A suivre...

Patrick.


  • Thot et Mike118 aiment ceci

#2 pat92fr

pat92fr

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 672 messages
  • Gender:Male

Posté 18 septembre 2020 - 11:50

La première étape concrète consiste à retirer la carte électronique du servo d'origine (ex. : un MG90s) pour accéder aux bornes du moteur et du potentiomètre.

 

La carte de contrôle d'origine est minuscule. l'espoir de la remplacer pas une carte de contrôle maison dans le même encombrement (PCB d'environ 1cm2)  s'envole.

 

En revanche, il reste possible de souder des fils pour déporter la carte de contrôle à l'extérieur du servo. C'est facile et répétable.

Si la mécanique du servo finissait pas casser, le remplacement serait assez aisé et peu coûteux. A ce stade, c'est plutôt encourageant.

 

Démontage :

IMG20200918122539.jpg

 

Opération terminée :

3 fils pour le potentiomètre et 2 fils (gris) pour le moteur.

IMG20200919001137.jpg

 

Je me demande néanmoins dans quelle mesure le courant passant par les fils moteurs peut perturber le signal analogique remontant par les fils raccordés au potentiomètre.

Note pour plus tard : vérifier la qualité du signal analogique lorsque le servo est en fonctionnement.

 

L'idée est de placer la carte de contrôle maison à proximité du servo (ou pas). Dans ce cas, l'idéal, à mon sens, serait quelle puisse se coller contre le boitier du servo (fond ou sur un coté). Une taille de 12 x 22 mm, avec des composants cms sur une seule face serait peut être une solution avantageuse.

 

A suivre.

Patrick.


  • Thot et Mike118 aiment ceci

#3 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 9 963 messages
  • Gender:Male
  • Location:Anglet

Posté 19 septembre 2020 - 05:08

Je t'encourage vivement dans tes expérimentations =) C'est en essayant des trucs comme ça qu'on apprend ;) 

Mais si jamais ta finalité c'est le robot quadrupède et pas l'apprentissage en bidouillant les moteurs /  que le choix des servo est un problème à résoudre ,

 

A ) Tes servomoteurs de modélisme, tu peux " calibrer leur plage" dans ton code, de sorte à compenser le problème de " Position du neutre et course angulaire différentes d'un modèle à l'autre " 

B ) 
je t'indique l'existence de ces servomoteur : https://www.robot-ma...ur-scs0009.html qui en plus sont actuellement en promo

Ce sont des servomoteurs "Intelligents " au même forme factor que les servomoteurs 9g de modélisme et ils ont en intégré toutes les fonctionnalités dont tu as parlé et plus encore ;) 
Je te laisse jeter un oeil au lien. 

Ils sont parfait pour l'application d'un quadrupède comme tu le souhaites. 

Ils sont un peu plus chère qu'un servomoteur classique mais ils valent vraiment le coup! ( Et possibilité de négocier une petite réduction supplémentaire en jouant avec le club des testeurs robot maker )

 

 

 

@+ et bonne continuation pour la suite !


Si mon commentaire vous a plus laissez nous un avis  !  :thank_you:

Nouveau sur Robot Maker ? 

Jetez un oeil aux blogs, aux tutoriels, aux ouvrages, au robotscope  aux articles,  à la boutique  et aux différents services disponible !
En attendant qu'une bibliothèque de fichiers 3D soit mise en place n'hésitez pas à demander si vous avez besoin du fichier 3D d'un des produits de la boutique... On l'a peut être ! 
Si vous souhaitez un robot pilotable par internet n'hésitez pas à visiter www.vigibot.com et à lire le sous forum dédié à vigibot!

 

Les réalisations de Mike118  

 

 

 


#4 Oracid

Oracid

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 6 766 messages
  • Gender:Male

Posté 19 septembre 2020 - 07:29

C'est un excellent projet !

Pour la réalisation du PCB, je ne serais pas aussi catégorique. Je pense que cela vaudrait la peine de s'y intéresser de plus près.

Backyard Robotics propose déjà d'excellentes réalisations destinées à des moteurs Brushless, cela pourrait peut-être t'inspirer.

Perso, j'utilise des SG90, MG90S et MG92B. Ces derniers sont excellents, ils ont un gros couple. Le servo proposé par Myke à l'air très intéressant également.

 

J'attends avec impatience la suite que tu comptes donner à ton projet.



#5 pat92fr

pat92fr

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 672 messages
  • Gender:Male

Posté 19 septembre 2020 - 07:44

Bonjour Mike, Oracid,

 

Merci pour toutes ces informations et pour ces encouragements ! 

 

Je connais un peu FeeTech, car je dispose de SCS15 pour un plus gros robot, et j'avais pris contact avec leur support (une solution avait été trouvée rapidement). 

 

Je vais regarder de plus prés le modèle SCS0(0)09 que tu m'indiques, en parallèle de mes expérimentations. En effet, ils offrent les fonctionnalités que je cherche et il sont rapides. 

 

En revanche, ils sont vendus comme des servos 6V et non HV.

http://www.feetechrc.com/6v-23kg-serial-bus-steering-gear_65522.html

 

Feetech propose un autre modèle plus puissant, tout métal, moteur coreless, légèrement plus lent, plus cher, et toujours 6V,  : SCS2332

http://www.feetechrc.com/product-name_55300.html

 

Est-ce que tu as un retour d'expérience sur le fonctionnement et la fiabilité de ces servos lorsqu'ils sont alimentés en 8.4V (Lipo 2s) ? 

 

Je vais aussi poser la question à leur support et je collerai la réponse ici.

 

On trouve peu de réalisations sur Internet à base de ces servos. Tu sais pourquoi ?

 

A suivre...

Patrick.



#6 pat92fr

pat92fr

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 672 messages
  • Gender:Male

Posté 19 septembre 2020 - 10:22

Bonjour,

 

Le support Feetech a répondu à ma demande d'information très rapidement. Voici un extrait de sa réponse :

 

This is **** from ShenZhen feetech servo factory.

We are specialized in servos, manufacturing various kinds of servos.
SCS0009 and SCS3223 can working for 7.4V maximum,
it is ok for you?

We had talked with our engineer.

They said suggest 6V, 7.4V Maximum.

 

 

La limite de tension est un peu basse pour brancher ces servos directement sur un Lipo 2S sans risque de nuire à leur fiabilité. Qu'en pensez vous ? Ça mérite peut être de faire un test.

 

 

Patrick.



#7 Oracid

Oracid

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 6 766 messages
  • Gender:Male

Posté 19 septembre 2020 - 11:37

En revanche, ils sont vendus comme des servos 6V et non HV.

Que veux-tu dire ?

 

Moi même, je suis à la recherche de servo compatible 2S. Cela existe, mais malheureusement, ils sont souvent chers. Chose que je ne comprends pas.

Néanmoins, une alim fournissant du 7V pourrait être un bon compromis, si ton objectif est d'avoir plus de couple.

Quelle taille de quadrupède vises-tu ?



#8 pat92fr

pat92fr

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 672 messages
  • Gender:Male

Posté 19 septembre 2020 - 11:58

Mon petit robot pèse moins de 300gr, les servos sont montés en série, avec un bras de levier sur chaque servo de l'ordre de 6cm (longueur du fémur, longueur du tibia).

 

Le couple des MG92b est suffisant à 6V. Mais le courant total est assez fort et mon BEC tient moyennement bien la charge.

 

Je cherche donc à brancher tous les servos directement sur la batterie de propulsion du robot. Éliminer le(s) DC/DC, et les remplacer par de simples capas de filtrage là où c'est utile.

 

Un servo 'normal' nécessite un régulateur linéaire ou un DC/DC pour ramener la tension d'alimentation dans la plage 5-6V ordinaire.

 

Des servos HV se raccordent directement sur une batterie LiPo 2S (7.2V nominal , 8.4V MAX). C'est l'idéal.

 

Les servos 6V-7.4V (Feetech) devraient pouvoir se raccorder directement sur une batterie LiFE (6.6V nominal)

 

J'ai prévu de tester les mg92b avec un batterie LiFe.



#9 Oracid

Oracid

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 6 766 messages
  • Gender:Male

Posté 19 septembre 2020 - 01:20

Actuellement je teste un quadrupède de 950g avec 8 MG92B. Un 4 barres, donc servos en parallèles, montés sur le châssis.

Le bras de servo, fémur donc, fait 80mm et le tibia 112mm.

 

Ses dimensions sont : longueur 33cm, largeur 27cm, hauteur 24cm.

Mais je peux faire plus grand : longueur 42cm, largeur 32cm, hauteur 30cm, poids 1300kg.

Je suis redescendu à une version plus petite pour améliorer la cinématique.

 

J'utilise des Arduino Nano avec un Shield R3 V5.0. L'alimentation est celle ci, https://fr.aliexpres....27426c37pMlK8d

Il fonctionne très bien.



#10 pat92fr

pat92fr

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 672 messages
  • Gender:Male

Posté 19 septembre 2020 - 02:52

Merci pour la référence du BEC. Effectivement, il est puissant. Il s'agit de ton robot 4BQ1 ? Visiblement, il se porte très bien !

 

J'ai testé mon robot avec un BEC plus petit (5V 3A théoriques) car l'encombrement est assez réduit, et ça ne fonctionne pas bien évidemment. https://fr.aliexpres...0341771373.html

 

J'avoue que le montage des servos en parallèle est vraiment avantageux. D'ailleurs, je réfléchis à un montage 'parallèle' pour mon petit quadrupède. Tu connais certainement pupper. Je cherche à reproduire ses pattes en taille micro servo. https://stanfordstud...tics.org/pupper

 

Banc de test :

Le MG90S bidouillé (voir post précédent), un DRV8838, une carte NUCLEO (STM32) et un testeur de servo (PWM).

IMG20200919145228.jpg
 
Premier essai à vide :
Dans un premier temps, voyons ce que donne un simple PID pour asservir la position en fonction du signal PWM envoyé par le testeur de servo.
 
Second essai avec une charge d'environ 100g à 6cm (0.6kg.cm) :
Le MG90s est vendu pour un couple limite d'environ 2kg à 6V (stall) et . https://www.towerpro...roduct/mg90s-3/
Note : j'ai utilisé un SCS15 pour la charge ! :-)
 
Avec une charge de 200g, le courant monte à 1A sous 6V.. Le moteur du servo chauffe un peu. Le DRV8838 chauffe aussi (pas de dissipateur). Je ferai des essais en charge lorsque j'aurais mis au point les outils pour analyser le comportement du servo.
 
La boucle du PID tourne à 200Hz. Le servo ne fait pratiquement aucun bruit en charge et il ne vibre pas. Les coefficients PID mériteraient d'etre mieux réglés.
 
J'utilise une liaison série pour afficher quelques traces de ce qui se passe dans le STM32. Je vais utiliser ces traces pour faire un petit outil de visualisation des principales variables (consigne, position..).
 
A suivre.
Patrick.


#11 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 9 963 messages
  • Gender:Male
  • Location:Anglet

Posté 19 septembre 2020 - 06:18

Bonjour Mike, Oracid,

 

Merci pour toutes ces informations et pour ces encouragements ! 

 

Je connais un peu FeeTech, car je dispose de SCS15 pour un plus gros robot, et j'avais pris contact avec leur support (une solution avait été trouvée rapidement). 

 

Je vais regarder de plus prés le modèle SCS0(0)09 que tu m'indiques, en parallèle de mes expérimentations. En effet, ils offrent les fonctionnalités que je cherche et il sont rapides. 

 

En revanche, ils sont vendus comme des servos 6V et non HV.

http://www.feetechrc.com/6v-23kg-serial-bus-steering-gear_65522.html

 

Feetech propose un autre modèle plus puissant, tout métal, moteur coreless, légèrement plus lent, plus cher, et toujours 6V,  : SCS2332

http://www.feetechrc.com/product-name_55300.html

 

Est-ce que tu as un retour d'expérience sur le fonctionnement et la fiabilité de ces servos lorsqu'ils sont alimentés en 8.4V (Lipo 2s) ? 

 

Je vais aussi poser la question à leur support et je collerai la réponse ici.

 

On trouve peu de réalisations sur Internet à base de ces servos. Tu sais pourquoi ?

 

A suivre...

Patrick.

 

 

J'ai réalisé une fois des tests avec, et je les avais alimenté directement avec une batterie 2S ... Et je n'ai pas eu de problème particulier... Je suis néanmoins incapable de confirmer que ma batterie était chargée à 100% au moment des essais ...

 

Pour ce qui est de trouver de peu de réalisation sur Internet, Feetech, bien que feetech propose de bons produits, ce n'est pas encore une marque très connue des anglais et des européens ... Et c'est un peu le problème de la poule et de l'oeuf, pour avoir de l'adoption il faut de l'adoption. 

Si tu veux tester le scs0009 tu peux en prendre un sur la boutique, faire un test complet et une fois le test posté sur robot maker, recevoir un remboursement sous forme de bon d'achat. 

 

En aucun cas je ne t'invite à " abandonner ton projet de servo " car ce genre de projet sont toujours très formateur ! =)
Mais si tu creuse sur le forum il y a déjà eu des projets de créations de servomoteurs qui malheureusement n'ont pas aboutis et pour une raison simple : c'était plus cher que ce qui existe déjà sur le marché .

En tout cas bonne continuation pour la suite ! =) 

 


  • Oracid aime ceci

Si mon commentaire vous a plus laissez nous un avis  !  :thank_you:

Nouveau sur Robot Maker ? 

Jetez un oeil aux blogs, aux tutoriels, aux ouvrages, au robotscope  aux articles,  à la boutique  et aux différents services disponible !
En attendant qu'une bibliothèque de fichiers 3D soit mise en place n'hésitez pas à demander si vous avez besoin du fichier 3D d'un des produits de la boutique... On l'a peut être ! 
Si vous souhaitez un robot pilotable par internet n'hésitez pas à visiter www.vigibot.com et à lire le sous forum dédié à vigibot!

 

Les réalisations de Mike118  

 

 

 


#12 pat92fr

pat92fr

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 672 messages
  • Gender:Male

Posté 19 septembre 2020 - 06:48

Bonsoir,

 

Feetech mérite peut être d'être mieux connu en effet. En France, peu de commerçants revendent leur produits (notamment leurs micro servos).

 

Leur support technique est vraiment réactif, c'est déjà un bon point.

 

Leur commerciale m'a fait une offre pour que je puisse faire des essais avec les deux modèles en quelques exemplaires, SC0009 et SC2332. Je vous tiendrai au courant.

 

Dernier échange avec la société :

 

 

>>Do you plan to manufacture a HV (8.4V) micro servo like the SCS0009 or SCS2332 in the next months ?

I will talking with our enginner on monday.

 

Wait & see !

 

Bien sur, je continue mon projet, et merci pour vos encouragements. 

 

Sur des projets personnels comme ça, il y a beaucoup d'aléas. 

 

A suivre,

Patrick.



#13 Oracid

Oracid

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 6 766 messages
  • Gender:Male

Posté 19 septembre 2020 - 06:58

Je suis d'accord avec Mike, faire l'électronique d'un servo, c'est surement très formateur, mais c'est un projet en soi.

Avoir comme projets simultanés de faire un quadrupède et un servo, à mon avis, c'est compliqué.

Mais pourquoi pas ! Ce que tu fais est super et sans aucun doute, tu as la compétence nécessaire. C'est précisément ce qui me manque pour faire ce genre de chose.

 

Oui je connais bien Pupper. Je suis les réalisation de Nathan avec beaucoup d'intérêt. Ses servos, ce sont des JX CLS6336 qui pèsent 70g pièces.

J'ai essayé avec des JX HV7146MG qui pèsent également 70g. Je n'ai pas abouti, trop lourd, mais je ne désespère pas.

Ma logique, c'est de commencer léger et petit et d'augmenter d'abord la taille, puis éventuellement le poids.

 

Bravo pour tes essais. 

 

Le problème quand on a la compétence, c'est que l'on peut facilement se noyer dans la complexité technique.

Alors que quelqu'un comme moi qui ne connait rien, et bien il est obligé de tester, ce qui est également très formateur.

 

Mon gros problème actuellement, c'est de trouver les bons chaussons, en fonction du sol. Et bien ça, c'est très compliqué.

 



#14 pat92fr

pat92fr

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 672 messages
  • Gender:Male

Posté 20 septembre 2020 - 08:44

Ma logique, c'est de commencer léger et petit et d'augmenter d'abord la taille, puis éventuellement le poids.

 

Oui, c'est une excellente approche ! C'est vraiment un conseil à donner à tous ceux qui veulent débuter dans ce type de robots (multi-patte). J'avoue qu'il m'a fallu de nombreuses tentatives (et pratiquement autant d'échecs) pour me ranger à cette logique. Construire léger, ce n'est vraiment pas évident, ça demande beaucoup de réflexion et d'essais !

 

Bien, j'avance sur la modification du micro servo, et notamment sur son interface de communication et son logiciel.

 

C'est le début du projet, alors soyons ambitieux ! Le cahier des charges que je me fixe actuellement est le suivant :

- contrôler la position du servo, sa vitesse et son couple (limiteur)

- récupérer sa position, sa vitesse, sa charge (courant instantané) et sa température (celle du moteur).

- configurer l'asservissement : les coefficients PID, les éventuelles coefficients de filtrage.

- mettre à jour le firmware.

 

Le débit de l'interface doit être suffisant pour envoyer une consigne de position puis récupérer la position courante et la charge toutes les 20 ms minimum (50Hz).

Idéalement, je vise 100 à 333Hz, car les micro servo sont très rapides. Sur un servo standard, ça n'aurait pas de sens à cause de l'inertie.

 

Donc, en plus de l'entrée digitale PWM ordinaire (ça peut toujours servir, on la garde), j'ajoute une interface série (UART), comme les servos intelligents du commerce. 

A terme, les servos ainsi modifiés pourront être tous raccordées à un seul port série d'un microcontrôleur (Arduino, ARM ou autre). Le débit de la liaison sera partagé par tous les servos.

 

C'est le protocole de communication Dynamixel (2.0) qui a retenu mon attention (c'est le seul que je connais, le choix était vite fait). Il est open-source et le protocole existe sous forme de bibliothèques logicielles compatibles de multiples plateformes et dans de multiples langages. La documentation et les exemples sont très nombreux. Des outils graphiques existent et ils sont libres.

https://emanual.robo...l_sdk/overview/

https://emanual.robotis.com/docs/en/dxl/protocol2/ 

 

Note : j'ai hésité avec le protocole de Feetech, mais je n'ai pas trouvé de documentation. Il existe une librairie Arduino en C++.

 

Essai avec une interface compatible de type bus intelligent :

 

Dans cette vidéo, j'ai implémenté une toute petite partie des fonctionnalités offertes par ce protocole de communication. Je peux modifier la consigne de position et relire la position réelle à partir de l'ordinateur sans toucher au testeur de servo que j'ai utilisé dans les vidéos précédentes. Sur l'ordinateur, j'utilise un scrip Python maison pour l'IHM. Je n'ai pas utilisé d'outils graphiques compatibles Dynamixel car mon implémentation du protocole n'est pas terminée et il n'est donc pas tout à fait compatible avec les outils existants.

 

Dans la première partie de la vidéo, le couple du servo est désactivé. On voit qu'il est possible de lire la position réelle du servo. C'est très utile en robotique. Cela permet par exemple de calibrer la mécanique du robot en tournant/déplaçant à la main les pattes. 

 

Capture001.PNG

 

Ensuite, j'active le couple et je peut changer la position et analyser le retour de position sur le graphique. A la fin, je fais pression sur le servos et on peut constater le retour de position. L'alimentation étant limitée à 100mA, on voit meme que le servo décroche sous l'effort.

 

La suite ?

 

Je souhaiterais implémenter le retour de charge et de température. Je n'ai pas les composants électroniques permettant de le faire actuellement.

Je dois changer le driver moteur. Je pense opter pour un DRV8876 qui intègre un capteur de courant qui peut se raccorder directement sur une entrée ADC du microcontrôleur.

Pour la mesure de la température, je ne sais pas quoi utiliser encore. Le capteur doit pouvoir se fixer au moteur et l'idéal serait qu'il puisse se raccorder directement à une entrée analogique ou un bus série du microcontrôleur.

 

Je vais continuer à peaufiner l'implémentation logicielle du protocole, mais c'est la conception de la première carte électronique qui va commencer. Elle devra intégrer le STM32, le driver moteur, et toute la connectique (moteur, potentiomètre, prise servo, sonde debug/programmation). Je ne vais pas chercher à faire une carte fortement intégrée du premier coup. D'ailleurs, j'ai peu d'espoir de parvenir à concevoir une carte qui puisse rentrer dans le boitier d'un micro servo. La première carte devra être instrumentée pour pouvoir analyser les éventuels problèmes électroniques et logiciels (point de tests). Une orientation possible est de réaliser une petite carte électronique située à l'extérieur du boitier, sous la forme d'un petit boitier électronique (20 x 20 x 5 mm) placé en coupure sur le cordon du servo. Avec ce format, du genre ESC ou BEC de modélisme, il devrait être possible de loger une grosse capa de filtrage au cas où sur l'alimentation du servo.

 

Je suis preneur de vos avis ou idées. En général, c'est en discutant qu'on trouve les meilleures solutions...

 

A suivre,

Patrick.


  • Mike118 aime ceci

#15 pat92fr

pat92fr

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 672 messages
  • Gender:Male

Posté 21 septembre 2020 - 12:15

Première tentative de schématique, placement et routage :

 

Je pars sur un STM32G431 en boitier 32 broches, un driver moteur (DRV8876) avec un pad thermique, un petit régulateur (LDO 3v3) et un driver de ligne pour protéger le bus de communication (liaison série half-duplex). Il me manque encore le capteur de température. Certainement un modèle sur bus I2C à venir.

 

J'obtiens un module de 26 x 34 mm en 4 couches, composants sur une seule face (5€ chez JLCPCB pour Qte 10 avec un délai de fabrication de 5 jours).

Capture4.PNG

 

A priori, tous les composants peuvent être posés et soudés manuellement.

 

A droite :

- prise servo PWM ordinaire

- prise servo BUS série

- 2 trous traversants pour ajouter une capa de filtrage optionnelle.

 

En haut :

- connecteur JTAG

- connecteur laison série compatible de cordon FTDI

 

A gauche :

- entrée potentiomètre (3 borches),

- sorties moteur (2 broches).

 

La face bottom est libre. On peut fixer une petite pièce métallique pour faire dissipateur au cas où.

 

On est loin d'un PCB de 20 x 11 mm permettant pratiquement de rentrer dans le fond d'un micro servo. 

 

Je vais essayer d'optimiser un peu pour réduire la taille.

 

A suivre,

Patrick.

Image(s) jointe(s)

  • Capture2.PNG
  • Capture3.PNG


#16 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 9 963 messages
  • Gender:Male
  • Location:Anglet

Posté 21 septembre 2020 - 12:55

Pour le capteur tension et courant comme ça j'aurais opté pour un ina219 qui peut être implémenté sur une taille très réduite ... 

 

Pour la température un truc comme le Lm75A, ou le MAX30205 en les plaquant contre le moteur ... 

Après une autre méthode serait d'ouvrir un servo et de voir quels sont les composants présent dedans ... 
 

Une autre approche intéressante serait de regarder le travaille de certaines équipes participant à la coupe de France de robotique / Eurobot, je pense notament à CVRA  https://cvra.ch/robo...ware/can/motor/mais il y a d'autres équipes qui ont fait un travail tout aussi intéressant et dont le travail est aussi en ligne mais dont je ne me rappel plus le nom...

 

 

Après visiblement tu as les ressources pour tout faire from scratch sans forcément regarder ce qui se fait ailleurs! =) 

 

 

En tout cas sympas ce premier jet!
La densité de composants est pas trop mal :) 

J'y pense comme ça : tu as une contrainte de 20mm * 11mm, mais il manque une dimension ... Combien en hauteur ? Souvent les pcbs sont mis en diagonale dans les servo histoire de grapiller un peu de place... 
Mais encore mieux , si tu peux intégrer deux pcb l'un au dessus de l'autre ... tu double presque ta surface dispo...
Moi je suis sur qu'on peut superposer au moins trois pcb dans l'espace libre sous le potentiomètre =)

 

D'ailleurs, au passage, une autre " triche dispo serait " d'allonger très légèrement ton boîtier de servo si besoin. Certains servomoteurs "9G " ont adopté cette technique pour ne plus avoir de fils soudé sur le moteur, le moteur est directement soudé sur un PCB.

Bref bonne continuation pour la suite !
 


  • pat92fr aime ceci

Si mon commentaire vous a plus laissez nous un avis  !  :thank_you:

Nouveau sur Robot Maker ? 

Jetez un oeil aux blogs, aux tutoriels, aux ouvrages, au robotscope  aux articles,  à la boutique  et aux différents services disponible !
En attendant qu'une bibliothèque de fichiers 3D soit mise en place n'hésitez pas à demander si vous avez besoin du fichier 3D d'un des produits de la boutique... On l'a peut être ! 
Si vous souhaitez un robot pilotable par internet n'hésitez pas à visiter www.vigibot.com et à lire le sous forum dédié à vigibot!

 

Les réalisations de Mike118  

 

 

 


#17 pat92fr

pat92fr

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 672 messages
  • Gender:Male

Posté 21 septembre 2020 - 02:28

Merci Mike, pour ces idées de capteurs. Je pense que je vais rapidement pouvoir compléter mon design.

 

Très intéressante, la réalisation de l’équipe CVRA. Ils sont arrivés à une meilleure densité sur leur carte moteur avec des composants similaires (31 x 16 mm). Ok, je vais donc revoir ma copie et m'inspirer de leur design ! Si jamais tu retrouves ton autre lien, je suis preneur.

 

Je note pour plus tard toutes tes idées sur l'intégration d'un ou plusieurs petits PCB. "Tricher" sur la longueur du servo me semble une bonne solution. Merci.

 

Comme il existe des composants dotés d'une interface I2C, qui font à la fois capteur de température et convertisseur analogique/digital, je pourrai peut être faire une première petite carte avec ce type de composant, installée juste dessous le potentiomètre et collée au moteur. Je récupère ainsi la température du moteur et la position du palonnier, via un simple bus I2C. Sur la seconde carte, je pourrai mettre le STM32 et le driver moteur. Plus tard, si je parviens à remplacer le potard du servo par un encodeur quadrature magnétique (aimant fixé sur l'arbre de sortie du servo à la place du potard), il me suffira de changer cette petite carte...

 

Pour un second RUN de carte électronique, j'envisage de faire appel à un fournisseur de type PCB Assembly. Cela permet d'équiper une carte avec des composants en boitier DFN/QFN sans avoir à souder soi-même. J'ai fait une simulation de placement routage et ça doit rentrer dans 20 x 10mm. Si je fais en deux cartes, c'est encore mieux.

MyServo001.png

 

Bonne nuit,

Patrick.



#18 Oracid

Oracid

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 6 766 messages
  • Gender:Male

Posté 21 septembre 2020 - 06:29

Je savais bien que tu avais la compétence pour faire ça. Bravo !

Dans ton cahier des charges, tu parles de récupérer la vitesse, mais ne pourrais-tu pas prévoir également de commander la vitesse ?

 

Concernant tes vidéos.

Le Palm Size, c'est le kit Petoï ou c'est de ta conception ?

Le 5 barres fonctionne très bien, j'aimerais bien en savoir plus. Un kit ?

Pour le 12 DOF, je ne pense pas que ce soit un problème de rigidité, mais plutôt un problème de poids ou/et de cinématique. Un kit également ?



#19 pat92fr

pat92fr

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 672 messages
  • Gender:Male

Posté 21 septembre 2020 - 09:09

Bonjour,

 

Je viens de recevoir un complément de réponse de la part de FeeTech. Le support confirme qu'il est possible d'alimenter leur micro servo en 2S.

 

I had talked with our engineer,they said the servo powerred directly with a Lipo battery 2S (8.4V)  is ok.

 

C'est plutôt une bonne nouvelle. Si jamais mon projet échoue, un plan B existe !



#20 pat92fr

pat92fr

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 672 messages
  • Gender:Male

Posté 21 septembre 2020 - 09:17

Bonjour Oracid,

 

 

Dans ton cahier des charges, tu parles de récupérer la vitesse, mais ne pourrais-tu pas prévoir également de commander la vitesse ?

 

C'est tout à fait possible ! 

 

D'ailleurs, je reproduis l'interface des servos AX de Dynamixel et on trouve effectivement ce paramètre :

http://support.robotis.com/en/product/actuator/dynamixel/ax_series/ax-18f.htm#Actuator_Address_20

 

Si cela correspond à ce que tu recherches, je peux essayer d'implémenter l'algorithme et faire un premier essai avec le matériel dont je dispose actuellement. Je ferai une vidéo de mes résultats.






0 utilisateur(s) li(sen)t ce sujet

0 members, 0 guests, 0 anonymous users