- Matériaux nécessaires:
- Concepts de suiveur de ligne
- Schéma de circuit et explication:
- Programmation du microcontrôleur PIC:
- Le suiveur de ligne PIC en action:
Un robot suiveur de ligne est un robot simple mais fascinant à construire pour la plupart des étudiants / amateurs. Dans ce didacticiel, nous allons apprendre comment fonctionne un robot suiveur de ligne et comment nous pouvons en construire un à l'aide du microcontrôleur PIC PIC16F877A. PIC16F877A est un microcontrôleur polyvalent 40 broches de Microchip, nous avons utilisé ce circuit intégré dans notre série complète de tutoriels PIC. Si vous êtes nouveau, vous voudrez peut-être jeter un œil à ces didacticiels PIC pour apprendre les bases de ce circuit intégré et comment télécharger des programmes sur le microcontrôleur. Puisque nous avons déjà couvert ces informations dans nos tutoriels, nous les ignorerons dans l'explication ci-dessous.
Si vous êtes intéressé par la robotique, vous devriez être très familier avec le nom « Robot suiveur de ligne ». Ce robot est capable de suivre une ligne, simplement en utilisant une paire de capteurs et de moteurs. Ce robot vous donne de la place pour un développement infini et des robots comme Kiva (robot d'entrepôt Amazon) en sont un exemple. Vous pouvez également consulter nos autres robots suiveurs de ligne:
- Robot suiveur de ligne utilisant le microcontrôleur 8051
- Robot suiveur de ligne utilisant Arduino
- Robot suiveur de ligne utilisant Raspberry Pi
Matériaux nécessaires:
- PIC16F877A
- Capteur IR (2Nos)
- Moteur à engrenages CC (2Nos)
- Pilote de moteur L293D
- Chaises (vous pouvez également créer les vôtres en utilisant des cartons)
- Banque d'alimentation (toute source d'alimentation disponible)
Concepts de suiveur de ligne
Le robot suiveur de ligne est capable de suivre une ligne à l'aide d'un capteur infrarouge. Ce capteur a un émetteur IR et un récepteur IR. L'émetteur IR (LED IR) transmet la lumière et le récepteur (photodiode) attend que la lumière transmise revienne. Une lumière infrarouge ne reviendra que si elle est réfléchie par une surface. Alors que toutes les surfaces ne reflètent pas une lumière infrarouge, seul le blanc la surface de couleur peut les refléter complètement et la surface de couleur noire les observera complètement, comme indiqué dans la figure ci-dessous. En savoir plus sur le module de capteur IR ici.
Nous allons maintenant utiliser deux capteurs infrarouges pour vérifier si le robot est en piste avec la ligne et deux moteurs pour corriger le robot s'il sort de la piste. Ces moteurs nécessitent un courant élevé et doivent être bidirectionnels; par conséquent, nous utilisons un module de pilote de moteur comme L293D. Nous aurons également besoin d'un microcontrôleur comme PIC pour instruire les moteurs en fonction des valeurs du capteur IR. Un schéma de principe simplifié de celui-ci est présenté ci-dessous.
Ces deux capteurs IR seront placés un de chaque côté de la ligne. Si aucun des capteurs ne détecte de ligne noire, le microcontrôleur PIC indique aux moteurs d'avancer comme indiqué ci-dessous
Si le capteur gauche arrive sur une ligne noire, le microcontrôleur demande au robot de tourner à gauche en faisant tourner la roue droite seule.
Si le capteur droit arrive sur la ligne noire, le microcontrôleur demande au robot de tourner à droite en faisant tourner la roue gauche seule.
Si les deux capteurs apparaissent sur la ligne noire, le robot s'arrête.
De cette façon, le robot pourra suivre la ligne sans sortir de la piste. Voyons maintenant à quoi ressemble le circuit et le code.
Schéma de circuit et explication:
Le schéma de circuit complet de ce robot suiveur de ligne basé sur PIC est illustré ci-dessous
Le circuit utilise deux capteurs infrarouges et une paire de moteurs à engrenages CC avec un module de commande de moteur comme indiqué ci-dessus. Le module de pilote de moteur utilisé dans ce projet est L293D, nous aurons besoin d'un pilote de moteur car la broche de sortie du microcontrôleur PIC ne peut pas fournir suffisamment de courant pour que les moteurs puissent fonctionner. Ce module sera alimenté directement à partir de la source d'alimentation (5V) comme indiqué dans le circuit. Le module a quatre broches (deux pour chaque moteur) qui sont connectées au PIC pour contrôler la direction des moteurs. Nous avons également deux capteurs IR qui agissent comme une entrée pour le microcontrôleur PIC. Ces capteurs iront haut (1) s'ils sont sur une surface blanche et vont bas (0) sur une surface noire. Les connexions complètes des broches sont illustrées dans le tableau ci-dessous.
S. Non |
Connecté depuis |
Connecté à |
1 |
Capteur IR Broche gauche |
RD2 (broche 21) |
2 |
Capteur IR Broche de sortie droite |
RD3 (broche 22) |
4 |
Broche du canal A du moteur 1 |
RC4 (broche 23) |
5 |
Broche du canal B du moteur 1 |
RC5 (broche 25) |
6 |
Broche du canal A du moteur 2 |
RC6 (broche 26) |
sept |
Broche du canal B du moteur 2 |
RC7 (broche 27) |
Dans le matériel actuel, j'ai utilisé une banque d'alimentation qui donnera une sortie de + 5V directement via son port USB; par conséquent, j'ai contourné le régulateur de tension 7805 et alimenté le PIC, les capteurs et les moteurs en utilisant le même. Vous pouvez faire la même chose en utilisant une batterie 12V avec un régulateur comme indiqué dans le circuit.
Programmation du microcontrôleur PIC:
Une fois que vous êtes prêt avec votre matériel, il est temps de commencer la programmation. Le programme complet de ce projet de robot suiveur de ligne PIC est donné à la fin de cette page. Cependant, les éléments importants sont expliqués ci-dessous.
Initialisez les broches d'E / S par les lignes suivantes. Les 2 broches du capteur IR servent d'entrée et les quatre broches du moteur agissent comme des broches de sortie.
TRISD2 = 1; TRISD3 = 1; // Bath les broches du capteur IR sont déclarées comme entrée TRISC4 = 0; TRISC5 = 0; // Broches du moteur 1 déclarées comme sortie TRISC6 = 0; TRISC7 = 0; // Moteur 2 broches déclaré comme sortie
Maintenant, nous devons lire l'état du capteur IR et contrôler le moteur en conséquence. Par exemple, si les deux capteurs sont hauts (ne passe pas sous la ligne noire), nous déplaçons les deux moteurs vers l'avant comme indiqué dans le programme ci-dessous.
if (RD2 == 1 && RD3 == 1) // Les deux capteurs ne dépassent pas la ligne noire {RC4 = 0; RC5 = 1; // Moteur 1 avant RC6 = 1; RC7 = 0; // Moteur 2 en avant}
Si le capteur gauche passe au-dessus de la ligne noire, nous faisons un virage à droite en maintenant le moteur 1 immobile et en faisant tourner le moteur 2 vers l'avant. Ce type de virage est appelé virage différentiel.
else if (RD2 == 0 && RD3 == 1) // Le capteur gauche est sur la ligne noire {RC4 = 1; RC5 = 1; // Arrêt moteur 1 RC6 = 1; RC7 = 0; // Moteur 2 en avant}
De même, si le capteur droit passe au-dessus de la ligne noire, alors le robot est amené à tourner à gauche en maintenant le deuxième moteur immobile et en faisant tourner le premier moteur seul dans le sens avant comme indiqué ci-dessous.
else if (RD2 == 1 && RD3 == 0) // Le capteur droit est sur la ligne noire {RC4 = 0; RC5 = 1; // Moteur 1 avant RC6 = 1; RC7 = 1; // Arrêt du moteur 2}
Enfin, si les deux capteurs se trouvent sous une ligne noire, il est temps d'arrêter le bot. Cela peut être fait en mettant toutes les broches des deux moteurs en position haute. Le code pour faire de même est indiqué ci-dessous
else // Les deux Capteur sur ligne noire {RC4 = 1; RC5 = 1; // Arrêt moteur 1 RC6 = 1; RC7 = 1; // Arrêt du moteur 2}
C'est-à-dire que le programme est prêt et peut être téléchargé sur le PIC en utilisant n'importe quel programmeur comme PicKit.
Le suiveur de ligne PIC en action:
Une fois que le matériel et le code sont prêts, il est temps d'agir. Comme indiqué précédemment, j'ai utilisé une banque d'alimentation pour alimenter le bot, donc tout ce que j'ai à faire est simplement de connecter la banque d'alimentation au bot qui a le matériel configuré et le code déjà téléchargé.
La carte PIC Perf a été conçue pour notre série de tutoriels PIC, dans lesquels nous avons appris à utiliser le microcontrôleur PIC. Vous voudrez peut-être revenir à ces didacticiels de microcontrôleur PIC utilisant MPLABX et XC8 si vous ne savez pas comment graver un programme à l'aide de Pickit 3, car je vais sauter toutes ces informations de base.
Maintenant, lancez simplement le bot sur une ligne noire et vous devriez le regarder en suivant la ligne.
Vous pourriez rencontrer des difficultés au début dans ce cas, lisez plus loin. Si les roues tournent en sens inverse, changez simplement la polarité du moteur dont la roue tourne dans le sens opposé. Si le bot s'écarte de la ligne, échangez le capteur infrarouge et tout devrait être bon.
Le fonctionnement complet du bot peut être trouvé dans la vidéo ci-dessous. J'espère que vous aimez le projet et que vous avez aimé construire quelque chose de similaire. Si vous rencontrez des problèmes pour faire fonctionner cela, vous pouvez les publier dans la section commentaires ci-dessous pour le résoudre ou utiliser nos forums pour discuter du contenu technique.