Está en la página 1de 18

CONTROL DE UN AUTO

POR COMANDOS DE
VOZ CON ANDROID-
BLUETOOTH-ARUINO
Control de un auto por Comandos de Voz con ANDROID-BUETOOTH-ARDUINO 1

UNIVERSIDAD NACIONAL DEL CALLAO

FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA

ESCUELA DE INGENIERÍA ELECTRÓNICA

PROYECTO DE INVESTIGACION

CURSO:

CIRCUITOS ELECTRONICOS I
PROFESOR:

Ing. CUZCANO RIVAS ABILIO BERNARDINO

ALUMNOS: CÓDIGO

CUBA LAURENTE Miguel ANGEL

MAHR CALLE Renzo Arturo Fernando 1113210139

REYNA CORDOVA Marco Antonio

REATEGUI TERRONES Rolando Miguel

CICLO:

2014-B
Control de un auto por Comandos de Voz con ANDROID-BUETOOTH-ARDUINO 2

Control de un auto por Comandos de Voz con


ANDROID-BUETOOTH-ARDUINO

1. INTRODUCCIÓN
En el presente trabajo daremos a conocer acerca del Sistema Operativo Android.
Como sabemos en los últimos años este Sistema es uno de los más utilizados en
dispositivos móviles como Tablet, celulares. También podemos decir que el
usuario tiene un fácil acceso al Sistema Operativo con su interfaz gráfico práctico y
didáctico para todos.

Android es un Sistema Operativo de código abierto para dispositivos móviles por


eso viene hacer uno de los mejores Sistemas Operativos dando a conocer sus
mejores versiones como. Petit Four, Froyo, Jelly Bean, Kitkat, y muchas versiones
que daremos a conocer más adelante.

Mediante este trabajo llegaremos a un aprendizaje que nos ayuda a explorar


diferentes campos del software para el presente y el futuro en nuestra sociedad asi
como aprovechar junto con el no menos conocido módulo ARDUINO para crear un
sin número de interesantes proyectos.

2. OBJETIVO GENERAL
Conocer en el Sistema Operativo Android en dispositivos móviles para poder
aprovechar todo las conexiones que nos ofrecen dichos dispositivos (bluetooth)
además de aplicaciones que vienen incluidas (reconocimiento de voz) para
usarlos en conjunto con nuestro arduino para la realización de este proyecto.

3. OBJETIVOS ESPECIFICOS
 Conocer el Sistema Operativo Android para aprender a programar en dicha
plataforma.
 Crear una aplicación que vincule como MAESTRO (celular) –ESCLAVO
(arduino).
 Aprender a utilizar el modulo Bluetooth.
 Utilizar el reconocimiento de Voz que tienen todos los Sistemas Operativos
de Android.

4. JUSTIFICACIÓN
Este presente trabajo es realizado con el propósito de utilizar algo que casi toda la
población mundial tiene en sus manos para crear una aplicación que puede
controlar remotamente y mediante su voz cualquier objeto (en este un auto-robot)
lo cual en un caso de emergencia en caso que no pudiéramos utilizar nuestras
manos o para personas discapacitadas sería muy útil.
Control de un auto por Comandos de Voz con ANDROID-BUETOOTH-ARDUINO 3

5. MARCO TEORICO

App Inventor
Google App Inventor es una aplicación de Google Labs para crear aplicaciones
de software para el sistema operativo Android. De forma visual y a partir de un
conjunto de herramientas básicas, el usuario puede ir enlazando una serie de
bloques para crear la aplicación. El sistema es gratuito y se puede descargar
fácilmente de la web. Las aplicaciones fruto de App Inventor están limitadas por su
simplicidad, aunque permiten cubrir un gran número de necesidades básicas en un
dispositivo móvil.

Historia y Características
La aplicación se puso a disposición del público el 12 de julio de 2010 y está dirigida a
personas que no están familiarizadas con la programación informática. En la creación
de App Inventor, Google se basó en investigaciones previas significativas en
informática educativa.

Primera pantalla del App inventor donde se muestra en un celular virtual como va
quedando nuestro proyecto además de ser el lugar donde se deben arrastrar todo lo que
se vaya a agregar en el desde el menú de la izquierda (imágenes, botones cuadros de
texto, etc.), también se puede cambiar sus características por defecto con el menú de la
derecha)
Control de un auto por Comandos de Voz con ANDROID-BUETOOTH-ARDUINO 4

El editor de bloques de la aplicación utiliza la librería Open Blocks de Java para


crear un lenguaje visual a partir de bloques. Estas librerías están distribuidas por
Massachusetts Institute of Technology (MIT) bajo su licencia libre (MIT License). El
compilador que traduce el lenguaje visual de los bloques para la aplicación en
Android utiliza Kawa como lenguaje de programación, distribuido como parte del
sistema operativo GNU de la Free Software Foundation.

Método de bloques para la programación en App inventor

App Inventor pueden tener su primera aplicación en funcionamiento en una hora o


menos, y se pueden programar aplicaciones más complejas en mucho menos
tiempo que con los lenguajes más tradicionales, basados en texto. Inicialmente
desarrollado por el profesor Hal Abelson y un equipo de Google Educación,
mientras que Hal era un año sabático en Google, App Inventor se ejecuta como
un servicio Web administrado por personal del Centro del MIT para el aprendizaje
móvil - una colaboración de MIT de Ciencia Computacional e Inteligencia Artificial
de laboratorio (CSAIL) y el Laboratorio de Medios del MIT. Inventor MIT App es
compatible con una comunidad mundial de casi dos millones de usuarios que
representan a 195 países en todo el mundo. Más de 85 mil usuarios semanales
activos de la herramienta han construido más de 4,7 millones de aplicaciones de
Android. Una herramienta de código abierto que pretende realizar la programación
y la creación de aplicaciones accesibles a una amplia gama de audiencias.
Control de un auto por Comandos de Voz con ANDROID-BUETOOTH-ARDUINO 5

Bluetooth
Bluetooth es una especificación industrial para Redes Inalámbricas de Área
Personal (WPAN) que posibilita la transmisión de voz y datos entre diferentes
dispositivos mediante un enlace por radiofrecuencia en la banda ISM de los
2,4 GHz. Los principales objetivos que se pretenden conseguir con esta norma
son:

 Facilitar las comunicaciones entre equipos móviles.


 Eliminar los cables y conectores entre éstos.
 Ofrecer la posibilidad de crear pequeñas redes inalámbricas y facilitar la
sincronización de datos entre equipos personales.

Los dispositivos que con mayor frecuencia utilizan esta tecnología pertenecen a
sectores de las telecomunicaciones y la informática personal, como PDA, teléfonos
móviles, computadoras portátiles, ordenadores personales, impresoras o cámaras
digitales.

Se denomina Bluetooth al protocolo de comunicaciones diseñado especialmente para


dispositivos de bajo consumo, que requieren corto alcance de emisión y basados
en transceptores de bajo costo.

Los dispositivos que incorporan este protocolo pueden comunicarse entre ellos cuando
se encuentran dentro de su alcance. Las comunicaciones se realizan
por radiofrecuencia de forma que los dispositivos no tienen que estar alineados y
pueden incluso estar en habitaciones separadas si la potencia de transmisión es
suficiente. Estos dispositivos se clasifican como "Clase 1", "Clase 2" o "Clase 3" en
referencia a su potencia de transmisión, siendo totalmente compatibles los dispositivos
de una caja de ordenador

Potencia máxima permitida Potencia máxima permitida Alcance


Clase
(mW) (dBm) (aproximado)

Clase 1 100 mW 20 dBm ~30 metros

Clase 2 2.5 mW 4 dBm ~10-5 metros

Clase 3 1 mW 0 dBm ~1 metro


Control de un auto por Comandos de Voz con ANDROID-BUETOOTH-ARDUINO 6

En la mayoría de los casos, la cobertura efectiva de un dispositivo de clase 2 se


extiende cuando se conecta a un transceptor de clase 1. Esto es así gracias a la
mayor sensibilidad y potencia de transmisión del dispositivo de clase 1, es decir, la
mayor potencia de transmisión del dispositivo de clase 1 permite que la señal llegue
con energía suficiente hasta el de clase 2. Por otra parte la mayor sensibilidad del
dispositivo de clase 1 permite recibir la señal del otro pese a ser más débil.

Los dispositivos con Bluetooth también pueden clasificarse según su capacidad de


canal:

Versión Ancho de banda

Versión 1.2 1 Mbit/s

Versión 2.0 + EDR 3 Mbit/s

Versión 3.0 + HS 24 Mbit/s

Versión 4.0 24 Mbit/s

Perfiles Bluetooth
Para utilizar Bluetooth, un dispositivo debe implementar alguno de los perfiles
Bluetooth. Estos definen el uso del canal Bluetooth, así como canalizar al dispositivo
que se quiere vincular.

Lista de aplicaciones

 Conexión sin cables vía OBEX.


 Transferencia de fichas de contactos, citas y recordatorios entre dispositivos
vía OBEX.
 Reemplazo de la tradicional comunicación por cable entre equipos GPS y
equipamiento médico.
 Controles remotos (tradicionalmente dominado por el infrarrojo).
Control de un auto por Comandos de Voz con ANDROID-BUETOOTH-ARDUINO 7

 Enviar pequeñas publicidades desde anunciantes a dispositivos con Bluetooth. Un


negocio podría enviar publicidad a teléfonos móviles cuyo Bluetooth (los que lo
posean) estuviera activado al pasar cerca.
 Las consolas Sony PlayStation 3, Microsoft Xbox360 y Wii incorporan Bluetooth, lo
que les permite utilizar mandos inalámbricos, aunque los mandos originales de
la Wii funcionan mezclando la tecnología de infrarrojos y Bluetooth.
 Enlace inalámbrico entre sistemas de audio y los altavoces (o altoparlantes)
correspondientes.

Manos libres para el iPhone con tecnología Bluetooth.


Control de un auto por Comandos de Voz con ANDROID-BUETOOTH-ARDUINO 8

Arduino
Arduino es una plataforma de hardware libre, basada en una placa con
un microcontrolador y un entorno de desarrollo, diseñada para facilitar el uso de la
electrónica en proyectos multidisciplinares.

El hardware consiste en una placa con un microcontrolador Atmel AVR y puertos


de entrada/salida. Los microcontroladores más usados son
el Atmega168, Atmega328, Atmega1280, ATmega8 por su sencillez y bajo coste
que permiten el desarrollo de múltiples diseños. Por otro lado el software consiste
en un entorno de desarrollo que implementa el lenguaje de
programaciónProcessing/Wiring y el cargador de arranque que es ejecutado en la
placa.

Desde octubre de 2012, Arduino se usa también con microcontroladoras CortexM3


de ARM de 32 bits, que coexistirán con las más limitadas, pero también
económicas AVR de 8 bits. ARM y AVR no son plataformas compatibles a nivel
binario, pero se pueden programar con el mismo IDE de Arduino y hacerse
programas que compilen sin cambios en las dos plataformas. Eso sí, las
microcontroladoras CortexM3 usan 3,3V, a diferencia de la mayoría de las placas
con AVR que generalmente usan 5V. Sin embargo ya anteriormente se lanzaron
placas Arduino con Atmel AVR a 3,3V como la Arduino Fio y existen compatibles
de Arduino Nano y Pro como Meduino en que se puede conmutar el voltaje.

Arduino puede tomar información del entorno a través de sus entradas analógicas
y digitales, puede controlar luces, motores y otros actuadores. El microcontrolador
en la placa Arduino se programa mediante el lenguaje de programación Arduino
(basado en Wiring) y el entorno de desarrollo Arduino (basado en Processing). Los
proyectos hechos con Arduino pueden ejecutarse sin necesidad de conectar a un
computador.
Control de un auto por Comandos de Voz con ANDROID-BUETOOTH-ARDUINO 9

6. PROCEDIMIENTO
El primer paso que tuvimos que realizar fue el de crear una aplicación para el
sistema operativo Android, para ello utilizamos el programa App inventor por su
interfaz más didáctico y amigable.

Desde la primera página a la izquierda arrastramos al celular virtual un botón, 2


cuadros de textos y uno label para indicar si la conexión de bluetooth esta echa
además también agregamos una lista para que podemos elegir que conexión
bluetooth se tendrá que vincular, de los detectados.

Luego acomodamos todo al nivel del ancho de la pantalla para que se vea más
ordenado, esto gracias a las opciones de la derecha.

A continuación y después de haber colocado todo lo que vamos a utilizar en el


celular virtual vamos a la opción Blocks el cual abrirá la zona donde se comenzara
a programar cada objeto que hemos colocado y como funcionara luego cuando lo
instalemos en un celular real

La programación en bloques del App inventor es una programación de alto nivel y


fácil de aprender ya que es muy intuitivo.
Control de un auto por Comandos de Voz con ANDROID-BUETOOTH-ARDUINO 10

En esta primera parte tenemos lo primero que realizara el programa cuando se


ejecuta, este caso estará deshabilitado todo excepto la opción de vincular por
bluetooth el celular con otro dispositivo.

Luego de que el usuario pulse el botón de vinculación le aparecerá una lista donde
se encontrara todas las direcciones de bluetooth disponibles.

En esta parte del programa indicamos que luego de que el usuario presione la
opción de su preferencia el celular se vinculara con el dispositivo seleccionado,
aparecerá la palabra conectado, y se habilitara el programa también se encontrara
el nombre de la dirección bluetooth elegida.
Control de un auto por Comandos de Voz con ANDROID-BUETOOTH-ARDUINO 11

A continuación declaramos que cuando el usuario pulse (click) el botón del medio ,
que ha sido recientemente habilitado después de la vinculación bluetooth, llame a
la función de reconocimiento de voz de Android.

Finamente declaramos que cuando se halla llamado a la función de


reconocimiento de voz y este ha terminado de reconocer la palabra, el celular
enviara dicha palabra (con asterisco por delante típico protocolo con arduino y
bluetooth) al dispositivo con el que está vinculado, en este caso con nuestro
arduino.

Ya terminada nuestra programación de la aplicación Android podemos comenzar a


realizar la programación en arduino.

Dicha programación será la utilización de palabras que mandemos gracias al


reconocimiento de voz, el arduino será el encargado de utilizar estas palabras
como comandos para realizar una tarea con el auto-robot como:

 “Avanza”

 “Retrocede”

 “Derecha”

 “Izquierda”

 “Duerme”
Control de un auto por Comandos de Voz con ANDROID-BUETOOTH-ARDUINO 12

Programación en arduino:
String mensaje; // Declaramos una variable string mensaje

void setup() {

Serial.begin(9600); //Instruccion para comuncaciones seriales por general a 9600


baudios

pinMode(13,OUTPUT);//Puertos a usar

pinMode(12,OUTPUT);

pinMode(11,OUTPUT);

pinMode(10,OUTPUT);

void loop (){//Funcion principal que repitira una y otra vez

while(Serial.available()){//Declaramos un while para que cuando exista algun dato que

delay(10);//esta recepcionando por el modulo bluetooth de arduino

char c = Serial.read();// se guarde letra a letra en la variable char c

mensaje += c;// y se combinen como uno solo en la variable mensaje

if(mensaje.length()>0){ //si existen datos continuara el programa

if(mensaje=="*panda"){// EL robot solo podrá ser controlada si primero se le llama po su


nombre en otro caso no responderá,

digitalWrite(13,HIGH);//CARRITO GIRA A LA DERECHA

digitalWrite(12,LOW);

digitalWrite(11,LOW);

digitalWrite(10,LOW);

delay(1000);
Control de un auto por Comandos de Voz con ANDROID-BUETOOTH-ARDUINO 13

digitalWrite(13,LOW);//GIRA A LA IZQUIERDA

digitalWrite(12,LOW);

digitalWrite(11,HIGH);

digitalWrite(10,LOW);

delay(1000);

digitalWrite(13,LOW);//APAGON

digitalWrite(12,LOW);

digitalWrite(11,LOW);

digitalWrite(10,LOW);

delay(1000);

digitalWrite(13,HIGH);//AVANZA

digitalWrite(12,LOW);

digitalWrite(11,HIGH);

digitalWrite(10,LOW);

delay(1000);

digitalWrite(13,LOW);//RETROCEDE

digitalWrite(12,HIGH);

digitalWrite(11,LOW);

digitalWrite(10,HIGH);

delay(1000);

digitalWrite(13,LOW);

digitalWrite(12,LOW);

digitalWrite(11,LOW);

digitalWrite(10,LOW);

delay(1000);
Control de un auto por Comandos de Voz con ANDROID-BUETOOTH-ARDUINO 14

while (mensaje!="*duerme")//Luego a menos de que se le diga el comando duerme


nuestro robot estará atento a recibir y ejecutar algún comando

mensaje="";//Resteamos la variable mensaje

do{

while(Serial.available()){

delay(10);

char c = Serial.read();//Retención del programa para que solo salga d este bucle a no ser
que se mande algún comando

mensaje += c;

} }while(mensaje.length()==0);

if(mensaje=="*avanza"){

digitalWrite(13,HIGH);

digitalWrite(12,LOW);

digitalWrite(11,HIGH);

digitalWrite(10,LOW);}

if(mensaje=="*retrocede"){

digitalWrite(13,LOW);

digitalWrite(12,HIGH);

digitalWrite(11,LOW);

digitalWrite(10,HIGH);}
Control de un auto por Comandos de Voz con ANDROID-BUETOOTH-ARDUINO 15

if(mensaje=="*derecha"){

digitalWrite(13,HIGH);

digitalWrite(12,LOW);

digitalWrite(11,LOW);

digitalWrite(10,LOW);

if(mensaje=="*izquierda"){

digitalWrite(13,LOW);

digitalWrite(12,LOW);

digitalWrite(11,HIGH);

digitalWrite(10,LOW);

if(mensaje=="*detener"){

digitalWrite(13,LOW);

digitalWrite(12,LOW);

digitalWrite(11,LOW);

digitalWrite(10,LOW);

digitalWrite(13,LOW);

digitalWrite(12,LOW);

digitalWrite(11,LOW);

digitalWrite(10,LOW);

}mensaje="";

}
Control de un auto por Comandos de Voz con ANDROID-BUETOOTH-ARDUINO 16

7. IMPLEMENTACION
Primero conectamos y cargamos nuestro programa a nuestro arduino:

Alimentamos y conectamos nuestro modulo bluetooth:


Control de un auto por Comandos de Voz con ANDROID-BUETOOTH-ARDUINO 17

Finamente conectamos los drivers de los motores dc y la alimentación para


nuestro arduino y montamos todo en nuestro robot-auto:

8. Conclusiones
Este proyecto nos ayudó a poder aprender sobre la programación en dispositivos
Android y acerca de la conectividad bluetooth además de que es la puerta para
poder realizar aplicaciones y proyectos aún más complejos.

También podría gustarte