Aller au contenu


Photo
- - - - -

Fabriquer son servo en analogique


44 réponses à ce sujet

#1 F6FCO

F6FCO

    Habitué

  • Membres
  • PipPip
  • 186 messages

Posté 30 décembre 2012 - 02:59

Je reprends ici l'idée originale de Mike pour ne pas surcharger inutilement son sujet. L'idée de construire des servos persos est possible comme il l'a démontré, et j'ai envie de m'y essayer moi aussi et de voir si c'est possible d'en faire des low-cost pour un "peut-être" futur bipède, ce qui implique:

- prioritairement => voir si c'est possible à faire facilement par un amateur, et là je ne pense pas seulement à l'électronique mais surtout à la partie mécanique, et plus particulièrement au système de potar de recopie sur l'axe moteur.
- pas chers, il en faut une vingtaine, peut-être plus.
- de pouvoir les faire facilement, pour la même raison.
- petite taille, pas d'usine à gaz pour chaque servo, un bipède n'est pas un entrepôt et il faut pouvoir tout caser facilement au final.
- il va falloir être tolérant avec mes travaux, je ne connaissais pas LTspice que j'ai découvert par Black Templar et je passe plus de temps à apprendre et essayer de modéliser correctement mes idées qu'à réfléchir au projet. Tout s'apprend mais il faut le temps au temps.

On verra bien si tout çà aboutit à quelque chose avec le cahier des charges exprimé au dessus.

Je repars de zéro, histoire de me faire mon truc à moi, et que si ça intéresse quelqu'un on puisse tout retrouver du début à la fin dans le même sujet. Je vous invite à exprimer critiques, conseils et nouvelles idées, histoire de faire avancer le truc ^^.

Donc on repose les postulats de départ:
- 0 0 ça ne tourne pas.
- 1 1 ça ne tourne pas.
- 1 0 ça tourne dans un sens.
- 0 1 ça tourne dans l'autre sens.

Pour alimenter un pont en H il faut deux signaux complémentaires, je n'ai travaillé pour le moment que sur un seul. Je ne sais pas si c'est possible de simuler un potentiomètre sur LTSpice, ce sera donc en faisant varier les valeurs de R1 et R2 qui représentent la RV de recopie sur l'axe moteur.
J'aurai pu faire la source PWM mais je ne connais pas les valeurs du rapport cyclique d'un signal PWM Arduino, je le ferai quand j'aurai fais des mesure à l'oscillo sur mon UNO à l'occasion. Pour l'instant je simule le signal PWM intégré par une source de tension.

On a bien les signaux de sortie haut ou bas suivant la valeur de R1/R2 par rapport à l'entrée In+. Ça fonctionne aussi avec d'autres valeurs de "PWM_intégré".


Image IPB

Image IPB

Maintenant il faut voir à partir de cette idée de base si et comment on peut générer une deuxième sortie pour alimenter le pont en H, tout en respectant la table de vérité énoncée plus haut.

Edit: j'ai merdouillé et le sujet est doublé. Désolé, si un modo peut effacer le sujet vide...

#2 Melmet

Melmet

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 1 521 messages
  • Gender:Male
  • Location:Saint-Sozy (46200)

Posté 30 décembre 2012 - 05:19

Salut a toi.

Voila une idée pas trop mal, MAIS (y en as toujours un lol) : comment vas tu faire tenir tout cela? (j'ai pas vue le post de Mike)

As tu deja ouvert un servo moteur? (si non, alors regarde un peut sur internet)

Y a rien de compliquer, faut juste avoir un peut de matos.

mais je vais suivre ce projet et aider du mieux que je pourrait.


Enjoy and appy new year :ignat_02:

Ne demande jamais à un robot de faire ce que tu peux faire toi même. :nono: :laugh1:


#3 F6FCO

F6FCO

    Habitué

  • Membres
  • PipPip
  • 186 messages

Posté 30 décembre 2012 - 06:52

Salut Melmet,
Oui, depuis peu ma culture en servo-moteur à bien évoluée, j'ai ouvert et bricolé des servos, des MG845 TowerPro, c'est ce qui arrive quand on achète du chinois, j'en ai aussi modifié un pour le passer en 360° et l'ai remis ensuite d'origine ne voyant pas trop l'intéret de transformer un servo en simple moteur.
Et c'est parce que j'ai pu voir ce que valaient en qualité les servos chinois et en euros les bons servos que je m'intéresse de près à la conception d'un servo perso. Je me suis vite rendu compte que 20 servos de bonne qualité tenant plus de 10kg seraient hors de prix, pour ma bourse en tout cas. Et un bipède reste un projet assez onéreux, alors si on sait déjà au départ que le résultat sera médiocre à cause du choix de matos... autant s'abstenir.

Maintenant pour faire tenir tout çà, l'idée serait de placer toutes les électroniques de commande dans le torse du bipède, seul endroit ou il y a assez de place, et juste les moteurs/RV dans les articulations. A voir si c'est réalisable.

Le projet de Mike est ici.
Je viens de le relire encore une fois et je me dis que je suis mal parti dans ma démarche, mais je vais continuer encore un peu dans ce sens.

Et happy new year à toi aussi ^^

#4 Melmet

Melmet

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 1 521 messages
  • Gender:Male
  • Location:Saint-Sozy (46200)

Posté 30 décembre 2012 - 08:16

Bon, un très bon conseil:
Laisse tomber les servo et utilise des moteurs simple (avec un peu de couple quand même) coupler a différents systèmes d'engrenages.
Tu obtiendra un aussi bon résultat, voir même meilleur.
Tu vas apprendre pas mal de choses sur les engrenage, tu vas appliquer ce que tu apprend et tu vas réussir.
Moi en ce moment je suis dans cet apprentissage, et j'ai compris beaucoup de choses sur les systèmes d'engrenage.

bon, ont va voir par la suite :)

Ne demande jamais à un robot de faire ce que tu peux faire toi même. :nono: :laugh1:


#5 Esprit

Esprit

    Pilier du forum

  • Membres
  • PipPipPipPipPip
  • 1 503 messages
  • Gender:Male
  • Location:Belgique

Posté 30 décembre 2012 - 09:56

Bonjour F6FCO,

Je pense que ça n'a pas d'intérêt. Outre l'aspect apprentissage, bien sûr.
Dis-toi que si les servomoteurs coùtent ce prix là, c'est qu'ils le valent. Il y a assez de concurence sur le marché du servomoteurs pour ça.

La différence entre eux et toi, c'est qu'ils amortissent sur la quantité et doivent se faire un peu de marge. Mais au niveau du temps que tu vas passer à développer ton servomoteur et au niveau de l'investissement matériel que ça va représenter, tu n'arriveras jamais à descendre en dessous du prix de servomoteurs équivalents sur le marché.


Après, comme apprentissage, c'est très intéressant. Je pense qu'il y a de quoi faire, très clairement.
Mais tu ne réduiras pas tes coùts, c'est certain.

Un bête exemple : Un L298n (double pont en H) coùte 7€ dans un magasin d'électronique à Bruxelles. (juste le composant)
Sur ebay, tu trouves des circuits complets (comme celui-là, que j'ai utilisé sur un robot) pour moins de 5€... C'est le même composant dessus... Bref. Faire soi-même, c'est classe mais ça paye pas.

Esprit
*Rêve d'en caser un dans un robot*


#6 F6FCO

F6FCO

    Habitué

  • Membres
  • PipPip
  • 186 messages

Posté 30 décembre 2012 - 11:15

@ Melmet,
Un moteur seul démultiplié ne suffit pas, il faut quand même pouvoir le commander et le stopper précisément, il faut qu'il soit asservi sinon comment donner une bonne position à un membre et la garder ? C'est le but de cette recherche. Et pour ce qui est des engrenages j'envisage d'acheter un plateau diviseur pour pouvoir les usiner moi-même sur ma fraiseuse, mais vu le prix de l'outil ça reste à l'état de projet pour l'instant.

@ Esprit,
"Faire soi-même c'est classe mais ça ne paye pas...", oui je suis d'accord.
"Je pense que çà n'à pas d'intéret", là pas du tout d'accord.
Acheter tout fait n'est pas très passionnant, je ne fais pas partie de la "génération consommation" et ce qui m'amuse et m'intéresse dans la robotique, comme dans quelques autres disciplines ou je traine mes guêtres d'ailleurs, c'est de construire moi-même si c'est dans mes cordes. C'est formateur et bien plus amusant que d'acheter des trucs tous faits et les assembler, ce qu’apparemment font la plupart des roboticiens amateurs.
Et puis surtout, une fois la technique maitrisée il sera facile de construire des servos très puissants hors de prix pour le commun des bidouilleurs, en sur-dimensionnant juste le pont en H et le moteur. Exceptionnellement peut-être, mais rien que pour çà ça vaut le coup d'essayer, et si ça fait touiller un peu mes neurones au passage c'est tant mieux ^^.
Pour ce qui est de réduire les couts j'y ai réfléchi et je suis entièrement d'accord avec toi. Pour les platines L298 c'est ce que j'ai utilisé au départ pour ma CNC et je les ai en effet trouvées à environ 4€ chez le chinois. Maintenant, peut-être qu'en fouinant un peu on doit pouvoir monter des ponts en H pas cher en composants discrets.

#7 F6FCO

F6FCO

    Habitué

  • Membres
  • PipPip
  • 186 messages

Posté 31 décembre 2012 - 06:05

Je me suis amusé cet après-midi, dites moi si je me trompe mais çà a l'air de coller. Le seul truc c'est qu'il faudrait inverser les sorties mais je n'ai pas réussi à trouver le modèle Spice pour un Cmos CD4009 ou 4049, alors je ne l'ai pas modélisé et on va faire comme si...

Juste deux trucs à signaler, j'ai appelé la tension de réf de la RV "alim-moteur", le nom est mal choisi, ce n'est évidemment pas celle qui alimentera le moteur. Les 3 sources de voltage à gauche sont un essai pour obtenir un signal PWM qui ne sert pas pour l'instant dans le schéma, donc n'en tenez pas compte.


Uc -> la tension simulée du PWM arduino passé dans un intégrateur.
Umm -> la tension qui sort de la RV de recopie axe moteur (simulée par R1/R2).


Si UC > Umm on a sortieA à 5vcc et sortieB à 0vcc, le pont en H est bien commandé et le moteur tourne dans un sens (du coup dans l'autre sens en inversé).

Image IPB

Si Umm > Uc on a sortieA à 0vcc et sortieB à 5vcc, le pont en H est bien alimenté et le moteur tourne dans l'autre sens (en fait dans l'autre sens une fois inversé ^^).

Image IPB

A un certain moment le moteur arrivera à une position telle que la RV moteur donnera Umm = Uc et là on aura sortieA = sortieB = 1. On voit mal sur l'image mais les deux sorties sont à 1, donc 0 une fois inversées et là on a bon, le pont en H n'est plus commandé -> le moteur est à l’arrêt.

Image IPB

#8 Mike118

Mike118

    Staff Robot Maker

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

Posté 01 janvier 2013 - 08:26

Je me suis amusé cet après-midi, dites moi si je me trompe mais çà a l'air de coller. Le seul truc c'est qu'il faudrait inverser les sorties mais je n'ai pas réussi à trouver le modèle Spice pour un Cmos CD4009 ou 4049, alors je ne l'ai pas modélisé et on va faire comme si...


Si tu as besoins des signaux inversé tu as juste à appeler ta sortieA sortieB et vice versa car d'après ton montage l'un est l'opposé de l'autre ...

A un certain moment le moteur arrivera à une position telle que la RV moteur donnera Umm = Uc et là on aura sortieA = sortieB = 1.


Là je suis plus d'accord ... sans même regarder les simu : Umm = Uc avec un montage comparateur simple à base d'aop c'est un état normalement indéterminé ... et les sortie A et B sont opposées donc elles ne peuvent normalement jamais être égale en théorie ...

En tout cas là tu proposes le principe d'une régulation en tout ou rien c'est effectivement la première chose que j'avais proposé mais quand j'ai fais les tests en vrai j'ai pas été très satisfait ^^

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  

 

 

 


#9 F6FCO

F6FCO

    Habitué

  • Membres
  • PipPip
  • 186 messages

Posté 01 janvier 2013 - 12:40

Ok, le simulateur me les donne à 1 mais ça reste un simulateur, si tu me dis que c'est indéterminé je te fais confiance et je vais chercher d'une autre manière.
Avec de vrais comparateurs si Uc = Umm a-t'on aussi un état indéterminé ? pas trop d'expérience dans ce domaine.

Pour ta première réponse l'inversion de signaux est juste là pour ne pas avoir 1 et 1 en sortie.
Je pensais au début formater les signaux UC et Umm en 5v avec des AOP et faire le reste en logique CMOS, ce qui permettrait d'avoir des états bien évidents mais pour çà il faut ariver à trouver les bons modèles spice sur le net.

Hormis les servos-moteurs cette étude m'intéresse aussi pour réaliser une commande de rotation d'antenne à distance, pour çà le tout ou rien suffit largement.

Et meilleurs voeux ^^

#10 hmnrobots

hmnrobots

    Membre passionné

  • Membres
  • PipPipPip
  • 316 messages
  • Gender:Male
  • Location:Périphérie Nantes

Posté 01 janvier 2013 - 05:16

Je pensais au début formater les signaux UC et Umm en 5v avec des AOP et faire le reste en logique CMOS, ce qui permettrait d'avoir des états bien évidents mais pour çà il faut ariver à trouver les bons modèles spice sur le net.


Merci pour les bons voeux, de même de ma part à tous les robots makers.

Pour info, sous LTSpice Les circuits logiques sont dispo dans le répertoire DIGITAL; une précaution cependant : les circuits sont en logique 1 V, il te faut les adapter à ta logique (par exemple 5V) selon la métode décrite içi
Dans le montage, il me semble aussi qu'il y a un risque d'oscillation , peut être que rajouter de l'hystérésis dans les comparateurs permettrait d'éviter le pb en créant ainsi une (petite) zone morte.



Pour simuler un potar qui varie, j'utilise une source de tension sinus sur une période sans offset (on peut aussi utiliser les LOADs ce qui revient sensiblement au même) , tu verrais ainsi les basculements
Faire simple, c'est déjà bien assez compliqué!
http://hmnrobots.blogspot.fr/

#11 F6FCO

F6FCO

    Habitué

  • Membres
  • PipPip
  • 186 messages

Posté 02 janvier 2013 - 11:23

Merci pour les infos Hmnrobots. J'ai essayé avec les composans de la rubrique digital et effectivement çà n'allait pas comme je veux. Je vais approfondir tes infos. Sais tu à quoi sert le branchement supplémentaire sur l'inverseur par exemple ?

Edit: ne rien raccorder sur les entrées inutilisées sinon "fumée" ^^ c'est ce qui est stipulé dans ton lien.

#12 F6FCO

F6FCO

    Habitué

  • Membres
  • PipPip
  • 186 messages

Posté 02 janvier 2013 - 12:45

Je ne m'en sors pas avec les portes logiques de LTSpice, tous mes essais ont donnés un comportement anarchique. J'ai d'abord voulu utiliser le OU exclusif mais la table de vérité ne correspondait pas à ce qu'elle aurait du être, j'en ai simulée une ensuite en la construisant avec un assemblage de nand et d'inverseurs, même problème les NANDS font n'importe quoi.
Pour exemple, une simul sur la porte ET ci-dessous, qu'il y ait 0 ou 1 sur toutes les entrées, la sortie reste désespérément à l'état haut. La boule en sortie sert à l'utiliser en NAND et le problème est le même --> état bas permanent. La seule qui fonctionne correctement est l'inverseur.
Je dois surement faire une erreur de config quelque part mais je ne trouve pas.

Image IPB

#13 hmnrobots

hmnrobots

    Membre passionné

  • Membres
  • PipPipPip
  • 316 messages
  • Gender:Male
  • Location:Périphérie Nantes

Posté 02 janvier 2013 - 01:41

Je ne m'en sors pas avec les portes logiques de LTSpice, tous mes essais ont donnés un comportement anarchique. J'ai d'abord voulu utiliser le OU exclusif mais la table de vérité ne correspondait pas à ce qu'elle aurait du être, j'en ai simulée une ensuite en la construisant avec un assemblage de nand et d'inverseurs, même problème les NANDS font n'importe quoi.
Pour exemple, une simul sur la porte ET ci-dessous, qu'il y ait 0 ou 1 sur toutes les entrées, la sortie reste désespérément à l'état haut. La boule en sortie sert à l'utiliser en NAND et le problème est le même --> état bas permanent. La seule qui fonctionne correctement est l'inverseur.
Je dois surement faire une erreur de config quelque part mais je ne trouve pas.

Image IPB


as tu téléchargé le fichier exemple du group yahoo DIGITAL_A_DEVICES_1.ASC ? je viens de le faire et les portes fonctionnent bien mais nécessitent de préciser les paramètres de la porte
TestAnd.JPG
Faire simple, c'est déjà bien assez compliqué!
http://hmnrobots.blogspot.fr/

#14 F6FCO

F6FCO

    Habitué

  • Membres
  • PipPip
  • 186 messages

Posté 02 janvier 2013 - 03:50

Pas trouvé la lib dont tu parles mais j'ai mis la main sur une autre: CD4000.lib qui fonctionne bien. Je ne comprends pas le pbm avec les portes de LTSpice mais pas grave du moment qu'on peut faire autrement.

#15 hmnrobots

hmnrobots

    Membre passionné

  • Membres
  • PipPipPip
  • 316 messages
  • Gender:Male
  • Location:Périphérie Nantes

Posté 02 janvier 2013 - 03:53

Le help de lts explque bien mais contient. Toujours l erreur concernant les entrées inutilisées
Faire simple, c'est déjà bien assez compliqué!
http://hmnrobots.blogspot.fr/

#16 F6FCO

F6FCO

    Habitué

  • Membres
  • PipPip
  • 186 messages

Posté 02 janvier 2013 - 04:20

Ce montage aurait pu fonctionner. Si Umm=Uc, donc si les sorties des deux AOP sont à V+ ou les deux à V- les sortieA et sortieB seront d'office à 0.

C'est seulement après que j'ai pensé qu'en fait d'état indéterminé il peut très bien il y avoir un AOP à V+ et l'autre à V-, et dans ce cas ça ne marche plus, le moteur tournera => pas bon, faut chercher autre chose.

J'aimerai bien savoir comment se comporte un vrai comparateur type LM311 quand V+ = V- ?

Image IPB

#17 Black Templar

Black Templar

    Membre

  • Membres
  • PipPipPipPipPip
  • 1 430 messages
  • Gender:Male
  • Location:Lille

Posté 02 janvier 2013 - 04:34

J'aurai pu faire la source PWM mais je ne connais pas les valeurs du rapport cyclique d'un signal PWM Arduino, je le ferai quand j'aurai fais des mesure à l'oscillo sur mon UNO à l'occasion. Pour l'instant je simule le signal PWM intégré par une source de tension.

490kHz

Et par pitier, n'utilise pas d'AOP en mode comparateur !
Utilise pour ça un vrai comparateur comme un LM311.


A un certain moment le moteur arrivera à une position telle que la RV moteur donnera Umm = Uc et là on aura sortieA = sortieB = 1. On voit mal sur l'image mais les deux sorties sont à 1, donc 0 une fois inversées et là on a bon, le pont en H n'est plus commandé -> le moteur est à l’arrêt.

Là je suis plus d'accord ... sans même regarder les simu : Umm = Uc avec un montage comparateur simple à base d'aop c'est un état normalement indéterminé ... et les sortie A et B sont opposées donc elles ne peuvent normalement jamais être égale en théorie ...

L'état ne sera jamais indéterminé en pratique ...
Le gain d'un AOP (même s'il faut utiliser un comparateur !!!) est de l'ordre de 10^5, voir plus. Une simple différence de 1mV sur les entrée entraine un écart de plus de 10V sur les sorties. Tu seras donc toujours saturé à l'état haut ou à l'état bas.
Pire même, si tu as du bruit sur tes entrées et que e+ oscille autour de e-, alors ta sortie oscillera entre 0 et 5V !!!
Pour contrer ce phénomène, il suffit de monter ton comparateur en trigger de schmitt afin que les seuils de déclenchements soient différents !

Ok, le simulateur me les donne à 1 mais ça reste un simulateur, si tu me dis que c'est indéterminé je te fais confiance

Justement, ça oscillera entre 0 et 5V.


++
Black Templar

Mon site internet : http://ferdinandpiette.com/


#18 hmnrobots

hmnrobots

    Membre passionné

  • Membres
  • PipPipPip
  • 316 messages
  • Gender:Male
  • Location:Périphérie Nantes

Posté 02 janvier 2013 - 07:31

490kHz

c'est un peu beaucoup 490 KHZ?
Faire simple, c'est déjà bien assez compliqué!
http://hmnrobots.blogspot.fr/

#19 F6FCO

F6FCO

    Habitué

  • Membres
  • PipPip
  • 186 messages

Posté 02 janvier 2013 - 07:50

Oui, pour les AOP en comparateur j'ai lu çà sur ton site. J'utilisais des LM358 car pour un bipède il faudrait beaucoup de CI et le lien donné quelque part par Mike118 vendait les LM358 vraiment pas cher.
De toutes façons j'ai retourné le pbm dans tous les sens et je pense qu'il faut repartir de zéro et repenser différemment.

Pour le PWM de l'arduino, J'ai lu à plusieurs endroits que c'était du 20ms, donc du 50Hz avec des créneaux d'une largeur comprise entre 0,5ms(0°) et 2ms (180°). Ce qui une fois intégré doit faire une tension vraiment faible.

#20 Black Templar

Black Templar

    Membre

  • Membres
  • PipPipPipPipPip
  • 1 430 messages
  • Gender:Male
  • Location:Lille

Posté 02 janvier 2013 - 07:53

c'est un peu beaucoup 490 KHZ?

Ooops, erreur de frappe, 490Hz et pas kHz :)


Pour le PWM de l'arduino, J'ai lu à plusieurs endroits que c'était du 20ms, donc du 50Hz avec des créneaux d'une largeur comprise entre 0,5ms(0°) et 2ms (180°).

Non, ça c'est pour le signal de la bibliothèque servo. Un servo est commandé par un signal entre 1 et 2ms répété tous les 20ms.

Mon site internet : http://ferdinandpiette.com/




Répondre à ce sujet



  


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

0 members, 0 guests, 0 anonymous users