Avancement sur divers projets

Ces dernières semaines, j’avoue n’avoir pas trop eu envie de mettre à jour mon blog, car il est vrai que cela prend pas mal de temps: ce n’est pas l’écriture du texte qui est longue, c’est la publication, la recherche des photos, leur retaillage, leur insertion, etc. et les tentatives de traduction en anglais. J’ai deux articles à poster en anglais, mais je ne l’ai pas encore fait car je ne suis pas satisfait de la traduction.

Mais bon, à un moment, il faut y aller, “pan”, et poster quelque chose. Donc voila, un point d’avancement sur toutes mes bricoles en cours. En l’écrivant, j’espère qu’il me permettra d’en dégager des priorités.

  • Générateur aléatoire: Pas avancé, pas prioritaire. Comme annoncé, c’était une bricole “one shot”. Si je trouve des idées ou du besoin, j’aurai une base de départ.
  • Fraiseuse eShapeOko: J’ai pas mal avancé sur ce point, j’ai maintenant une broche, et la machine commence à fonctionner. Je sais graver du bois en partant d’un fichier SVG, que ce soit des tracés de lignes ou des “pocket” (surfaces planes fraisées). J’ai construit un début de support pour une caméra, mais ce mode de visualisation n’est pas suffisamment fiable pour se passer d’un oeil, surtout à l’approche de la matière 🙂 Mais je vais le finir rapidement, car c’est quand même un moyen de supervision complémentaire utile. Dans ma todolist proche, il y a aussi la fabrication d’un support de fraises, et d’une roue d’échappement en laiton pour un ami. J’attends qu’il me donne le modèle, qui est cassé, et qu’il doit démonter de son horloge.
  • NFC: j’ai reçu et classé les composants, mais ce circuit TI m’agace avec ses bugs hardware. Je le reprendrai plus tard.
  • Moteurs: J’ai soudé la partie puissance sur un radiateur de PC, il me faut avancer sur le pilotage de la puissance et sur le contrôleur brushless.
  • Turbines: Comme déja présenté, j’ai fait imprimer par Jennyfer quelques turbines en plastique, j’ai en cours un modèle un peu plus grand adaptable à un manchon en PVC du commerce, mais OpenSCAD m’embête en créant de mauvais STL. Je n’ai pas vraiment de solution. Le nouveau modèle de turbine utilisera 4 roulements, car les deux actuels ont un peu souffert. Ce qui m’agace, c’est que ce projet n’a pas de “cible” pour dire qu’il est fini.
  • Clavier miniature: il s’agit d’un ancien projet non présenté, qui consiste à construire une mini-console série transportable. Il y a donc un clavier et un écran. Je n’avais pas avancé sur ce projet depuis longtemps, car je ne savais pas comment améliorer le clavier (pour le moment, une grille de microswitches): maintenant que j’ai une fraiseuse, je vais pouvoir tailler des touches en MDF adaptables sur les microswitches. C’est ce qui m’occupe au moment T, je suis en train d’écrire un script python qui génère le G-code nécessaire (très répétitif), donc un script est parfait pour le générer.
  • J’ai aussi travaillé sur l’ingénierie inverse d’une petite carte électronique, il s’agit de relever son schéma et de reverser le firmware d’un MSP430. Le schéma est presque fini, seules quelques pistes manquent. Ce projet a été l’occasion de faire avancer un outil de désassemblage/reverse engineering non encore publié, que j’ai appelé studis. Il permet de désassembler, définir des symboles, noms de fonction, des commentaires, etc. pour msp430 pour l’instant, mais j’ai déja un désassembleur PIC à moitié écrit, puis je passerai à d’autres microcontroleurs embarqués, à choisir parmi arm,avr,mcs51, etc. Cet outil est capable de travailler à partir de plusieurs formats de fichiers: bin, hex, mais c’est modulaire, d’autres sont prévus.

Je considère que le projet global “imprimante 3D” a plutôt avancé dans la bonne direction grâce à mes essais de fraisage. Je maitrise mieux les déplacements de la machine, son utilisation, ses réactions. Un projet parallèle inclut la mise au point d’une broche maison, mais vu les petits travaux que j’ai à faire, il semble que ma broche actuelle soit suffisante pour un moment. Dans le pire cas, je pense pouvoir m’en faire prêter une, donc ce projet de broche passe sous la pile.

Support caméra
(prototype de) Support caméra
Mini Clavier
Mini Clavier

A plus long terme, les projets brushless et turbines me mènent vers un sujet plus ambitieux, les micro-turbines à gaz. C’est quelque chose qui m’intéresse beaucoup, il y a beaucoup de protos non fonctionnels sur youtube, du coup je veux réussir cette construction. Pour cela, il va me falloir des roues de turbines de bonnes performances, ce qui m’amène à d’autres sous-projets:

  • Fabrication d’un banc d’équilibrage pour les turbines: à haute vitesse, il est indispensable d’équilibrer les turbines. Pour ce projet, j’ai besoin de mécanique, mais la mise rotation des roues à essayer viendra d’un moteur brushless de type CD-ROM.
  • Etudes sur la chambre de combustion: matériaux, tailles, températures
  • Etudes sur la pression d’air générée par la turbine
  • Conception générale du moteur, et assemblage.

Au bilan : une todolist très diverse et très remplie. Essayons d’y mettre de l’ordre. J’ai déjà souvent dit que la priorité était l’impression 3D, pour me rassurer, je peux me dire que je n’ai pas trop dévié de mes projets importants en faisant du fraisage, car cette expérience est nécessaire. Mais ne nous perdons pas trop dans les turbines, qui sont intéressantes aussi, mais à plus long terme. Je dois donc me reconcentrer 🙁

Que manque t il pour bien avancer en impression 3D?

  • Finir un peu de méca générale sur la machine: je dois usiner une patte pour fixer les fils des moteurs à une DB25. Outillage: j’ai ce qu’il faut. Matériaux: il me manque un martyr, mais je crois que j’ai ce qu’il faut. Logiciel: j’ai tout. Diagnostic: délai court, difficulté facile, à finir au plus vite.
  • Fixation de l’extrudeur: Il me faut fraiser du gros métal, donc Electrolab, et faire de la conception. Étape longue, mais inévitable. J’ai un moteur NEMA17 adapté.
  • Electronique: déja dit, il faut l’ardumega, et réparer le module pololu dont le potentiomètre est HS. Outillage: j’ai. Composants: a commander.
  • Lit chauffant: Toujours pas récupéré de PCB simple face assez grand. Ensuite il faut un martyr à hauteur rectifiée, que je vais devoir acheter (mdf 15mm)
  • Chauffage: j’ai les résistances de puissance. Il faut usiner. Il faut ensuite un FET et du câblage.
  • Buse: il faut tourner du laiton, je pense avoir trouver des pièces modifiables chez BHV. Ensuite il faut percer très fin.

Bien bien, voici donc un état des choses à faire. D’ici la fin de la semaine, je pense faire l’équerre de fixation pour les câbles de moteur, et finir d’installer le PC de pilotage définitif. La semaine prochaine, évolution de l’électronique en vue de l’impression 3D. Au boulot!

Depuis la rédaction de cet article, le support DB25 est prêt à usiner, seul le bruit généré m’en a empêché. C’est la prochaine action!

Support DB25 prêt à usiner
Support DB25 prêt à usiner

[eShapeoko] table, perçages

Ce week end j’ai pu travailler à nouveau sur ma fraiseuse eShapeoko. Pour commencer, j’ai refixé correctement la machine sur sa planche, en vérifiant que l’équerrage était correct. J’ai également rectifié les pattes de fixation, car celles ci empêchaient le chariot (gantry) de se déplacer jusqu’en butée:

Pattes de fixation
Pattes de fixation

J’ai ensuite acheté les équerres nécessaires à la finalisation de la table. J’ai pu finir de monter celle ci, et y poser la machine. C’est quand même bien plus commode que posée sur un tabouret! La table est un peu flexible, mais l’ajout futur d’étagères intermédiaires en améliorera la rigidité. Pour l’instant ce sont des tiges filetées qui garantissent la solidité de la table, et j’ai utilisé une étagère de récupération:

La fraiseuse sur sa table
La fraiseuse sur sa table

Ensuite, j’ai recalibré les déplacements sur X,Y et également Z (que je n’avais pas vérifié jusqu’à présent). X et Y ont été vérifiés au pied à coulisse, un calcul sur excel m’a confirmé que les déplacements étaient corrects (0,999mm de déplacement pour 1mm demandé).

Sur Z, j’ai rencontré un petit problème. A cause de la démultiplication produite par la vis sans fin, le nombre de pas pour avancer de 1mm est gigantesque, surtout en microstep 1/32: la vis M8 avance de 1,25mm par tour, et à 400 steps/tour, on arrivait à 10240 microsteps/mm. En configurant cette valeur dans grbl, celui ci s’est bloqué, puis au redémarrage, s’est mis dans une boucle infinie d’alarmes, sans pouvoir en sortir. J’ai alors tenté de reprogrammer le firmware par avrdude, et ceci n’a rien donné. En effet, les paramètres de grbl sont stockés en EEPROM, et effacer le logiciel principal n’y fait rien. avrdude n’a pas non plus d’option pour effacer l’EEPROM. Je m’en suis sorti en :

  • lisant l’EEPROM dans un fichier HEX,
  • puis en modifiant ce fichier HEX pour n’y mettre que des 0xFF (valeur de mémoire effacée, attention il faut recalculer les checksums de chaque ligne!),
  • puis en reprogrammant ce contenu modifié dans l’EEPROM.

Il a ensuite été facile de retrouver tous les paramètres, qui étaient encore affichés dans l’appli de contrôle.

Pour m’en sortir, j’ai alors programmé l’axe Z en microstep 1/8 pour obtenir un nombre de steps/mm raisonnable, puis j’ai dû ensuite diminuer la vitesse max de déplacement, car les moteurs ne suivaient plus le rythme: trop de pas par mm pour une vitesse donnée, cela demandait aux moteurs de mettre à jour leur position trop rapidement.

A ce propos une discussion à l’Electrolab la semaine dernière m’a convaincu que passer l’alimentation des moteurs à 24V aurait un effet bénéfique sur la vitesse max de rotation, sans avoir d’incidence sur le courant max, puisque celui ci est réglé en interne par les drivers. Je suis donc à la recherche d’une alim 24V de récupération.

J’ai donc maintenant une machine calibrée sur X,Y, et Z. Etape suivante: le perçage de la table.

Ce perçage va me servir à maintenir des objets bien fixés sur la table, pour permettre leur usinage. J’ai percé des trous de 6 mm tous les 5 cm, puis j’ai agrandi leur base à 8mm pour pouvoir y faire entrer des inserts à griffes. Voici une série de photos pour décrire tout ça:

Broche Bosch 500 watts. Seul reproches: le bruit, et la forme pas pratique :)
Broche Bosch 500 watts. Seuls reproches: le bruit, et la forme pas pratique 🙂 On fait avec ce qu’on a…
Ca marche quand même très bien...
Ca marche quand même très bien…
Après 35 trous et beaucoup de patience de mon épouse...
Après 35 trous et beaucoup de patience de mon épouse… Premier insert vu de dessous.
Les griffes rentrent en serrant par dessus.
Les griffes rentrent en serrant par dessus. La chute d’alu sert à répartir les forces de serrage pour protéger la table.
Seulement 16 inserts étaient prévus au départ...
Seulement 16 inserts étaient prévus au départ… Il faudra ENCORE aller chez Casto Merlin 🙂

Un problème apparait: la poussière… J’envisage deux solutions: soit des bouts de scotch sous les trous vides soit une petite planche de MDF vissée sous celle ci. Mais j’ai peur que les trous se remplissent vite de poussière. En écrivant, je viens de trouver une solution alternative: boucher les trous inutilisés en y vissant des boulons courts par dessous.

 

Quelles sont les prochaines étapes?

J’ai vraiment envie d’essayer l’impression 3D. Je vais donc me préoccuper des accessoires nécessaires. Le premier d’entre eux est le plateau chauffant, c’est une résistance de chauffage en circuit imprimé placé sous une plaque de verre, elle même recouverte de kapton. Une thermistance mesure la température au centre, et le courant est contrôlé par l’arduino de l’imprimante, via un transistor MOSFET de puissance. Je crois pouvoir me procurer facilement du circuit imprimé de grande taille, il sera gravé par la shapeoko. Le défi sera de maintenir le circuit imprimé de manière parfaitement horizontale par rapport à la fraise pendant que je le graverai.

Il me restera ensuite à lancer une commande ebay pour du kapton et un arduino mega, qui est le modèle utilisé par à peu près tous les firmwares d’impression, dont celui que j’envisage: Marlin.

Impression 3D de précision

Après m’être amusé avec des micro turbines, je m’étais amusé à modéliser une turbine sur openscad. J’y ai passé pas mal de temps, et le rendu 3D était devenu très correct. Vous pouvez retrouver le fichier scad de ce projet ici: turbine.scad

Maintenant que je suis assez proche de la réalisation de mon imprimante 3D, je me suis intéressé à la possibilité d’imprimer réellement cette turbine en 3D.

Jennyfer de l’Electrolab est une spécialiste de l’impression 3D, dont vous entendrez plus parler dans les mois à venir. Elle maîtrise vraiment sa machine et les processus d’impression, de la conception à la réalisation. Son imprimante personnelle n’est plus un jouet, mais une machine fiable et fonctionnelle qui a tourné en continu pendant un mois sans nécessiter aucun re-réglage, et fait maintenant concurrence à Stratasys (pour un prix largement moins élevé).

Après quelques discussions, elle m’a proposé d’imprimer ma mini turbine, ce qui est à la fois une grande chance pour moi, car je peux réaliser un proto sur une machine excellente, et pour elle c’est un défi, car ma pièce est vraiment petite et elle peut tester sa machine dans des conditions pas faciles.

J’ai appris au passage quelques informations sur la modélisation en vue de l’impression.

Contrairement à ce que beaucoup de gens pensent,il ne s’agit pas simplement de concevoir un objet arbitraire et de l’imprimer comme un document word. En poursuivant cette idée, il y aura beaucoup de déceptions. En effet, le processus d’impression 3D doit être envisagé dès le début de la conception. En particulier, pour cette pièce, il y a une particularité : elle est composée uniquement de murs fins, sans aucun volume rempli. Nous sommes donc en mode “remplissage 100%” ,et là, le slicer (logiciel qui découpe l’objet en tranches) ne sait pas remplir de zone plus étroite que la taille du filament.
Nous avons donc revu ensemble les épaisseurs des pales et des murs fins, pour qu’ils correspondent à un nombre entier de filaments, ici deux. Dans le cas contraire, le slicer n’aurait pas pu remplir entièrement le volume des murs, déja très fins, les filaments auraient été trop espacés (c’est à dire séparés par des espaces trop fins pour être remplis).

Voici le résultat de l’impression de l’objet tel que je l’ai modélisé. Les paramètres utilisés sur son imprimante étaient: filament ABS, couches de 0,2 mm, buse de 0,25 mm (pour un filament extrudé de 0,34 mm). Les murs et les pales de cet objet ne font que deux filaments de largeur, soit 0,68 mm, et le diamètre total de la roue atteint 26 mm:

Les objets conçus sous OpenSCAD
Les objets conçus sous OpenSCAD

Cette impression est peu satisfaisante. Je n’étais pas devant la machine pendant l’impression, mais Jennyfer m’a dit que la première couche avait été imprimée par sa chaine logicielle de façon un peu bizarre, en plusieurs fois, sans passages réguliers. Après avoir supposé que le STL généré par OpenSCAD avait quelques problèmes, j’ai trouvé la vraie raison. En modélisant mon objet sous openscad, j’ai voulu m’assurer que l’objet final avait bien l’épaisseur voulue et pas plus, donc les faces de la roue sont “rectifiées” et les dépassements des pales (disposées à 45 degrés) sont rabotés au passage. Si on observe avec précision le résultat, on voit que la surface des pales en contact avec la base d’impression est formée de petits triangles, alors que la zone des pales proche du moyeu a une épaisseur “nulle”:

La première couche est liée à ce biseautage
La première couche est liée à ce biseautage

En conséquence, le slicer a décidé que la couche zéro était uniquement composée du moyeu, du carter, et de ces petites zones triangulaires. Le corps des pales commence réellement à la couche suivante. De plus, il se trouve que le fichier STL généré par OpenSCAD a des problèmes de fermeture, on dit vulguairement qu’ “il n’est pas manifold”, c’est à dire que la surface du solide comporte des trous. Heureusement, les logiciels de conception semblent capables de s’en sortir malgré ce problème en faisant des “réparations”.

Voici le chemin de l’extrudeur pour la couche zéro, modélisé par OpenSCAM:

G-code de la première couche
G-code de la première couche

Effectivement, la couche zéro est composée de petits triangles. A cause de cela, l’objet imprimé est de très mauvaise qualité, car la couche zéro est imparfaite, l’objet n’est pas stable.

Jennyfer a alors repris la conception de la roue dans son modeleur, mais a implémenté ce rabotage différemment, ce qui fait que ses essais d’impression sont bien mieux réussis. Remarquez que la couche zéro de ces pièces est bien plane:

La meme pièce, après reprise (couche zéro à gauche)
La meme pièce, après reprise (couche zéro à gauche)

Après montage des roulements (de ventilateur de PC) et insertion de l’axe (d’un chariot de lecteur DVD), je dois dire que le respect des côtes est quasi parfait, le roulement et l’axe se sont insérés en force mais sans problème, le frottement est suffisant pour maintenir fermement les éléments en place sans glissements. J’ai pu ensuite ajouter de petites rondelles en laiton (coupées au coupe-tube et finies à la lime), et couper un carter dans une canette de coca pour obtenir une turbine qui tourne vraiment bien dans le tube d’un aspirateur:

Les pièces prêtes à assembler
Les pièces prêtes à assembler
La turbine assemblée
La turbine assemblée

Il y a donc plusieurs leçons importantes à retenir:

  • On peut obtenir des pièces mécaniques de très bonne qualité (celles ci sont encore à améliorer)
  • Il faut concevoir la pièce en ayant en tête le processus d’impression, et la machine utilisée. C’est évident, mais la surexcitation actuelle des médias aurait tendance à nous faire oublier l’importance du travail de modélisation. A ce propos, on remarque les problèmes que peuvent poser un site comme thingiverse: un objet donné sera sans doute bien imprimé sur la machine de l’auteur, mais des petites variations de procédé vont certainement aboutir à des problèmes d’impression partout ailleurs. Surtout pour les pièces fines.
  • La couche zéro est très importante. C’est elle qui conditionne la qualité de toute la pièce qu’elle supporte.
  • Les dimensions de la pièce sont importantes, surtout quand on veut des pièces de faible épaisseur. Le comportement du slicer doit être bien compris pour lui “donner à manger” des pièces qui se comporteront bien.

J’ai donc appris beaucoup de choses en fabriquant ce petit objet, et je suis certain que tout ceci me fera gagner beaucoup de temps plus tard. Je réinsiste donc une fois de plus: sans modélisation adéquate, on ne peut pas utiliser une imprimante 3D et attendre des résultats de qualité. Toute la chaine d’outils doit être maitrisée, et il faut absolument modéliser sa pièce en pensant à son mode de réalisation.

Je vais donc remodéliser ma pièce pour corriger ces problèmes.

A+!

[Tech] Fail en H et gain d’expérience

A l’origine, cet article devait également parler de moteurs brushless, mais j’ai décidé d’en faire deux articles, car cela aurait été trop long. Cet article est déja long, car j’ai volontairement détaillé son contenu pour qu’il soit facile à comprendre.

Vous connaissez tous les ponts en H: ce sont ces réseaux de transistors de puissance qui servent à changer le sens de rotation des moteurs. Plus généralement, ce sont des éléments de commande de puissance permettant le changement du sens du courant dans chaque ligne de puissance. On peut s’en servir pour plein de choses: commander un moteur DC, pas à pas, ou brushless, piloter un élément Peltier, etc. ou tout élément de puissance nécessitant un changement rapide du sens du courant qui le traverse.

Si on a pas besoin de commuter rapidement le sens du courant, un relais 2RT fait l’affaire 🙂

Nous verrons plus tard comment fonctionne un moteur brushless. Pour l’instant, disons seulement qu’il faut donc une carte de commutation pour changer le sens du courant dans les phases du moteur. Pas de secret, il y a plein de docs sur le sujet sur Internet. Cette carte de commutation génère les signaux logiques (0V-5V), mais évidemment, il faut des transistors de commande.

Il y a deux manières de réaliser un pont en H avec des MOSFETs:

Types de ponts
Types de ponts
  • Soit avec des FETs de type N coté “masse”, et des FETs de type P coté “alim”. C’est cette solution que j’ai choisie.
  • Soit avec uniquement des MOSFETs de type N, et un montage “compliqué” qui génère des tensions flottantes pour commander les FETs du coté “alim”. Des chips intégrés existent, mais pour un proto, ça n’est pas du tout amusant.

Pour rappel, le pilotage d’un FET se fait en appliquant une tension entre Grille et Source (VGS = Ug-Us), ce qui autorise le passage d’un courant entre drain et source (Id).

Pour le FET N, cette tension VGS doit être positive. Le FET N est conducteur quand sa grille est à une tension supérieure à sa tension de déclenchement (5-6V environ pour les MOSFETs de puissance), et il est isolant quand sa grille est à la masse. Entre les deux, le FET est dans une zone où il se comporte linéairement, mais la pente de la courbe Id en fonction de Vgs est très raide, il y a beaucoup de variations entre différents composants d’une même série, et les MOSFETs de puissance détestent travailler dans ce mode “résistif” où ils chauffent beaucoup. Mais ça marche, j’ai déja fait une source de courant variable de cette manière, en utilisant un ampli-op pour asservir la tension aux bornes d’un shunt (avec un gros radiateur, et un MOSFET N qui supportait 100A – en commutation, car en linéaire, c’est beaucoup moins).

Pour le FET P, cette tension VGS doit être négative. Et la source est reliée à l’alimentation. Le FET P est conducteur quand sa grille est à une tension inférieure d’environ 5-6V à la tension d’alim du moteur, et il est isolant quand sa grille est à la tension d’alimentation. Attention, je répète je n’ai pas dit que la tension de grille était à 5V, j’ai bien dit 5V en dessous de la source! Pour une tension d’alim de 12V, le FET P connecté à l’alim est donc totalement conducteur quand la tension sur sa grille est en dessous de 7V (=12-5).

On remarque vite que des niveaux logiques ne conviennent pas pour piloter des MOSFETs. Les courants débités par les microcontrôleurs sont déjà un problème, ils sont trop faibles, ce qui va ralentir le temps de commutation des FETs (et donc les faire chauffer). Les tensions surtout posent problème:

  • A zéro volts, on peut bloquer le FET N, et rendre le FET P passant.
  • Mais à 5 volts, le FET N est partiellement passant, et le FET P est toujours passant, car il reste encore 7V (12-5 dans notre cas) entre G et S.

Il faut donc translater ces niveaux de tension à des valeurs qui permettent de faire fonctionner les FETs.

Mon idée initiale a été d’utiliser des transistors bipolaires que j’avais déja, des BC547 et BC557, et des résistances de pull up/down pour réaliser ces translateurs de niveau. Voici en gros le schéma utilisé (les transistors supplémentaires coté N sont censés être des inverseurs pour que toutes les commandes soient positives:

Pont à pilotage Bipolaire
Pont approximativement pifométrique, qui aurait dû marcher. Dessin Kicad.

Grossière erreur, surtout du coté des FET N : les valeurs de composants utilisés ont été calculés de manière totalement “proto-pifométrique-fond-de-tiroir”, je fais passer du courant dans la base mais pas trop, ça saturera à tous les coups, ben… non, ça ne marche pas! Une mesure rapide des niveaux de tension obtenus m’a rapidement montré des tensions bien trop faibles pour commuter les FET N de manière fiable. Après quelques minutes de fonctionnement, un passage de doigt sur les FET m’a révélé une température bien au delà du raisonnable (je me suis pas brûlé, mais ma sueur s’est évaporée avec un petit pshitt), et maintenant, le moteur saute des pas, alors qu’au début de la manip, au moins, toutes les étapes de la commutation étaient observables. J’ai donc explosé au moins un FET N par l’épreuve du feu. Contrairement aux régulateurs de tension et autres, les FETs ne sont donc pas du tout protégés en température…

Mon erreur a été de négliger le pilotage correct des MOSFETs. Ce montage aurait dû marcher, je ne pense pas qu’il soit faux, c’est un problème de choix de composants.

Je dois dire que je suis passé à deux doigts de laisser tomber ce sous-projet (alors que je néglige ma shapeoko), qui était censé être un bricolage rapide du week end. Tout ceci se passait, bien entendu, le dimanche soir à 1h du matin, avec le boulot le lendemain, et pas mal de fatigue accumulée. Un peu désespéré, j’ai googlé “mosfet drive” un peu plus longtemps que d’habitude, et je suis tombé sur cette magnifique page qui expliquait exactement ce que j’avais besoin de savoir: le B-A-BA du pilotage des mosfets avec des composants discrets:

http://modularcircuits.tantosonline.com/blog/articles/h-bridge-secrets/h-bridge_drivers/

Cet article fait en fait partie d’une grande série:

http://modularcircuits.tantosonline.com/blog/articles/h-bridge-secrets/

Voyez vous, ce n’est pas que j’adore réinventer la roue, mais je veux comprendre ce que je fais, alors utiliser un circuit intégré pour piloter un FET dans un prototype, ce n’est pas mon truc. Je sais que ça existe, je sais que ça marche, donc je n’utiliserais ce genre de circuit que si, justement, la compréhension du pilotage des FET n’est pas le point central du projet.

Bref, malgré l’envie de dormir, je lis la page sus-citée, qui mentionne un montage particulièrement intéressant. Je vous la fais en résumé: Puisque le problème des FET est leur pilotage par des niveaux logiques, eh bien on essayons d’utiliser des FETs dont les tension de commutation sont compatibles avec des niveaux logiques. Ces FETs existent, mais ils ne sont pas capables de commuter de grosses charges.

Ce translateur de niveau est un simple MOSFET N dont le niveau logique est compatible avec des signaux logiques. On peut utiliser pour ça le BS170, qui est un FET N de faible puissance, mais dont la tension de déclenchement est de 3V, c’est directement compatible avec un signal logique. Ce MOSFET est câblé en drain ouvert (équivalent du collecteur ouvert) et peut donc “clamper” sa sortie à la masse, qui sera le niveau “0”. Le niveau “1”, lui, est indéfini, il est présent quand le FET est isolant, et sa tension est définie par un pull-up externe, que l’on connecte donc entre le drain et le +12V. On a donc construit un translateur de niveau inverseur.

Le problème est maintenant déplacé: on sait transformer des signaux 0V-5V en signaux 0V-12V, mais le signal haut (+12) n’est pas très franc: A cause de la capacité d’entrée du FET, la résistance du pull-up implique un temps de commutation plus élevé (T=RC), ce qui va certaiment faire chauffer le transistor. On peut régler ce problème en diminuant le pull-up (mais la conso augmentee inutilement) ou en intercalant un inverseur CMOS discret, constitué d’une paire de mos complémentaires (BS170 et BS250): Cet inverseur sera très rapidement déclenché par la tension issue du pull-up, mais il pourra fournir un courant élevé au FET final, car cette paire est directement connectée à l’alimentation, sans résistance. Voici à quoi cela ressemble:

Pilotage CMOS
Pilotage CMOS (R= 4K7) Chaque MOSFET de puissance a droit au même circuit.

J’insiste sur ce point du chargement correct et rapide de la capacité d’entrée des transistors MOSFET, car c’est un sujet très important pour la commutation de (grande) puissance. Pendant le chargement, le FET est demi-passant, et c’est principalement à ce moment qu’il chauffe. Ce n’est pas négligeable, car en PWM, il y a beaucoup de commutations! Regardez un datasheet, la capacité est donnée directement en nano-coulombs, ce qui donne le temps de commutation du FET: Q=IT -> T=Q/I, le temps de commutation est donc d’autant plus court que le courant de commutation est important.

Il peut y avoir un dernier problème, qui ne nous concerne pas vraiment, mais qui devient important si les tensions de pilotage sont plus élevées: la grille d’un FET ne supporte pas toujours la tension d’alimentation du moteur. Il y a en général une limite (destructive) vers 15V. On va alors piloter la grille du FET via un régulateur shunt Résistance Série/Zener à la masse, ce qui évite de le détruire.

Je n’ai pas abordé le sujet des ponts à base de FET N uniquement, il faut savoir qu’ils ont besoin d’une pompe de charge pour produire une tension VGS suffisante pour le FET coté alim. En général, cette pompe implique que le FET supérieur ne peut pas rester enclenché pendant un temps infini, car la pompe de charge a des fuites inévitables et demande un rechargement régulier. Il faut piloter ces ponts en PWM et s’assurer que les FETs supérieurs ne sont jamais pilotés par un PWM à 100%. Pour mon prototype, c’est assez gênant pour faire des essais à basse vitesse, c’est pour ça que je n’ai pas choisi cette conception même si les FET N sont moins chers et plus efficaces que les FET P. Je réserverai les FET N au montage final, si j’en ai besoin.

Voici donc la fin de mon tour d’horizon sur le pilotage des ponts en H, si on veut en savoir plus, je recommande chaudement la lecture des pages que j’ai trouvées, qui décrit avec une infinité de détails tout ce que l’on peut faire avec des ponts. Ces articles sont vraiment très, très complets, je n’ai pas encore eu le temps de tout lire! Je terminerai avec une image de l’état actuel du montage:

Prototype
Le prototype

C’est un pont à 3 branches, pour piloter un moteur brushless. La position des transistors est prévue pour une fixation sur un radiateur de CPU… Ne pas oublier les kits d’isolation, les semelles sont connectées aux drains! J’ai ajouté une résistance de 0R1 pour mesurer le courant consommé.

A+ pour l’application aux brushless!