Dans ce didacticiel, nous en apprendrons davantage sur le servomoteur et sur la façon d'interfacer le servo avec le MSP430. Le MSP-EXP430G2 est un outil de développement aka LaunchPad fourni par Texas Instruments pour apprendre et s'exercer à utiliser leurs microcontrôleurs. Cette carte fait partie de la catégorie MSP430 Value Line où nous pouvons programmer tous les microcontrôleurs de la série MSP430. Si vous êtes nouveau sur MSP, consultez notre tutoriel de démarrage avec MSP430.
Servomoteur et PWM:
Avant d'entrer dans les détails, nous devons d'abord connaître les servomoteurs.
Un servomoteur est une combinaison de moteur à courant continu, de système de contrôle de position et d'engrenages. Les servos ont de nombreuses applications dans le monde moderne et avec cela, ils sont disponibles dans différentes formes et tailles. Nous utiliserons le servomoteur SG90 dans ce tutoriel, c'est l'un des plus populaires et des moins chers. Le SG90 est un servo à 180 degrés. Donc, avec ce servo, nous pouvons positionner l'axe de 0 à 180 degrés.
Un servomoteur a principalement trois fils, un pour la tension positive, un autre pour la terre et le dernier pour le réglage de la position. Le fil rouge est connecté à l'alimentation, le fil marron est connecté à la terre et le fil jaune (ou BLANC) est connecté au signal.
Chaque servomoteur fonctionne sur des fréquences PWM différentes (la fréquence la plus courante est 50HZ qui est utilisée dans ce tutoriel), alors obtenez la fiche technique de votre moteur pour vérifier la période PWM sur laquelle votre servomoteur fonctionne.
La fréquence du signal PWM (Pulse Width Modulated) peut varier en fonction du type de servomoteur. L'important ici est le DUTY RATIO du signal PWM. Sur la base de ce RATION DE SERVICE, l'électronique de commande règle l'arbre.
Comme le montre la figure ci-dessous, pour que l'arbre soit déplacé à 9o, la RATION DE MISE EN MARCHE doit être de 1 / 18.ie. 1 ms de temps ON et 17 ms de temps OFF dans un signal de 18 ms.
<Pour que l'arbre soit déplacé à l'horloge 12o, le temps de marche du signal doit être de 1,5 ms et le temps d'arrêt doit être de 16,5 ms. Ce rapport est décodé par le système de contrôle en servo et il ajuste la position en fonction de celui-ci. Ce PWM ici est généré à l'aide de MSP430. En savoir plus sur la génération de PWM avec MSP430 ici.
Avant de connecter le servo au MSP430, vous pouvez tester votre servo à l'aide de ce circuit de testeur de servomoteur. Consultez également nos projets Servo ci-dessous:
- Commande de servomoteur à l'aide d'Arduino
- Commande de servomoteur avec Arduino Due
- Interfaçage du servomoteur avec le microcontrôleur 8051
- Commande de servomoteur avec MATLAB
- Contrôle du servomoteur par Flex Sensor
- Commande de position servo avec poids (capteur de force)
Matériaux nécessaires:
- MSP430
- Servo SG90
- Fils mâle-femelle
Schéma de circuit et explication:
Dans MSP430, nous avons des bibliothèques qui sont prédéfinies et les fonctions PWM sont déjà écrites dans ces bibliothèques, donc, nous n'avons pas à nous soucier des valeurs PWM. Vous devez simplement mettre l'angle selon lequel vous souhaitez faire pivoter l'arbre et le repos est géré par ces bibliothèques et microcontrôleur.
Ici, nous utilisons la broche 6, c'est-à-dire P1.4, qui est la broche PWM du MSP430. Mais vous pouvez utiliser n'importe quel code PIN. Il n'est pas nécessaire d'utiliser la broche PWM pour le servo car toutes les fonctionnalités PWM sont écrites dans la bibliothèque elle-même.
Le fichier d'en-tête utilisé pour contrôler le servo est « servo.h ».
Nous utiliserons Energia IDE pour écrire notre code. Le code est simple et facile à comprendre. C'est la même chose que pour Arduino et se trouve dans le menu Exemple. Le code complet et la vidéo sont donnés ci-dessous, vous pouvez modifier le code selon vos besoins et le télécharger sur MSP430
C'est ça!! Nous avons interfacé un servomoteur avec un microcontrôleur PIC, vous pouvez maintenant utiliser votre propre créativité et découvrir des applications pour cela. Il existe de nombreux projets qui utilisent un servomoteur.