Peter Neufeld (Allemagne) et Luc Lemmens (Elektor)


Le titre du premier article, « Lévitation magnétique sans peine », pouvait laisser penser que nous allions cette fois-ci envisager une méthode plus complexe pour réaliser la lévitation, mais ce n’est pas le cas. Dans ce 2e volet du projet de lévitation, un petit module basé sur l’ESP32 (ATOM Lite ou Matrix de M5Stack, voir l’encadré « ATOM... ») reprend le rôle du comparateur analogique du 1er projet : il mesure la tension en sortie du capteur Hall et commande la bobine. En fait, pour construire cette version numérique, si on ne compte pas les composants internes du module M5Stack, il faut bien moins de pièces qu’avec le circuit analogique. C’est amusant : pour certains de nos lecteurs, l’utilisation d’un microcontrôleur est la solution de facilité, tandis que d’autres demanderont pourquoi utiliser un module ESP32 alors qu’un simple LM311 fait l’affaire. Alors pour satisfaire tout le monde, nous avons décidé de présenter les deux options.

Pour ce projet, tout module ESP32 conviendrait à la place de l’ATOM de M5Stack. Pour l’une des versions du prototype (voir ci-dessous), le bouton-poussoir (les modules ATOM en ont un) de réglage de la boucle d’asservissement de la lévitation sera très pratique.

M5Stack ATOM Lite vs. ATOM Matrix

Nous avons préféré les modules de M5Stack pour leurs qualités : bas prix, très faible encombrement et boîtier plastique protégeant bien contre les courts-circuits. Toutes les E/S nécessaires à ce projet sont facilement accessibles sur les prises SIL situées au bas des ATOM. Les LED Neopixel du modèle M5Stack ATOM Matrix ne sont utilisées qu’accessoirement et ne contribuent pas au processus de lévitation. Pour ce projet, le modèle Lite, à une seule LED Neopixel, convient aussi.

Au début de l’écriture de cet article, j’en discutais avec Peter qui a eu l’idée de remplacer le bouton-poussoir de réglage de la boucle d’asservissement par un trimmer ; il a finalement construit et testé cette solution également. Cette « version supplémentaire » est traitée sur ses pages web et dans cet article.
 

Le matériel, version originale

Comme le montre le schéma de la figure 1, le matériel utilisé est à peu près le même que dans la version analogique. La modification de la carte à relais est quasi identique, la différence la plus importante est que le capteur à effet Hall est désormais alimenté en 3,3 V, à partir du régulateur de tension interne du module ATOM.

The schematic for magnetic levitation
Figure 1: The schematic looks like the analog version, but with less components needed.

La figure 2 montre l’électroaimant résultant avec le capteur Hall monté sur le noyau. Ici, la diode de roue libre (flyback) du relais est remplacée par deux LED blanches qui sont utilisées comme « spots » pour éclairer l’objet en lévitation. Comme dans la solution analogique, une seule LED conviendrait. Cependant, il semble que la stabilité de l’objet en lévitation soit meilleure dans la configuration à deux LED. Il est important de maintenir un courant de retour faible dans les LED, car un courant plus élevé maintient le champ électromagnétique trop longtemps, même lorsque le transistor est coupé. Ce champ supplémentaire nuit à la boucle d’asservissement et déstabilise le vol stationnaire de la charge. Les LED et la résistance sont cependant nécessaires à la place de la diode d’origine, car elles limitent la tension d’induction appliquée au transistor du relais à une valeur inoffensive (< 50 V) et garantissent des impulsions de commutation assez courtes. Deux LED blanches en série avec une résistance de 220 à 330 Ω font très bien le travail.

 The modified relay board for magnetic levitation
Figure 2: The modified relay board, the Hall sensor on the core of the electromagnet.

Bien entendu, la tension d’alimentation de 3,3 V permet de maintenir la sortie du capteur entre 0 V et 3,3 V, sans excéder la tension d’entrée max. du CA/N du M5Stack ATOM. Nota : cette tension n’est pas conforme aux spécifications de la plupart des capteurs Hall (voir l’encadré « À propos de... »). Selon les fiches techniques, la tension d’alimentation minimale des A1302/A1308 devrait être de 4,5 V, mais ils semblent fonctionner à une tension inférieure (en tout cas pour ce projet) et cela évite un diviseur de tension pour rester dans les limites d’entrée du CA/N. Cependant, il y a un inconvénient : apparemment sous 3,3 V, la tension de sortie du capteur commence à plafonner à une intensité de champ magnétique plus faible, et cela limite le poids de la charge qui peut léviter. Et pour le SS49E c’est aussi un facteur limitant, bien que ce capteur Hall soit spécifié pour une tension d’alimentation minimale de 2,6 V.

Speaking of Hall sensors

Le circuit est alimenté en 5 V soit par le connecteur USB-C, soit par son connecteur Grove ou encore par la prise SIL située au-dessous du M5Stack ATOM.

Le logiciel

Le croquis Arduino pour piloter la lévitation est très simple : le CA/N de l’ESP32 mesure la tension de sortie du capteur Hall, la compare à un seuil de déclenchement (avec une certaine hystérésis) et active ou coupe l’alimentation de la bobine, le logiciel imite donc le comparateur LM311 de la 1re réalisation. Dans le 1er exemple sur la page web de Peter (MagLev_1.INO), le seuil de déclenchement et l’hystérésis sont définis comme constantes dans le croquis et doivent être ajustés à la charge utilisée. Trouver le seuil de déclenchement correct peut prendre un certain temps, car il dépend de la charge et bien sûr de la taille et de la force de l’aimant permanent utilisé.

Le code de ce 1er croquis s’apparente plutôt à une démo de l’algorithme d’asservissement, car il faut le recompiler et le télécharger à chaque fois que l’on change une de ces constantes, ce qui n’est pas très pratique. Le 2e croquis utilise le bouton-poussoir intégré à l’ATOM pour modifier le seuil de la tension de sortie du capteur Hall pendant l’exécution. Au démarrage de ce programme, le niveau est à une valeur prédéfinie ; ensuite il suffit d’appuyer sur le bouton-poussoir pour la diminuer jusqu’à ce que la charge plane sous l’électroaimant. Avec la version actuelle de ce croquis (MagLev_2.INO) et avec un seul bouton-poussoir défini par l’utilisateur pour commander l’étalonnage, le seuil ne peut être que décrémenté. Si la valeur réglée est trop basse, il faut réinitialiser l’ATOM et recommencer le processus. Le moniteur série de l’EDI Arduino permet de suivre la progression et une fois la valeur correcte du seuil déterminée, elle peut être entrée dans le code source du croquis qui peut ensuite être recompilé et téléchargé dans le module ATOM. Bien sûr, tant que la charge n’est pas modifiée, aucun autre réglage n’est nécessaire lorsque le matériel est réinitialisé ou remis sous tension.
 

Source code sketch

En regardant le code de ce croquis, on remarque qu’il y a plusieurs lignes commentées avec différents paramètres par défaut pour le seuil. Bien sûr, chaque charge a son seuil et ce dernier peut varier selon le type de capteur à effet Hall. Mais il y a des différences même lorsque le module ATOM Matrix est remplacé par la version ATOM Lite. Apparemment, les caractéristiques des CA/N (ou leur tension de référence ?) diffèrent d’un module à l’autre.

L’hystérésis semble être un peu moins critique, mais c’est utile d’expérimenter avec différentes valeurs pour stabiliser l’objet en lévitation. Ce paramètre est codé en dur pour toutes les versions du logiciel, il ne peut donc être modifié que dans le code source qui doit être recompilé et téléchargé comme microprogramme.

Arduino IDE Setup

À la croisée numérique/analogique...

Le bouton-poussoir n’est pas la méthode la plus confortable pour régler ce projet de lévitation. Une fois que le µprogramme a été chargé, il faut une connexion à un ordinateur et une reprogrammation de l’ESP32 pour adapter la commande par logiciel à la charge, car on ne veut pas régler les deux paramètres à chaque remise sous tension. Si la charge doit être modifiée ultérieurement, il faut à nouveau se connecter à un ordinateur pour adapter le seuil au nouvel objet. À cet égard, la solution analogique de la première partie était vraiment « la solution sans peine » : un tournevis suffisait pour régler le potentiomètre sur la bonne position pour que la nouvelle charge plane.

Mais comme mentionné plus haut dans cet article, Peter a eu l’idée d’ajouter un potentiomètre pour ajuster le seuil pendant l’exécution, comme on peut le voir sur le schéma modifié de la figure 3. Le curseur du potentiomètre préréglé est connecté à un deuxième canal analogique de l’ESP32. Cela peut être une solution temporaire pour régler facilement la lévitation magnétique au seuil correct, au lieu d’utiliser le bouton-poussoir comme dans le croquis précédent. Ainsi, la 3e version du logiciel (MagLev_3.INO) peut aider à déterminer le seuil correct qui peut ensuite être codé en dur dans MagLev_2.INO.

Three additonal parts
Figure 3: Three additional parts simplify adjustment.

Le code source est reproduit dans cet article. Pour simplifier, la partie concernant les LED Neopixel du module ATOM Matrix est omise du croquis. Si on souhaite réduire le matériel au strict minimum, le trimmer, la résistance et le condensateur électrolytique supplémentaires (R1, RV1 et C1) peuvent être omis ultérieurement, le seuil correct étant fixé dans la deuxième version du croquis. La photo de la figure. 4 montre que ces composants ne prennent que peu de place et peuvent effectivement être cachés. À mon avis, ce réglage analogique de la version numérique est un ajout précieux au projet de lévitation. Je ne le supprimerais pas !
 

Trimmer at the base of the mechanical construction.
Figure 4: Trimmer at the base of the mechanical construction.

Pour télécharger le code source des trois croquis, voir [6].

Construction

Les photos de la figure 5 montrent comment réaliser la construction mécanique du projet de lévitation numérique. L’électroaimant (la carte à relais modifiée) avec le capteur Hall est monté en haut d’un cadre en bois de 10 cm de Ø, le module M5Stack ATOM en bas. Si l’option « trimmer » est utilisée, le meilleur emplacement pour les trois composants supplémentaires est dans ou à la base de la construction : c’est mécaniquement plus stable pendant le réglage et il est plus facile d’y cacher les composants.

Mechanical construction for magnetic levitation
Figure 5: Mechanical construction, overview.

Analogique ou numérique ?

Être facile ou ne pas l’être, telle est la question. Nous vous laissons le soin de préférer la version « vieille école » avec comparateur analogique ou la version plus moderne à microcontrôleur de cette seconde partie. Comme nous l’avons mentionné plus haut, la tension d’alimentation de 3,3 V pour le capteur Hall limite le poids de la charge qui peut léviter avec cette solution numérique. Les modules ESP32 ont été utilisés en raison de leur prix et de leur petite taille, et non parce qu’il fallait une connexion « sans fil ». Au bout du compte, dans cette réalisation, l’objet en lévitation est la seule chose sans fil !
 


Contributeurs


Conception : Peter Neufeld
Texte et rédaction : Luc Lemmens
Illustrations : Peter Neufeld, Patrick Wielders, Luc Lemmens
Mise en page : Harmen Heida
Traduction : Yves Georges
 

Des questions, des commentaires ?


Envoyez un courriel au rédacteur (luc.lemmens@elektor.com) ou contactez Elektor (redaction@elektor.fr).