Crear coche controlado por Bluetooth con arduino

12
CONTROL DE UN CARRO RC CON BLUETOOTH Alejandra Onofre Mazon.-1 Carlos Adrian Avilez Garcia.-1 Mirna Monserrat Sotelo Garcia.-1 Eddie Omar Arias Carteño.-1 1 Ingeniera en Telemática, Universidad Politécnica del Estado de Guerrero RESUMEN El proyecto tiene como objetivo realizar el control de un carro de control remoto mediante la comunicacion bluetooth, esto para poder vislumbrar la flexibilidad de los dispositivos bluetooth, que aunque no son seguros, (la comunicacion bluetooth puede ser interferida facilmente), son de gran ayuda en aplicaciones sencillas como lo son transferencias de archivos ligeros como canciones y fotos, tambien en accesorios para los smartphones siendo uno de los mas llamativos el nuevo GEAR de samsung que funciona con bluetooth 4.0, utilizando una aplicacion en android ubicada en un celular para poder controlarlo mostrando la flexibilidad de andriod contra otros sistemas como el IOS, la aplicacion estara creada en APP ANDRIOD INVENTOR, tambien utilizaremos arduino UNO como “cerebro” para controlar todos los circuitos y este tendra añadido el modulo bluetooth HC-06 para realizar la comunicacion bluetooth con el telefono, se implementara una camara ip para poder ver los que el carro RC tiene enfrente y poder manejarlo aunque se pierda contacto visual. Palabras Claves: Bluetooth, aplicacion android,comunicacion, arduino,camara ip. INTRODUCCIÓN El estándar Bluetooth se basa en el modo de operación maestro/esclavo. El término "piconet" se utiliza para hacer referencia a la red formada por un dispositivo y todos los dispositivos que se encuentran dentro de su rango. Pueden coexistir hasta 10 piconets dentro de una sola área de cobertura. Un dispositivo maestro se puede conectar simultáneamente con hasta 7 dispositivos esclavos activos

description

se describe como crear un carro rc con un arduino y una aplicacion en andriod

Transcript of Crear coche controlado por Bluetooth con arduino

Page 1: Crear coche controlado por Bluetooth con arduino

CONTROL DE UN CARRO RC CONBLUETOOTH

Alejandra Onofre Mazon.-1Carlos Adrian Avilez Garcia.-1

Mirna Monserrat Sotelo Garcia.-1Eddie Omar Arias Carteño.-1

1 Ingeniera en Telemática, Universidad Politécnica del Estado de Guerrero

RESUMEN

El proyecto tiene como objetivorealizar el control de un carro decontrol remoto mediante lacomunicacion bluetooth, esto parapoder vislumbrar la flexibilidad de losdispositivos bluetooth, que aunque noson seguros, (la comunicacionbluetooth puede ser interferidafacilmente), son de gran ayuda enaplicaciones sencillas como lo sontransferencias de archivos ligeroscomo canciones y fotos, tambien enaccesorios para los smartphonessiendo uno de los mas llamativos elnuevo GEAR de samsung quefunciona con bluetooth 4.0, utilizandouna aplicacion en android ubicada enun celular para poder controlarlomostrando la flexibilidad de andriodcontra otros sistemas como el IOS, laaplicacion estara creada en APPANDRIOD INVENTOR, tambienutilizaremos arduino UNO como“cerebro” para controlar todos los

circuitos y este tendra añadido elmodulo bluetooth HC-06 para realizarla comunicacion bluetooth con eltelefono, se implementara unacamara ip para poder ver los que elcarro RC tiene enfrente y podermanejarlo aunque se pierda contactovisual.

Palabras Claves: Bluetooth,aplicacion android,comunicacion,arduino,camara ip.

INTRODUCCIÓN

El estándar Bluetooth se basa en elmodo de operación maestro/esclavo.El término "piconet" se utiliza parahacer referencia a la red formada porun dispositivo y todos los dispositivosque se encuentran dentro de surango. Pueden coexistir hasta 10piconets dentro de una sola área decobertura. Un dispositivo maestro sepuede conectar simultáneamente conhasta 7 dispositivos esclavos activos

Page 2: Crear coche controlado por Bluetooth con arduino

(255 cuando se encuentran en modoen espera). Los dispositivos en unapiconet poseen una dirección lógicade 3 bits, para un máximo de 8dispositivos. Los dispositivos que seencuentran en el modo en espera sesincronizan, pero no tienen su propiadirección física en la piconet. [1]

En el resumen a grandes rasgoshablamos sobre el modulo queestaremos utilizando para esteproyecto, el modulo utilizado es elHC-06, una de las ventajasprincipales ventajas del módulo HC-06, además de su pequeño tamaño ysus buenas características detransmisión y recepción que lebrindan un alcance muy amplio (portratarse de un sistema localBluetooth), es el bajo consumo decorriente que posee tanto enfuncionamiento, como en modo deespera, es decir, alimentado conenergía, pero sin conexión o enlace aotro dispositivo, por ejemplo, un móvilcon SO Android. Otra característicainteresante de este módulo es queuna vez que ha realizado un enlacecon otro dispositivo es capaz derecordarlo en su memoria y no solicitavalidación alguna (“1234” por defecto)

Arduino es una plataforma dehardware libre, basada en una placacon un microcontrolador y un entornode desarrollo diseñada para facilitar eluso de la electrónica en proyectosmultidisciplinares.

Arduino puede tomar información delentorno a través de sus entradas ycontrolar luces, motores y otros

actuadores. El microcontrolador en laplaca Arduino se programa medianteel lenguaje de programación Arduino(basado en Wiring) y el entorno dedesarrollo Arduino (basado enProcessing). Los proyectos hechoscon Arduino pueden ejecutarse sinnecesidad de conectar a uncomputador. [2]

El sistema operativo andriod es unSO creado por google con el fin deunificar los SO de los telefonoscelulares, es de codigo abierto(google lo libero bajo la licenciaApache) esto quiere decir quecualquiera puede desarrollaraplicaciones para andriod, tambien esun sistema multi task (multi tarea) quete permite tener varias aplicacionesejecutandose al mismo tiempo heinteractuar en ellas; la aplicacion enandriod para este proyecto larealizaremos en el app inventor quees una pagina web que corre un scripde java que te permite crearaplicaciones andriod diseñando porun lado la interfaz de una formasencilla y que no requierepreparacion alguna, esta manera dediseñar interfaz es similar a la usadapor Microsoft en su Visual Studio, porel lado de codigo o programaracciones de los botones o loscomponentes que se agregaron a lainterfaz es de una forma muy intuitiva,cualquier persona con un poco deentrenamiento puede crear acciones,esto se logra mediante la union debloques, es bastante similar a los

Page 3: Crear coche controlado por Bluetooth con arduino

entornos de aprendizaje como elraptor.

La aplicación se puso a disposicióndel público el 12 de julio de 2010 yestá dirigida a personas que no estánfamiliarizadas con la programacióninformática. En la creación de AppInventor, Google se basó eninvestigaciones previas significativasen informática educativa. Fue creadaa mediados del 2009 el profesorHarold Abelson del MIT . Antes desalir al mercado se ha probado endiferentes centros educativos comoen el centro educativo CEtis y la hanutilizado desde niños de 12 añoshasta licenciados universitarios sinnociones de programación.

Las cámaras IP permiten ver entiempo real qué está pasando en unlugar, aunque esté a miles dekilómetros de distancia. Son cámarasde vídeo de gran calidad que tienenincluido un ordenador a través delque se conectan directamente aInternet. El acceso a estas imágenesestá totalmente(en el caso que estecifrado) restringido: sólo las personasautorizadas pueden verlas. Tambiénse puede ofrecer acceso libre yabierto si el vídeo en directo se deseaincorporar al web site de unacompañía para que todos losinternautas tengan acceso.

Para este proyecto se utilizara lacamara de un celular Sony Ericcsionc 1504 de 3.2 mp, para poder usareste telefono como camara ip sedescargo la aplicacion ip webcam della andriod store fue crada por Pavel

Khlebovich en abril de 2013 y suultima revicion fue el 14 de abril de2014, esta apicacion te permiteconvertir tu celular en un pequeñoservidor, para obtener el video sedebe ingresar desde el navegadorweb de tu pc o celular a la direccionque le es otorgada al celular por elenrutador en el desarrollo dejaremosla forma de conectarse a la camaraip.

DESARROLLO

Armado del Circuito

El diagrama del circuito estacompuesto por un modulo bluetoothque actuara como enlace serialpararesivir los datos que se estanresiviendo via inalambrica, un arduinoUNO que es el que controla el traficode datos y controla las salidascorrespondientes, tambien estaseñalado un circuito L 293b que es uncontrolador para crear un Puente Hpara poder asi controlar la direcciondel giro de los motores es decir paraque avance o retorseda el carrito.

Comenzaremos a explicar de iz aderecha comenzemos por el como sedebe conectar el modulo bluetooth, elHC 06 cuanta con 4 pines que son unpin para corriente, uno para tierra, unRX y un RY estos ultimos son losencargados de transmitir los datos

Page 4: Crear coche controlado por Bluetooth con arduino

Bien los pines de corriente deben serconectados de la siguiente manera:

Vcc-------->5v

Gnd-------->gnd

Rx-------->Tx arduino(pin1)

Tx -------->Rx arduino(pin 0)

Para conectar el puente h que es lparte mas importante del circuito yaque de este depende la direccion delcoche se utilizaran los pines 2,3,4,5de el arduno 1, el L293 cuanta con 16pines la forma de conectarlos es lasiguiente

PIN DEL L293 CONEXION

1 A una resitencia de 1k yconectada a corriente del

arduino

2 A pin 3 de arduin

3 A tierra del motor 1

4 A tierra de arduino y defuente externa

5 A tierra de arduino y defuente externa

6 A corriente de motor1

7 Pin 2

Page 5: Crear coche controlado por Bluetooth con arduino

8 Corriente de fuenteexterna

9 A una resitencia de 1k yconectada a corriente del

arduino

10 Pin 5

11 A corriente de motor2

12 A tierra de arduino y defuente externa

13 A tierra de arduino y defuente externa

14 A tierra de motor 2

15 Pin 4

16 Corriente arduino

Con este circuito se garantiza quetendra los movimientos necesarios yaque el motor 1 se encarga de latraccion y el motor dos de la direccion

Programacion de arduino UNO

el programa de arduino se encargade leer un dato que llega por el serialy inicia un switch que comparara eldato de entrada con los case´s sicoincide con alguno ejecutara elcodigo que este en este, en nuestraaplicacion el codigo de los case´s soninstrucciones para dar voltaje aalguno de los 4 pines del arduino quese estan utilizando, esto activara alL293 y dara la direccion correcta alcoche, no hicimos uso de ningunalibreria especifica ya que el bluetoothno es mas que una medio serial solo

usamos la declaracion y las funcionesde SERIAL a continucacion el codigocomentado.

//Se crea una variable donde sealmacenaran los valores que recibaarduino

int unChar;

//Se crearan las funcionas que sevan a ocupar

void adelante();

void reversa();

void parado();

void parado2();

void derecha();

void izquierda();

//Se inicializa el puerto

void setup() {

Serial.begin(9600);

}

//Se realiza una serie de casos parallamar a mandar atraer la funcion arealizar dependendiendo delcaracter que el arduino reciba

Page 6: Crear coche controlado por Bluetooth con arduino

void loop(){

char unChar = Serial.read();//se leedato entrante

//se inicia el switch, cabemencionar que en los case solo seesta mandando llamar lasfunciones

switch (unChar) {

case 'w':

adelante();

digitalWrite(led, HIGH);//indicador de que recibe el dato

Serial.write("Avanzar");

break;

case 's':

reversa();

digitalWrite(led, LOW);

Serial.write("retroceder");

break;

case '<':

izquierda();

digitalWrite(led, HIGH);

Serial.write("izquierda");

break;

case '>':

derecha();

digitalWrite(led, LOW);

Serial.write("derecha");

break;

case 'c':

parado();

digitalWrite(led, LOW);

Serial.write("parado control");

break;

case 'd':

parado2();

digitalWrite(led, LOW);

Serial.write("parado direccion");

break;

}

}

//Declaracion de funciones

void adelante(){

digitalWrite(motorA,LOW);

digitalWrite(motorB,HIGH);

//digitalWrite(led,HIGH);

}

void reversa(){

digitalWrite(motorA,HIGH);

digitalWrite(motorB,LOW);

// digitalWrite(led,HIGH);

}

void izquierda(){

digitalWrite(dirA,LOW);

digitalWrite(dirB,HIGH);

Page 7: Crear coche controlado por Bluetooth con arduino

// digitalWrite(led,HIGH);

}

void derecha(){

digitalWrite(dirA,HIGH);

digitalWrite(dirB,LOW);

// digitalWrite(led,HIGH);

}

void parado(){

digitalWrite(motorA,LOW);

digitalWrite(motorB,LOW);

//digitalWrite(led,HIGH);

}

void parado2(){

digitalWrite(dirA,LOW);

digitalWrite(dirB,LOW);

// digitalWrite(led,HIGH);

}

Aplicacion andrio usando AppInventor

Como mencionamos en laintroduccion usaremos el andriod appinventor para crear la aplicacionandriod ya que es un entornointuitivo ya que puedes programarsolo uniendo bloques, la aplicacioncuenta en su interfaz con los botonesnecesarios para el movimiento delcoche, ademas de un explorador webpara poder visualizar la camara ip , elespacio en blanco que sigue se dejaadrede para que podamos ver la

imagen de los bloques de laaplicacion de forma comoda yexplicar que es lo que hacen.

La interfaz quedaria :

Page 8: Crear coche controlado por Bluetooth con arduino

A pesar de que a primera vista losbloques lucen aparatosos o inclusiveenredadors y de dificil comprensiones algo muy sencillo comenzemospor los de la izquierda, el primero queexplicaremos es el bloque que estaen la esquina superior izq que diceglobal mac, este bloque contiene ladireccion mac del dispositivo con elque se desaea establecer la conexioninalambrica

el button 5 es el boton que comienzaa hacer la conexion en el evento clickde este boton se colocan lascondiciones que verifican si losbotones estan habilitados o no, si no

estan habilitados reliza la funcion deconexion y los habilita y si estanhabilitados envia un mensaje de error,esto es lo que basicamente hace todoel bloque izquierdo del programa, enresumen solo verifica si existe unaconexion, si no existe la realiza yhabilita los botones, si existe envia unmensaje de error.

La parte derecha del bloque realizauna funcion aun mas sencilla que la

del bloque de la derecha, solocontrola los eventos click de los

botones e indica el dato que se debeenviar a travez de la conexionbluetooth(los bloques morados

Page 9: Crear coche controlado por Bluetooth con arduino

indican el nombre del boton, y losvioletas son el dato que se enviara.

Como ven el la programacion andrioiden app inventopr resulta ser muy

sencilla.

Camara ip

la camara ip como se meciono antesfue lograda gracias a la aplicacion ip

webcam que te permite iniciar unservido en la direccion ip que te da el

enrutador

La imagen superior muestra lapantalla en el celular usado, en laparte inferior justo arriba de lapublicidad se aprecia la direccion ip yel numero de puerto por el cual fluyela informacion

la forma de conectarse es la siguientedesde el navegador de tu telefonocelular(en la interfaz del control delcarro esta incluido un navegador)

colocaras la direccion y el numero depuerto que te indica la pantalla delcelular en el casa de la imagen dearriba es la Http://192.168.1.64:8080

al colocar la direccion anterios en elnavegador se abrira una interfazdependiendo si es en la pc o eltelefono, si es en pc se abrira unainterfaz como la de arriba y si es un

Page 10: Crear coche controlado por Bluetooth con arduino

celular la interfaz sera como lasiguiente

en esta interfaz se debera seleccionarsi la forma de visualizar el video

usara algun driver o script especifico,si estas en un celular se debera

seleccionar el modo javascript si esuna pc el modo realmente no importa.

Coche terminado.

Page 11: Crear coche controlado por Bluetooth con arduino

CONCLUSIONES

Carlos:

En la actualidad la comunicacionmediante bluetooth resulta muyflexible ya que puede implementarseen varios proyectos como lo fue eneste caso del carro controladomediante la comunicacion bluetooth.Aunque sigue siendo insegura paratransferir algunos otros datos comoinformacion personal o contactos.

En lo personal me sorpredio lainterfaz de app inventor ya queresulta increiblemente sencillo crearuna aplicacion de celular, ademas deque me di cuanta de la flexibilidad delentorno android

en este caso el arduino fue lo que noscauso problema ya que tiene pocaflexibilidad al mometo de tratar deindependizar al arduino de la pc.

El proyecto me parecio de los mascompleto ya que usamosconocimeintos de diversas areas denuestra carrera por lo que no tengomas que concluir que es de losproyectos que mas han contriubuidoa mi formacion profesional.

Monserrat:En este proyecto se consiguio elobjetivo de controlar un coche queanteriormente era controlado coninfrarrojo y que se habia dañado, esdecir esta tecnologia nos permitioreciclar y de cierta forma renovar unarticulo viejo esto da entrada a que sies posible reciclar.

Con respecto al el desarrollo delproyecto a mi parecer el bluetooth esbastante util pero me pareciocomplicado realizar la conexion aotros dispositivos que no fuerancelulares, por ejemplo a una pcmediante visual estudio por quegenera dos puertos COM de mas.

Alejandra:

el bluetooth a mi entender y miopinion personal fue uno de losproyectos mas ambiciosos que hetenido ya que se implementaronconocimientos de diversas areas denuestra carrera desde las leccionesde electronica analogica pasando porprogramcion hasta llegar a lossitemas de comunicacion que es lamateria para la cual se desarrolloeste proyecto, ¿porque me refiero albluetooth y no al coche en si?Sencillo porque la parte del coche noimplicaba mayor desafio pero elconfigurar los circuitos necesariospara usar el bluetooth y laprogramacion para leerlo fueron locomplicado, tambien me ayudo adarme cuenta de que no es tanflexible como creia debido a queapesar de su bajo consumo deenergia resulta bastante incomodoacomodarlo en una placa.

Omar: Mi conclucion es basada en que sellego al objetivo del proyecto que eracontrolar el carro a control remotoutilizando una comunicacionbluetooth con aplicacion android conayuda de un arduino uno y puente h

Page 12: Crear coche controlado por Bluetooth con arduino

que es el encargado de que el carrose mueva. De forma personal meparecio que el modulo bluetoothcauso problema debido a que fue unpoco complicado establcer el numerode puerto que se crea al vincular elarduino con la pc y enviar datosmediante el monitor serial de arduino,esto es referente a la fase de prueba.

BIBLIOGRAFIA

[1]http://es.kioskea.net/contents/69-como-funciona-bluetooth

[2] http://es.wikipedia.org/wiki/Arduino