Un programme pour régler facilement les servos moteurs avec un ESP32
. Par : bobyAndCo. URL : https://www.locoduino.org/spip.php?article324
Les servos moteurs sont des petits objets que l’on rencontre de plus en plus fréquemment sur nos réseaux de modélisme ferroviaire. Ils sont petits, performants et bon marché. Autant de qualités qui contribuent à leur succès.
Ils ont cependant un inconvénient de taille, c’est qu’il n’est pas facile de connaître la valeur de leur position et encore moins de trouver des valeurs précises comme pour les positions droites ou déviées d’une aiguille.
Je vous propose ici un petit programme facile à mettre en œuvre et à utiliser.
Le matériel
Il ne faut rien de plus qu’un ESP32, trois câbles Dupont, un ordinateur et un câble USB entre votre ordinateur et l’ESP32.
Les branchements
Outre le branchement en USB entre votre ordinateur et l’ESP, vous aurez à relier le Vcc du servo à la broche 5V de l’ESP. La masse du servo à une masse de l’ESP et le câble du signal de l’ESP32 à une broche PWM de l’ESP32. Pour vous simplifier la vie, branchez-vous sur la broche 14 qui est sélectionnée par défaut dans le programme.
Réglages préalables du programme
Si vos avez choisi la broche 14 comme préconisé, les seules informations à saisir « en dur » et définitivement dans le programme sont :
Le SSID de votre box domestique
Le mot de passe pour accéder à la box
Vous aurez également à télécharger (si ce n’est déjà fait) deux bibliothèques que vous trouverez ici :
Choisissez votre carte parmi celles proposées ou plus simplement, prenez la première de la liste, il y a toutes les chances pour que cela fonctionne.
Téléversez le programme
Ouvrez le moniteur série de l’IDE et appuyez sur le bouton reset de l’ESP pour relancer le programme.
Si la connexion à votre réseau WiFi a fonctionné, l’adresse IP de l’ESP32 s’affiche dans le moniteur série de l’IDE Arduino.
L’adresse IP de l’ESP32 dans le moniteur série
Réglez vos servos
Ouvrez votre navigateur, copiez l’IP dans la barre d’URL et chargez la page.
Vous obtenez cet écran :
En faisant glisser le slider du milieu, vous allez déplacer le servo en temps réel et trouver ainsi progressivement la position exacte qui vous convient.
Le slider du bas vous permettra de trouver l’autre position.
Astuce : Les flèches droite et gauche de votre clavier vous permettent d’avancer pas à pas et donc d’obtenir un réglage fin.
Au démarrage du programme, les valeurs pour les deux butées sont réglées à 1500 microsecondes ce qui correspond à une valeur moyenne entre les deux extrêmes d’un servo (800 et 2200 environ). Je vous conseille de désolidariser le bras du servo d’avec le mécanisme d’aiguille avant la mise en route du programme pour éviter la casse éventuelle. Une fois le servo dans sa position initiale de 1500 microsecondes, vous pourrez remonter le mécanisme.
Appuyez sur le bouton pour tester le mouvement entre les deux positions.
Le slider vitesse vous permet d’évaluer le délai à appliquer entre deux pas de servo. Plus la valeur est élevée, plus le délai entre les pas est faible. Cette valeur en millisecondes est donnée par la formule 1 – valeur du slider. Ainsi, si le slider est sur 0,8, la valeur est (1 – 0,8) * 100 millisecondes. Soit dans notre cas, 20 millisecondes environ entre chaque pas.
Voilà, il vous suffit de noter ces différentes valeurs pour les reporter dans votre programme de gestion pour les aiguilles ou votre PN.
Le sketch peut être téléchargé ci-dessus.
Comme d’habitude, n’hésitez pas à poser vos questions ou faire part de suggestions pour l’amélioration de ce projet.