Você está na página 1de 18

Proyecto Carbell

Andrés Fabián Aya Cifuentes.


Andrés Felipe Castro Sánchez.
Alexis Caicedo Duarte.
Karen Julieth Echeverry Medina.
Octubre 2017.

Universidad Cooperativa de Colombia.


Ingeniería de Sistemas.
Calculo Diferencial
ii

Tabla de Contenidos

Capítulo 1 Introducción ...................................................................................................... 1


Planeación del problema ................................................Error! Bookmark not defined.
Capítulo 2 Objetivos ......................................................................................................... 2
Objetivo General ............................................................Error! Bookmark not defined.
Objetivo Especifico. ...................................................Error! Bookmark not defined.
Capítulo 3 Metodología. .................................................................................................... 3
Componente circuito 1 .................................................................................................... 3
Componente circuito 2. ............................................................................................... 8
List of References ............................................................................................................... 0
Apéndice ............................................................................................................................. 0
Vita...................................................................................................................................... 0
1

Capítulo 1

Introducción

Planeación del problema

Carro a control remoto

Elaborar un carro a control remoto vía bluetooth con base a un circuito arduino

(Arduino, es una compañía de hardware libre, que diseña placas de desarrollo, facilitando

la combinación del uso de la electrónica y programación de sistemas, para realizar un

proyecto.), se aplicara el conocimiento adquirido en calculo diferencial y algoritmia en la

implementación del código arduino que hará que el carro haga movimientos, también lo

visto en las materias de lógica matemática, que se empleara en la construcción del objeto

en este caso para la construcción del carro; y lo visto en humanidades, presentación de

documentos escritos con normas APA y música.


2

Capítulo 2

Objetivo General

Objetivo general

Por medio de un objeto generar melodías

Objetivos específicos

1) Aplicando cálculo, obtener coordenadas para lograr que el objeto haga

contacto con el sensor que transmitirá sonidos.

2) Por medio de un sensor ultrasonido, generar melodías.


3

Capítulo 3

Metodología

El objeto que se construirá para la elaboración del proyecto es un carro de tamaño

mediano que al percibir una señal que va ser transmitida desde un dispositivo móvil

usando un módulo Bluetoolh (HC-06) donde sus indicaciones serán enviadas al arduino

que ordena varias indicaciones al puente (L293D) que permitirá desplazarse adelante a la

derecha , izquierda y reversa, cuando el carro se acerca a una determinada distancia al

módulo Ultrasonido(HC-SR04) automáticamente se ejecutara una melodía que ha sido

establecida con condiciones If.

Componentes circuito 1

Se emplearan los siguientes materiales


• 1 Placa Arduino
• 1 Protoboard
• 1 Modulo Bluetooth HC-06
• 2 Motoreductores
• 2 Llantas de goma
• 2 Baterias 9V.
• Cables hembra jumper.
4

• Cables macho jumper.


.

Circuito primero a desarrollar

Código arduino

Para el desarrollo del primer circuito se empleó un código para un arduino el cual se uso

como repositorio la página del profesor García, se decidieron quitar unos implementos

que no se veían necesarios como leds que lo que hacían era un uso más alto de voltaje, lo

cual no permitía que los motores funcionaran de una manera correcta como mejoras

establecer un estado inicial donde este permaneciera detenido al momento de conectar el

dispositivo móvil al arduino.


5

Paso a paso

Lo primero que debemos hacer para armar el circuito es conectar el puente L293D a
nuestra Protoboard una vez lo tengamos conectado vamos a realizar la conexión al
arduino según los pines a los cuales se les hayan asignado:
ARDUINO L293D(Puente H)
5 10
6 15
9 7
10 2
5V 1, 9, 16
GND 4, 5, 12, 13
El motor 1 se conecta a los pines 3 y 6 del Puente H , el motor 2 se conecta a los pines 11
y 14 del Puente H, la fuente de alimentación de los Motores se conecta al pin 8 del puente
H. Procedemos a conectar el dispositivo bluetooth de la siguiente manera:
ARDUINO Bluetooth HC-06
0 (RX) TX
1 (TX) RX
5V VCC
GND GND
Una vez tengamos conectados todos nuestros componentes en sus respectivos pines
procedemos a cargar el código utilizando un software de la misma compañía de las placas
arduino por ultimo desconectamos el cable A/

Codigo modificado

/****************************************************************
Carro Inalámbrico Bluetooth
Agradecimientos al profe García más información www.elprofegarcia.com
Link de referencia del código:
https://drive.google.com/file/d/0BzCb6azV3u1VSUlSRV9WVXYwczg/view?pref=2&pli=1
****************************************************************/
!!Cuidado!! Las conexiones de TX y RX al módulo Bluetooth deben estar desconectadas
en el momento que se realiza la carga del código (Sketch) al Arduino.

*/definir variables para el puente L293D


int izqA = 5;
int izqB = 6;
int derA = 9;
int derB = 10;
int vel = 255; // Velocidad de los motores (0-255)
int estado = 'g'; // inicia detenido
6

void setup() {
Serial.begin(9600); // inicia el puerto serial para comunicación con el Bluetooth
pinMode(derA, OUTPUT);
pinMode(derB, OUTPUT);
pinMode(izqA, OUTPUT);
pinMode(izqB, OUTPUT);
}

void loop() {

if(Serial.available()>0){ // lee el bluetooth y almacena en estado


estado = Serial.read();
}
if(estado=='a'){ // Boton desplazar al Frente
analogWrite(derB, 0);
analogWrite(izqB, 0);
analogWrite(derA, vel);
analogWrite(izqA, vel);
}
if(estado=='b'){ // Boton IZQ
analogWrite(derB, 0);
analogWrite(izqB, 0);
analogWrite(derA, 0);
analogWrite(izqA, vel);
}
if(estado=='c'){ // Boton Parar
analogWrite(derB, 0);
analogWrite(izqB, 0);
analogWrite(derA, 0);
analogWrite(izqA, 0);
}
if(estado=='d'){ // Boton DER
analogWrite(derB, 0);
analogWrite(izqB, 0);
analogWrite(izqA, 0);
analogWrite(derA, vel);
}

if(estado=='e'){ // Boton Reversa


analogWrite(derA, 0);
analogWrite(izqA, 0);
analogWrite(derB, vel);
analogWrite(izqB, vel);
7

}
if (estado =='f'){ // Boton ON se mueve siempre con una velocidad 255 siempre
hacia el frente

analogWrite(derB, 0);
analogWrite(izqB, 0);
analogWrite(derA, 100);
analogWrite(izqA, 100);
}
if (estado=='g'){
analogWrite(derB, 0);
analogWrite(izqB, 0);
analogWrite(derA, 0);
analogWrite(izqA, 0);// Boton OFF, detiene los motores no hace nada
}
}

Componentes circuito 2

Se emplearan los siguientes materiales

• 1 Placa Arduino
• 1 Protoboard
• 1 Baterías 9V
• Cables macho y hembra
• 1 Modulo ultrasonido HC-SR04
• 1 Bocina
8

Para el desarrollo del segundo circuido se empleó un código arduino de la URL que

podemos referenciar en la parte de abajo, este código era simple reproducir una serie de

notas musicales que generaban unos cortos ringtone pero se realizó una pequeña mejora

adaptando el modulo ultrasonido (HC-SR04) como activador estableciendo una serie de

condiciones dependiendo el objeto que se encuentre en una distancia programada.

Paso a Paso

/***********************************************************************
Antonio Guillermo Pérez Coronilla
https://openwebinars.net/blog/tutorial-de-arduino-sonidos-con-arduino/
Referencias del código arduino
/******************************************************************
ARDUINO Bocina
(-) GND
(+) Pin # 13
9

/* declaración de variables bocina */


int spk=13;

/*/////////////////////////////////////////////////////////////////*/

int c[5]={131,262,523,1046,2093}; // frecuencias 4 octavas de Do


int cs[5]={139,277,554,1108,2217}; // Do#
int d[5]={147,294,587,1175,2349}; // Re
int ds[5]={156,311,622,1244,2489}; // Re#
int e[5]={165,330,659,1319,2637}; // Mi
int f[5]={175,349,698,1397,2794}; // Fau6
int fs[5]={185,370,740,1480,2960}; // Fa#
int g[5]={196,392,784,1568,3136}; // Sol
int gs[5]={208,415,831,1661,3322}; // Sol#
int a[5]={220,440,880,1760,3520}; // La
int as[5]={233,466,932,1866,3729}; // La#
int b[5]={247,494,988,1976,3951}; // Si

void nota(int a, int b); // declaración de la función auxiliar. Recibe dos números
enteros.
int pecho = 2; // define el pin 2 como (pecho) para el Ultrasonido
int ptrig = 3; // define el pin 3 como (ptrig) para el Ultrasonido
int duracion, distancia; // para Calcular distacia

void setup()
{

void nota(int frec, int t)


{
tone(spk,frec); // suena la nota frec recibida
delay(t); // para despues de un tiempo t
}

void loop()
{
duracion = pulseIn(pecho, HIGH); // Lee el tiempo del Echo
distancia = (duracion/2) / 29; // calcula la distancia en centimetros
delay(10);

if (distancia <= 10 && distancia >=2){ // si la distancia es menor de 10cm


10

/**************************************/
/* HARRY POTTER */
/**************************************/
nota(b[2], 500);
nota(e[3],1000);
nota(g[3], 250);
nota(fs[3],250);
nota(e[3],1000);
nota(b[3],500);
nota(a[3],1250);
nota(fs[3],1000);
nota(b[2], 500);
nota(e[3],1000);
nota(g[3],250);
nota(fs[3],250);
nota(d[3],1000);
nota(e[3],500 );
nota(b[2],1000 );
noTone(spk); delay(1000);
nota(b[2], 500);
nota(e[3],1000);
nota(g[3], 250);
nota(fs[3],250);
nota(e[3],1000);
nota(b[3],500);
nota(d[4],1000);
nota(cs[4],500);
nota(c[4],1000);
nota(a[3],500);
nota(c[4],1000);
nota(b[3],250);
nota(as[3],250);
nota(b[2],1000);
nota(g[3],500);
nota(e[3],1000);
noTone(spk);
delay(2000);
}

if (distancia <= 20 && distancia >=2){ // si la distancia es menor de 20cm

/*******************/
/* STAR WARS */
11

/*******************/
/**** tema principal ****/
nota(d[1],150);noTone(spk);delay(50);
nota(d[1],150);noTone(spk);delay(50);
nota(d[1],150);noTone(spk);delay(50);
nota(g[1],900);noTone(spk);delay(150);
nota(d[2],900);noTone(spk);delay(50);
nota(c[2],150);noTone(spk);delay(50);
nota(b[1],150);noTone(spk);delay(50);
nota(a[1],150);noTone(spk);delay(50);
nota(g[2],900);noTone(spk);delay(150);
nota(d[2],900);noTone(spk);delay(100);
nota(c[2],150);noTone(spk);delay(50);
nota(b[1],150);noTone(spk);delay(50);
nota(a[1],150);noTone(spk);delay(50);
nota(g[2],900);noTone(spk);delay(150);
nota(d[2],900);noTone(spk);delay(100);
nota(c[2],150);noTone(spk);delay(50);
nota(b[1],150);noTone(spk);delay(50);
nota(c[2],150);noTone(spk);delay(50);
nota(a[1],1200);noTone(spk);delay(2000);
}
if (distancia <= 40 && distancia >=2){
nota(e[1],150);
nota(e[1],150);
nota(e[1],150);
nota(e[1],900);
nota(g[2],900);
nota(c[2],150);
nota(d[1],150);
nota(e[1],150);
nota(f[2],900);
nota(f[2],900);
nota(f[2],150);
nota(e[1],150);
nota(e[1],150);
nota(e[2],900);
nota(d[2],900);
nota(d[2],150);
nota(e[1],150);
nota(d[2],150);
nota(e[1],1200);
noTone(spk);
}
12

Programación App carbell

Se realizaron diferentes botones dependiendo al código establecido en el arduino:

A=Acelerar
B=Izquierda
C=Detener
D=Derecha
E=Reversa
F=ON
G=OFF
Bluetooth

Al momento en que es oprimido un botón este mandara una orden al arduino lo ara de la
siguiente manera si botón es oprimido, bluetooth envía un texto al arduino ejecutando la
orden programada.
13

Una vez establecidos los botones se le designaron una función a estos que al momento de

ser cliqueados nos envíen desde la app hasta el arduino una orden.

El diseño de la app se realizo desde ai2.appinventor.mit.edu plataforma totalmente

gratuita.

Lista de referencias

Andrews, S. Fastqc, (2010). A quality control tool for high throughput sequence data.
Augen, J. (2004). Bioinformatics in the post-genomic era: Genome, transcriptome,
proteome, and information-based medicine. Addison-Wesley Professional.

Blankenberg, D., Kuster, G. V., Coraor, N., Ananda, G., Lazarus, R., Mangan, M., ... &
Taylor, J. (2010). Galaxy: a web‐based genome analysis tool for experimentalists.
Current protocols in molecular biology, 19-10.

Bolger, A., & Giorgi, F. Trimmomatic: A Flexible Read Trimming Tool for Illumina
NGS Data. URL http://www. usadellab. org/cms/index. php.
14

Giardine, B., Riemer, C., Hardison, R. C., Burhans, R., Elnitski, L., Shah, P., ... &
Nekrutenko, A. (2005). Galaxy: a platform for interactive large-scale genome
analysis. Genome research, 15(10), 1451-1455.
15

Apéndice

Las tablas y figuras pueden ir en el apéndice como se mencionó anteriormente.

También es posible usar el apéndice para incluir datos en bruto, instrumentos de

investigación y material adicional.


16

Vita

Acá se incluye una breve biografía del autor de la tesis.

Você também pode gostar