Documentos de Académico
Documentos de Profesional
Documentos de Cultura
TÉCNICO
“DANIEL CÓRDOVA TORAL”
Practica 1 segundo trimestre.
Nombre: David Israel Yuquilima Parra.
Curso: Tercero “A” Mecatrónica.
Tema: Prototipo de un robot seguidor de línea.
Objetivo: con lo aprendido sobre el sensor KY033 realizar un prototipo de un robot
seguidor de línea, con la ayuda de motorreductores, Arduino, driver L298N y 2 sensores
KY033, con el fin que cada sensor comande un motor.
Lista de materiales:
- PC.
- Programa IDE Arduino.
- Fritzing.
- Arduino uno.
- Driver L298N.
- 2 motorreductores.
- 2 sensores KY033.
- Protoboard.
- Cables macho-macho.
- Cables macho-hembra.
Esquema y conexiones:
Programación:
Código:
int dp = 5;
int dn = 4;
int sd = 2;
int vd = 3;
int vald;
int ip = 9;
int in = 10;
int si = 8;
int vi = 11;
int vali;
void setup(){
pinMode(dp,OUTPUT);
pinMode(dn,OUTPUT);
pinMode(vd,OUTPUT);
pinMode(sd,INPUT);
pinMode(ip,OUTPUT);
pinMode(in,OUTPUT);
pinMode(vi,OUTPUT);
pinMode(si,INPUT);
}
void adelante(){
digitalWrite(dp,1);
digitalWrite(dn,0);
digitalWrite(ip,1);
digitalWrite(in,0);
analogWrite(vd,255);
analogWrite(vi,255);
}
void stop(){
digitalWrite(dp,0);
digitalWrite(dn,0);
digitalWrite(ip,0);
digitalWrite(in,0);
analogWrite(vd,0);
analogWrite(vi,0);
}
void derecha(){
digitalWrite(dp,0);
digitalWrite(dn,1);
digitalWrite(ip,1);
digitalWrite(in,0);
analogWrite(vd,200);
analogWrite(vi,175);
}
void izquierda(){
digitalWrite(dp,1);
digitalWrite(dn,0);
digitalWrite(ip,0);
digitalWrite(in,1);
analogWrite(vd,200);
analogWrite(vi,175);
}
void loop(){
vald = digitalRead(sd);
vali = digitalRead(si);
Funcionamiento:
Elementos:
Software:
El funcionamiento es el siguiente:
Cuando el sensor reconoce la línea manda una señal al Arduino, esto se realiza
individualmente por cada sensor.
Para ejecutar acciones con esta señal se usó la función If (si).
Realizamos funciones que ejecuten las acciones de adelante, izquierda, derecha y
paro, cumpliendo con las siguientes condiciones.
- Adelante = máxima velocidad.
- Derecha – Izquierda = mediana velocidad.
- Paro = velocidad nula.
El sensor derecho (vald) va a controlar el motor derecho.
El sensor izquierdo (vali) va a controlar el motor izquierdo.
Realizamos unas condiciones las cuales son:
Si la señal del sensor derecho = 1 ir hacia adelante.
Si la señal del sensor izquierdo = 1ir hacia adelante.
if ((vald==1) && (vali==1)) {
adelante ();
}
Si la señal del sensor derecho = 1 girar a la derecha.
Si la señal del sensor izquierdo = 0 girar a la derecha.
if ((vald==1) && (vali==0)) {
derecha ();
}
Si la señal del sensor derecho = 0 girar a la izquierda.
Si la señal del sensor izquierdo = 1 girar a la izquierda.
if ((vald==0) && (vali==1)) {
izquierda ();
}
Si la señal del sensor derecho = 0 se debe parar.
Si la señal del sensor izquierdo = 0 se debe parar.
if ((vald==0) && (vali==0)) {
stop ();
}
con esto conseguimos que al momento que los dos sensores reconozcan la línea el
robot avance, cuando solo detecte el sensor de la derecha girar a la derecha,
cuando solo el sensor de la izquierda reconozca la línea debe girar a la izquierda y
cuando no detecten la línea no debe moverse.
Conclusiones y recomendaciones:
La conclusión que saque después de realizar esta práctica es que a pesar de que se usaron
componentes básicos de electrónica son suficientes para realizar una práctica muy interesante, ya
que cumple las expectativas esperadas además nos sirve como base para adentrarse en el campo
de la robótica.
están dirigidas a las personas que quieran realizar esta práctica y son las siguientes:
1. Revisar que la alimentación este bien conectada para que el driver funcione.
2. Comprobar la polaridad de los motores para saber a dónde conectar.
3. Reconocer que pin corresponde a la salida del positivo y negativo del driver, para así
saber a qué pines del Arduino conectar para programar.
4. Conectar correctamente la alimentación del sensor KY033.
5. Reconocer y programar que pines van a ser las entradas de las señales de los sensores.
6. Conocer y entender el funcionamiento de la función If.
7. Conectar todos los GND a un común ya que si no se hace eso la práctica no funcionara.
8. Recomiendo usar un Protoboard para realizar conexiones comunes.