- Matériaux nécessaires
- Concepts de suiveur de ligne
- Explication du circuit
- Fonctionnement du robot suiveur de ligne utilisant MSP430
- Schéma
- Explication de la programmation
Le robot suiveur de ligne est l'un des projets de robotique populaires parmi les étudiants et les débutants en raison de sa simplicité. Il suit une ligne, noire ou blanche, selon la façon dont vous programmez votre microcontrôleur. Ici, nous fabriquons un robot suiveur de ligne en utilisant le tableau de bord MSP430 de Texas Instruments, qui suit la ligne noire. Si vous êtes nouveau sur le tableau de bord MSP430, veuillez lire notre Tutoriel Premiers pas avec MSP430.
Matériaux nécessaires
- LaunchPad MSP430G2 de Texas Instruments
- Le module pilote de moteur L298D
- Fils de connexion
- Modules de capteur IR
- Chasis, roue, montagnes russes
- Energia IDE
- Alimentation (3.3v) et 5v-12v
Concepts de suiveur de ligne
Le concept de suiveur de ligne est lié à la lumière. Nous avons utilisé le comportement de la lumière à la surface en noir et blanc. Lorsque la lumière tombe sur une surface blanche, elle se reflète presque complètement et en cas de surface noire, la lumière est absorbée par la surface noire. Ce comportement expliqué de la lumière est utilisé dans ce robot suiveur de ligne.
Dans ce robot suiveur de ligne basé sur MSP430, nous avons utilisé des émetteurs IR et des récepteurs IR également appelés photodiodes. Ils sont utilisés pour envoyer et recevoir de la lumière. IR transmet des lumières infrarouges. Lorsque les rayons infrarouges tombent sur une surface blanche, ils sont réfléchis et capturés par les photodiodes, ce qui génère des changements de tension. Lorsque la lumière infrarouge tombe sur une surface noire, la lumière est absorbée par la surface noire et aucun rayon n'est réfléchi, ainsi la photodiode ne reçoit ni lumière ni rayons. Pour en savoir plus sur les capteurs infrarouges, suivez le lien.
Ici, dans ce robot suiveur de ligne basé sur MSP430, lorsque le capteur détecte une surface blanche, MSP obtient 1 en entrée et lorsque détecte une ligne noire, MSP obtient 0 en entrée.
Explication du circuit
Nous pouvons diviser l'ensemble du robot suiveur de ligne en différentes sections telles que la section de capteur, la section de commande et la section de pilote.
Section capteur: Cette section contient des diodes IR, un potentiomètre, un comparateur (ampli-op) et des LED. Le potentiomètre est utilisé pour régler la tension de référence à une borne du comparateur et les capteurs IR détectent la ligne et fournissent un changement de tension à la deuxième borne du comparateur. Ensuite, le comparateur compare les deux tensions et génère un signal numérique en sortie. Ici, dans ce circuit, nous avons utilisé deux comparateurs pour deux capteurs. Le LM358 est utilisé comme comparateur. Le LM358 a intégré deux amplificateurs opérationnels à faible bruit.
Section de contrôle: Le Launchpad MSP430 est utilisé pour contrôler l'ensemble du processus du robot suiveur de ligne. Les sorties des comparateurs sont connectées aux broches numériques P1_3 et P1_4 du Launchpad MPS430. Le Launchpad MSP430 lit ces signaux et envoie des commandes au circuit pilote pour piloter le suiveur de ligne.
Section Driver: La section Driver comprend un pilote de moteur et deux moteurs CC. Le pilote de moteur est utilisé pour entraîner les moteurs car le Launchpad MSP430 ne fournit pas suffisamment de tension et de courant au moteur. Nous avons donc ajouté un circuit de pilote de moteur pour obtenir suffisamment de tension et de courant pour le moteur. Ici, nous avons utilisé le pilote L298d pour piloter les moteurs à courant continu. Le Launchpad MSP430 envoie des commandes à ce pilote de moteur, puis il entraîne les moteurs.
Nous avons développé des robots suiveurs de ligne utilisant différents microcontrôleurs:
- Robot suiveur de ligne utilisant le microcontrôleur 8051
- Robot suiveur de ligne utilisant Arduino
- Robot suiveur de ligne utilisant Raspberry Pi
- Robot suiveur de ligne utilisant le microcontrôleur PIC
Fonctionnement du robot suiveur de ligne utilisant MSP430
Le fonctionnement du suiveur de ligne est très intéressant. Le robot suiveur de ligne détecte la ligne noire à l'aide d'un capteur, puis envoie le signal au Launchpad MSP430. Ensuite, le Launchpad MSP430 entraîne le moteur en fonction de la sortie des capteurs.
Ici, dans ce projet, nous utilisons deux modules de capteurs IR, à savoir le capteur gauche et le capteur droit. Lorsque les capteurs gauche et droit détectent du blanc, le robot avance.
Si le capteur gauche arrive sur la ligne noire, le robot tourne le côté gauche.
Si le capteur droit détecte une ligne noire, le robot tourne le côté droit jusqu'à ce que les deux capteurs atteignent une surface blanche. Lorsque la surface blanche arrive, le robot recommence à avancer.
Si les deux capteurs apparaissent sur la ligne noire, le robot s'arrête.
Schéma
Le circuit de ce robot suiveur de ligne MSP430 est très simple. La sortie des comparateurs est directement connectée aux broches numériques p1_3 et P1_4 du Launchpad du MSP430. Et les broches d'entrée IN1, IN2, IN3 et IN4 du pilote de moteur sont connectées respectivement à la broche numérique P1_5, P2_0, P2_1, P2_2 du Launchpad du MSP430. Un moteur est connecté à la broche de sortie du pilote de moteur OUT1 et OUT2, et un autre moteur est connecté à OUT3 et OUT4. Ici, nous avons utilisé une alimentation de 3,3 V pour alimenter tout le circuit, à l'exception du module de pilote de moteur. Nous avons fourni 8v au module de pilote de moteur. L'utilisateur peut utiliser 5v-12v.
Vous pouvez également créer votre propre module IR, comme je l'ai construit sur Perf Board. Voici le circuit pour le module IR:
Explication de la programmation
Le programme complet et la vidéo se trouvent à la fin de cet article.
Dans un programme, tout d'abord, nous définissons la broche d'entrée et de sortie pour le capteur et les moteurs. Définissez ensuite des macros pour la direction du suiveur de ligne, puis écrivez une directive pour sélectionner la sortie du capteur
Remarque: Le capteur peut être actif bas ou actif haut donc vérifiez d'abord quelle est la sortie du capteur, puis sélectionnez la directive en commentant ou décommentant activeLowMode . Pour active HIGH, commentez lamacro activeLowMode .
#define l_sensor P1_3 #define r_sensor P1_4 int pins = {P1_5, P2_0, P2_1, P2_2}; #define forward 0x05 #define left 0x06 #define right 0x09 #define stop 0x00 // # define activeLowMode #ifdef activeLowMode int res = {forward, left, right, stop}; #else int res = {arrêt, droite, gauche, avant}; #fin si
Après cela, dans la fonction de configuration , nous donnons la direction au capteur et à la broche du moteur. Et puis dans la fonction de boucle , nous vérifions les entrées et envoyons la sortie au module de commande de moteur pour faire fonctionner les moteurs.
void setup () { for (int i = 0; i <4; i ++) pinMode (pins, OUTPUT); pinMode (l_sensor, INPUT); pinMode (r_sensor, INPUT); } boucle vide () {int sense = (digitalRead (l_sensor) << 1) - digitalRead (r_sensor); pour (int i = 0; i <4; i ++) digitalWrite (broches, (res >> i) & 0x01); }
Il y a quatre conditions dans ce suiveur de ligne que nous lisons en utilisant le Launchpad MSP430. Nous avons utilisé deux capteurs à savoir le capteur gauche et le capteur droit.
Conditions: sortie HIGH active
Contribution |
Production |
Mouvement De robot |
||||
Capteur gauche |
Capteur droit |
Moteur gauche |
Moteur droit |
|||
LS |
RS |
LM1 |
LM2 |
RM1 |
RM2 |
|
0 |
0 |
0 |
0 |
0 |
0 |
Arrêtez |
0 |
1 |
1 |
0 |
0 |
0 |
Tournez à droite |
1 |
0 |
0 |
0 |
1 |
0 |
Tournez à gauche |
1 |
1 |
1 |
0 |
1 |
0 |
Vers l'avant |
Le programme est écrit selon les conditions du tableau ci-dessus. Consultez le code complet et la vidéo de démonstration ci-dessous.