CONTROL DE UN CARRO RC CON
BLUETOOTH
Alejandra Onofre Mazon.-1
Carlos Adrian Avilez Garcia.-1
Mirna Monserrat Sotelo Garci...
(255 cuando se encuentran en modo
en espera). Los dispositivos en una
piconet poseen una dirección lógica
de 3 bits, para ...
entornos de aprendizaje como el
raptor.
La aplicación se puso a disposición
del público el 12 de julio de 2010 y
está diri...
Bien los pines de corriente deben ser
conectados de la siguiente manera:
Vcc-------->5v
Gnd-------->gnd
Rx-------->Tx ardu...
8 Corriente de fuente
externa
9 A una resitencia de 1k y
conectada a corriente del
arduino
10 Pin 5
11 A corriente de moto...
void loop(){
char unChar = Serial.read();//se lee
dato entrante
//se inicia el switch, cabe
mencionar que en los case solo...
// digitalWrite(led,HIGH);
}
void derecha(){
digitalWrite(dirA,HIGH);
digitalWrite(dirB,LOW);
// digitalWrite(led,HIGH);
}...
A pesar de que a primera vista los
bloques lucen aparatosos o inclusive
enredadors y de dificil comprension
es algo muy se...
indican el nombre del boton, y los
violetas son el dato que se enviara.
Como ven el la programacion andrioid
en app invent...
celular la interfaz sera como la
siguiente
en esta interfaz se debera seleccionar
si la forma de visualizar el video
usara...
CONCLUSIONES
Carlos:
En la actualidad la comunicacion
mediante bluetooth resulta muy
flexible ya que puede implementarse
e...
que es el encargado de que el carro
se mueva. De forma personal me
parecio que el modulo bluetooth
causo problema debido a...
Próxima SlideShare
Cargando en…5
×

Crear coche controlado por Bluetooth con arduino

12.279 visualizaciones

Publicado el

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

Publicado en: Ingeniería
1 comentario
17 recomendaciones
Estadísticas
Notas
  • Hola. Tengo un proyecto entre manos que es parecido en cierta forma al del coche, necesito controlar una noria por bluetooth y el mobil. arnau941019@gmail.com es mi correo si se pudiera poner en contacto me seria de gran ayuda. Saludos.
       Responder 
    ¿Estás seguro?    No
    Tu mensaje aparecerá aquí
Sin descargas
Visualizaciones
Visualizaciones totales
12.279
En SlideShare
0
De insertados
0
Número de insertados
84
Acciones
Compartido
0
Descargas
714
Comentarios
1
Recomendaciones
17
Insertados 0
No insertados

No hay notas en la diapositiva.

Crear coche controlado por Bluetooth con arduino

  1. 1. 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
  2. 2. (255 cuando se encuentran en modo en espera). Los dispositivos en una piconet poseen una dirección lógica de 3 bits, para un máximo de 8 dispositivos. Los dispositivos que se encuentran en el modo en espera se sincronizan, pero no tienen su propia dirección física en la piconet. [1] En el resumen a grandes rasgos hablamos sobre el modulo que estaremos utilizando para este proyecto, el modulo utilizado es el HC-06, una de las ventajas principales ventajas del módulo HC- 06, además de su pequeño tamaño y sus buenas características de transmisión y recepción que le brindan un alcance muy amplio (por tratarse de un sistema local Bluetooth), es el bajo consumo de corriente que posee tanto en funcionamiento, como en modo de espera, es decir, alimentado con energía, pero sin conexión o enlace a otro dispositivo, por ejemplo, un móvil con SO Android. Otra característica interesante de este módulo es que una vez que ha realizado un enlace con otro dispositivo es capaz de recordarlo en su memoria y no solicita validación alguna (“1234” por defecto) 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. Arduino puede tomar información del entorno a través de sus entradas y 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. [2] El sistema operativo andriod es un SO creado por google con el fin de unificar los SO de los telefonos celulares, es de codigo abierto (google lo libero bajo la licencia Apache) esto quiere decir que cualquiera puede desarrollar aplicaciones para andriod, tambien es un sistema multi task (multi tarea) que te permite tener varias aplicaciones ejecutandose al mismo tiempo he interactuar en ellas; la aplicacion en andriod para este proyecto la realizaremos en el app inventor que es una pagina web que corre un scrip de java que te permite crear aplicaciones andriod diseñando por un lado la interfaz de una forma sencilla y que no requiere preparacion alguna, esta manera de diseñar interfaz es similar a la usada por Microsoft en su Visual Studio, por el lado de codigo o programar acciones de los botones o los componentes que se agregaron a la interfaz es de una forma muy intuitiva, cualquier persona con un poco de entrenamiento puede crear acciones, esto se logra mediante la union de bloques, es bastante similar a los
  3. 3. entornos de aprendizaje como el raptor. 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. Fue creada a mediados del 2009 el profesor Harold Abelson del MIT . Antes de salir al mercado se ha probado en diferentes centros educativos como en el centro educativo CEtis y la han utilizado desde niños de 12 años hasta licenciados universitarios sin nociones de programación. Las cámaras IP permiten ver en tiempo real qué está pasando en un lugar, aunque esté a miles de kilómetros de distancia. Son cámaras de vídeo de gran calidad que tienen incluido un ordenador a través del que se conectan directamente a Internet. El acceso a estas imágenes está totalmente(en el caso que este cifrado) restringido: sólo las personas autorizadas pueden verlas. También se puede ofrecer acceso libre y abierto si el vídeo en directo se desea incorporar al web site de una compañía para que todos los internautas tengan acceso. Para este proyecto se utilizara la camara de un celular Sony Ericcsion c 1504 de 3.2 mp, para poder usar este telefono como camara ip se descargo la aplicacion ip webcam del la andriod store fue crada por Pavel Khlebovich en abril de 2013 y su ultima revicion fue el 14 de abril de 2014, esta apicacion te permite convertir tu celular en un pequeño servidor, para obtener el video se debe ingresar desde el navegador web de tu pc o celular a la direccion que le es otorgada al celular por el enrutador en el desarrollo dejaremos la forma de conectarse a la camara ip. DESARROLLO Armado del Circuito El diagrama del circuito esta compuesto por un modulo bluetooth que actuara como enlace serialpara resivir los datos que se estan resiviendo via inalambrica, un arduino UNO que es el que controla el trafico de datos y controla las salidas correspondientes, tambien esta señalado un circuito L 293b que es un controlador para crear un Puente H para poder asi controlar la direccion del giro de los motores es decir para que avance o retorseda el carrito. Comenzaremos a explicar de iz a derecha comenzemos por el como se debe conectar el modulo bluetooth, el HC 06 cuanta con 4 pines que son un pin para corriente, uno para tierra, un RX y un RY estos ultimos son los encargados de transmitir los datos
  4. 4. Bien los pines de corriente deben ser conectados de la siguiente manera: Vcc-------->5v Gnd-------->gnd Rx-------->Tx arduino(pin1) Tx -------->Rx arduino(pin 0) Para conectar el puente h que es l parte mas importante del circuito ya que de este depende la direccion del coche se utilizaran los pines 2,3,4,5 de el arduno 1, el L293 cuanta con 16 pines la forma de conectarlos es la siguiente PIN DEL L293 CONEXION 1 A una resitencia de 1k y conectada a corriente del arduino 2 A pin 3 de arduin 3 A tierra del motor 1 4 A tierra de arduino y de fuente externa 5 A tierra de arduino y de fuente externa 6 A corriente de motor1 7 Pin 2
  5. 5. 8 Corriente de fuente externa 9 A una resitencia de 1k y conectada a corriente del arduino 10 Pin 5 11 A corriente de motor2 12 A tierra de arduino y de fuente externa 13 A tierra de arduino y de fuente externa 14 A tierra de motor 2 15 Pin 4 16 Corriente arduino Con este circuito se garantiza que tendra los movimientos necesarios ya que el motor 1 se encarga de la traccion y el motor dos de la direccion Programacion de arduino UNO el programa de arduino se encarga de leer un dato que llega por el serial y inicia un switch que comparara el dato de entrada con los case´s si coincide con alguno ejecutara el codigo que este en este, en nuestra aplicacion el codigo de los case´s son instrucciones para dar voltaje a alguno de los 4 pines del arduino que se estan utilizando, esto activara al L293 y dara la direccion correcta al coche, no hicimos uso de ninguna libreria especifica ya que el bluetooth no es mas que una medio serial solo usamos la declaracion y las funciones de SERIAL a continucacion el codigo comentado. //Se crea una variable donde se almacenaran los valores que reciba arduino int unChar; //Se crearan las funcionas que se van 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 para llamar a mandar atraer la funcion a realizar dependendiendo del caracter que el arduino reciba
  6. 6. void loop(){ char unChar = Serial.read();//se lee dato entrante //se inicia el switch, cabe mencionar que en los case solo se esta mandando llamar las funciones 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);
  7. 7. // 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 App Inventor Como mencionamos en la introduccion usaremos el andriod app inventor para crear la aplicacion andriod ya que es un entorno intuitivo ya que puedes programar solo uniendo bloques, la aplicacion cuenta en su interfaz con los botones necesarios para el movimiento del coche, ademas de un explorador web para poder visualizar la camara ip , el espacio en blanco que sigue se deja adrede para que podamos ver la imagen de los bloques de la aplicacion de forma comoda y explicar que es lo que hacen. La interfaz quedaria :
  8. 8. A pesar de que a primera vista los bloques lucen aparatosos o inclusive enredadors y de dificil comprension es algo muy sencillo comenzemos por los de la izquierda, el primero que explicaremos es el bloque que esta en la esquina superior izq que dice global mac, este bloque contiene la direccion mac del dispositivo con el que se desaea establecer la conexion inalambrica el button 5 es el boton que comienza a hacer la conexion en el evento click de este boton se colocan las condiciones que verifican si los botones estan habilitados o no, si no estan habilitados reliza la funcion de conexion y los habilita y si estan habilitados envia un mensaje de error, esto es lo que basicamente hace todo el bloque izquierdo del programa, en resumen solo verifica si existe una conexion, si no existe la realiza y habilita los botones, si existe envia un mensaje de error. La parte derecha del bloque realiza una funcion aun mas sencilla que la del bloque de la derecha, solo controla los eventos click de los botones e indica el dato que se debe enviar a travez de la conexion bluetooth(los bloques morados
  9. 9. indican el nombre del boton, y los violetas son el dato que se enviara. Como ven el la programacion andrioid en app inventopr resulta ser muy sencilla. Camara ip la camara ip como se meciono antes fue lograda gracias a la aplicacion ip webcam que te permite iniciar un servido en la direccion ip que te da el enrutador La imagen superior muestra la pantalla en el celular usado, en la parte inferior justo arriba de la publicidad se aprecia la direccion ip y el numero de puerto por el cual fluye la informacion la forma de conectarse es la siguiente desde el navegador de tu telefono celular(en la interfaz del control del carro esta incluido un navegador) colocaras la direccion y el numero de puerto que te indica la pantalla del celular en el casa de la imagen de arriba es la Http://192.168.1.64:8080 al colocar la direccion anterios en el navegador se abrira una interfaz dependiendo si es en la pc o el telefono, si es en pc se abrira una interfaz como la de arriba y si es un
  10. 10. celular la interfaz sera como la siguiente en esta interfaz se debera seleccionar si la forma de visualizar el video usara algun driver o script especifico, si estas en un celular se debera seleccionar el modo javascript si es una pc el modo realmente no importa. Coche terminado.
  11. 11. CONCLUSIONES Carlos: En la actualidad la comunicacion mediante bluetooth resulta muy flexible ya que puede implementarse en varios proyectos como lo fue en este caso del carro controlado mediante la comunicacion bluetooth. Aunque sigue siendo insegura para transferir algunos otros datos como informacion personal o contactos. En lo personal me sorpredio la interfaz de app inventor ya que resulta increiblemente sencillo crear una aplicacion de celular, ademas de que me di cuanta de la flexibilidad del entorno android en este caso el arduino fue lo que nos causo problema ya que tiene poca flexibilidad al mometo de tratar de independizar al arduino de la pc. El proyecto me parecio de los mas completo ya que usamos conocimeintos de diversas areas de nuestra carrera por lo que no tengo mas que concluir que es de los proyectos que mas han contriubuido a mi formacion profesional. Monserrat: En este proyecto se consiguio el objetivo de controlar un coche que anteriormente era controlado con infrarrojo y que se habia dañado, es decir esta tecnologia nos permitio reciclar y de cierta forma renovar un articulo viejo esto da entrada a que si es posible reciclar. Con respecto al el desarrollo del proyecto a mi parecer el bluetooth es bastante util pero me parecio complicado realizar la conexion a otros dispositivos que no fueran celulares, por ejemplo a una pc mediante visual estudio por que genera dos puertos COM de mas. Alejandra: el bluetooth a mi entender y mi opinion personal fue uno de los proyectos mas ambiciosos que he tenido ya que se implementaron conocimientos de diversas areas de nuestra carrera desde las lecciones de electronica analogica pasando por programcion hasta llegar a los sitemas de comunicacion que es la materia para la cual se desarrollo este proyecto, ¿porque me refiero al bluetooth y no al coche en si? Sencillo porque la parte del coche no implicaba mayor desafio pero el configurar los circuitos necesarios para usar el bluetooth y la programacion para leerlo fueron lo complicado, tambien me ayudo a darme cuenta de que no es tan flexible como creia debido a que apesar de su bajo consumo de energia resulta bastante incomodo acomodarlo en una placa. Omar: Mi conclucion es basada en que se llego al objetivo del proyecto que era controlar el carro a control remoto utilizando una comunicacion bluetooth con aplicacion android con ayuda de un arduino uno y puente h
  12. 12. que es el encargado de que el carro se mueva. De forma personal me parecio que el modulo bluetooth causo problema debido a que fue un poco complicado establcer el numero de puerto que se crea al vincular el arduino con la pc y enviar datos mediante 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

×