You are on page 1of 30
Universidad de Navojoa Trabajo presentado para el cumplimiento de la materias de Control Computarizado Maestro: Ing. Fernando Lopez Alumno: Ricardo Daniel Carrada Pefia Portafolio: http://dannyasd.com © UnrversIpAD Nir) Introduccion Propuesta Justificacién Objetivo General Otjetivo Especitico Marco teorico Médulo Bluetooth ‘Servo Motor Desarrollo Requerimientos del Sistema Ejecucién (Desarrollo del Proyecto,pasos) FEB BB © aun nu ew Avances Codigo 3 CONTROL (Correccion de fallas) 26 Cierre 0 PRUEBAS (resultado) 7 Conelucion 29 Referencias 29 ‘Anexos 30 UNIVERSIDAD ae «DE NAVOJOA INTRODUCCION En el siguiente trabajo mostraremos el proyecto realizado en el ramo de Introduccién a la Ingenieria, por cierto primer desatio de ingenieria para nosotros, en el cual se nos pedia realizar un proyecto con Arduino. Antes de llegar a este punto, tuvimos que realizar proyectos previos, hicimos un proyecto que no ocupara corriente electrica, el segundo fue, hacer un proyecto que ocupara cortiente electrica, pero usando componentes electronicos, y lo que hicimos fue una puerta automatica. Elfin de esta materia es que pudiesemos comprender que en esta epoca existen proyectos que integran tanto, lo no electrico, ya sea la mecanica, con lo electrico, que son chips y components electronicos. El primer proyecto que realice fue un brazo, como el de una rettoescabadora, manipulada por pistones de geringas que hacian que el brazo se levantara, el requerimiento de este proyecto era que no deberiamos usar electricidad. Y para poder realizar este proyecto vimos historia del control computarizado, vimos que un control computarizado debe tener Un ciclo que haga que sea autonomo. Despues el segundo proyecto fue, una puerta automnatica, simulando la puerta de una tienda, que al sentir la presencia de una persona la puerta se abriera automaticamente, y que en un sierto tiempo determinado, se cerrara automaticamente. El siguiente paso era aprender a integrar los circuitos electronicos con la programacion, e hicimos que un carrito de control remoto, lo pudieramos comandar desde una computadora, utilizando el puerto paralelo y para esto programamos en java. Estos fueron algunos de los proyectos que realizamos previo al entrar con Arduino. Ahora el desafio es realizar un proyecto implementando la tecnologia arduino y la propuesta que di, fue la de un carro que pueda ser autonomo, que sea capas de esquivar obstaculos y que tambien pueda manejarse con Androd. Al realizar este proyecto aprenderemos, como utlizar la tecnologia arduino y sus componentes, y mi deseo es compartir mi proyecto con ustedes. UNIVERSIDAD oe DE NAVOJOA PROPUESTA CARRO RC AUTONOMO CON ARDUINO. Materiales: Servo Motor Hitec Hs-5745MG. Arduino Uno R3 Atmega328 Puente H 4 Motor DC 5V Sensor ultrasonido SRF-04 1 shield para sensores La pruesta que tengo, es realizar una conversion de un carro RC que compre para que se pueda hacer autonomo. Caracteristicas: El carro debe de manejarse solo y tambien debe de tener una interface para android manegada por bluetooth Hacer una conversion de un carro RC a Arduino, utiizando componentes electronicos para poder hacerlo autonomo, UNIVERSIDAD oe DE NAVOJOA JUSTIFICACION La necesidad al realizar este proyecto, es ver que podemos automatizar compentes, en este caso es un carrito RC, este proyecto nos habre un panorama de todo lo que podemos hacer como ingenieros en sistemas. Para nosotros es un desafio, el poder implementar nuestros conocimientos en este proyecto, implementaremos tanto lo electronico como lo programable y buscar estre nuestros conocimientos la solucion mas favorable para poder realizar este proyecto. En este proyecto se necesita investigar, disefiar, programar, para poder buscar la solucion mas eficiente al enfrentarnos con los. desafios que lleva este proyecto. OBJETIVO GENERAL El obejtivo general de este proyecto es aprender a automatizar un carro a control remoto, mediante un componente electronico, conocido como Arduino, el cual veremos como esta compuesto este componente electronico y junto a esto aprenderemos a programar para este microcontrolador. Este carrito tendra la posibilidad de poder manejarse automaticamente y al implementarle un sensor ultrasonico, que este sensor se encargara de detertar que tiene por delante y por detras ya que este sensor es un sensor de proximidad, tambien este sensor le mandara los datos que capture haciendo su funcion al arduino y el arduino se encargara de controlar tanto a los motores y el sensor. OBJETIVO ESPECIFICO * Hacer un proyecto que nos oblige a la investigacion ‘+ Hacer un proyecto que desafie nuestras capacidades ‘+ Aptender a programar en C para atduino. * Hacer modificaciones electricas a los components del carro RC * Hacer una coneccion entre sensores, y components electricos con el arduino. * Hacer que esteticamente el carro se vea bien, al implementar toda nuestra tecnologia. ‘+ Sobre todo a adquir nuevos conocimientos, tanto en lo hardware y software. wt “ UNIVERSIDAD ae «DE NAVOJOA MARCO TEORICO. Describiremos algunas definiciones y conceptos de componentes que utilizamos para desarrollar este proyecto: Arduino one. El Arduino Uno es una placa electrénica basada en el ATmega328. Cuenta con 14 pines digitales de entrada / salida (de los cuales 6 se pueden utilizar como salidas PWM), 6 entradas analégicas, un 16 MHz resonador cerémico, una conexién USB, un conector de alimentacion, un header ICSP, y un bot6n de reinicio. Contiene todo lo necesario para apoyar el micro controlador; simplemente conectarlo a un ordenador con un cable USB 0 el poder con un adaptador de CA o la baterfa a CC para empezar. {arduino, 2014) {Qué puede hacer Arduino? Arduino puede detectar el medio ambiente mediante la recepcién de la entrada de una variedad de sensores y puede afectar a sus alrededores por las luces de control, motores, y otros actuadores. El micro controlador en la placa se programa mediante el lenguaje de programacién Arduino (basado en Wiring) y el entorno de desarrollo Arduino (basado en Processing). Proyectos de Arduino pueden ser auténomos o pueden comunicarse con el software que se ejecuta en un ordenador (por ejemplo, Flash, Processing, MaxMSP). Las tablas pueden ser construidas por la mano 0 comprados preensamblado; el software puede ser descargado de forma gratuita. Los disefios de referencia de WIN “ UNIVERSIDAD me DE NAVOJOA hardware (archivos CAD) estan disponibles bajo una licencia de cédigo abierto, que son libres de adaptarlas a sus necesidades. Los fundadores de Arduino son: Massimo Banzi, David Cuartielles , Tom Igoe , Gianluca Martino y David Meliis. Un Puente H o Puente en H es un circuito electrénico que permite a un motor eléctrico DC girar en ambos sentidos, avance y retroceso. Son ampliamente usados en robética y como convettidores de potencia. Los puentes H estén disponibles como circuitos integrados, pero también pueden construitse a partir de componentes discretos. CONEXION HC-06 Y ARDUINO La conexién que tendras que hace entre el bluetooth y el Arduino, sera como la que se muestra a continuacién y aunque el modulo que aparece en la imagen no es el mismo que el HC-06 solo sirve como referencia, ya que nuestro modulo también cuenta con los mismos 4 pines para su conexién. Para resolver cualquier duda con la forma de coneciar, te invito a que primero veas el video que se encuentra al final. (http://ingeerick.weebly.com. 2013). UNIVERSIDAD ae DE NAVOJOA Los médulos de bluetooth HC-05 y HC-06 son médulos muy populares para aplicaciones con micro controladores PIC. y Arduino. Se trata de dispositivos relativamente econdmicos y que habitualmente se venden en un formato que permite insertarlos en un protoboard y cablearlo directamente a cualquier micro controlador, incluso sin realizar soldaduras. En esta entrada del blog vamos a explicar un poco del funcionamiento de estos médulos y como configurarlos. También abordaremos las diferencias entre el HC-05 y el HC-06. (Ruben, 2014). Médulo Bluetooth HC-05 El médulo de bluetooth HC-05 es el que offece una mejor relacion de precio y caracteristicas, ya que es un médulo Maestro-Esclavo, quiere decir que ademas de recibir conexiones desde una PC o Tablet, también es capaz de generar conexiones hacia otros dispositivos bluetooth. Esto nos permite por ejemplo, conectar dos médulos de bluetooth y formar una conexién punto a punto para transmitir datos entre dos micro controladores 0 dispositivos. En otto articulo posterior veremos cémo configurar dos médulos HC-05 para que se enlacen entre ellos y podamos transmitir informacion de un punto a otro. (Ruben, 2014) Diferencias HC-05 vs HC-06 y como identificarlos Muchas personas y tiendas en internet venden el HC-06 y HC-05 como un mismo médulo, muchas veces uno pide un HC-08 y terminan vendiéndoles un HC-06. Esto se debe a que esencialmente el hardware es el mismo para ambos médulos. La Unica diferencia real es el firmware que viene cargado de fébrica. De hecho, si tenemos paciencia, podemos convertir un HC-06 a un HC-05 nosotros mismos con solamente cambiar el firmware de los médulos, pero quedas advertido: jHay que construir la interfaz de programacién! UNIVERSIDAD em «DE NAVOJOA Existen unos médulos aptos para insertarse en el protoboard que nos permiten una facil identificacién del médulo soldado antes de comprar. En estos médulos, los HC-05 normalmente tienen dos pines extra (ademas de TX, RX, VCC, GND) etiquetado como “Key” y “State”. El pin “key” es necesario para entrar al modo de comandos AT en el médulo HC-05 (pin 34) y por lo tanto, solo se instala cuando el médulo de bluetooth a bordo es un HC-05. También podemos identificar si se trata de un HC-05 por la forma en que se identifican con otros dispositivos bluetooth: El HC-05 se identifica como “HC- 05", mientras que e! HC-06 se identifica como “Linvor" 0 *HC-06". (Ruben, 2014). MODULO BLUETOOTH Se denomina Bluetooth al protocolo de comunicaciones disefiado especialmente para dispositivos de bajo consumo, que requieren corto alcance de emisién y Basados en transceptores de bajo costo. Opera mediante un enlace por radiofrecuencia en la banda ISM de los 2,4 GHz. Su uso es adecuado cuando puede haber dos o mas dispositivos en un area reducida sin grandes necesidades de ancho de banda. Bluetooth tiene la ventaja de simplificar el descubrimiento y configuracién de los dispositivos, ya que éstos pueden indicar a otfos los servicios que ofrecen, lo que redunda en la accesibilidad de los mismos sin un control explicito de direcciones de red, permisos y otros aspectos tipicos de redes tradicionales. El Wifi utiliza el mismo espectro de frecuencia que Bluetooth con una potencia de salida mayor que lleva a conexiones mas solidas. (Sanchez, 2012). UNIVERSIDAD oe _DE NAVOJOA SERVO MOTOR Basicamente un servomotor es un motor de corriente continua con un potenciémetro que le permite saber la posicién en la que se encuentra y asf poder controlarla Para controlar el servomotor se le envia pulsos cada 20 ms es decir 50Hz. La anchura del pulso es lo que codifica el Angulo de giro, es decir lo que se conoce como PWM, codificacién por ancho de pulso. Esta anchura varia segin el servomotor pero normalmente va entre 0.5 y 2.5 ms aunque pueden variar. Dependiendo del tamafio del servo y su consumo es posible que no puedas alimentarlo desde tu placa Arduino, en ese caso es necesario una fuente de 5V independiente para poder moverlo, en mi caso uso un micro servo por lo que consume poca corriente y se puede alimentar directamente por el Arduino. Sobre el peso que pueden levantar se puede deducir con el par del servo. Normalmente los servos indican el par o torque que pueden realizar para un servo estandar suele ser Skg/cm es decir puede mover 5kg a 1 cm de distancia. En caso de querer mover lo a 5 cm el servo solo podra mover 1kg, (Sanchez, 2012) © Unrverstpap mem DE Navojoa DESARROLLO REQUERIMIENTOS DEL SISTEMA Los requerimientos del sistema son los siguientes . Hacer un carrito autonomo .. Hacer Rutas ._Detectar obstaculos . Conectar sensores .. Modificar el micro controlador del carrito RC .. Generar mi propio cédigo para poder ejecutar el proyecto. Prk ens EJECUCION (DESARROLLO DEL PROYECTO,PASOS) ‘CONEXION BASICA CON ARDUINO Las conexiones para realizar con Arduino son bastante sencillas. Solamente requerimos colocar como minimo la alimentacién y conectar los pines de transmision y recepcién serial (TX y RX). Hay que recordar que en este caso los pines se debe conectar cruzados TX Bluetooth -> RX de Arduino y RX Bluetooth -> TX de Arduino. La siguiente NIERIA Wf Ins Nn UNIVERSIDAD em DE NAVOJOA imagen muestra las conexiones basicas para que funcione el modulo Conexién de un médulo HC-06 a Arduino. Hay que revisar la correspondencia de pines enla serigratia, ya que puede variar dependiendo del proveedor 0 lote. En este caso estamos utilizando el hardware de UART, por lo que la comunicacién con la PC no sera posible. Para poder utilizar la UART para comunicarse con la PC mediante USB, es necesario utilizar un UART emulado por software, de manera que los pines de comunicacién con el médulo bluetooth queden en pines distintos. El cédigo para la comunicacién a través del bluetooth es idéntico al que utilizariamos para comunicarnos con la PC via USB. El siguiente ejemplo permite encender o apagar el led de la tarjeta Arduino mediante el médulo bluetooth. El cédigo funciona de la siguiente manera: ‘+ Alenviar el cardcter E, se pone en estado alto la salida del pin 13 + Alenviar el cardcter A, se pone en estado l6gico bajo la salida del pin 13, ‘CONECCION CON SENSOR ULTRASONICO UNIVERSIDAD. mem DE NAvojoa El cédigo que utilice para poderme orientar al crear mi cédigo para mi carro fue este define trigPin 13, define echoPin 12 define led 11 define led2 10 void setup() { Serial.begin (9600); pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT); pinMode(led, OUTPUT); pinMode(led2, OUTPUT); Woid loop() { long duration, distance; digitalWrite(trigPin, LOW); // Added this line delayMicroseconds(2); // Added this line if (distance < 4) { // This is where the LED On/Off happens digitalWrite(led, HIGH); // When the Red condition is met, the Green LED should turn off digitalWrite(led2,LOW); } else { digitalWrite(led, LOW); digitalWrite(led2,HIGH); } if (distance >= 200 || distance <= 0){ Serial.printin("Out of range"); } else { Serial.print(distance); xX INGENIERIG UNIVERSIDAD ee DE Navojyoa digitalWrite(trigPin, HIGH) 1 delayMicroseconds(1000); - Removed this line delayMicroseconds(10); // Added this line digitalWrite(trigPin, LOW); duration = pulseln(echoPin, HIGH); distance = (duration/2) / 29.1; Serial printin(™ cm } delay(500) } ") AVANCES UNIVERSIDAD eee DE NAVOJOA UNIVERSIDAD eee DE Navojoa UNIVERSIDAD oe _ DE NAVOJOA ~ewaty UNIVERSIDAD eee DE NAVOJOA 5 wf 4 UNIVERSIDAD eee DE NAVOJOA aa at Zs es A Za ~~ aa z§| BS 83 eS Za | UNIVERSIDAD ome DE NAVOJOA UNIVERSIDAD ae «DE NAVOJOA CODIGO Este es el resultado Final de mi cédigo para poder hacer mover mi carrito con un sensor de proximidad. const int buttonPin = 2: const int ledPin = 13; int buttonState = 0; int atras = 12; int adelante = 11; int izquierda = 10; int derecha = 9; define Pecho 6 define Ptrig 7 long duracion, distancia; void setup() { pinMode(ledPin, OUTPUT); pinMode(buttonPin, INPUT); Serial.begin (9600); pinMode(Pecho, INPUT); pinMode(Ptrig, OUTPUT); pinMode(13, 1); pinMode(adelante, OUTPUT); void go_atras() { digitalWrite(atras, HIGH); digitalWrite(adelante,LOW); void alto() { digitalWrite(atras,LOW); digitalWrite(adelante, LOW); digitalWrite(izquierda, LOW); digitalWrite(derecha, LOW); go_izquierda(); delay(200); void movimiento2() { go_adelante(); delay(1000); go_derecha(); delay(200); void loop) { digitalWrite(Prrig, LOW); delayMicroseconds(2); IGE wt A“ UNIVERSIDAD oe _ DE NAVOJOA pinMode(atras, OUTPUT); pinMode(izquierda, OUTPUT); pinMode(derecha, OUTPUT); } void go_adelante() { digitalWrite(adelante HIGH); digitalWrite(derecha, HIGH); digitalWrite(atras,LOW); digitalWrite(izquierda, LOW); Serial.printin("Peligro Objeto Cerca"); }void altoTotal() { digitalWrite(atras, LOW); digitalWrite(adelante,LOW); digitalWrite(izquierda, LOW); digitalWrite(derecha,LOW); void go_izquierda() { digitalWrite(izquierda, HIGH); digitalWrite(derecha,LOW); void go_derecha() { digitalWrite(derecha, HIGH); // turn right motor on digitalWrite(izquierda,LOW); left motor off /itune Wwoid obstaculo() { digitalWrite(adelante,LOW); digitalWrite(Ptrig, HIGH); delayMicroseconds(10); digitalWrite(Ptrig, LOW); duracion = pulseln(Pecho, HIGH); distancia = (duracion/2) / 29; if (distancia >= 101 || distancia <= 0){ Serial printin("Adelante, sin riesgos"); Serial print(distancia); Serial printin("cm"); digitalWrite(13, 0); movimiento2(); delay(1000);"/ go_adelante(); delay(1000); go_derecha(); delay(500); go_izquierda(); delay(500); go_derecha(); delay(500); go_izquierda(); delay(500); } © Unrverstpap ome DE Navojoa digitalWrite(derecha,LOW); digitalWrite(izquierda, HIGH); digitalWrite(atras, HIGH); Jvoid movimiento () { go_adelante(); delay(1000); go_derecha(); delay(200); if (distancia <= 100 88 distancia >= 1){ Serial print(distancia); Serial.printin("cm"); digitaWrite(13, 1); go_atras(); delay(100); alto(); delay(4000); obstaculo(); delay(1000); ) delay(400); } © UNIVERSIDAD ome DE Navojoa CONTROL (CORRECCION DE FALLAS) Se Modificé toda la carcasa el carro, también se corrigié un problema con la bateria del carro ya que una pila de 9v no daba y se tuvo que comprar una pila mas grande para poder mover el cartito. “ © UNIVERSIDAD ome DE Navojoa CIERRE O PRUEBAS (RESULTADO) UNIVERSIDAD em DE NAVOJOA Este es el resultado Final “ UNIVERSIDAD oe DE NAVOJOA CONCLUCION Se cumplio el objetivo al generar un carrito autonomo capas de detectar movimiento, tambien los conocimientos se adquirieron al investigar de manera profunda para poder enterder como funcionaba el codigo arduino y sus componentes. El siguiente paso conectarle unos servomotores para que el sensor tenga la opcion de detectar izquierda y derecha. REFERENCIAS arduino. (1 de 1 de 2014). Arduino.ce. Obtenido de http:/www.arduino.co/en/omwiki,php2n= httpv/ingeerick.weebly.com. (11 de 01 de 2013). http:/ingeerick.weebly.com. Obtenido de httov/ingeerick.weebly.com/arduino/bluetooth-hc-06-configuracin-con-arduino Ruben, J. (29 de 3 de 2014). www.geektactory.mx. Obtenido de http:/www.geekfactory.mx/radio/bluetooth-he-05-y-he-06-tutorial-de- configuracion/ Sanchez, E. L. (1 de 12 de 2012). Disefio de un sistema de control domético. Valencia, Valencia, Espafia. ¢ UNIVERSIDAD DE NAVojoa http/www.instructables.com/id/Autonomous-Control-of-RC-Car-Using- Arduino/step4/Hack-Into-The-Cars-Electronics/ Xgsevese

You might also like