Contrôleur

de servomoteurs

paramètrable

 

 

 

Bonjour à tous, voici un contrôleur de servomoteurs qui permet de piloter jusqu'à six servomoteurs de manière indépendante.

Entièrement paramétrable, il est possible de contrôler les servomoteurs, soit par un entrée tout ou rien soit par un potentiomètre. Les angles max et min sont ajustables indépendamment pour chaque servo, ainsi que la vitesse de déplacement de chacun.

Trois modes de fonctionnement sont disponibles.  Le premier permet d'actionner les servomoteurs avec des interrupteurs, le second mode positionne les servomoteurs en fonction de la valeur d'une entrée analogique, tandis que le dernier mode permet de gérer le mouvement du servomoteurs. Chaque entrée peut être paramétrée indépendamment.

Son alimentation est prévue sur batterie, pour la préserver l'installation est mise en veille après une durée d'inactivité paramétrable. Un changement d'état sur l'une des entrées de pilotage permet de réveiller le microprocesseur Atmel.

Afin d'éviter une décharge profonde de la batterie, sa tension est surveillée. Si elle descend en dessous de la valeur paramétrée, le contrôleur ce met en veille jusqu'au remplacement de la batterie.

Pour réaliser ce contrôleur de servomoteurs , j'ai utilisé un Arduino nano, Il peut être alimenté avec une tension comprise entre 6 et 9 volts. Le courant des servomoteurs ne doit pas dépasser 5 ampères.

La vidéo qui suit présente le contrôleur et détaille son fonctionnement.

 

Ici les codes et les fichiers à jour pour réaliser le contrôleur.

 

 

Sommaire

 

 

Matériel nécessaire pour le contrôleur de servomoteurs

 

Le contrôleur de servomoteurs est fabriqué autour d'un Arduino Nano. L'utilisation d'un timer permet de gérer la position et l'accélération des servomoteurs.

 

 

gestionnaire

arduino mega   tft 2 8 240 320
L'Arduino nano est au cœur de ce montage. Il permet de contrôler les 6 servos moteurs suivant les consignes lues sur 6 entrées analogiques.

 

Un Mosfet ITLZ34N, il est capable de commuter jusqu'à 5 ampères.

NRF24L01   ESP8266 serial
Une diode 1N4007 permet d'alimenter l'Arduino nano et ainsi de le protéger des inversions de polarité. Il va permettre de conserver une réserve d'énergie pour  l'Arduino lors des appels de courant des servomoteurs. Un condensateur de 470 u qui sert de réserve d'énergie pour alimenter le processeur. Cela permet de supprimer les rebootages dus aux chutes de tension provoquées par l'activation des servomoteurs.
Alimentation 800ma resistor 4.7K 
Une résistance de 1 Kohms, elle est située en parallèle avec la porte du mosfet. Deux résistances de 10 kohms permettent de créer un pont diviseur de tension connecté sur la tension de la batterie (après la diode).  L'Arduino nano surveillera cette tension afin d'éviter les décharges profondes.
 power switch Bornier 
Un fusible de 5 ampères temporisé permet de protéger l'installation .  Un bornier à visser au pas de 5,08 mm permet d'alimenter le montage. La tension doit être comprise entre 6 et 9 volts.
broche 254  
37 Broches cassables au pas de 2,54 mm  

 

 

 

L'assemblage et le schéma de la sound box

 

La carte est glissée dans le boîtier imprimé en 3D. La taille du boîtier a été minimisée, il faut donc faire attention à la hauteur des soudures, et le mosfet est enfiché jusqu'à la base de celui-ci.pcb low


 

Vous trouverez le schéma et le PCB à jour sur mon compte Github. Ils sont réalisés avec le logiciel KiCad. A noter, que pour protéger l'Arduino des inversions de polarité, la tension de batterie est mesurée après la diode.

 

Drawing home controller

 

Le PCB est réalisé sur une carte simple face.

PCB energy meter

 

 

Le boîtier et ses accessoires

 

Le boitier est réalisé en PETG, je réalise les modélisations avec l'aide du logiciel FreeCad. Les fichiers son tenus à jour sur mon compte github.Petite astuce, grâce à kiCad il est possible d'exporter en STL le PCB  créé, cela permet de l'intégrer dans la modélisation. Très utile pour vérifier l'alignement des ouvertures.

box screen

 

 

 

 

Le mode d'emploi

 

1-Connexion des servomoteurs:

Il est possible de connecter jusqu'à 6 servomoteurs. 

Connexion servo controller2-Connexion des entrées: 

Le branchement des entrées change en fonction de mode de fonctionnement choisi. Dans un premier temps voici le câblage pour le branchement d'interrupteur. L'interrupteur doit être connecté entre la masse et l'entrée que l'on souhaite piloter.

inter servo controller

Il est aussi possible de choisir de piloter les servomoteurs avec l'aide d'un potentiomètre. En fonction du mode choisi le potentiomètre donnera un ordre de position ou un ordre de mouvement proportionnel au potentiomètre.  Comme vous pouvez le voir, rien n'empêche de connecter un bouton poussoir.Potar servo controller

3-Accés au paramétrage:

Dans un premier temps assurez vous d'avoir installé le pilote USB CH340. Il permettra de se connecter à l'arduino.

Il sera possible de paramétrer le contrôleur de servomoteurs depuis n'importe quel moniteur série, ici nous allons utiliser Putty

Connecter le contrôleur de servomoteurs sur un port USB de l'ordinateur, Dans le gestionnaire de périphériques vous trouverez un port CH340, notez le numéro du port, ici le port COM4

gestionnaire port

 Maintenant ouvrez le logiciel Putty, dans un premier, pour ne pas perdre vos habitudes de frappe, je vous conseille de configurer la touche "del".

Del putty

Maintenant renseigner les informations de connexion sur la page principale, en indiquant une vitesse de 11520, le port que vous avez trouvé précédemment et en choisissant  le mode Serial.

Config putty

Parfait nous sommes prêt à paramétrer le contrôleur de servomoteurs, cliquez sur "Open"

3-Ouverture le la connexion au contrôleur de servomoteurs:

L'ouverture du port par putty va générer un reset de la carte Arduino, vous devriez obtenir un texte avec les réglages actuelles. Noté qui i la carte n'est pas alimentée celle-ci ce mettra en veille car la tension de la batterie est vu comme nul. 

open com putty

 4-Description des paramètres:

Angle Final: C'est l'angle maximum du servomoteur, réglable de 0 à 360° la valeur est proportionnelle à l'amplitude du servomoteur.

Angle Repos: C'est l'angle de la position zéro, réglable de 0 à 360° la valeur est proportionnelle à l'amplitude du servomoteur.

Accélération: Elle ajuste la vitesse de déplacement du servo moteur. Elle est réglable de 0 à 360, mais je conseille de rester en dessous de 75.

Mode: Il y a trois modes différents, 

-Le mode 0: Le contrôle ce fait avec un contact sec, lorsqu'il est ouvert le servo ce positionne en position repos, sinon il va vers la position finale. La vitesse de déplacement est celle du paramètre Accélération. Si l'entrée n'est pas utilisée, il faut appliquer ce paramètre, cela évite des réveilles intempestifs.

-Le mode 1: C'est un contrôle de positionnement, piloter par un potentiomètre, le servo ce positionne à la valeur de consigne. La vitesse de déplacement est celle du paramètre Accélération. Il est à noter qu'à la mise en route une auto-calibration du point zéro est faite, il faut dont mettre les potentiomètres sur le point milieu à la mise en route.

-Le mode 2: Ce mode permet de faire fonctionner le contrôleur en impultionnel. Une impulsion sur une entrée donnera l'ordre de changer de direction et d'atteindre l'angle maximum.

-Le mode 3: Le mouvement du servomoteur est contrôlé par un potentiomètre, sa vitesse sera proportionnelle à la consigne. Il est à noter qu'à la mise en route une auto-calibration du point zéro est faite, il faut dont mettre les potentiomètres sur le point milieu à la mise en route.

DELAY: Permet de régler en secondes le temps d'inaction avant mettre en veille l'objet. Pour réveiller le contrôleur, il faut actionner une des entrées qui pilote les servos.

VOLTS: C'est la tension de mise en veille  afin de protéger la batterie d'une décharge profonde. Pour réactiver le contrôleur, il faut soit faire un reset, soit déconnecter puis reconnecter son alimentation. Cette valeur ce règle en dixième soit 62 pour indiquer 6,2 volts. Cette valeur ne peut pas être ajusté au dessus de 8 volts.

 4-Changer les paramètres:

Si l'appareil est en veille, il ne sera pas possible de le paramétrer, il faudra au préalable le réveiller.

Pour changer un paramètre de contrôle d'un servo il suffit de noter "S" suivit du numéro du servo exp: "3", suivit du paramètre que l'on souhaite changer exp: "F", suivit de "=" puis la valeur que l'on souhaite exp: "50", soit S3F=50, La touche "entrée" valide la demande. 

succes command putty

Pas d'inquiétude si vous faites une erreur de frappe, le système vous rappellera la bonne syntax.

fail command putty

 

 Merci et n'oubliez pas, Keep contact like and share

 

 

Veuillez vous connecter ou créer un compte pour pouvoir poster un commentaire.