Driver de puissance maison pour moteur pas à pas.

  • Auteur de la discussion mdog
  • Date de début
M

mdog

Ouvrier
Bonsoir à tous!

Je poste ici afin de vous permettre de suivre l'un de mes projet, et éventuellement de recueillir quelques remarques qui pourrait m'être utiles :wink:.

Après m'être pas mal amusé avec des drivers à base de L297/L298 qui se sont révélés décevants, je me lance dans la conception d'un driver pour moteurs pas à pas autour du LMD18245T.
Ce composant est un pont en H, avec chopper intégré contrôlé en amont par un DAC avec entrée binaire sur 4 bits, idéal donc pour faire du micropas, voir le datasheet ici :
http://www.dioda.cz/prodej/datasheet/LMD18245T.pdf
Capacitées du composant : 3A max (en continu), DAC 4 bits soit 15 niveaux d'intensité + niveau 0.

Je prévois de contrôler le composant depuis un microcontrôleur (un pic puisque je connais bien, surement le 16F57 qui est bon marché et largement suffisant pour cette application).

Sur le papier, c'est tout simple, pour l'instant j'ai été confronté à un seul problème que j'ai finalement résolu :
Il faut pour que le micropas soit viable, que les deux phases du moteurs évoluent en même temps, ce qui est difficile depuis un microcontrôleur puisque les états des sorties ne sont pas modifiée en même temps, donc les intensitées n'auraient pas variées en même temps dans chaque phase du moteur, la meilleure solution que j'ai trouvé est d'utiliser un Latch entre le microcontrôleur et les LMD18245, comme ça plus de soucis :wink:. Après recherche j'ai trouvé le 74F841 qui possède 10 E/S, juste ce dont j'ai besoin et dispo dans un mag ou je peux aller.

Niveau électronique ce sera donc très simple puisque les LMD18245 intègrent toute la partie puissance. Pour chaque moteur il faudra 2 LMD18245, un Latch 10 E/S (74F841) et un 16F57 + quelques composants passifs, soit un budget d'environ 35€/moteur, mais heureusement j'ai réussi à avoir des LMD18245 en samples (gratos), ce qui va me permettre quelques tests sans avoir à stresser.

Niveau programmation c'est tout simple aussi puisque je vais opter pour un contrôle en STEP/DIR, un simple tableaux de variables dans lequel on stocke les séquences d'alim des moteurs (en pas entier, demi pas ou micropas au choix, je m'oriente vers du 1/8e de pas), et on déroule le tout en fonction des données reçues sur les entrées STEP/DIR.

J'ai déjà conçut une carte à base de 16F876 qui me permet de contrôler manuellement les moteurs en STEP/DIR et d'afficher les positions sur chaque axe, elle sera donc certainement intégrée au système final pour arriver à une carte toute complète. Je posterai bien sûr les schémas dès qu'ils seront au propre :wink:.

En attendant n'hésitez pas à poster vos remarques/suggestions/encouragements/insultes(???) :wink:

@+
Mdog
 
M

MaX-MoD

Compagnon
Perso je t'aurais conseillé de venir nous rejoindre sur PAPSI :wink:

Sinon, pas besoin de latch. Tu peux mettre à jour un port entier (8s) en un cycle.
 
M

mdog

Ouvrier
Bonsoir, merci de ta réponse :wink:.

Oui pour un port entier, mais j'ai besoin de deux ports malheureusement :(. Il faut pour chaque LMD18245, 4 sorties pour le DAC + une pour le sens, soit 10 sorties, du coup je vais utiliser deux ports, et là le latch devient obligatoire non ? Ca fonctionnerai peut-être sans à vrai dire, peut-être que le pic (cadencé à 20MHz) serait assez rapide, mais je préfère cette solution plus propre. Par contre si tu as une idée pour éliminer le latch maintenant que tu as toutes ces infos, je suis prenneur, sachant que je ne touche pas à l'assembleur mais seulement au C ^^. J'ai aussi pensé me contenter du 1/7e de pas, comme ça un port du pic suffirait, mais en utilisant les 4 entrées des DAC ça permet d'exploiter à fond les capacitées des LMD18245...

Je suis PAPSI, tout comme YAPSC, mais malheureusement je ne pense pas pouvoir être d'une grande aide, je suis encore étudiant (Prépa) et la plupart des choses que je fais, je les apprend encore par moi-même, mes connaissances sont donc assez limitées en électro mais j'apprends au fur et a mesure, en cours c'est surtout maths, info, et physique :wink:. Ceci dit si je peux apporter ma pierre à l'édifice j'en serait ravi!

@+
Mdog

EDIT :
Au fait, je me demandais s'il était possible de programmer plusieurs pic en parallèle grâce à l'ICSP, par exemple on connecte toutes les pâtes ICSP Data ensemblent, toutes les pâtent ICSP Clock ensemblent etc, et on les programment tous en une fois. A priori je ne vois pas de problème si l'on se contente de les programmer, sans les lire ensuite, non ?
Merci :wink:
 
M

MaX-MoD

Compagnon
Je pense que les 0.2µs de décalage (1 cycle) ne sont pas critiques. L'évolution du courant dans la bobine lente. En premiere approximation, l'erreur est au plus de 2mA sur un moteur 1ohms 1mH alimenté en 100V
0.67% d'erreur...

Pour la prog des pic en série, je pense qu'il y a des pb de synchro. C'est pour ça que des prog indus à 2000€ (pour une 30aine de PIC) existent :shock:
 
M

mdog

Ouvrier
Ok merci beaucoup. Je pense que je vais tenter sans le Latch alors, sur une carte à pastille (bonjour le cablage!), si sa fonctionne ce sera plus simple :wink:.

Pour la programmation j'aurais du m'en douter, c'est dommage mais pas bien grâve, la reprogrammation éventuelle sera juste un peu plus longue.

Merci pour ton aide en tout cas, ça me permet d'avancer.

Mes schémas sont presques prêts, je les posterai bientôt mais ils seront bien sûr en attente de validation, après il me restera à faire le PCB. Je vais surement demander d'autres samples pour ce composant, si je peux en avoir quelques-uns de plus la carte de puissance ne devrait pas me coûter grand chose :)

@+
Mdog
 
M

mdog

Ouvrier
Bonsoir à tous!

J'ai testé ce week-end un LMD18245T, qui fonctionne à merveille. Bon seul point négatif, il semble que celui que j'ai utilisé pour mes test ai cramé, sans que je sache pourquoi, mais c'est surement une érreure de manip ou une faiblesse du composant. J'ai utilisé éxactement le schéma du datasheet et c'est parfait.

A part ça j'ai trouvé des schémas sur le net de cartes µStep utilisant ce composant avec un pic, et ne comportant pas de Latch (schéma identique à celui du datasheet), donc je pense que sa devrait fonctionner correctement :wink:.
J'ai aussi demandé d'autres samples à National Semiconductor qui me les a gentillement envoyé gratuitement, donc c'est parfait ^^.

Je vais terminer les schémas et faire le typon, et ensuite je ferais faire mon PCB, je connais quelqu'un qui devrait pouvoir me le faire car je ne suis malheureusement pas équipé...

Merci pour ton aide Max-Mod en tout cas!

@+
Mdog
 
M

mdog

Ouvrier
Salut à tous!

Juste un pti up pour vous informer que je suis passé en phase d'étude avancée sur ce projet :wink:.

Les schémas sont terminés, le typon aussi. Je vais commander les composants car je dois réaliser des tests sur les pic que je vais utiliser et que je ne connais pas. Le programme est presque terminé et devrait intégrer une réduction d'intensité (si tout fonctionne correctement, et c'est là que j'ai besoin de tests car pas d'interruptions par le TMR0 sur les pic low-cost que j'ai choisis).

Le typon que j'ai réalisé est conçu pour un circuit complet intégrant 4 cartes de puissances, l'interface port parallèle, 4 entrées pour les fins de courses et palpeur d'outil, 4 sorties 12v pour contrôler des relais, ainsi qu'une interface avec afficheur LCD qui affichera les positions sur chaque axe. Je ferais également un typon pour une carte de puissance seule, la carte d'interface seule, et une version à 3 cartes de puissance.

Le typon tient sur 20x13 cm en simple face, mais je vais faire une version double face pour éliminer les straps :wink:.

Pour l'instant le projet à un peu ralentit car j'ai un doigt hors-service (bagarre avec une porte qui à mal tournée), mais dès que tout sera prêt et testé, je posterai tous les schémas, typon etc etc...

@+
Mdog
 
M

mdog

Ouvrier
Salut à tous!
Je reviens un peu sur ce sujet car j'ai bien avancé, je vais bientôt (enfin dès que j'aurais du temps libre...) passer aux derniers tests puis à la réalisation.

Je poste dès maintenant les premiers schémas, PCB, et le manuel que j'ai commencé à écrire, ainsi si vous avez des remarques/commentaires/critiques, ça pourra peut-être m'aider à améliorer tout ça :wink:.

Voila donc l'ensemble de mon travail au jour d'aujourd'hui, donné simplement à titre informatif pour le moment :

RIEN N'A ENCORE ÉTÉ TESTÉ.
Les programmes à placer sur les microcontroleurs seront publiés une fois les premiers tests réalisés, en attendant il se peut également que ces schémas soient modifiés, il sont donc donné à titre purement informatif.
Leur diffusion est interdite, merci de renvoyer quiconque s'y intéressera directement sur ce sujet.

Alors on commence par les schémas.
Partie logique :
http://www.homecnc.fr/Manuel/Schema_logique.pdf
Partie puissance :
http://www.homecnc.fr/Manuel/Schema_puissance.pdf

PCB :
http://www.homecnc.fr/Manuel/PCB.pdf
Schéma d'implantation :
http://www.homecnc.fr/Manuel/Implantation.pdf

Manuel (pas encore terminé) :
http://www.homecnc.fr/Manuel/Manuel.pdf

Partlist
http://www.homecnc.fr/Manuel/partlist.htm

Voilà, n'hésitez pas si vous avez des remarques, des critiques, j'ai pu laissé passé quelque-chose, une bêtise, et dans ce cas ça m'aidera bien si quelqu'un la voit :wink:

Bonne soirée.
@+
Mdog
 
M

mdog

Ouvrier
C'est une autre possibilité tout simplement, sur laquelle je ne me suis pas vraiment penché en réalité. Les LMD18245 sont des composants très pratiques (un peu cher), et j'utilise avec des pic très bon marché (environ 2$). Les LMD18245 simplifient le montage puisqu'ils intègrent une régulation en courant contrôlée par un DAC, et surtout j'oublie de préciser que j'ai obtenu 10 LMD18245 gratuitement en samples, j'ai donc créé une carte autour de ces composants pour qu'elle me revienne moins cher qu'une carte où j'aurais tout eu à acheter, maintenant que c'est finit, autant en faire profiter tout le monde si ça peux servir :wink:.

@+
Mdog
 
F

fabrice c

Compagnon
tous mes encouragements pour mener à terme ton projet
 
F

fabrice c

Compagnon
au fait dans quel langage programme tu tes pics?
 
M

mdog

Ouvrier
Merci!
Pour la programmation, ce sera en C le programme est terminé. Par contre je me tâte encore sur les courbes d'alim des DAC. J'ai définit deux courbes possibles pour le microstepping et je ne sais pas laquelle fonctionnerai la mieux.
D'ailleurs si je pouvais avoir votre avis, voila l'allure des deux courbes possibles :
1ere possibilité :
cas1.jpg


2eme possibilité :
cas2.jpg


En théorie la première possibilité offre plus de couple, mais il est moins constant, c'est pourquoi je penche plutôt pour la deuxième solution qui offre un couple constant.

Si quelqu'un peut me donner sont avis là-dessus ?

Merci :wink:
@+
Mdog
 
M

mdog

Ouvrier
Bonsoir à tous.
Pas grand chose à voir avec le projet mais je vais pas ouvrir un sujet juste pour ça :
Je cherche un buffer qui prenne du 12v en entrée et qui ressorte du TTL 5v, pourquoi pas en collecteurs ouverts, quelqu'un connait ça?
Sinon je peux toujours abaisser la tension avec une zener mais je préférerai utiliser un CI.
Le but étant d'utiliser des capteurs inductif NPN qui servent de FDC sur ma CN. La sortie me donne du +12v à vide, et 0v lorsque l'on arrive en FDC, il faut que je transforme ça pour que ce soit admissible par le port parallèle, le mieux ce serait d'avoir de la haute impédance quand je suis à 12v en entrée, et
du 0v lorsque je suis à 0v en entrée.

Merci d'avance :wink:.
@+
Mdog
 
C

ctoutmoi

Ouvrier
T'as pensé à un optocoupleur ? :) (un CNY17 devrait faire l'affaire)
 
M

mdog

Ouvrier
Oui j'y ai pensé, mais finalement je vais utiliser des transistors en commutation, ce sera le plus simple et j'en ai une flopée sous la main. J'aurais juste l'entrée à 1 lorsque la butée sera inactive et inversement, mais n'importe quel logiciel de CNC sais inverser les signaux d'entrée donc pas de soucis, j'ai fait le test ce soir ^^.

Merci pour ta réponse en tout cas c'est sympa :wink:
@+
Mdog
 
M

MaX-MoD

Compagnon
mdog a dit:
Merci!
Pour la programmation, ce sera en C le programme est terminé. Par contre je me tâte encore sur les courbes d'alim des DAC. J'ai définit deux courbes possibles pour le microstepping et je ne sais pas laquelle fonctionnerai la mieux.
D'ailleurs si je pouvais avoir votre avis, voila l'allure des deux courbes possibles :
1ere possibilité :
cas1.jpg


2eme possibilité :
cas2.jpg


En théorie la première possibilité offre plus de couple, mais il est moins constant, c'est pourquoi je penche plutôt pour la deuxième solution qui offre un couple constant.

Si quelqu'un peut me donner sont avis là-dessus ?

Merci :wink:
@+
Mdog
Courbe 1 : plus de couple à haute vitesse
Courbe 2 : meilleur linéarité des micropas.

Bravo pour le reste, le manuel est très pro!

Sinon je te conseillerais d'utiliser des contacts NF (avec pull-up) pour les fdc: en cas de déconnection involontaire, la machine est immobilisée, avec des NO elle se crashe...

je vais pinailler mais bon... L'alim n'a pas besoin d'un gros condo de filtrage : l'alimentation des bobines se fait en courant constant régulé. 20% de bruit d'alim doit être facilement supportable!
Pas besoin d'un énoooorme condo à 80€ pce, donc.
 
M

mdog

Ouvrier
Alors pour les fins de course bonne idée, ça revient d'ailleurs au montage que j'ai choisi finalement puisque si je déconnecte le FDC, la base du transistor n'est plus excitée et j'ai du 5v en sortie (le rappel au 5v est normalement assuré par le port parallèle lui-même mais j'ai lu qu'il n'était pas indispensable de rajouter une résistance de pull-up ce que je vais donc faire). Donc je vais garder mes capteurs inductif, vu que ce sont des NFv (12 en sortie lorsque rien n'est détecté), surtout qu'ils sont bien intégrés à la fraiseuse. Par contre je modifierai le manuel en conséquence.

Merci pour les infos sur les courbes, c'est bien ce que je pensais. Je pense opter pour la deuxième mais je testerai surement les deux.
Pour le condo de filtrage, c'est vrai que pour alimenter des moteurs ça n'est pas critique mais il faut bien compter 1000µF par ampère je pense pour avoir quelque-chose de correct non?
Je terminerai le manuel dès que j'aurais le temps, il y a encore pas mal de boulot :wink:.

Merci beaucoup :wink:
@+
Mdog
 
M

MaX-MoD

Compagnon
1000µF/A me semblent pas mal.

note que pour un pas à pas, on atteint jamais 100% du courant nominal des bobines à l'alimentation. au max dans les 2/3.

Pour la 1ere courbe, tu gagnera à y passer à partir d'une vitesse grande, tu gagnes en couple à haute vitesse.
 
M

mdog

Ouvrier
Ok je te remercie. Me concernant, ma cn est dotée de vis à bille avec un pas assez grand, donc les grandes vitesses ne m'intéressent pas vraiment, mais je testerai quand même la première courbe, voir modifierai mon programme pour qu'il puisse passer d'une courbe à l'autre en fonction de la vitesse. Maintenant que j'y pense, il suffirait de faire le changement au moment où les deux courbes sont identiques. L'idée est très intéressante je retiens merci :wink:.

Pour l'alimentation des moteurs, c'est bien ce que j'avais calculé, j'ai encore quelques modifications à faire dans le manuel, qui est de toute façon incomplet pour le moment. Au départ j'étais simplement partit sur la première courbe, donc pour l'alim, il faut prévoir l'intensité d'alim par phase du moteur (un peu moins en réalité), histoire d'être tranquille. En revanche pour la deuxième, il faudrait prévoir 1,5X l'intensité par phase. De toute façon j'attends de faire les premiers tests avant de terminer le manuel, j'ai pas encore eu le temps de commander les composants pour le moment, et comme je commande à l'étranger, je veux éviter d'oublier quelque-chose.

Merci pour tes réponses en tout cas:wink:

@+
Mdog
 
M

mdog

Ouvrier
Salut à tous!
Je poste ici, encore une fois pour pas ouvrir un sujet simplement pour ça.

Je suis en train de réfléchir un peu à la chaine logicielle que je vais utiliser en ce moment, et je trouve que le logiciel de CAO de ninos est pas mal du tout. Seul point négatif, il n'exporte pas au format Gcode, mais au format UPA (format propriétaire ninos).
Voila la solution, j'ai créé ce petit utilitaire qui permet de convertir un fichier au format commande machine ninos en Gcode, ça fonctionne parfaitement, en tout cas en simulant le Gcode obtenu sous CncSimulator.
Je le poste ici si ça intéresse quelqu'un :
http://www.homecnc.fr/download/UPA2Gcode.zip
C'est codé en C, juste une petit centaine de ligne faites hier soir, et ça fonctionne nickel. J'espère que ça vous servira :wink:.

@+
Mdog
 
M

MaX-MoD

Compagnon
Sur le disque dur, au cas où!

ça risque d'intéresser plus d'une personne je pense, poste ça dans le forum dédié :wink:
 
M

mdog

Ouvrier
Ouep bonne idée, je ferais ça dès que je l'aurais terminé, car je viens de me rendre compte que les fichier .UPA de ninos sont différents s'il sortent du logiciel CAO2D et du logiciel BMP>3D. Pour l'instant ça fonctionne nickel pour CAO2D, je vais donc le compléter pour qu'il soit aussi compatible avec les autres :wink:.
Dans le Gcode créé, j'ai inclut les codes d'allumage/extinction de la broche, les codes de gestion de la vitesse de broche, les changements d'outil, et les codes de vitesse d'avance, puisque tout ça est paramétrable dans le logiciel CAO2D de ninos pour chaque trajet.
J'ai aussi convertit les déplacements en coordonnées relatives du fichier de commande Ninos en coordonnées absolue, sa facilite les éventuelles modifications manuelles du Gcode.

C'est pour ça que ce logiciel est bien fait (ceci dit la dernière version à des bugs mais ça devrait être corrigé rapidement je pense), ça gère tout seul les décalages en fonction des rayon d'outil, les vitesse de déplacement, les vidages etc, et il importe les DXF... Donc je trouve ça intéressant de pouvoir s'en servir avec d'autres logiciel que le FAO Ninos (trop cher à mon goût). Et puis le logiciel de conversion Image vers 3D est pas mal non plus.

J'essaie de finir sa rapidement et je posterai dans la section FAO :wink:. Je posterai également mes déductions sur les codes utilisé par Ninos dans ses fichiers de commandes, ça m'a demandé pas mal de tests pour comprendre quel code faisait quoi :lol:.

Merci,
@+
Mdog
 
K

K-micaz

Apprenti
ah ouai ça peut servir, je prends !!
trop fort ce mdog ... :)

Ninos est bien comme logiciel mais le prix me freine un peu ... vous savez en quoi il est bridé en version demo ??
 
J

JKL

Compagnon
K-micaz a dit:
Ninos est bien comme logiciel mais le prix me freine un peu ... vous savez en quoi il est bridé en version demo ??

Bigre, j'imagine donc que tu fais énormément de bénévolat !!!!!!!!
 
M

mdog

Ouvrier
JKL a dit:
K-micaz a dit:
Ninos est bien comme logiciel mais le prix me freine un peu ... vous savez en quoi il est bridé en version demo ??

Bigre, j'imagine donc que tu fais énormément de bénévolat !!!!!!!!

Pour ma part oui, par exemple le petit utilitaire que je viens de faire, j'aurais aussi pu le vendre :lol:.

Plus sérieusement, ninos est un logiciel plutôt orienté CNC amateur à mon goût. J'ai téléchargé la dernière version et elle bug pas mal (la version d'avant était très stable pourtant), vendre a ce prix un programme pour les amateurs, je trouve ça exagéré, surtout que les licences sont très limitées (119€ simplement pour avoir le droit de l'utiliser sur 2PC, ou 239€ pour la version sans limitation en nombre de postes, mais toujours avec le système du dongle)...

Niveau limitation, comme l'a dit steevie, seul l'usinage automatique est limité (très limité), le contrôle manuel et toute la partie CAO est complète.
En revanche, les flux LPT du logiciel de FAO sont un peu limite (mais ça ça vient surtout de windows), j'avais fait des tests à l'oscillo, c'est pas très régulier, d'où l'intérêt de pouvoir utiliser seulement le logiciel de CAO avec un logiciel de FAO de notre choix.

Par contre sans l'acheter forcément, ce logiciel est parfait pour faire des premiers tests sur sa CN, il est très simple d'emploi et on arrive rapidement à tout configurer, au moins pour voir si l'électronique de notre CN fonctionne correctement.

@+
Mdog
 
V

vres

Compagnon
mdog a dit:
Pour ma part oui, par exemple le petit utilitaire que je viens de faire, j'aurais aussi pu le vendre :lol:.

Plus sérieusement, ninos est un logiciel plutôt orienté CNC amateur à mon goût. J'ai téléchargé la dernière version et elle bug pas mal (la version d'avant était très stable pourtant), vendre a ce prix un programme pour les amateurs, je trouve ça exagéré, surtout que les licences sont très limitées (119€ simplement pour avoir le droit de l'utiliser sur 2PC, ou 239€ pour la version sans limitation en nombre de postes, mais toujours avec le système du dongle).....
Par contre sans l'acheter forcément, ce logiciel est parfait pour faire des premiers tests sur sa CN, il est très simple d'emploi et on arrive rapidement à tout configurer, au moins pour voir si l'électronique de notre CN fonctionne correctement.

@+
Mdog
Je n'ai pas d'affinités avec Nono et je ne te donnerai ni tord ni raison sur ton appreciation de Ninos, mais que Ninos soit orienté amateur ou non Nono est un professionnel qui à une boite a faire tourner, et une famille a nourrir.
 
J

JKL

Compagnon
CNCSERV a dit:
Je n'ai pas d'affinités avec Nono et je ne te donnerai ni tord ni raison sur ton appreciation de Ninos, mais que Ninos soit orienté amateur ou non Nono est un professionnel qui à une boite a faire tourner, et une famille a nourrir.

Je rajouterai si tu me permets que Nono bosse sur Ninos depuis de nombreuses années en organisant gracieusement des journées d'initiation ici et là en France. Il ne s'agit pas d'un bout de programme "torché" en quelques heures un soir.
Les gens qui n'ont pas 200€ à mettre dans un logiciel comme Ninos, vont avoir un mal fou à se construire une CNC digne de ce nom.
 

Sujets similaires

N
Réponses
15
Affichages
836
Doctor_itchy
D
D
Réponses
33
Affichages
820
dh42
françois44
Réponses
162
Affichages
3 892
françois44
françois44
M
Réponses
6
Affichages
1 053
MitchCanon
M
L
Réponses
29
Affichages
1 369
dh42
Haut