ROBOT BOMBERO
Robtica y mecatrnica
Profesor:
Auxiliares:
Integrantes:
Nicols Encina
Jos Vallejos
Gonzalo Parada
ndice
Introduccin.2
1. Antecedentes Generales...3
1.1 Placa Arduino...3
1.2 Puente H...4
1.3 Motor Servo..5
1.4 BUS I2C.6
1.5 Sensor TPA..6
2. Diseo y construccin...8
2.1 Ideas Generales..8
2.2 Diseo...8
2.3 Proceso de Construccin.11
2.4 Placa circuito integrado ...15
3. Programacin...18
3.1 Movimiento.18
3.2 Servo...18
3.3 Deteccin.......19
3.4 Funcionamiento General..21
4. Resultados....22
5. Conclusiones....25
6. Bibliografa.26
Introduccin
Sin duda alguna hoy en da y desde ya hace algunas dcadas que la
electrnica constituye una parte fundamental en nuestras vidas, la tecnologa de
hoy en da est dominada por los aparatos elctricos. Es probablemente esta
contingencia lo que nos llev a cada uno de nosotros a tomar este taller.
Como grupo decidimos construir un robot bombero, donde el objetivo principal
era buscar y apagar una llama de cierto tamao. En particular, optamos por no
usar agua para extinguir el fuego, puesto que queramos salir un poco de lo
comn adems de que consideramos que usando un material antiflamas el
desarrollo del proyecto podra resultar menos complicado.
En el siguiente informe presentamos todo lo necesario para comprender
y poder reconstruir nuestro robot, desde los dispositivos y aparatos electrnicos
que usamos y construimos, los planos y sus medidas correspondientes y para el
caso de la programacin en particular se encuentra la lgica que decidimos
seguir ms que cdigos explcitos, sin embargo, todo este material extra estar
disponible en un disco compacto. Adems de todo lo anterior, creemos nosotros
que es muy importante mencionar y comentar los errores y problemas que se
nos fueron presentando durante el desarrollo del proyecto, y esperamos que
sean de utilidad para que si el posible lector se encamina en un proyecto similar,
no cometa los mismos errores.
1. Antecedentes Generales
1.1 PLACA ARDUINO
Arduino es una plataforma de hardware libre, basada en una placa con
un micro controlador y un entorno de desarrollo, diseada para facilitar el uso de
la electrnica en proyectos multidisciplinares. Para este proyecto usamos
Arduino UNO, esta plataforma es la encargada de controlar todos los
componentes del robot, como el puente H, el sensor trmico y un motor servo.
Para la comunicacin dispone de una serie de pines, algunos de carcter
anlogo y otro de carcter digital, donde en esta ltima clasificacin se distinguen
tambin pines especiales para seales del tipo PWM. (Como ser el caso del
cable de seal para el motor Servo y tambin los cables para controlar los
motores DC con el puente H).
Arduino posee su propio entorno de desarrollo para desarrollar y cargar
programas a la plataforma.
1.2 PUENTE H
El puente H es un dispositivo, que permite a un motor DC cambiar el sentido
de su rotacin. Este dispositivo electrnico est formado por 4 interruptores (S1,
S2, S3, S4), para cambiar el sentido de los motores lo que se hace es cerrar/abrir
los interruptores S1 y S4 o S2 y S3.
Los interruptores S1 y S2 no pueden estar abiertos/cerrados al mismo tiempo,
porque si no se produce cortocircuito.
2. Diseo y Construccin
2.1 IDEAS GENERALES:
Dado que se trata de un robot bombero, se pens en primera instancia en
la idea de apagar el fuego con agua, pero esto requera mucho tiempo entre el
lapso de una prueba y otra, esto puesto que haba que limpiar antes de realizar
otra prueba. Se busc otro mtodo y se decidi el uso de un pao anti-flamas,
pero dada su rareza y alto costo se us un pao de cuero ms econmico, el
cual puede ser expuesto por casi un minuto a fuego sin ninguna alteracin.
En primera instancia se pens en un carro de 4 ruedas, pero dada la
dificultad de su implementacin se decidi usar 2 ruedas ubicadas en el medio
del carro, esto para que, al momento de realizar un giro en 360, este sea en
torno a su eje y no se produjera un desplazamiento hacia adelante/atrs, el cual
podra influir constantemente en la ubicacin del robot.
El pao de cuero se ubic a una altura de 22 cm con respecto al suelo y
16.5 cm con respecto al robot, para as no perjudicar el campo de visin del
sensor y as, obtener datos ms precisos. El pao se fij mediante una argolla e
hilo de pescar, el cual se mantiene siempre tenso hasta el momento en el cual
se debe apagar el fuego. Este hilo, ubicado paralelo al brazo, est dispuesto en
pasadores.
Para minimizar el tamao del robot se ubicaron los componentes de
manera tal, que la distancia entre ellos fuera mnima, no as sin afectar el
funcionamiento de ellos ni interceptando cables.
Para la cada del pao se ubic un servo en frente del ARDUINO, est
conectado mediante hilo de pescar a un pasador. Este ltimo unido a una golilla
la cual est sujeta a un hilo de pescar fijo al pao, cosa de que, al momento de
soltar la golilla, producto de la gravedad, el pao caiga.
Como punto de apoyo se propone fijar una rueda loca en la parte trasera
del carro, para minimizar el roce con el suelo al momento del giro (se podra
poner otro tipo de punto fijo pero eventualmente slo molestara).
Uno de los problemas de este mtodo es que, al caer el pao sobre el
fuego, la llama podra escapar y llegar al sensor, lo que en el largo plazo
implicara un deterioro de este ltimo.
2.2 DISEO:
Uno de los objetivos fue el minimizar el tamao del Robot, reduciendo as
su peso y mejorando su maniobrabilidad. Se ide el uso de un pao de cuero
para el apagado del fuego, el cual se situ en la parte superior del robot para que
as, no afecte en la visin del sensor.
El brazo tiene un largo de 23 cm y 26 cm en su tramo ms largo, cuyo
largo fue estimado a partir de la distancia a la cual deba ubicarse el fuego, para
que as, el pao tuviera un alto rango de xito en el apagado del fuego. En su
largo, el brazo cuenta con 4 perforaciones, las que permiten la existencia de
pasadores, los cuales permiten el desplazamiento del hilo de pescar unido al
pao.
Medidas:
1. Alto total: 23 cm
2. Ancho total: 38 cm
3. Ancho base (parte del sensor) = 19cm
4. Ancho base (parte de la rueda) = 20 cm
5. Ruedas: 7,65
6. Altura al carro= 4cm
7. Dimetro cuero= 26cm
10
Materiales
Componentes
Batera 12 V 3 A.H
Placa de prototipado
Arduino UNO
Termo retrctil
Hilo de pescar
2 motores DC 12 volt
Switch de 2 pasos
Puente H
2 Resistencias
Servo HS-311
Cuadro de madera 20 x 20 cm
Pinhead
Crim
Slim C
Pernos M3 C
Rueda libre
JACK
Separadores
11
En el taller mecnico
se realiz el corte de la placa
y el posterior doblez de esta.
Junto con la perforacin para
la integracin de los dems
componentes
lo
cual
consisti en la primera parte
del armado.
En
una
segunda
instancia de construccin se
hicieron los cortes respectivos de
Figura 12. Doblez de la placa de aluminio,
la madera para realizar la
base del robot.
aislacin de los componentes.
Ya en una tercera instancia se comenz la fijacin de todas las partes del
robot, finalizando as el proceso en 3 talleres, lo que correspondera a 6 horas
tiles.
La mayora de las uniones se hicieron va soldadura (entre componentes
mecnicos y electrnicos), como por ejemplo los cables de parlante unidos a los
motores DC. Para la confeccin de los cables se usaron los pinhead, crim y el
mismo cable AWG24.
La fijacin de las placas se compuso principalmente con la intervencin
de pasadores, los cuales, evitaban el contacto fsico con algn material en
particular, estos pasadores se fijaron a las partes de madera y estas, finalmente
unidas con silicona a la lmina de aluminio.
Problemas: Uno de los problemas en la construccin del robot, fueron
ciertos contratiempos en el taller mecnico, cuya mquina dobladora no
funcionaba. Junto con eso, el cierre de este por una semana dificult el avance
de no solo el nuestro, si no varios grupos. El posponer ciertas etapas del proyecto
para semanas futuras, retrasando as el avance en la construccin.
Ya ms avanzado el proyecto, uno de los contratiempos en el proyecto
fue el roce ejercido por los pasadores con el hilo que sujeta el pao, lo que
implicaba que el pao no caa sobre el fuego y comenzaba a calentarse ms de
lo debido. Junto con este problema, al pasar cerca del fuego sin apagarlo, el hilo
de pescar se quemaba fcilmente al pasar sobre el aura de calor que emanaba
la llama.
12
13
14
15
16
17
3. Programacin
3.1 MOVIMIENTO
El movimiento se basa en el uso de las funciones:
void GiroDer(int v)
void GiroIzq(int v)
void avance(int v)
void retroceso(int v)
void giro90grados()
Que reciben como parmetro el voltaje para poner en el PWM y por lo tanto
la rapidez del carro en cada funcin. A continuacin se presenta como est
programada la funcin GiroDer():
void GiroDer(byte v){
digitalWrite(MotorIzq1,1);
// Estas dos lneas fijan la polaridad del
MotorIzq para un
digitalWrite(MotorIzq2,0);
// sentido, denotemoslo sentido1
digitalWrite(MotorDer1,1); // Estas dos lneas fijan el sentido del MotorIzq
digitalWrite(MotorDer2,0); // tambin en el sentido1
analogWrite(MotorIzqPWM,v);
analogWrite(MotorDerPWM,v);
Como ambos motores giren en el mismo sentido, pero como los motores
estn instalados en sentidos opuestos el movimiento que adopta el robot
corresponde a un giro hacia la derecha. Las otras funciones de movimiento se
implementan de manera anloga, donde solo se cambia de manera oportuna el
sentido de cada motor.
3.2 SERVO
Durante la programacin, el motor servo nos trajo algunos problemas que
significaron un gran gasto de tiempo. El problema fue que al incluir la librera
Servo, esta usaba algunos pines extra, (En Arduino 0016 y anteriores, la librera
Servo utiliza la funcionalidad incorporada en el hardware, y solo funciona en las
patillas 9 y 10 (y no funciona en el Arduino Mega). En este caso, si solo se utiliza
un servo, el otro pin no puede ser utilizado para la salida normal de PWM
con analogWrite(). Por ejemplo, en Arduino 0016 y anteriores, no se puede tener
un servo en el pin 9 y salida PWM en el pin 10)*, en particular el pin donde
estaba conectado el PWM para controlar uno de los motores DC a travs del
puente H. Para solucionar el problema, el movimiento del servo se fue
implementado sin utilizar la librera Servo de la siguiente forma:
*Citado desde pgina de Arduino, ubicada en la Bibliografa
18
void
voidservo_move(unsigned
servo_move(unsignedintinttime,unsigned
time,unsignedn)n)
{{
for
for(unsigned
(unsignedintinti=0;i<n;++i)
i=0;i<n;++i)
{{
digitalWrite(ServoPin,1);
digitalWrite(ServoPin,1);
delayMicroseconds(time);
delayMicroseconds(time);
digitalWrite(ServoPin,0);
digitalWrite(ServoPin,0);
delayMicroseconds(20000-time);
delayMicroseconds(20000-time);
}}
}}
3.3 DETECCIN
El sensor trmico es un dispositivo que se debe conectar usando el
protocolo I2C, por lo tanto es necesario invocar la librera Wire. Pero en general,
la implementacin para obtener los datos de los 8 pixeles del sensor infrarrojo
fue obtenida de internet (el cdigo completo se encuentra en la seccin de
anexos). Se implement una funcin que llamada detectar() que cada vez que
se ejecuta actualiza una variable global correspondiente a un arreglo de datos
que contiene la temperatura detectada en cada pixel. Dentro de la misma funcin
detectar(), son llamadas otro grupo de funciones que actualizan variables
globales notables para determinar la deteccin de fuego o tambin la cercana al
fuego, a continuacin se presenta la implementacin de la funcin getProm():
void getProm(){
void getProm(){
prom=0;
prom=0;
for (int i=1; i<9; i++){
for (int i=1; i<9; i++){
el indice 0 porque
prom+=TempActuales[i];
prom+=TempActuales[i];
}
}prom=prom/8;
prom=prom/8;
}
}
Intercepcin
Variable X 1
Variable X 2
Variable X 3
Variable X 4
Variable X 5
Variable X 6
Coeficientes
-69,9949423
0
0
0,1019934
0,63083851
0
0,53994909
22
4. Resultados
Los resultados obtenidos fueron favorables, el robot cumpli el objetivo
principal de buscar y apagar el fuego. En cuanto al resultado de la construccin
podemos decir que en general fue fiel al diseo, las cosas improvisadas como la
fijacin de los dispositivos no implic mayor dificultad ni problemas que nos
hubieran hecho cambiar partes fundamentales del diseo.
Por otro lado, en la parte de la programacin funcion, sin embargo sabemos
que se puede mejorar bastante. Un resultado a considerar es que el robot logra
apagar solo llamas de un cierto tamao, si son muy anchas la distancia aparente
es menor a la distancia real por lo que el mecanismo de apagado se activa antes.
Otro resultado relevante es que si la llama es detectada desde muy lejos, la
programacin de centrado y avance continuo hacen que el robot avance
demasiado lento hacia el objetivo, lo que puede resultar un poco tedioso, sin
embargo sabemos que con un poco de fineza en la programacin esto puedo
haberse solucionado fcilmente. Siguiendo con los resultados de la deteccin, la
espiral cuadrada que queramos que hiciera el robot en la bsqueda del objetivo
no funciona como queramos, esto por los problemas de calibracin de la vuelta
completa y el giro en noventa grados como tambin un avance del robot que no
es perfectamente en lnea recta que se intent corregir pero no se pudo, en
general la calibracin del robot dependa mucho de las condiciones externas que
hacan que algunas acciones fueran distintas luego de cada prueba.
23
24
5. Conclusiones
25
6. Bibliografa
26