Aller au contenu


Photo

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


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

#41 pat92fr

pat92fr

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 673 messages
  • Gender:Male

Posté 24 septembre 2020 - 05:29

En effet, coté TOP, le boitier à 32 broches est une STM32G4.

 

Du même coté, le petit boitier est un LDO 3.3V 150mA.

 

L'autre petit boitier se trouve sur le coté BOTTOM (en haut à gauche). Oui, c'est un buffer qui combine les signaux RX et TX de l'UART du STM32 vers un seul et même signal en entrée/sortie de la carte (bus half-duplex). L'idée est de conserver un raccordement en cordon à 3 fils entre les servos et la carte 'maitre' (Arduino ou autre).

Capture19.png

 

Enfin, il y a le driver moteur dont le modèle 3D n'est pas disponible dans ma version de Kicad, et donc il n'apparait pas. C'est un boitier à 16 broches et un pad thermique. Le pad thermique est raccordé aux broches de masse à l'intérieur du circuit intégré. Au niveau du schéma, le pad thermique est représenté par la broche n°17 (des fois il s'appelle EP, comme Exposed Pad, et c'est plus clair qu'un numéro de  broche).

 

Pour la sérigraphie, j'avoue que sur une petite carte comme ca, c'est pas facile de trouver une place et je n'ai pas passé beaucoup de temps. C'est effectivement U3 qui devrait se trouver à coté du driver moteur ! Je ferai mieux la prochaine fois. Quand je soude une carte, je regarde le placement des composants sous Kicad et je ne me fie pas trop à la sérigraphie.

 

Pour souder la carte au four à refusion, il faut appliquer de la pate à braser sur le PCB, sur les pads, et poser les composants sur la pate et cuire la carte au four avec le profil de température qui va bien (ca peut etre dans une four traditionnel ordinaire couplé à un thermostat adapté à la refusion). Le fournisseur de PCB propose la fourniture des pochoirs TOP et BOTTOM (feuilles métalliques percées à l'endroit des pads) en plus du PCB. 

solder_paste_stencil.jpg

 

Tuto refusion (sans four) :

https://youtu.be/TSFjFDAqJvg



#42 Oracid

Oracid

    Pilier du forum

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

Posté 24 septembre 2020 - 08:09

C'est incroyable, l'évolution ! Moi, j'en suis resté au perchlorure, ça ce trouve, tu ne sais pas ce que c'est.

Merci pour toutes ces précisions.



#43 pat92fr

pat92fr

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 673 messages
  • Gender:Male

Posté 24 septembre 2020 - 08:30

Oui, et ce qui est le plus incroyable, c'est que ce soit accessible des amateurs pour des sommes très réduites !

 

Je connais ! Ma première revue en robotique était micro & robots ! Mais les réalisations étaient difficiles à reproduire tout seul à cause de la partie informatique embarquée.

https://abandonware-...p?mag=33&page=1

 

L'Arduino n'existait pas à l'époque... 

 

Patrick.



#44 Oracid

Oracid

    Pilier du forum

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

Posté 25 septembre 2020 - 07:38

Je connais ! Ma première revue en robotique était micro & robots ! 

Incroyable !

Sais-tu que j'ai participé à cette revue. 

Tu peux voir mon premier robot Lego sur le numéro 4 p:90, la description de ma commande de moteur CC sur le numéro 10 p:62, mon bras articulé sur le numéro 12 p:34.

Super ton site !

 

Mais quel âge, as-tu ?



#45 pat92fr

pat92fr

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 673 messages
  • Gender:Male

Posté 25 septembre 2020 - 07:49

43. J'étais jeune à l'époque. Je me souviens très bien de cet article et du robot en Lego ! Pareil pour la commande moteur. Qu'est ce que j'aurais aimé pouvoir fabriquer un truc pareil à l'époque.

 

Le monde est vraiment petit ! :-)

 

J'ai regretté la disparition de cette revue, mais ca m'avait donné le gout pour ce type de réalisations.

 

Patrick.



#46 Oracid

Oracid

    Pilier du forum

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

Posté 25 septembre 2020 - 01:46

J'ai regretté la disparition de cette revue

Malheureusement, le marché de la robotique était largement trop petit à l'époque.

Aujourd'hui, ça va mieux, mais pas tant ça, si on le compare au marché du drone.

Tu n'es pas si vieux, en définitive . . .



#47 Mike118

Mike118

    Staff Robot Maker

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

Posté 25 septembre 2020 - 02:43

 

Le monde est vraiment petit ! :-)

 

 

Je dirais que le monde de la robotique francophone n'est pas énorme ;) 

 

Il y a caliban qui essaye d'être pas mal présent en " physique"  ( et qui a malheureusement fermé son forum )
Et avec robot maker j'essaye d'être un "espace web" sympas pour discuter

Il y a quelques événement intéressants du genre

  • la toulouse robot race ( ouvert à tout le monde ) 
  • coupe de robotique (avec beaucoup d'association d'école d'ingé et quelques équipes hors école )
  • la robocup  ( plus pour les industriels et université avec un beau budget )
  • les maker faire ( mais peu de particuliers sont exposants )

Et sans doute quelques autre événements que je n'ai pas vu passer... Mais du coup c'est pas énorme et le nombre de personnes qui s'y intéresse est donc assez réduit ce qui facilite le fait de retrouver des gens lors des différents événements. =). 

Oui en comparaison je pense qu'il y a plus de "pilote de drones / avions/ voitures amateurs" que de "roboticiens" amateurs .... Même si progressivement ( notamment grâce à arduino ) le nombre de jeune faisant de la programmation augmente ;) 

 


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  

 

 

 


#48 pat92fr

pat92fr

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 673 messages
  • Gender:Male

Posté 02 octobre 2020 - 11:49

Bonsoir,

 

J'ai réceptionné ma commande JLCPCB. J'ai commandé 20 PCB mis en panneau en 4 x 5 (v-cut panel).

 

IMG20200930182214.jpg

 

C'est la première fois que je demandais une fabrication sous forme de panneau. Le gag, c'est qu'ils ont fabriqué, non pas 20 PCB, mais 20 panneaux de 4 x 5  PCB !

 

IMG20200930182217.jpg

 

Et oui, ... ca fait 400 PCB ! soit 0.25€ le cuivre.

 

A suivre, la pose CMS.

 

IMG20201001114411.jpg

 

Par rapport à un MG92b, voici la taille de la petite carte, avec des composants en boitier "facile à souder à la main".

 

IMG20201003004654.jpg IMG20201003004807.jpg

 

Patrick.



#49 Oracid

Oracid

    Pilier du forum

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

Posté 03 octobre 2020 - 07:14

Que le PCB puisse être positionné avec du scotch double face sur le coté du servo est une bonne nouvelle.

Problème, les connecteurs ne vont pas dans ce sens. Peut-être que des nappes soudées directement sur le PCB ferait gagner de la place.

D'ailleurs, je pense que c'est pour cette raison qu'il n'y a pas de connecteur sur la plupart des micro servos.

 

Tu ne vas donc pas souder, au four ?



#50 pat92fr

pat92fr

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 673 messages
  • Gender:Male

Posté 03 octobre 2020 - 07:25

Bonjour,

 

Le tout premier PCB sera monté à la main, au fer. Je vais reproduire la technique utilisée dans le tuto suivant pour souder le driver moteur doté un pad thermique.

 

 

C'est vraiment un PCB de test (facile à instrumenter ou à corriger en cas de souci), je pense qu'on peut diviser par deux sa surface avec un effort d'intégration.

 

Oui, l'idée est de souder les fils directement dessus !

 

Patrick.



#51 pat92fr

pat92fr

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 673 messages
  • Gender:Male

Posté 03 octobre 2020 - 11:25

C'est parti :

IMG20201001115654.jpg IMG20201001115609.jpg

Avec beaucoup de flux, comme dans la vidéo précédente, ca se soude très bien par le dessous:

IMG20201001121921.jpg

Bon à savoir,

Patrick.



#52 Oracid

Oracid

    Pilier du forum

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

Posté 03 octobre 2020 - 11:45

Joli !



#53 pat92fr

pat92fr

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 673 messages
  • Gender:Male

Posté 03 octobre 2020 - 08:34

Le montage est terminé ! Tous les composants CMS sont posés de travers ...je perds la main.

 

IMG20201002115418.jpg IMG20201002115426.jpg

 

J'ai du récupéré sur Internet une empreinte de composant peu connue 'US-8', pour le petit buffer de liaison série half-duplex à 8 broches, ...et pas de bol, elle était erronée ! J'ai dû souder le composant à l'envers en pliant les broches.... ca passe !

 

IMG20201003210958 (2).jpg

 

Comme c'est une carte servant à faire des tests, je suis obligé de monter des connecteurs pour raccorder le moteur et le potentiomètre du servo, l'alimentation et le bus de commande.

 

IMG20201003003725.jpg

 

Mise sous tension, la carte électronique donne signe de vie. Ouf !

 

IMG20201002124427.jpg

 

Avec un logiciel basique, les principaux périphériques ont l'air de répondre correctement.

 

 

Test : les LEDs, la mesure tension de la batterie et du potentiomètre, le contrôle du moteur en veille, avec frein et dans les deux sens de rotation, la liaison série... 

 

Il me reste à tester la liaison série half-duplex, je vais avoir besoin d'un TTLinker.

 

Je dois maintenant porter le code développé sur la carte d'expérimentation STM32F7 Nucleo 144 sur ma petite carte STM32G4.

 

A suivre,

Patrick.

 

 

 

 

 

 



#54 Oracid

Oracid

    Pilier du forum

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

Posté 04 octobre 2020 - 06:52

Je suis impressionné par ta capacité de travail.

Bravo !



#55 pat92fr

pat92fr

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 673 messages
  • Gender:Male

Posté 21 novembre 2020 - 06:07

Bonjour,
 
Depuis mon dernier message, une nouvelle carte électronique a été réalisée en expérimentant le service « Assembly » de JLCPCB.
Quelques adaptations du schéma électrique et de l’implantation ont été nécessaires pour s’accommoder des contraintes de fabrication (choix des composants).
 
Fichier joint  Schematic_MyServoShrinck2_2020-11-21_14-12-02.pdf   132,78 Ko   254 téléchargement(s)
CapturePCB.PNG
 
Les cartes sont donc arrivées montées et câblées. Les photos suivantes permettent d’apprécier la qualité de fabrication. 
 
IMG20201026115432 (Copier).jpg
IMG20201026115440 (Copier).jpg
IMG20201026115450 (Copier).jpg
 
Les résistances et condensateurs ordinaires sont au format CMS 0402.
Le microcontrôleur STM32G4 est collé sur la face arrière.
Le raccordement au servo reste une opération manuelle.
 
Commandée en très petite quantité (10), la carte électronique coute 8€ l’unité. Ainsi, le cout total avec le servo MG92b (~6€) est de l’ordre de 14€.
Avec un choix optimisé de composants, un meilleur niveau d’intégration, et une fabrication en plus grande quantité, il doit être possible de réduire le cout unitaire de manière significative.
 
Pour l’instant, il s’agit d’un prototype, l’objectif est de faire marcher !
 
A suivre..

 



#56 Oracid

Oracid

    Pilier du forum

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

Posté 21 novembre 2020 - 08:59

Je suis très surpris par le faible coût pour une si petite quantité.

Peux-tu nous détailler la marche à suivre ? Je veux dire, qu'as-tu fourni à JLCPCB ? Ont-ils une liste de composants, comme le STM32G4

 

En tout cas, félicitation pour ton projet. J'ai hâte de voir la suite.



#57 pat92fr

pat92fr

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 673 messages
  • Gender:Male

Posté 21 novembre 2020 - 09:26

Le concepteur fournit les fichiers de fabrication du PCB (Gerber des différentes couches) et d'assemblage (Bill Of Material + Placement XY) et JLCPCB fabrique, approvisionne les composants, et livre la carte montée.

 

En effet, JLCPCB (fabriquant de PCB et assembleur) est associé au fournisseur de composants local LCSC. 

https://lcsc.com/?hr...home&source=jlc

 

Pour simplifier encore le processus, il est possible d'utiliser un outil en ligne et gratuit de conception de PCB.

https://easyeda.com/

 

Cet outil comprend tout le catalogue de composants LCSC (figurine, empreinte, références et prix), et permet d'exporter un design complet vers l'outil de devis en ligne de JLCPCB en un click.

 

Pour mon design, à l'unité :

- PCB .... 0.50€

- Montage/Cablage/Composant ... 3.50€

- STM32G431KBT6 ... 4€.

 

Comme la carte est petite, j'ai mis le STM32 sur la face arrière. Puisque j'ai demandé uniquement le montage des composants sur la face avant, j'ai du coller moi même le µC. Heureusement, c'est le composant le plus facile à souder.

 

Deux anecdotes :

- Je me suis trompé dans l'orientation des LED, et les ingénieurs de JLCPCB ont corrigé le design au moment de la production, sans rien demander. Trop fort.

- Le driver moteur de ma première carte n'était pas encore référencé. J'ai donc changer le design pour la seconde carte. Mais, j'ai quand même tenté ma chance, en contactant le support JLCPCB, pour faire une demande de référencement de ce nouveau composant. Aujourd'hui, le DR8876 avec miroir de courant est au catalogue !

 

Patrick.



#58 pat92fr

pat92fr

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 673 messages
  • Gender:Male

Posté 21 novembre 2020 - 10:43

Laissons reposer un peu l’électronique, passons au logiciel !
 
Contrairement à un servo modélisme basique, un servo numérique adapté aux applications de robotique peut réaliser jusqu’à trois asservissements simultanés :
Un asservissement en position (angle)
Un asservissement en vitesse (vitesse et accélération angulaires)
Un asservissement en couple.
 
L’asservissement en couple est généralement cadencé à une fréquence supérieure.
 
Cette combinaison d’asservissements permet de contrôler la position du servo, et de réduire les vibrations, les bruits, et les appels de courants.
 
De manière très schématique et simplifiée, une architecture possible du contrôleur est la suivante :
CaptureAsservissementScématique.PNG
 
Evidemment, un (micro) servo de modélisme ne dispose pas de capteur de force/couple sur son arbre de sortie, comme la plupart des servo robotique d'entrée et de milieu de gamme.
 
On devra donc se contenter d’une mesure de couple par le courant moteur. Cette mesure de courant va permettre de mettre en place un asservissement en courant, qui va remplacer l’asservissement en couple.
 
Le logiciel du STM32G4 devra donc implémenter l’architecture simplifiée suivante :
CaptureAsservissementScématique2.PNG

 

Pour information, l’architecture d’un Dynamixel Pro en mode « position control » : https://emanual.robo..._controller.png

 

A suivre..

 

NB : Mes prochains messages seront dédiés à la conception de cet asservissement, et aux expérimentations. Je tenterai d'être didactique.



#59 Oracid

Oracid

    Pilier du forum

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

Posté 22 novembre 2020 - 08:28

A l'arrivée, j'ai bien peur que tout ceci soit hors de ma portée, mais j'essayerai quand même d'apporter ma petite pierre avec mes questions.

- N'y a t-il pas moyen de faire quelque chose pour la correction de l'angle du servo ? Je veux dire par là que si on va de 0° à 180°, le palonnier doit vraiment aller de 0° à 180°.

Je sais bien que la bibliothèque Servo de l'Arduino permet quelque chose dans ce domaine, mais même avec l'aide de Mike, je n'ai pas réussi. 

- On pourrait imaginer également de modifier l'angle le débattement du servo, quelque soit son potentiomètre. Il se trouve que le MG92B n'a pas de butée et tourne librement. 

 

Pourquoi n'as-tu pas demandé le montage du STM32 ? Question de prix ?



#60 pat92fr

pat92fr

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 673 messages
  • Gender:Male

Posté 22 novembre 2020 - 11:28

Le servo sera "intelligent". 
 
- A partir de la consigne d'angle reçue par une liaison série (pilotée par exemple par un Arduino), le servo est autonome, et s'il est correctement configuré, va aller de sa position courante à la position souhaitée, en régulant sa vitesse, son accélération, et son couple (i.e. courant). 
 
- Arrivée à la position souhaitée, le servo tiendra cette position autant que faire se peut. Si le couple exercé sur le palonnier est supérieur au couple maximum souhaité, il relâchera sa position proportionnellement à l'effort. On obtient un actionneur qui va offrir une certaine flexibilité (en anglais 'compliance').
 
- Sur demande (venant de l'Arduino), le servo pourra retourner sa position courante, sa vitesse de rotation courante, et son couple courant (intensité moteur), pendant une rotation, ou en statique, car les échanges sur la liaison série seront bidirectionnels. Il sera possible de récupérer la trajectoire d'un bras ou d'une patte robotisée, manipulée à la main, et de piloter le servo pour reproduire cette trajectoire.
 
Je mets à jour l’architecture pour refléter ces capacités :
 

CaptureAsservissementScématique3.PNG

 

La consigne de position pourra être accompagnée d’une vitesse limite, voire d’une accélération limite, voire encore d'un couple limite. Cela est utile pour maitriser la trajectoire d’un bras ou d’une patte robotique.

Il faudra une API Servo, plus complète que celle disponible avec Arduino aujourd’hui pour les servos de modélisme, afin de profiter de toutes les capacités du servo intelligent (consignes multipes, retour d’information). On verra à la fin, il faut déjà faire marcher l’asservissement.

 

A suivre

 

 

NB : J'avais un stock de STM32G4 suite à ma première série de carte. J'ai préféré l'écouler plutôt que d'en commander de nouveaux.

 

 






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

0 members, 0 guests, 0 anonymous users