Professional Documents
Culture Documents
Abstract- This project presents the design and implementation El documento se organiza como sigue: La sección II presenta
on the Arduino platform of several basic algorythms related with el desarrollo de cada uno de los elementos que se utilizó. La
some functionalities needed in the automotive autonomous sección III muestra el procedimiento en el software para la
navigation, like line tracking, light seeking and obstacle
avoidance. Besides, these algorythms has been combined to configuración de los sensores y programación de vehículo
obtain a working of a car temperature Control. through the mediante la plataforma “ARDUINO”. La sección IV presenta
bluetooth link to the arduino, transmitting data to the generated el diseño y impresión de la carrocería del vehículo. La sección
cellular application to control the temperature, ignition of the V presenta las pruebas del funcionamiento. Y la sección VI
vehicle and lights on and off. presenta las conclusiones del proyecto.
II. DESARROLLO.
Palabras Clave- algorythms, Arduino
Resistente a niebla y suciedad. Los sensores infrarrojos son unos componentes electrónicos
compuestos normalmente de un LED infrarrojo y
La detección no se ve afectada por la acumulación de polvo o un fototransistor colocados uno al lado del otro, de forma que
suciedad. el LED actúa como emisor y el fototransistor como receptor.
El LED infrarrojo emite luz infrarroja, de mayor longitud de
Objetos de forma compleja detectables. onda que la podemos ver los humanos, así que para nosotros es
invisible. Si esta luz choca con una superficie blanca se
La detección de presencia es estable, incluso para objetos tales reflejará y llegará al fototransistor. Si por el contrario golpea
como bandejas de malla o resortes.
en una superficie negra, el material absorberá la mayoría de la
luz y no llegará al fotoreceptor.
Especificaciones
Dimensiones: 43 x 20 x 17 milímetros
Tensión de alimentación: 5 VDC
Frecuencia de trabajo: 40 kilo Hertz
Alcance máximo: 4,5 metros
Duración mínima del pulso de disparo (nivel
TTL): 10 milisegundos.
Alcance mínimo: 1,7 centímetros
Duración del pulso echo Output (nivel TTL):
100-25000 milisegundos.
Tiempo mínimo de espera entre una medición y Fig.4. Espectro electromagnético y luz visible para el infrarrojo.
el inicio de otros 20 milisegundos.
Hay muchas clases de sensores de este tipo, pero este que
estamos usando se utiliza generalmente para construir robots
seguidores de líneas. Utilizando un par de estos
sensores podemos detectar si se sale por la derecha o por la
izquierda de la línea y reconducirlo de nuevo al interior.
ARDUINO NANO
EEPROM: 1KB
SENSORES INFRARROJOS
3
Temperatura de trabajo: -5 ° C a 45 ° C.
PUENTE H L293B
1 Puente H
L293
4 llantas
4 motores
Como controlar el giro del Motor
LISTA DE MATERIALES
CANTIDA MATERIA IMAGEN Batería
D L 9Vdc
2 Sensores
ultrasonidos
6 pilas
recargables
2 Sensores 1 Carcasa
infrarrojos para robot
tcr5000
7805
1 Modulo
bluetooth
interruptor
1 Arduino
Nano
Les aplicamos un voltaje de 3 Voltios de corriente Para colocar los sensores infrarrojos se implemento
directa de 2 baterías de 1.5 V cada una colocadas un nuevo soporte para que los sensores detecten la
en serie. pista lo más próximo posible a las esquinas de esta.
III. SOFWARE.
Fig.18. Arduino y cableado. Para este proyecto implementamos la plataforma ‘ARDUINO’
la cual nos permitió desarrollar el algoridmo o código para el
Una ves acomodado y comprobado cada elemento proyecto.
del vehículo, procedemos a una prueba para
#include <Ultrasonic.h>
comprobar la funcionalidad y correcta conexión
de cada módulo. Ultrasonic ultrafront(10,11); // (Trig PIN,Echo PIN)
Ultrasonic ultraright(12,13); // (Trig PIN,Echo PIN)
float distancia1;
Fig.19. Arduino y cableado final.
float distancia2;
int sensorValueD;
int sensorValueI;
Serial.print('#'); }
Serial.print(voltaje); goto principal;
Serial.print('+'); }
Serial.print('~');
Serial.println(); if (inbyte == 'i')
delay(100); {
encendido: izquierda();
if (Serial.available() > 0) goto encendido;
{ }
inbyte = Serial.read(); if (inbyte == 'd')
if (inbyte == '1') {
{ derecha();
principal: goto encendido;
if (Serial.available() > 0) }
{ if (inbyte == 'a')
inbyte = Serial.read(); {
if (inbyte == '0') adelante();
{detenerse(); goto encendido;
10
} void detenerse(){
if (inbyte == 'r')
{ analogWrite(Faros, 255);
atras(); digitalWrite(Paro, HIGH);
goto encendido; digitalWrite(DI, LOW);
} digitalWrite(DD, LOW);
if (inbyte == '0') digitalWrite(Mc1, LOW);
{ digitalWrite(Mc2, LOW);
detenerse(); digitalWrite(Md1, LOW);
goto encendido; digitalWrite(Md2, LOW);
} }
}
} void leerUltras(){
} adelante();
sensorValueD=analogRead(A0);
if (distancia2<=10){ sensorValueI=analogRead(A1);
leerUltras(); if(sensorValueI >= 100 && sensorValueD < 100){
if(distancia2<=10){ detenerse();
detenerse(); goto inicio;
delay(300); }
previousMillis1=millis(); goto deFrente2;
girandoI: }
currentMillis1 = millis(); }
if (currentMillis1 - previousMillis1 <= GirosTime) { goto rodeando;
izquierda(); inicio:
sensorValueD=analogRead(A0); delay(1000);
sensorValueI=analogRead(A1); adelante();
if(sensorValueI >= 100 && sensorValueD < 100){ delay(300);
detenerse(); }
goto inicio;
} IV. DISEÑO E IMPRESIÓN.
goto girandoI; El diseño lo realizamos nosotros basándonos una vez
} construido por totalidad el interior, por eso el motivo de los
detenerse(); videos subidos como avances se desarrollaban en base de
delay(300); diseños proporcionados en el internet, ya que no sabíamos el
previousMillis2=millis(); volumen de todos los elementos dentro.
deFrente1: Una vez concluido la parte interna y acomodado los elementos
currentMillis2 = millis(); nos pusimos desacuerdo cual sería el mejor diseño y apariencia
que debe tomar, cada uno aporto un modelo.
if (currentMillis2 - previousMillis2 <= ForwardTime) { Al final se decidió por la marca “HUMMER H1”, por el motivo
adelante(); que en el interior cabían completamente todos los elementos
sensorValueD=analogRead(A0); usados, otro aspecto por que utilizamos es el aspecto cuadrado
sensorValueI=analogRead(A1); que tiene este modelo, cumplía correctamente la forma
if(sensorValueI >= 100 && sensorValueD < 100){ rectangular del alojamiento de los elementos (chasis).
detenerse();
goto inicio;
}
goto deFrente1;
}
}
}
if (distancia2>=50){
detenerse();
delay(300);
previousMillis3=millis();
girandoD:
currentMillis3 = millis();
Fig. 22 . Diseño realizado en Inventor.
REFERENCIAS
Fig.29 . Prueba de toma de curva.
[1] AccuDIY “ULTRASONIC RANGE FINDER HC-SR04” Copyright 2011
[3] http://www.electrontools.com/Home/WP/2016/03/09/como-funciona-el-
Diseñamos una aplicación para el control puente-h-l293b/
[4] http://tienda.bricogeek.com/modulos-bluetooth/800-modulo-bluetooth-hc-
de temperatura, encendido del vehículo, 05.html
encendido de luces y poder controlarlo [5] http://arduino.cl/arduino-nano/
mediante el teléfono. [6] https://www.prometec.net/siguelineas-ir/
[7]https://www.keyence.com.mx/ss/products/sensor/sensorbasics/ultrasonic/i
nfo/
[8] https://electronilab.co/tutoriales/tutorial-de-uso-driver-dual-l298n-para-
motores-dc-y-paso-a-paso-con-arduino/
[9] http://aprender.tdrobotica.co/cursos/linebot-seguidor-de-linea/
[10] http://aprender.tdrobotica.co/cursos/arduino-basico-2/