Top Banner
Universidad de Navojoa Trabajo presentado para el cumplimiento de la materias de Control Computarizado Maestro: Ing. Fernando Lopez Alumno: Ricardo Daniel Carrada Peña Portafolio: http://dannyasd.com
30

Universidad de Navojoa Control Computarizado

Feb 24, 2023

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Universidad de Navojoa Control Computarizado

Universidad de Navojoa

Trabajo presentado para el cumplimiento de la materias de

Control Computarizado

Maestro:

Ing. Fernando Lopez

Alumno:

Ricardo Daniel Carrada Peña

Portafolio:

http://dannyasd.com

Page 2: Universidad de Navojoa Control Computarizado

CONTENIDO

Introducción 3

Propuesta 4

Justificacion 5

Objetivo General 5

Objetivo Especifico 5

Marco teorico 6

Módulo Bluetooth 9

Servo Motor 10

Desarrollo 11

Requerimientos del Sistema 11

Ejecucion (Desarrollo del Proyecto,pasos) 11

Avances 14

Código 23

CONTROL (Correccion de fallas) 26

Cierre o PRUEBAS (resultado) 27

Conclución 29

Referencias 29

Anexos 30

Page 3: Universidad de Navojoa Control Computarizado

INTRODUCCIÓN

En el siguiente trabajo mostraremos el proyecto realizado en el ramo de Introducción a

la Ingeniería, por cierto primer desafío de ingeniería para nosotros, en el cual se nos

pedía 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 corriente electrica, pero usando componentes

electronicos, y lo que hicimos fue una puerta automatica. El fin 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 componentes electronicos.

El primer proyecto que realice fue un brazo, como el de una retroescabadora, 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

automatica, 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 utilizar la tecnologia arduino y sus componentes, y mi deseo es compartir mi

proyecto con ustedes.

Page 4: Universidad de Navojoa Control Computarizado

PROPUESTA

CARRO RC AUTONOMO CON ARDUINO

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, utilizando componentes

electronicos para poder hacerlo autonomo,

Materiales:

Servo Motor Hitec Hs-5745MG

Arduino Uno R3 Atmega328

Puente H

4 Motor DC 5V

Sensor ultrasonido SRF-04

1 shield para sensores

Page 5: Universidad de Navojoa Control Computarizado

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,

diseñar, 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 detrás 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

Aprender a programar en C para arduino.

Hacer modificaciones electricas a los componentes del carro RC

Hacer una coneccion entre sensores, y componentes 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.

Page 6: Universidad de Navojoa Control Computarizado

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

alimentación, un header ICSP, y un

botón de reinicio. Contiene todo lo

necesario para apoyar el micro controlador; simplemente conectarlo a un ordenador

con un cable USB o el poder con un adaptador de CA o la batería 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 microcontrolador 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 construidos por la mano o comprados preensamblado; el

software puede ser descargado de forma gratuita. Los diseños de referencia de

Page 7: Universidad de Navojoa Control Computarizado

hardware (archivos CAD) están 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 Mellis .

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 convertidores de potencia. Los

puentes H están disponibles

como circuitos integrados, pero

también pueden construirse a partir

de componentes discretos.

CONEXIÓN HC-06 Y ARDUINO

La conexión que tendrás 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 conectar, te invito a que

primero veas el vídeo que se

encuentra al final.

(http://ingeerick.weebly.com,

2013).

Page 8: Universidad de Navojoa Control Computarizado

Los módulos de bluetooth HC-05 y HC-06 son módulos muy populares para

aplicaciones con microcontroladores PIC

y Arduino. Se trata de dispositivos

relativamente económicos y que

habitualmente se venden en un formato

que permite insertarlos en un protoboard

y cablearlo directamente a cualquier

microcontrolador, 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 ofrece una mejor relación de precio y

características, ya que es un módulo Maestro-Esclavo, quiere decir que además 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

microcontroladores o dispositivos. En otro artículo posterior veremos como configurar

dos módulos HC-05 para que se enlacen entre ellos y podamos transmitir información

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-05 y terminan vendiéndoles un HC-06. Esto se

debe a que esencialmente el hardware es el mismo para ambos módulos. La única

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: ¡Hay que construir la

interfaz de programación!

Page 9: Universidad de Navojoa Control Computarizado

Existen unos módulos aptos para insertarse en el protoboard que nos permiten una

fácil identificación del módulo soldado antes de comprar. En estos módulos, los HC-05

normalmente tienen dos pines extra (además 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 el HC-06 se identifica como “Linvor” o “HC-06″. (Ruben, 2014).

MÓDULO BLUETOOTH

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. Opera mediante un enlace por radiofrecuencia

en la banda ISM de los 2,4 GHz. Su uso es adecuado cuando puede haber dos o más

dispositivos en un área 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 otros los servicios que ofrecen, lo que

redunda en la accesibilidad de los mismos sin un control explícito de direcciones de red,

permisos y otros aspectos típicos de redes tradicionales. El WiFi utiliza el mismo espectro

de frecuencia que Bluetooth con una potencia de salida mayor que lleva a conexiones

más sólidas. (Sánchez, 2012).

Page 10: Universidad de Navojoa Control Computarizado

SERVO MOTOR

Básicamente un servomotor es un motor de

corriente continua con un potenciometro que le

permite saber la posición en la que se encuentra

y así poder controlarla.

Para controlar el servomotor se le envía 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 según el servomotor pero normalmente va entre 0.5 y 2.5 ms aunque pueden

variar.

Dependiendo del tamaño 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 microservo 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 estándar suele ser 5kg/cm es decir puede mover 5kg a 1

cm de distancia. En caso de querer mover lo a 5 cm el servo solo podrá mover 1kg.

(Sánchez, 2012)

Page 11: Universidad de Navojoa Control Computarizado

DESARROLLO

REQUERIMIENTOS DEL SISTEMA

Los requerimientos del sistema son los siguientes

1. Hacer un carrito autónomo

2. Hacer Rutas

3. Detectar obstáculos

4. Conectar sensores

5. Modificar el micro controlador del carrito RC

6. Generar mi propio código para poder ejecutar el proyecto.

EJECUCION (DESARROLLO DEL PROYECTO,PASOS)

CONEXIÓN BÁSICA CON ARDUINO

Las conexiones para realizar con arduino son bastante sencillas. Solamente

requerimos colocar como mínimo la alimentación y conectar los pines de transmisión 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

Page 12: Universidad de Navojoa Control Computarizado

imágen muestra las conexiones básicas para que funcione el módulo

Conexión de un módulo HC-06 a Arduino. Hay que revisar la correspondencia de pines

en la serigrafía, ya que puede variar dependiendo del proveedor o lote.

En este caso estamos utilizando el hardware de UART, por lo que la comunicación con

la PC no será 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 utilizaríamos

para comunicarnos con la PC vía 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:

Al envíar el caracter E, se pone en estado alto la salida del pin 13

Al enviar el caracter A, se pone en estado lógico bajo la salida del pin 13

CONECCION CON SENSOR ULTRASONICO

Page 13: Universidad de Navojoa Control Computarizado

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);

}void 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.println("Out of range");

}

else {

Serial.print(distance);

Page 14: Universidad de Navojoa Control Computarizado

digitalWrite(trigPin, HIGH);

// delayMicroseconds(1000); - Removed

this line

delayMicroseconds(10); // Added this

line

digitalWrite(trigPin, LOW);

duration = pulseIn(echoPin, HIGH);

distance = (duration/2) / 29.1;

Serial.println(" cm");

}

delay(500);

}

AVANCES

Page 15: Universidad de Navojoa Control Computarizado
Page 16: Universidad de Navojoa Control Computarizado
Page 17: Universidad de Navojoa Control Computarizado
Page 18: Universidad de Navojoa Control Computarizado
Page 19: Universidad de Navojoa Control Computarizado
Page 20: Universidad de Navojoa Control Computarizado
Page 21: Universidad de Navojoa Control Computarizado
Page 22: Universidad de Navojoa Control Computarizado
Page 23: Universidad de Navojoa Control Computarizado

CÓDIGO

Este el 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(Ptrig, LOW);

delayMicroseconds(2);

Page 24: Universidad de Navojoa Control Computarizado

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.println("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); // tune

left motor off

}void obstaculo()

{ digitalWrite(adelante,LOW);

digitalWrite(Ptrig, HIGH);

delayMicroseconds(10);

digitalWrite(Ptrig, LOW);

duracion = pulseIn(Pecho, HIGH);

distancia = (duracion/2) / 29;

if (distancia >= 101 || distancia <= 0){

Serial.println("Adelante, sin riesgos");

Serial.print(distancia);

Serial.println("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);

}

Page 25: Universidad de Navojoa Control Computarizado

digitalWrite(derecha,LOW);

digitalWrite(izquierda,HIGH);

digitalWrite(atras,HIGH);

}void movimiento1()

{ go_adelante();

delay(1000);

go_derecha();

delay(200);

if (distancia <= 100 && distancia >= 1){

Serial.print(distancia);

Serial.println("cm");

digitalWrite(13, 1);

go_atras();

delay(100);

alto();

delay(4000);

obstaculo();

delay(1000);

} delay(400);

}

Page 26: Universidad de Navojoa Control Computarizado

CONTROL (CORRECCION DE FALLAS)

Se Modifico toda la carcasa el carro, también se corrigio un problema con la batería del

carro ya que una pila de 9v no daba y se tubo que comprar una pila mas grande para

poder mover el carrito.

Page 27: Universidad de Navojoa Control Computarizado

CIERRE O PRUEBAS (RESULTADO)

Page 28: Universidad de Navojoa Control Computarizado

Este es el resultado Final

Page 29: Universidad de Navojoa Control Computarizado

CONCLUCIÓN

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.cc. Obtenido de

http://www.arduino.cc/en/pmwiki.php?n=

http://ingeerick.weebly.com. (11 de 01 de 2013). http://ingeerick.weebly.com. Obtenido

de http://ingeerick.weebly.com/arduino/bluetooth-hc-06-configuracin-con-arduino

Ruben, J. (29 de 3 de 2014). www.geekfactory.mx. Obtenido de

http://www.geekfactory.mx/radio/bluetooth-hc-05-y-hc-06-tutorial-de-

configuracion/

Sánchez, E. L. (1 de 12 de 2012). Diseño de un sistema de control domótico. Valencia,

Valencia, España.