You are on page 1of 27

Proyecto Tpicos I:

Robtica y
Mecatrnica
Programacin y diseo de un sistema de
control mediante bluetooth de un ventilador
comn.
Profesor: Sr. Renato Salinas
Alumnos: Italo Curotto
Felipe Silva
Csar Moncado
Benjamn Mora
10-7-2014



UNIVERSIDAD DE SANTIAGO DE CHILE
Facultad de Ingeniera
Departamento de Ingeniera Mecnica




1 | P g i n a


NDICE

Pg.


Resumen del Informe 2


Objetivo General 2


Objetivos Especficos 2


Funcionalidad y Finalidad 3


Idea General 4


Instrumentacin a Utilizar 5


Presupuesto 8


Planificacin 9


Proceso de elaboracin del Proyecto 10


Esquemas de Circuitos 22


Anlisis y Conclusiones 24


Bibliografa 26


UNIVERSIDAD DE SANTIAGO DE CHILE
Facultad de Ingeniera
Departamento de Ingeniera Mecnica




2 | P g i n a


Resumen del Informe

El siguiente informe presenta el proyecto a realizar para la asignatura de
tpicos I: robtica y mecatrnica. En esta primera entrega se da a conocer la
idea general del proyecto, el por qu de la eleccin, adems de los materiales
a utilizar para su construccin, los costos asociados y la planificacin mediante
una carta Gantt, luego se muestra el proceso de elaboracin del proyecto,
incluyendo el cdigo de programacin y los pasos de elaboracin, Finalmente
se presentan las conclusiones y la bibliografa consultada.

Objetivo General

Disear, construir y programar un ventilador capaz de encenderse mediante
un sensor de temperatura para luego ser controlado mediante un telfono
celular va bluetooth.

Objetivos especficos

Plantear la finalidad del proyecto.
Reconocer los instrumentos a utilizar.
Establecer el costo del proyecto.
Elaborar la planificacin identificando tareas y plazos.
Construccin del circuito y programacin del arduino.
Obtener un ptimo funcionamiento del proyecto.




UNIVERSIDAD DE SANTIAGO DE CHILE
Facultad de Ingeniera
Departamento de Ingeniera Mecnica




3 | P g i n a


Funcionalidad y Finalidad

La finalidad de un ventilador puede ser muy amplia y vasta, su uso ms
comn es hacer circular y renovar el aire en un lugar cerrado para refrescar a
los ocupantes, eliminar olores, etc. La forma en que lo hace consiste en hacer
girar un rodete de aspas mediante un motor elctrico para que estas
produzcan una diferencia de presiones y as aumentar el efecto de transporte
de masa para disminuir la resistencia de transmisin de calor por conveccin.

Su funcionalidad radica en disminuir la transferencia de calor por medio de la
conveccin. Tambin se utiliza para desplazar aire o un gas de un lugar a otro,
dentro de o entre espacios cerrados, para usos industriales o residenciales,
para ventilacin o para aumentar la circulacin de aire en un espacio habitado,
bsicamente se utiliza para refrescar. Por todas estas razones como grupo se
pens que es un elemento indispensable en climas clidos.













UNIVERSIDAD DE SANTIAGO DE CHILE
Facultad de Ingeniera
Departamento de Ingeniera Mecnica




4 | P g i n a


Idea General

Aunque existe una gran gama de posibilidades para trabajar con los
ventiladores, ya sea de tipo industrial como: Centrfugos, Helicocentrfugos,
Helicoidales de distintas presiones y caudales. Tambin estn los de uso
domstico, los de oficina y aquellos ms pequeos para usos en partes
especficas de sistemas como por ejemplo los ventiladores de un computador.

Como grupo, se pens en aumentar la comodidad para el usuario al usar un
ventilador domstico, por lo que se le harn modificaciones para lograr esta
tarea impuesta. Especficamente, finalidad que se quiere otorgar al proyecto es
armar un ventilador con la capacidad de encenderse por medio de un sensor
trmico que, para las condiciones de diseo establecidas para la ciudad de
Santiago en verano, se encienda cuando el cuarto, saln u oficina alcance la
temperatura de 24 C, y a su vez por medio del celular controlar la velocidad
en rpm del ventilador mediante un telfono celular a travs de bluetooth a
gusto del usuario sin necesidad de moverse para realizarlo.











UNIVERSIDAD DE SANTIAGO DE CHILE
Facultad de Ingeniera
Departamento de Ingeniera Mecnica




5 | P g i n a


Instrumentacin a Utilizar

Arduino UNO:

Microcontrolador: ATmega328.
Voltaje de entrada: 7-12V.
Pines digitales: 14 de I/O (6 salidas PWM).
Entradas anlogas: 6.
Memoria Flash: 32K.
Velocidad del reloj: 16 Mhz.

Ventilador:

Marca: Thermaltake.
Modelo: Blue AF0046.
Mximo flujo de aire: 65,3 CFM.
Dimetro: 200 mm.
Tensin nominal: 12V.

Sensor de Temperatura:

Marca: One Wire.
Modelo: DS18B20.
Rango de Temperaturas: -55 a 125C.
Precisin: 0.5C (Entre -10 y 85C).
Resolucin: Seleccionable de 9 a 12 bits.


UNIVERSIDAD DE SANTIAGO DE CHILE
Facultad de Ingeniera
Departamento de Ingeniera Mecnica




6 | P g i n a


Mdulo Bluetooth Serial:

Marca: iNex.
Modelo: Bluestick.
Velocidad Transferencia datos: 3Mbps.
Voltaje de operacin: 3.3V a 5.5V.
Tecnologa Bluetooth: v2.0.


Protoboard:

Cantidad de puntos de amarre: 400.
Dimensiones: 3,29x2,15.


Pack de Jumpers:

Largo cables: 200 y 100 mm.
Nmero de cables: 21.



Pack de Resistencias:

Cantidad: 5.




UNIVERSIDAD DE SANTIAGO DE CHILE
Facultad de Ingeniera
Departamento de Ingeniera Mecnica




7 | P g i n a


Fuente de poder:

Marca:Hui Cheng.
Modelo: HC-11-120060EU.
Input: 100-240V~, 50/60 Hz, 0,5A.
Output: 12Vc, 0,6A.
Ta: 40C.


Conector DC Adaptador Macho:

Jack Barrel: Centro-positivo.
Dimensiones Jack Barrel: 5,5 X 2,1 [mm].


Transistor TIP 31C:

Ic (max): 3A.
Pd: 40W.
BVcbo min: 100V.
BVceo min: 100V.
Vce (sat) max: 1.2V.







UNIVERSIDAD DE SANTIAGO DE CHILE
Facultad de Ingeniera
Departamento de Ingeniera Mecnica




8 | P g i n a


Presupuesto

A continuacin se presenta el presupuesto del proyecto de acuerdo a los
materiales utilizados en su construccin:

Material Modelo Lugar de Cotizacin Precio
Ventilador Thermaltake Blue
AF0046
PcFactory $ 12.090
Arduino UNO R3 MCI Ltda. $ 14.013
Sensor trmico OneWire DS18B20 MCI Ltda. $ 3.856
Mdulo Bluetooth Bluestick MCI Ltda. $ 14.716
Protoboard Transparente - 400pts MCI Ltda. $ 2.956
Packde Jumpers 12" - 10 MCI Ltda. $ 2.841
Fuente de Poder 12Vc - 0,6A MCI Ltda. $ 4.640
Adaptador DC Para Jack Barrel MCI Ltda. $ 2.332
TOTAL: $ 57.444


Los precios aqu presentados estn dentro del rango de lo ms barato que se
pudo encontrar de acuerdo a los requerimientos planteados para el proyecto.











UNIVERSIDAD DE SANTIAGO DE CHILE
Facultad de Ingeniera
Departamento de Ingeniera Mecnica




9 | P g i n a


Planificacin

Con tal de poseer una mayor organizacin durante la realizacin del proyecto
se plantearon diferentes metas en distintas fechas del semestre, suponiendo
en una primera instancia que el proyecto deba presentarse el da 25 de Junio.
La primera carta Gantt confeccionada es la siguiente:






09-05-2014 14-05-2014 19-05-2014 24-05-2014 29-05-2014 03-06-2014 08-06-2014 13-06-2014 18-06-2014 23-06-2014
Eleccin del Proyecto
Identificacin de Objetivos
Investigacin del Proyecto
Diseo del Proyecto
Identificacin de Materiales
Cotizacin de Materiales
Anlisis de Funcionamiento
Diseo del Funcionamiento
Proceso de Fabricacin
Programacin Arduino
Simulacin
Control de Calidad


UNIVERSIDAD DE SANTIAGO DE CHILE
Facultad de Ingeniera
Departamento de Ingeniera Mecnica




10 | P g i n a


La operacin real de construccin del proyecto se alarg ms de lo previsto
debido a las dificultades que se fueron presentando durante su construccin. A
continuacin se detalla, mediante una carta Gantt, las fases de construccin
del proyecto.







09-05-2014 19-05-2014 29-05-2014 08-06-2014 18-06-2014 28-06-2014 08-07-2014
Eleccin del Proyecto
Identificacin de Objetivos
Investigacin del Proyecto
Diseo del Proyecto
Identificacin de Materiales
Cotizacin de Materiales
Anlisis de Funcionamiento
Diseo del Funcionamiento
Proceso de Fabricacin
Programacin Arduino
Simulacin
Control de Calidad


UNIVERSIDAD DE SANTIAGO DE CHILE
Facultad de Ingeniera
Departamento de Ingeniera Mecnica




11 | P g i n a


Proceso de Elaboracin del Proyecto

Una vez decidido el proyecto a elaborar, se comenz con la seleccin de
materiales. Se buscaron los materiales ms baratos adecuados para abaratar
costos de construccin.
El primer paso a realizar fue la conexin del sensor de temperatura y lograr su
ptimo funcionamiento. Para esto se conecta el sensor a la fuente de 5Vc del
arduino, a la tierra y al pin digital nmero 2 para la lectura de datos. Una vez
hecho esto se procede a la programacin. Para realizar las pruebas se
establece que a una temperatura mayor de 25C se debe encender un LED. El
cdigo para realizar esto es el siguiente:

#include <OneWire.h> // incluye una biblioteca propia del sensor
int DS18S20_Pin = 2; //seal del sensor en el pin digital 2
OneWire ds(DS18S20_Pin); // en el pin digital 2

int outPin = 11;

void setup(void) {
Serial.begin(9600);
pinMode(outPin, OUTPUT);
}

void loop(void) {
float temperature = getTemp();
Serial.println(temperature);


UNIVERSIDAD DE SANTIAGO DE CHILE
Facultad de Ingeniera
Departamento de Ingeniera Mecnica




12 | P g i n a



delay(100); //se hace mas lenta la recepcion de datos para leerlos mas
facilmente
float getTemp(){
//retorna el valor de temperature en grados celsius
byte data[12];
byte addr[8];

if ( !ds.search(addr)) {
//si no hay mas sensors, se reseta la busqueda
ds.reset_search();
return -1000;
}
if ( OneWire::crc8( addr, 7) != addr[7]) {
Serial.println("CRC is not valid!");
return -1000;
}
if ( addr[0] != 0x10 && addr[0] != 0x28) {
Serial.print("Device is not recognized");
return -1000;
}
ds.reset();
ds.select(addr);
ds.write(0x44,1); // comienza la conversin

byte present = ds.reset();
ds.select(addr);


UNIVERSIDAD DE SANTIAGO DE CHILE
Facultad de Ingeniera
Departamento de Ingeniera Mecnica




13 | P g i n a


ds.write(0xBE); // Se lee el Scratchpad

for (int i = 0; i < 9; i++) { // se necesitan 9 bytes
data[i] = ds.read();
}

ds.reset_search();
byte MSB = data[1];
byte LSB = data[0];

float tempRead = ((MSB << 8) | LSB); //usando 2 compilaciones
float TemperatureSum = tempRead / 16;
return TemperatureSum;
}

if (getTemp() > 25){
digitalWrite(outPin, HIGH); //si la temperatura es mayor a 25C, se enciende
}

if (getTemp() < 25){
digitalWrite(outPin, LOW); //si la temperature es menor a 25C, no funciona
}

Una vez comprobado que el cdigo funciona correctamente, se procede a la
instalacin del ventilador. Para esto se us un transistor TIP 31C, ya que el
voltaje de funcionamiento del ventilador es de 12v, por lo que fue necesario
instalarlo para comandarlo mediante el arduino. Se conecta el arduino a la


UNIVERSIDAD DE SANTIAGO DE CHILE
Facultad de Ingeniera
Departamento de Ingeniera Mecnica




14 | P g i n a


base del transistor con una resistencia en paralelo de 1K para reducir
voltaje. El cable negativo del ventilador va a al colector del transistor y el
emisor del transistor se conecta a la tierra del arduino. Luego en paralelo al
colector y al emisor se conecta un diodo para proteger el transistor de del
voltaje cuando el ventilador est detenido. La fuente se conecta directamente
al ventilador (cable positivo) y a la tierra del arduino (cable negativo).
Realizada esta conexin se realiza una prueba idntica a la anterior con el
sensor de temperatura, solo que se reemplaza el LED por la conexin a la base
del transistor. Una vez que se hizo funcionar el ventilador, se procede a aadir
el mdulo bluetooth.
El mdulo bluetooth serial se conecta de la siguiente manera. La salida TX
del mdulo va directamente a la entrada RX del arduino, en cambio la
entrada RX del mdulo va conectada a travs de una resistencia de 1K a la
salida TX del arduino. El mdulo se energiza con 3.3v, conectndolo a esta
fuente del arduino y a la tierra. Una vez conectado se realiza la programacin
para poder controlar el ventilador a travs de un puerto PWM, la cual es la
siguiente:

#define START_CMD_CHAR '*'
#define END_CMD_CHAR '#'
#define DIV_CMD_CHAR '|'
#define CMD_DIGITALWRITE 10
#define CMD_ANALOGWRITE 11
#define CMD_TEXT 12
#define CMD_READ_ARDUDROID 13
#define MAX_COMMAND 20 // numero maximo de codigos de comando
usados para chequear error.


UNIVERSIDAD DE SANTIAGO DE CHILE
Facultad de Ingeniera
Departamento de Ingeniera Mecnica




15 | P g i n a


#define MIN_COMMAND 10 // nmero mnimo de cdigos de comando usados
para chequear errores
#define IN_STRING_LENGHT 40
#define MAX_ANALOGWRITE 255
#define PIN_HIGH 3
#define PIN_LOW 2

String inText;

void setup(void) {
Serial.begin(9600);

void loop(void) {
Serial.flush();
int ard_command = 0;
int pin_num = 0;
int pin_value = 0;

char get_char = ' '; //lee el serial

// espera por datos entrantes
if (Serial.available() < 1) return; // si el serial esta vacio, retorna al loop

// analiza el commando de partida entrante
get_char = Serial.read();
if (get_char != START_CMD_CHAR) return; // si no hay commando, retorna
al loop


UNIVERSIDAD DE SANTIAGO DE CHILE
Facultad de Ingeniera
Departamento de Ingeniera Mecnica




16 | P g i n a


// analiza el tipo de commando entrante
ard_command = Serial.parseInt(); // lee el comando

// analiza el numero de pin entrante y el valor
pin_num = Serial.parseInt(); // lee el pin
pin_value = Serial.parseInt(); // lee el valor


// Obtener el Analogwrite desde el software del celular
if (ard_command == CMD_ANALOGWRITE) {
analogWrite( pin_num, pin_value );
return; // Done. return to loop();
}
}

Finalizadas estas pruebas se ve la posibilidad de leer el valor de la temperatura
directamente en el celular, para esto se introduce este cdigo dentro del void
loop:

// Enviar datos al software del telefono
if (ard_command == CMD_READ_ARDUDROID) {
Serial.print(" Analog 0 = ");
Serial.println(analogRead(A0));
return; // se realiza, vuelve al loop
}




UNIVERSIDAD DE SANTIAGO DE CHILE
Facultad de Ingeniera
Departamento de Ingeniera Mecnica




17 | P g i n a


Luego, la ltima fase es hacer funcional el modulo bluetooth junto al sensor,
para esto se deben cambiar las condiciones. Se establece que para una
temperatura menor a 25C no debe funcionar, para una temperatura igual a
25C se enciende en ventilador, y para una temperatura mayor a 25C el
modulo tiene el control del ventilador. El cdigo final se presenta a
continuacin:

#include <OneWire.h> // incluye una biblioteca propia del sensor
int DS18S20_Pin = 2; //seal del sensor en el pin digital 2
OneWire ds(DS18S20_Pin); // en el pin digital 2

#define START_CMD_CHAR '*'
#define END_CMD_CHAR '#'
#define DIV_CMD_CHAR '|'
#define CMD_DIGITALWRITE 10
#define CMD_ANALOGWRITE 11
#define CMD_TEXT 12
#define CMD_READ_ARDUDROID 13
#define MAX_COMMAND 20 // numero maximo de codigos de comando
usados para chequear error.
#define MIN_COMMAND 10 // nmero mnimo de cdigos de comando usados
para chequear errores
#define IN_STRING_LENGHT 40
#define MAX_ANALOGWRITE 255
#define PIN_HIGH 3
#define PIN_LOW 2



UNIVERSIDAD DE SANTIAGO DE CHILE
Facultad de Ingeniera
Departamento de Ingeniera Mecnica




18 | P g i n a


int outPin = 11;
String inText;

void setup(void) {
Serial.begin(9600);
pinMode(outPin, OUTPUT);
}

void loop(void) {
float temperature = getTemp();
Serial.println(temperature);

delay(100); //se hace mas lenta la muestra de datos para leerlos mas
facilmente
float getTemp(){
//retorna el valor de temperature en grados celsius
byte data[12];
byte addr[8];

if ( !ds.search(addr)) {
//si no hay mas sensores, se resetea la busqueda
ds.reset_search();
return -1000;
}
if ( OneWire::crc8( addr, 7) != addr[7]) {
Serial.println("CRC is not valid!");
return -1000;


UNIVERSIDAD DE SANTIAGO DE CHILE
Facultad de Ingeniera
Departamento de Ingeniera Mecnica




19 | P g i n a


}
if ( addr[0] != 0x10 && addr[0] != 0x28) {
Serial.print("Device is not recognized");
return -1000;
}
ds.reset();
ds.select(addr);
ds.write(0x44,1); // comienza la conversin

byte present = ds.reset();
ds.select(addr);
ds.write(0xBE); // Se lee el Scratchpad

for (int i = 0; i < 9; i++) { // se necesitan 9 bytes
data[i] = ds.read();
}

ds.reset_search();
byte MSB = data[1];
byte LSB = data[0];

float tempRead = ((MSB << 8) | LSB); //usando 2 compilaciones
float TemperatureSum = tempRead / 16;
return TemperatureSum;
}




UNIVERSIDAD DE SANTIAGO DE CHILE
Facultad de Ingeniera
Departamento de Ingeniera Mecnica




20 | P g i n a


if (getTemp() == 25){
digitalWrite(outPin, HIGH); //si la temperatura el igual a 25C, se enciende
}

if (getTemp() < 25){
digitalWrite(outPin, LOW); //si la temperatura es menor a 25C, no funciona
}

if (getTemp() > 25){ //si la temperatura es mayor a 25C, controla el bluetoot
Serial.flush();
int ard_command = 0;
int pin_num = 0;
int pin_value = 0;

char get_char = ' '; //lee el serial

// espera por datos entrantes
if (Serial.available() < 1) return; // si el serial esta vacio, retorna al loop

// analiza el commando de partida entrante
get_char = Serial.read();
if (get_char != START_CMD_CHAR) return; // si no hay commando, retorna
al loop
// analiza el tipo de commando entrante
ard_command = Serial.parseInt(); // lee el comando




UNIVERSIDAD DE SANTIAGO DE CHILE
Facultad de Ingeniera
Departamento de Ingeniera Mecnica




21 | P g i n a


// analiza el numero del pin entrante y el valor
pin_num = Serial.parseInt(); // lee el pin
pin_value = Serial.parseInt(); // lee el valor


// Obtener el Analogwrite desde el software del celular
if (ard_command == CMD_ANALOGWRITE) {
analogWrite( pin_num, pin_value );
return; // Done. return to loop();
}
}

// Enviar datos al software del telefono
if (ard_command == CMD_READ_ARDUDROID) {
Serial.print(" Analog 0 = ");
Serial.println(analogRead(A0));
return; // se realiza, vuelve al loop
}
}










UNIVERSIDAD DE SANTIAGO DE CHILE
Facultad de Ingeniera
Departamento de Ingeniera Mecnica




22 | P g i n a


Esquemas de Circuitos

Esquema circuito arduino









UNIVERSIDAD DE SANTIAGO DE CHILE
Facultad de Ingeniera
Departamento de Ingeniera Mecnica




23 | P g i n a


Esquema Elctrico:











UNIVERSIDAD DE SANTIAGO DE CHILE
Facultad de Ingeniera
Departamento de Ingeniera Mecnica




24 | P g i n a


Anlisis y Conclusiones

Finalizada la construccin del proyector y logrado su funcionamiento, cabe
destacar el gran logr que se realiz. Comenzando el proyecto con poco
conocimiento en la materia, se debi estudiar cada aspecto del
funcionamiento, logrando una gran compresin de los circuitos y la
programacin arduino.

Una vez que se comenz con el proyecto se encontraron varios problemas
para poder trabajar, cosas tan simples como disponibilidad de los integrantes
del grupo a situaciones ms complejas, ya sea, la programacin del arduino o
de no considerar elementos para el desarrollo del ventilador y tener que
detener los tiempos de trabajo para poder comprar los artculos faltantes.
Los casos ms significativos son los siguientes:

La primera dificultad consisti en la programacin del sensor trmico. Al
comprarlo, el grupo no se percat que era digital y no analgico por lo
que la programacin era diferente a la que se habia buscado, as que se
tuvo que modificar el script para hacerlo funcionar. Despus de
investigar se logr hacer funcionar el sensor de temperatura. Hecho esto
se establecieron las condiciones. La primera fue que el sensor diera la
partida con el comando if, en que la temperatura lmite de encendido
es de 25C.

Otra dificultad que hubo fue la de programacin del mdulo bluetooth
junto con el sensor, ya que se debi coordinar las acciones en conjunto
para que las ordenes de ambos no se superpusieran. Haciendo que el


UNIVERSIDAD DE SANTIAGO DE CHILE
Facultad de Ingeniera
Departamento de Ingeniera Mecnica




25 | P g i n a


sensor actuara a los 25 grados exactos, y que para las temperaturas
mayores a esas fuera controlado desde el celular. Esto se hace con una
aplicacin descargada (Ardudroid) que controla las rpm del ventilador en
sincronizacin con el modulo bluetooth puesto en el arduino. Adems
una vez descargado este software, se observ la posibilidad de mostrar
en el celular las temperaturas entregadas por el sensor, as que se
decidi afrontar este desafo, teniendo xito finalmente.

Otra dificultad fue la de no considerar las reducciones de voltaje internas
del circuito, incluso la reduccin desde el ventilador hacia el arduino
porque el este funciona con 12v, mientras que el arduino entrega 5v
desde los puertos PWM. Ante esta disyuntiva, se compr un transistor y
una fuente de 12v para as controlar el ventilador desde el arduino.

En cuanto al funcionamiento del proyecto, se observa que se reducen y
aumentan las revoluciones de giro del ventilador, pero no de la manera que
se esperaba, ya que la reduccin o aumento no es muy fluida. Se cree que
esto se debe algn detalle en la programacin no descubierto por el grupo,
por lo que queda pendiente como desafo grupal personal.

Finalmente se puede decir que los objetivos se concretaron a cabalidad, el
proyecto funciona sin mayores problemas, con contratiempos en su
construccin que fueron solucionados paso a paso de acuerdo a sus
apariciones.




UNIVERSIDAD DE SANTIAGO DE CHILE
Facultad de Ingeniera
Departamento de Ingeniera Mecnica




26 | P g i n a


Bibliografa

Pginas de internet:
www.itescam.edu.mx/principal/sylabus/fpdb/recursos/r75177.PDF
www.olimex.cl
www.pcfactory.cl
http://electronicsclub.info/transistorcircuits.htm
http://www.techbitar.com/ardudroid-simple-bluetooth-control-for-
arduino-and-android.html
http://www.forosdeelectronica.com/f11/conectar-motor-12v-dc-
transistor-3313/index2.html
http://bildr.org/2011/03/high-power-control-with-arduino-and-tip120/
http://itp.nyu.edu/physcomp/Tutorials/HighCurrentLoads
http://www.cortoc.com/p/arduino.html
http://www.trastejant.es/circuitos/arduinoBluetooth.html
http://www.tecnosalva.com/pr%C3%A1cticas-3-y-4-arduino-control-
motor-y-servomotor
https://code.google.com/p/fritzing/issues/detail?id=875
http://fritzing.org/home/

You might also like