Posted on

Robot de urmărire linie folosind Arduino și modulul L298N pentru incepători

Robot de urmărire linie folosind Arduino și modulul L298N
Line Follower Robot Using Arduino And L298N Module

Robotul de urmărire a liniilor este un vehicul automat care urmează o linie vizuală neagră sau o cale pe o suprafață.
Folosește o linie neagră pe o suprafață albă sau o linie albă pe o suprafață neagră.
Vom învăța cum să facem un robot de urmărire a liniilor folosind Arduino și modulul de driver de motor L298N.

rfl

CUM FUNCȚIONEAZĂ ROBOTUL „LINE FOLLOWER” ?

Conceptul de robot de urmărire a liniilor este legat de transmiterea și recepția luminii. Culoarea albă reflectă toată lumina care cade pe ea, în timp ce culoarea neagră absoarbe toată lumina.
În acest robot de urmărire a liniilor, am folosit transmițătoare și receptoare IR.
Când lumina IR cade pe o suprafață albă, este reflectată înapoi către receptorul IR, generând unele modificări de tensiune care sunt analizate de Arduino.
Când lumina IR cade pe o suprafață neagră, este absorbită de suprafața neagră și nicio rază nu este reflectată înapoi, astfel încât receptorul IR nu primește nicio rază.
În acest proiect, când senzorul IR detectează o suprafață albă, starea de intrare Arduino devine HIGH, iar când detectează o linie neagră, devine LOW.
Pe baza acestor intrări, un Arduino Uno oferă ieșirea adecvată pentru a controla urmăritorul de linie.

SCHEMA CIRCUIT ROBOT LINIE FOLLER
LINE FOLLOWER ROBOT CIRCUIT DIAGRAM

Line-Follower-Circuit-Diagram

Urmați acest tabel pentru a vă face conexiunile.

L298N driver Pins –> Arduino Pins
ENA –> jumper
IN1 –> D9
IN2 –> D6
IN3 –> D5
IN4 –> D3
ENB –> jumper

Infrared Sensor pins –> Arduino pins
Vcc –> 5v
GND –> GND
Right IR sensor OUT –> D13
Left IR sensor OUT –> D12

Pentru modulul de driver de motor L298N, motoarele sunt conectate la bornele de motor ale modulului de driver de motor.
Driverul motorului are alte 3 borne, în care unul este de 12 volți conectat la baterie.
Terminalul GND este conectat la borna negativă a bateriei și, de asemenea, este conectat la pinul GND al plăcii Arduino
Si 5v este conectat la 5v a plăcii Arduino.

COD ARDUINO PENTRU ROBOT LINE FOLLOWER
ARDUINO CODE FOR LINE FOLLOWER ROBOT

// –––––––––––
// roboromania.ro
#define MOTOR_SPEED 60

int mot1=9;
int mot2=6;
int mot3=5;
int mot4=3;
int left=13;
int right=12;
int Left=0;
int Right=0;

void LEFT (void);
void RIGHT (void);
void STOP (void);

void setup() {
pinMode(mot1,OUTPUT);
pinMode(mot2,OUTPUT);
pinMode(mot3,OUTPUT);
pinMode(mot4,OUTPUT);
pinMode(left,INPUT);
pinMode(right,INPUT);
digitalWrite(left,HIGH);
digitalWrite(right,HIGH);
}

void loop() {
analogWrite(mot1,MOTOR_SPEED);
analogWrite(mot2,0);
analogWrite(mot3,MOTOR_SPEED);
analogWrite(mot4,0);
while(1) {
Left=digitalRead(left);
Right=digitalRead(right);
if((Left==0 && Right==1)==1)
LEFT();
else if((Right==0 && Left==1)==1)
RIGHT();
}
}

void LEFT (void) {
analogWrite(mot3,0);
analogWrite(mot4,30);
while(Left==0) {
Left=digitalRead(left);
Right=digitalRead(right);
if(Right==0) {
int lprev=Left;
int rprev=Right;
STOP();
while(((lprev==Left)&&(rprev==Right))==1) {
Left=digitalRead(left);
Right=digitalRead(right);
}
}
analogWrite(mot1,MOTOR_SPEED);
analogWrite(mot2,0);
}
analogWrite(mot3,MOTOR_SPEED);
analogWrite(mot4,0);
}

void RIGHT (void) {
analogWrite(mot1,0);
analogWrite(mot2,30);
while(Right==0) {
Left=digitalRead(left);
Right=digitalRead(right);
if(Left==0) {
int lprev=Left;
int rprev=Right;
STOP();
while(((lprev==Left)&&(rprev==Right))==1) {
Left=digitalRead(left);
Right=digitalRead(right);
}
}
analogWrite(mot3,MOTOR_SPEED);
analogWrite(mot4,0);
}
analogWrite(mot1,MOTOR_SPEED);
analogWrite(mot2,0);
}

void STOP (void) {
analogWrite(mot1,0);
analogWrite(mot2,0);
analogWrite(mot3,0);
analogWrite(mot4,0);
}
//––––––––––

YouTube

Succes!

Lasă un răspuns