You are on page 1of 22

Seguidor de línea

Ing. Dafnis Ernesto Pareja Galdames

Docente: Ing. Dafnis Ernesto Pareja Galdames


Definición
Un seguidor de línea es un robot móvil que sigue una trayectoria
marcada con una línea la cual debe diferenciarse del
entorno la mayoría de veces es negra con un fondo blanco o a la
inversa ,ahora podemos hacernos varias preguntas y revisaremos unas
explicaciones rápidas…

Docente: Ing. Dafnis Ernesto Pareja Galdames


Definición
¿Por que tiene que la línea tiene que ser negra o blanca y el fondo de igual
manera ?

Usualmente los sensores usados tienen un emisor y un receptor los cuales


funcionan dependiendo de la luz reflejada por el piso ahora se debe tener en
cuenta que el color negro absorbe las longitudes de honda de la luz, es decir,
no la refleja y el color blanco refleja todas las longitudes de honda haciendo
teniendo una diferencia de voltaje generada por el receptor que se activara o
desactivara dependiendo de el color de la superficie en la que se refleje por
eso se utilizan estos dos colores , se podría hacer con otros colores
pero dificultaría el ”Sensado” debido a la sensibilidad de dichos sensores.
Docente: Ing. Dafnis Ernesto Pareja Galdames
Materiales
“Seguidor de línea”

Docente: Ing. Dafnis Ernesto Pareja Galdames


Lista de materiales
SENSORES
• (2) sensores CNY70 y /o (2)sensores TCRT5000
RESISTENCIAS
• (2) resistencias de 560 ohmios
• (2) resistencias de 20K ohmios
• (6) resistencias de 1K ohmios
COMPONENTES
• (4) transistores 2N2222A
• (2) LED rojos
• (2) Motorreductores de minimo 1Kg de fuerza y 100PRM
ALIMENTACIÓN
• (1) Bateria 9 Voltios

Docente: Ing. Dafnis Ernesto Pareja Galdames


Lista de materiales
OTROS
• (2-4) llantas de carro y/o corcholatas y/o taparroscas y/o CDs.
• ( ) Cables para conectar
• (1) Protoboard
• (1) Base para carro (Opcional)

Docente: Ing. Dafnis Ernesto Pareja Galdames


Circuito electrónico
“Seguidor de línea”

Docente: Ing. Dafnis Ernesto Pareja Galdames


Circuito: “Seguidor de línea”.

Docente: Ing. Dafnis Ernesto Pareja Galdames


Funcionamiento: “Sensor óptico”.

Docente: Ing. Dafnis Ernesto Pareja Galdames


Conexión
“Seguidor de línea”

Docente: Ing. Dafnis Ernesto Pareja Galdames


Transistor Transistor
(2N2222A) (2N2222A)
Moto reductor
Sensor LED (5V)
(NY70) B B
E C E C

A (-)
C2 E
1kΩ
C1 330Ω 1kΩ
(+)
1kΩ

Protoboard

SENSOR CNY70 TRANSISTOR


E= Emisor (2N2222A)
C1= Colector E= Emisor
C2= Cátodo B= Base
A= Ánodo C= Colector
330Ω

Naranja/Naranja/Amarillo Dorado(Tolerancia)

LED (5V)
1kΩ

Café/Negro/Rojo Dorado(Tolerancia)
Configuración
“Seguidor de línea”

Docente: Ing. Dafnis Ernesto Pareja Galdames


Regulador de voltaje 7805

Docente: Ing. Dafnis Ernesto Pareja Galdames


Sensor óptico CNY70

Docente: Ing. Dafnis Ernesto Pareja Galdames


Transistor 2N2222A

Docente: Ing. Dafnis Ernesto Pareja Galdames


Sensor óptico TCRT5000

Docente: Ing. Dafnis Ernesto Pareja Galdames


Programación Arduino
“Seguidor de línea”

Docente: Ing. Dafnis Ernesto Pareja Galdames


Propuesta 1
• int infraPin1 = 10; • void loop() • digitalWrite(OUTPUT4,0);

• int infraPin2 = 11; • { • }

• int valorInfra1 = 0; • valorInfra1 = digitalRead(infraPin1); • }

• int valorInfra2 = 0; • Serial.println(valorInfra2); • else

• int OUTPUT4 = 4; • valorInfra2 = digitalRead(infraPin2); • {

• int OUTPUT3 = 3; • Serial.println(valorInfra2); • if(valorInfra2==0)

• int OUTPUT2 = 5; • {

• int OUTPUT1 = 6; • if(valorInfra1==0) • digitalWrite(OUTPUT3,0);

• int vel = 200; • { • digitalWrite(OUTPUT4,0);

• if(valorInfra2==0) • digitalWrite(OUTPUT1,0);

• void setup () • { • digitalWrite(OUTPUT2,1);

• { • digitalWrite(OUTPUT1,0); • }

• Serial.begin(9600); • digitalWrite(OUTPUT2,1); • else

• pinMode(infraPin1, INPUT); • digitalWrite(OUTPUT3,1); • {

• pinMode(infraPin2, INPUT); • digitalWrite(OUTPUT4,0); • digitalWrite(OUTPUT1,1);

• pinMode(OUTPUT1, OUTPUT); • } • digitalWrite(OUTPUT2,0);

• pinMode(OUTPUT2, OUTPUT); • else • digitalWrite(OUTPUT3,0);

• pinMode(OUTPUT3, OUTPUT); • { • digitalWrite(OUTPUT4,1);

• pinMode(OUTPUT4, OUTPUT); • digitalWrite(OUTPUT1,0); • }

• } • digitalWrite(OUTPUT2,0); • }

• digitalWrite(OUTPUT3,1); • }

Docente: Ing. Dafnis Ernesto Pareja Galdames


Propuesta 2
• --------------------------------------------------------------------------- */
------------------------
• byte i; // variable global
• /* Ejemplo seguidor de linea básico
• void setup() {
para mayor informacion visita
www.dynamoelectronics.com • // Declaración de pines de entrada y salida

los pines a usar son


Pulsador -- Arduino D12 • pinMode(12, INPUT); // Pulsador entrada

Motor A atras -- Arduino D10 • pinMode(2, INPUT); // Sensor Derecho

Motor A adelante -- Arduino D5 • pinMode(4, INPUT); // Sensor izquierdo

Motor B adelante -- Arduino D6 • pinMode(10, OUTPUT); // Motor A Atras

Motor B atras -- Arduino D9 • pinMode(5, OUTPUT); // Motor A adelante

Sensor derecho – Arduino D2 • pinMode(6, OUTPUT); // Motor B adelante

Sensor Izquierdo – Arduino D4 • pinMode(9, OUTPUT); // Motor B Atras

En este ejemplo se puede ver una programacion basica de • digitalWrite(12, HIGH); // Pullup para pulsador
un robot seguidor de linea usando dos sensores y un control
ON/OFF para los motores, los sensores de linea marcan un • }
alto cuando estan en color blanco y un bajo en color negro,
en este caso los sensores van por fuera de la linea negra

Docente: Ing. Dafnis Ernesto Pareja Galdames


Continuación propuesta 2
• void loop() { • }

• inicio: // etiqueta de inicio del programa por uso de saltos • else if (digitalRead(2) && !digitalRead(4)) // Lectura de las señales digitales y ejecución cuando el sensor derecho entra a la
lÃÂnea negra
• analogWrite(5, 0); // Velocidad 0
• { analogWrite(5, 0);
• analogWrite(6, 0); // Velocidad 0
• analogWrite(6, 0);
• analogWrite(10, 0); // Velocidad 0
• analogWrite(10, 23);
• analogWrite(9, 0); // Velocidad 0
• analogWrite(9, 23);

• }
• while (digitalRead(12)==1); // Pulsador para inicio de ejecución, el programa solo iniciará cuando se pulse
• else // Lectura de las señales digitales y ejecución cuando los dos sensores estan en linea negra
• while (digitalRead(12)==0); // una vez sea pulsado se espera a que se deje de presionar para iniciar
• { analogWrite(5, 0);
• delay(100); // retardo de 100ms se evitan rebotes
• analogWrite(6, 0);
• for(;;)
• analogWrite(10, 0);
• {
• analogWrite(9, 0);
• if (digitalRead(4) && digitalRead(2)) // Lectura de las señales digitales y ejecucion cuando los dos sensores estan en blanco
• }
• { analogWrite(5, 80); // Movimiento adelante
• if (digitalRead(12)==0) // Lectura del pulsador de arranque y parada
• analogWrite(6, 0);
• { while (digitalRead(12)==0); // Si fue pulsado espera a que se deje de precionar y para
• analogWrite(10, 0);
• delay(100); // retardo de 100ms se evitan rebotes
• analogWrite(9, 80);
• goto inicio;} // Vuelve a inicio a esperar pulso para arranque
• }
• }
• else if (!digitalRead(2) && digitalRead(4)) // Lectura de las señales digitales y ejecución cuando el sensor izquierdo entra a
la linea negra • }

• { analogWrite(5, 23); ----------------------------------------------------------------------------------------------------

• analogWrite(6, 23);

• analogWrite(10, 0);

• analogWrite(9, 0);
Docente: Ing. Dafnis Ernesto Pareja Galdames
Links de referencia:
Páginas Web:
1. http://cecytegmecatronica.blogspot.com/p/diagnostica.html
Seguidor 1 (Propuesta)
2. https://www.taloselectronics.com/blogs/tutoriales/robot-seguidor-de-linea-para-arduino-codigo
Seguidor 2
3. https://www.youtube.com/watch?v=CcIQNCyfTVk
Seguidor 3
4. http://m-team.blogspot.com/2010/10/nivel-fisico.html
Seguidor 4
Docente: Ing. Dafnis Ernesto Pareja Galdames

You might also like