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
|
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.
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.
Le PCB est réalisé sur une carte simple face. |
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.
|
1-Connexion des servomoteurs: Il est possible de connecter jusqu'à 6 servomoteurs.
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. 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. 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 Maintenant ouvrez le logiciel Putty, dans un premier, pour ne pas perdre vos habitudes de frappe, je vous conseille de configurer la touche "del". 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. 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. 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. Pas d'inquiétude si vous faites une erreur de frappe, le système vous rappellera la bonne syntax.
Merci et n'oubliez pas, Keep contact like and share |