Faites ce robot suiveur de ligne pour le projet de foire scientifique

Essayez Notre Instrument Pour Éliminer Les Problèmes





Dans cet article, nous apprenons à construire un circuit de robot suiveur de ligne à l'aide d'Arduino, qui fonctionnera sur une disposition de ligne spécifiquement dessinée et le suivra fidèlement tant qu'il est disponible et traçable par ses capteurs.

Par navneet sajwan



Qu'est-ce qu'un robot suiveur de ligne

Un robot autonome est une machine qui peut effectuer une série d'actions selon les instructions du programmeur, sans être contrôlée manuellement par un être humain en temps réel.

Les suiveurs de ligne (LFR) sont également des voitures-robots autonomes qui sont guidées par un ou plusieurs capteurs et un chemin de ligne noir ou blanc. Ils forment la base des voitures autonomes modernes.



Comme tout robot autonome, les suiveurs de ligne disposent d'une unité de traitement du signal et de prise de décision, de capteurs et d'actionneurs. Si vous êtes un débutant en robotique et que vous voulez le prendre au sérieux, c'est ici que vous devriez commencer. Commençons à le faire.

J'ai utilisé deux capteurs infrarouges et trois roues motrices pour réaliser ce projet. Le nombre minimum de capteurs pouvant être utilisés est de un et huit au maximum sont suffisants pour le suivi de ligne basé sur PID.

Composants requis:

Arduino uno

Châssis

Deux moteurs à piles (b.o.) Et pneus compatibles

Balle de roulette

Deux capteurs infrarouges

Module pilote de moteur

Source de courant

Logiciel Arduino IDE

Voyons maintenant nos composants:

ARDUINO ONE : Imaginez-le comme la salle de contrôle de notre robot. Maintenant, il y a beaucoup de cartes de développement, qui ont été considérées pour ce projet, mais Arduino UNO n'était tout simplement pas à la hauteur des autres. Ce n'est pas que notre protagoniste était supérieur en termes de caractéristiques multidimensionnelles.

Si tel avait été le cas, Raspberry Pi et Intel Edison l'auraient claqué entre les yeux. Les arguments les plus convaincants qui ont conduit à la sélection d'Arduino UNO ont été formés par la combinaison des fonctionnalités, du prix, de la taille et des exigences du projet.

Certaines raisons pertinentes étaient:

TAILLE : Il est assez petit par rapport aux cartes de développement Atmega16 ou Atmega8, il consomme un peu d'espace sur le châssis, vous obtenez donc un robot compact et pratique.

Cela compte vraiment dans les compétitions de robotique. Croyez-moi, vous détesteriez vous promener avec ce gros robot laid, changer de lieu toute la journée.

Plus petite, le robot est plus rapide et plus efficace dans les virages.

MEILLEURE CARTE DE PROTOTYPAGE : Sans aucun doute, Arduino UNO a la meilleure combinaison de fonctionnalités pour prototypage . Une fois que vos circuits sont en place et que votre projet fonctionne parfaitement, vous pouvez le remplacer par quelque chose de plus petit et moins cher comme Arduino Nano et Attiny85 ic.

Pour ceux qui font du suiveur de ligne pour les projets universitaires, je suggère de remplacer UNO par Nano à la fin.

CHÂSSIS : C'est le cadre qui maintient tous les composants en place. Il y a quelques points à considérer lors de l'achat d'un nouveau châssis,

Il doit être léger et solide.

Pour les projets, il vaut mieux en acheter un sur le marché. Mais si vous vous préparez à un concours, je vous suggère fortement de personnaliser le vôtre, en gardant à l'esprit les dimensions et les exigences du concours.

Choisissez un châssis en plastique ou en bois. Lorsque des cadres métalliques entrent en contact avec Arduino, un certain nombre de broches sont court-circuitées. C'est un facteur important sur lequel se concentrer tout en recherchant un châssis.

Gardez votre châssis aussi bas que possible - cela donne de la stabilité au bot.

MOTEURS : Utilisez des batteries légères (B.O.) d.c. moteurs.

BALLE DE CASTOR : Les roues normales fournissent un mouvement de translation le long d'un seul axe, mais une rotule est conçue pour se déplacer dans n'importe quelle direction sur la surface. Cela nous donne trois roues motrices.

La raison de préférer trois roues motrices à quatre roues est en raison de son action de rotation comparativement plus rapide. Vous avez peut-être remarqué les cyclo-pousse qui traversent le trafic comme des reptiles. C'est le cas de notre robot.

CAPTEURS : C'est un appareil qui détecte ou mesure tout paramètre physique de notre environnement et le convertit en signaux électriques. Dans ce cas, le paramètre détecté est les rayons infrarouges.

Les capteurs sont extrêmement fondamentaux pour tout robot. Eh bien, si arduino est le cerveau de notre robot, les capteurs pourraient tout aussi bien jouer le rôle des yeux. Voici quelques informations sur les capteurs:

Les capteurs doivent être orientés de manière à ce que les leds soient orientées vers le sol.

Doit être placé à l'avant de votre bot.

L'espacement minimum entre eux doit être supérieur à la largeur de la ligne noire.

CARTE DE CONDUCTEUR DE MOTEUR : Les pilotes de moteur sont des circuits tampons qui prennent des signaux basse tension pour alimenter les moteurs qui nécessitent une tension plus élevée.

Dans notre cas, Arduino peut fournir une tension suffisante pour entraîner les moteurs, mais il ne peut pas fournir suffisamment de courant. Les broches 5v et GND d'Arduino UNO ont un courant nominal de 200 mA tandis que toute broche GPIO a une valeur nominale de 40 mA. C'est bien inférieur aux courants de démarrage et de décrochage dont nous avons besoin.

Il y a deux pilotes de moteur que je préfère pour ce projet: L298N et L293D. Les deux conviennent également à la réalisation de ce projet.

Bien que, L293D est comparativement moins cher mais a une faible intensité de courant. Leurs connexions sont à peu près les mêmes. Depuis, j'ai donné les connexions pour les deux, c'est à vous de décider comment vous créez votre bot.

SOURCE DE COURANT :

Utilisez un adaptateur 12 V ou une batterie (pas plus de 12 volts).

Placement des composants (de l'avant vers l'arrière):

Capteurs à la tête de votre bot.

Roue pivotante au milieu.

Moteurs et pneus en une seule ligne à l'arrière.

Connexions:

CAPTEURS à ARDUINO :

Connectez la broche du capteur à la broche arduino comme indiqué,

Broche de capteurBroche Arduino
VCC (5v)5V
GND (G)GND
SORTIE CAPTEUR GAUCHE (DO)broche 6
SORTIE CAPTEUR DROIT (DO)broche 7

Remarque: pour vérifier si vos capteurs sont sous tension, pointez la caméra de votre téléphone portable vers le voyant de l'émetteur IR. Vous verrez une LED rougeoyante sur l'écran qui ne peut pas être vue à nos yeux nus. Certaines caméras de téléphones portables modernes ont un filtre infrarouge. Alors, veuillez en tenir compte.

MOTEUR à CONDUCTEUR DE MOTEUR:

Chaque moteur a deux bornes qui doivent être connectées au pilote du moteur. N'essayez jamais de les connecter directement à arduino. En regardant de l'arrière de votre bot, avec des moteurs proches de vous et des capteurs éloignés, connectez-les comme suit:

MOTEURL298NL293D
MOTEUR GAUCHEPIN 1 ET 2PIN 7 ET 8
MOTEUR DROITPIN 13 ET 14PIN 9 ET 10

MOTOR DRIVER pour ARDUINO UNO:

PILOTE MOTEUR (L298N)ARDUINO ONE
PIN 4VIN
PIN 5GND
PIN 65V
PIN 8 et PIN 9PIN 3 et PIN 9
PIN 10 et PIN 11PIN 5 et PIN 10
PIN 7 et PIN 125V
PILOTE MOTEUR (L293D)ARDUINO ONE
PIN 3VIN
PIN 2GND
PIN 15V
PIN 5 ET PIN 6PIN 3 et PIN 9
PIN 11 ET PIN 12PIN 5 et PIN 10
PIN 4 ET PIN 55V

REMARQUE: Les broches 8 et 9 de l298n sont utilisées pour contrôler le moteur connecté à 1 et 2. Et, 10 et 11 moteur de commande connecté aux broches 13 et 14. De même, les broches 5 et 6 de l293d sont utilisées pour contrôler le moteur connecté à 7 et 8 et moteur de commande 12 et 11 connecté aux broches 9 et 10.

Ici, nous sommes les gars, jusqu'à la fin de la partie design. Nous avons encore le codage à faire, mais avant cela, nous passerons en revue les principes qui permettent le suivi de ligne.

Comment fonctionne un capteur infrarouge:

Des capteurs infrarouges (capteurs infrarouges) peuvent être utilisés pour détecter le contraste des couleurs et la proximité des objets. Le principe derrière le fonctionnement du capteur IR est assez basique.

Comme nous pouvons le voir, il dispose de deux LED - une LED émettrice IR et une photodiode. Ils agissent comme une paire émetteur-récepteur. Lorsqu'un obstacle vient devant des rayons émetteurs, ils sont réfléchis et interceptés par le récepteur.

Cela génère un signal numérique qui peut être transmis aux microcontrôleurs et actionneurs pour prendre les mesures nécessaires en cas d'obstacle.

La physique de base nous dit qu'un corps noir absorbe tout le rayonnement électromagnétique incident sur lui tandis qu'un corps blanc le reflète. Ce principe est exploité par un suiveur de ligne pour différencier la surface blanche et noire.

Comment fonctionne un robot suiveur de ligne:

DISPOSITION DES SUIVANTS DE LIGNE

Dans des conditions normales, le robot se déplace de manière à ce que les deux capteurs soient sur fond blanc et que la ligne noire se trouve au milieu des deux capteurs.

Il est programmé pour faire tourner les deux moteurs de sorte que le bot se déplace vers l'avant.

Tout naturellement, au fil du temps, l'un des deux capteurs franchit la ligne noire.

Si le capteur gauche passe au-dessus de la ligne, les moteurs gauche sont arrêtés et, par conséquent, le robot commence à tourner vers la gauche à moins que le capteur gauche ne revienne sur une surface blanche et que la condition normale soit atteinte.

De même, lorsque le capteur droit passe sur la ligne noire, les moteurs droits sont arrêtés et par conséquent, le robot tourne maintenant vers la droite à moins que le capteur ne revienne sur une surface blanche. Ce mécanisme de rotation est connu sous le nom de mécanisme d'entraînement différentiel.

SCHÉMA:

DÉTAILS DE CÂBLAGE:

PROGRAMMATION ET CONCEPTS:

Après avoir terminé la partie circuit, nous allons maintenant passer à la partie programmation. Dans cette section, nous comprendrons le programme qui contrôle notre robot. Voici le code: / *
Created and tested by Navneet Singh Sajwan
*Based on digital output of two sensors
*Speed control added
*/
int left, right
int value=250
void setup()
{
pinMode(6,INPUT)//left sensor
pinMode(7,INPUT)//right sensor
pinMode(9,OUTPUT)//left motor
pinMode(3,OUTPUT)//left motor
pinMode(10,OUTPUT)//right motor
pinMode(5,OUTPUT)//right motor
// Serial.begin(9600)
}
void read_sensors()
{
left=digitalRead(6)
right= digitalRead(7)
}
void move_forward()
{
analogWrite(9,value)//3,9 for left motor
digitalWrite(3,LOW)
analogWrite(10,value)//10,5 for right motor
digitalWrite(5,LOW)
}
void turn_left()
{
digitalWrite(9,LOW)//9,3 for left motor
digitalWrite(3,LOW)
analogWrite(10,value)//10,5 for right motor
digitalWrite(5,LOW)
}
void turn_right()
{
analogWrite(9,value)// 9,3 for left motor
digitalWrite(3,LOW)
digitalWrite(10,LOW)// 10,5 for right motor
digitalWrite(5,LOW)
}
void halt()
{
digitalWrite(9,LOW)// 9,3 for left motor
digitalWrite(3,LOW)
digitalWrite(10,LOW)// 10,5 for right motor
digitalWrite(5,LOW)
}
void print_readings()
{
Serial.print(' leftsensor')
Serial.print(' ')
Serial.print(left)
Serial.print('rightsensor')
Serial.print(' ')
Serial.print(right)
Serial.println()
}
void loop()
{
read_sensors()
while((left==0)&&(right==1)) // left sensor is over black line
{
turn_left()
read_sensors()
print_readings()
}
while((left==1)&&(right==0)) // right sensor is over black line
{
turn_right()
read_sensors()
print_readings()
}
while((left==0)&&(right==0)) // both sensors over the back line
{
halt()
read_sensors()
print_readings()
}
while((left==1)&&(right==1))// no sensor over black line
{
move_forward()
read_sensors()
print_readings()
}
}

Description des fonctions utilisées:

read_sensors (): Il prend les lectures des deux capteurs et les stocke dans les variables gauche et droite.

move_forward (): Lorsque l'arduino exécute cette fonction, les deux moteurs se déplacent vers l'avant.

turn_left (): le moteur gauche s'arrête. Bot tourne à gauche.

turn_right (): le moteur droit s'arrête. Bot tourne à droite.

halt (): le bot s'arrête.

print_readings (): Affiche les lectures des capteurs sur le moniteur série. Pour cela, vous devez décommenter «Serial.begin (9600)» dans la configuration void.

LECTURES DU CAPTEUR:

CAPTEUR SUR LIGNELECTURES DU CAPTEUR
GAUCHEDROIT
CAPTEUR GAUCHE01
CAPTEUR DROIT10
RIEN11
TOUS LES DEUX00

CONTRÔLE DE VITESSE:

Parfois, la vitesse des moteurs est si élevée qu'avant qu'arduino n'interprète les signaux du capteur, le robot perd la ligne. En bref, le bot ne suit pas la ligne en raison de la vitesse élevée et continue de perdre la ligne même si l'algorithme est correct.

Pour éviter de telles circonstances, nous diminuons la vitesse du bot en utilisant la technique PWM. Dans le code ci-dessus, il y a une variable nommée value.

Diminuez simplement la valeur numérique de la fonction pour diminuer la vitesse. Dans Arduino UNO, vous pouvez avoir des valeurs pwm comprises entre 0 et 255 uniquement.

analogWrite (broche, valeur)

0<= value <=255

C'est la fin de mon post en ligne suiveur. J'espère qu'il est suffisamment détaillé pour répondre à toutes vos questions brûlantes et si dans la réalité la plus rare ce n'est pas le cas, nous avons toujours la section des commentaires à votre disposition. Faites part de vos doutes. Bon bricolage!




Une paire de: Voiture robot contrôlée par téléphone portable utilisant le module DTMF Suivant: Commutateur ON / OFF du secteur AC contrôlé par mot de passe