Vous êtes sur la page 1sur 24

INGENIERÍA MECÁNICA

“AÑO DEL DIÁLOGO Y LA RECONCILIACIÓN NACIONAL”

DIRECCIÓN ZONAL : BAGUA GRANDE

C.F.P : UTCUBAMBA - AMAZONAS

DONCENTE : ING: EDUAR JAMIS MEJÍA VÁSQUEZ

CARRERA : INGENIERÍA MECÁNICA

CICLO : IX

INSTRUCTOR DE PROYECTO : ING: EDUAR JAMIS MEJIA VASQUEZ

INTEGRANTES :
HERRERA MORENO FREDDY ROLAN
JULON QUIROZ ADILSON EULER
ROMAN CORDOVA ALBERT

PROYECTO

Diseño y control de un sistema para un autorobot esquiva


obstáculos con aplicación Android

BAGUA GRANDE – UTCUBAMBA - AMAZONAS


2018
INGENIERÍA MECÁNICA

Índice General

1. DESCRIPCIÓN DEL PROBLEMA ------------------------------------------------------------------------------3


2. JUSTIFICACIÓN --------------------------------------------------------------------------------------------------3
3. ALCANCES --------------------------------------------------------------------------------------------------------3
4. OBJETIVOS -------------------------------------------------------------------------------------------------------4
4.1. Objetivo general -----------------------------------------------------------------------------------------4
4.2. Objetivos específicos -----------------------------------------------------------------------------------4
5. LIMITACIONES Y DELIMITACIONES ------------------------------------------------------------------------4
5.1. Limitaciones ----------------------------------------------------------------------------------------------4
5.2. Delimitaciones -------------------------------------------------------------------------------------------5
6. MATERIALES -----------------------------------------------------------------------------------------------------5
7. MARCO REFERENCIAL -----------------------------------------------------------------------------------------5
7.1. Arduino ----------------------------------------------------------------------------------------------------6
7.2. Arduino UNO ---------------------------------------------------------------------------------------------6
7.3. Modulo bluetooth hc-05-------------------------------------------------------------------------------7
7.4. Driver L298N ----------------------------------------------------------------------------------------------8
7.5. Sensor de ultrasonido HC-SR04 -------------------------------------------------------------------- 10
8. DISEÑO METODOLÓGICO ---------------------------------------------------------------------------------- 11
8.1. Tipo de control Anticipado -------------------------------------------------------------------------- 11
9. Esquema de conexión de todo el circuito con el arduino ------------------------------------------ 12
10. Desarrollo de la apk android --------------------------------------------------------------------------- 13
10.1. Diseño de la aplicación Control Car_V1 ------------------------------------------------------ 13
10.2. Código en bloques MIT App inventor --------------------------------------------------------- 13
10.3. Código de programación arduino -------------------------------------------------------------- 14
11. CONCLUSIONES ------------------------------------------------------------------------------------------- 23
12. BIBLIOGRAFÍA ---------------------------------------------------------------------------------------------- 23
13. LINKOGRAFÍA ---------------------------------------------------------------------------------------------- 23

1
INGENIERÍA MECÁNICA

Índice de figuras

Figura 1. Tarjeta Arduino UNO. -----------------------------------------------------------------------------------6


Figura 2. Modulo Bluetooth HC-05. ------------------------------------------------------------------------------8
Figura 3. Driver L298N (Controlador de motores). -----------------------------------------------------------9
Figura 4. Esquema de Conexión del Microcontrolador L298N. ----------------------------------------- 10
Figura 5. Sensor Ultrasónico HC-SR04. ------------------------------------------------------------------------ 10
Figura 6. Diagrama de un control anticipado. --------------------------------------------------------------- 11
Figura 7. Diagrama de conexion de los componentes del sistema de control del autorobot. -- 12
Figura 8. Aplicación android instalada e Interfaz de la aplicación que controla el autorobot. -- 13

2
INGENIERÍA MECÁNICA

DISEÑO Y CONTROL DE UN SISTEMA PARA UN


AUTOROBOT ESQUIVA OBSTÁCULOS CON
APLICACIÓN ANDROID

1. DESCRIPCIÓN DEL PROBLEMA

En el pasado la mayoría del control para robots o carros a pequeña escala se hacía de
forma analógica con cableado que comunicaba a estos y además estos carecían de
autonomía en su movimiento dependía del control manipulado por el operador, pero
en la actualidad gracias al avance de la electrónica digital se puede implementar este
tipo de proyectos de una forma inalámbrica y que a su vez consuma menos recursos
y sea más eficiente.

¿Utilizando aplicaciones Android es posible controlar un sistema esquiva


obstáculos y que además este sea autónomo?

Para dar solución a esto se decidió que el proyecto será totalmente inalámbrico, el
carro esquivara obstáculos será autónomo en sus movimientos, pero además podrá ser
controlado a través de un modulado por bluetooth que conllevara la creación de una
aplicación (app) para celular con sistema operativo Android desde donde se podrá
controlar el movimiento: adelante, atrás, izquierda y derecha de esta forma se
aplicarían conceptos de control digital, programación y comunicaciones.

2. JUSTIFICACIÓN

El desarrollo de este proyecto es de gran utilidad, ya que además de introducirnos y


poder aplicar sistemas de control digital a pequeña escala, es una aplicación de la
robótica y la inteligencia artificial que desarrolla competencias de ingeniera en diseño,
implementación, programación, control y comunicaciones.

3. ALCANCES

El trabajo que se realizará será de correlación pues están presentes saberes de la


ingeniera, abarca la implementación de sistemas de control y comunicaciones para un
robot esquiva obstáculos.

3
INGENIERÍA MECÁNICA

Cada proyecto nace de una idea, puede ser muy simple o básica hasta muy compleja.
Lo que queremos obtener es que a partir de una idea se pueden implementar
soluciones sencillas y prácticas para hacer realidad dicha idea. En nuestro proyecto se
podrá notar como desde un inicio tendremos claro la idea a desarrollar que es “evitar
un obstáculo y aplicaciones para Android” y partiendo desde ahí cumplir tal función
haciendo uso de los conocimientos previos aprendidos y de las distintas herramientas
que tendremos en nuestras manos para obtener con éxito dicho objetivo.

4. OBJETIVOS

4.1. Objetivo general

• Diseñar y controlar un sistema para un autorobot esquiva obstáculos con


aplicación Android.

4.2. Objetivos específicos

• Controlar el movimiento del autorobot esquiva obstáculos a través de un


módulo bluetooth con aplicación para Android.
• Verificar la programación para la tarjeta Arduino UNO que representara la
distancia de respuesta a los obstáculos y la configuración de la matriz led del
autorobot.
• Implementar una aplicación para Android que controle el movimiento del
autorobot desde un dispositivo celular.

5. LIMITACIONES Y DELIMITACIONES

5.1. Limitaciones

La limitación más destacable es el hecho de que el movimiento del autorobot


esquiva obstáculos será solo horizontal es decir no podrá tener movimientos de
arriba-abajo o escalar los obstáculos, los motorreductores tiene una capacidad de
carga de solo 2 kg esto requiere que los elementos no superen esta carga si se
quieren mantener en movimiento.

4
INGENIERÍA MECÁNICA

5.2.Delimitaciones

Los conceptos aplicados para este proyecto son todos aquellos relacionados con
el control, y la programación de microcontroladores y las comunicaciones de los
distinto componentes del proyecto. El proyecto es solo un prototipo a pequeña
escala con fines pedagógicos sirviendo como base para robots esquiva obstáculos
mucho más avanzados.

6. MATERIALES

El proyecto requiere materiales necesarios e importantes para el ensamblaje. La lista


adjunta contempla los materiales indispensables para el desarrollo del mismo.

• Tarjeta Arduino UNO


• Sensor de ultrasonido HCSR04
• Bracket para el sensor ultrasonido
• Un microservo SG90
• Driver Shield l298N
• Modulo bluetooth HC-05
• Cables de conexión
• 4 motorreductores de 2 kg de fuerza, 150 RPM de 3-12 voltios
• Una Matriz Leds con Max7219
• Batería 12v – 2200 mAh
• Batería 7.4v – 2200 mAh
• 2 switch

7. MARCO REFERENCIAL

Desde la invención del circuito integrado, el desarrollo constante de la electrónica


digital ha dado lugar a dispositivos cada vez más complejos. Entre ellos los
microprocesadores y los microcontroladores, los cuales son básicos en las carreras de
ingeniería. Los microcontroladores se utilizan en circuitos electrónicos comerciales
desde hace unos años de forma masiva, debido a que permiten reducir el tamaño y el
precio de los equipos. Un ejemplo de éstos son los teléfonos móviles, las cámaras de
video, la televisión digital, la transmisión por satélite y los hornos de microondas.
Pero hasta hace poco tiempo, para el aficionado a la electrónica resultaba poco menos
que imposible incluirlos en sus montajes por diversas razones: alto precio,

5
INGENIERÍA MECÁNICA

complejidad de los montajes y, principalmente, por la escasez y el alto precio de las


herramientas de software.

7.1. Arduino

Arduino es una plataforma de hardware y software de código abierto, basada en


una placa con un microcontrolador con entradas y salidas, analógicas y digitales,
en un entorno de desarrollo que está basado en el lenguaje de programación
Processing. Es decir, una plataforma de código abierto para prototipos
electrónicos. Al ser open source, tanto su diseño como su distribución, puede
utilizarse libremente para el desarrollo de cualquier tipo de proyecto sin necesidad
de licencia.

7.2. Arduino UNO

Arduino Uno es una placa electrónica basada en el microcontrolador ATmega328.


Cuenta con 14 entradas/salidas digitales, de las cuales 6 se pueden utilizar como
salidas PWM (Modulación por ancho de pulsos) y otras 6 son entradas analógicas.
Además, incluye un resonador cerámico de 16 MHz, un conector USB, un
conector de alimentación, una cabecera ICSP y un botón de reseteado. La placa
incluye todo lo necesario para que el microcontrolador haga su trabajo, basta
conectarla a un ordenador con un cable USB o a la corriente eléctrica a través de
un transformador.

Figura 1. Tarjeta Arduino UNO.

6
INGENIERÍA MECÁNICA

Características técnicas de Arduino Uno r3

• Microcontrolador: ATmega328
• Voltaje: 5V
• Voltaje entrada (recomendado): 7-12V
• Voltaje entrada (limites): 6-20V
• Digital I/O Pins: 14 (de los cuales 6 son salida PWM)
• Entradas Analógicas: 6
• DC Current per I/O Pin: 40 mA
• DC Current parar 3.3V Pin: 50 mA
• Flash Memory: 32 KB (ATmega328) de los cuales 0.5 KB son utilizados
para el arranque
• SRAM: 2 KB (ATmega328)
• EEPROM: 1 KB (ATmega328)
• Clock Speed: 16 MHz.

7.3. Modulo bluetooth hc-05

El módulo Bluetooth HC-05 es idea para utilizar en todo tipo de proyectos donde
necesites una conexión inalámbrica fiable y sencilla de utilizar. Se configura
mediante comandos AT y tiene la posibilidad de hacerlo funcionar tanto en modo
maestro como esclavo. Eso quiere decir que puedes conectar dos módulos juntos,
conectar tu robot al móvil o incluso hacer una pequeña red de sensores
comunicados entre ellos con un maestro y varios esclavos.

El módulo Bluetooth HC-05 puede alimentarse con una tensión de entre 3.3 y 6V
(normalmente 5V), pero los pines TX y RX utilizan niveles de 3,3V por lo que no
se puede conectar directamente a placas de 5V. Debes utilizar dos pequeñas
resistencias como divisor de tensión para que el módulo no se estropee. En las
imágenes del producto podrás ver el esquema de conexionado. También dispone
de un pulsador para entrar en modo comandos, aunque también lo puedes hacer
por software utilizando el pin EN.

Tiene un LED incorporado que indica el estado de la conexión y si está


emparejado o no en función de la velocidad del parpadeo.

7
INGENIERÍA MECÁNICA

Características:

• Protocolo Bluetooth: v1.1 / 2.0.


• Frecuencia: banda ISM de 2,4 GHz .
• Modulación: GFSK
• Potencia de transmisión : menos de 4dBm , Clase 2 .
• Sensibilidad: Menos de -84dBm en el 0,1% BER .
• Ratio asíncronos: 2.1Mbps ( Max) / 160 kbps .
• Sincróno : 1Mbps / 1Mbps .
• Perfiles de la ayuda : puerto serie Bluetooth (maestro y esclavo) .
• Fuente de alimentación: + 3.3VDC 50mA . (soporta de 3.3 a 6V)
• Temperatura de trabajo: -5 ° C a 45 ° C.

Figura 2. Modulo Bluetooth HC-05.

7.4. Driver L298N

Este driver permite controlar dos motores de corriente continua y motores paso a
paso de no más de 2 amperes, existen algunos módulos disponibles para la compra
que ya vienen con el driver soldado y algunos pines para controlar las entradas y
las salidas. cómo se puede ver en la imagen el módulo ya cuenta con lo siguiente:

• Regulador de voltaje LM7805


• Conectores Output A y Output B que son las salidas de los motores
• Control inputs, son los terminales de control, dos de ellos son los pines de
habilitación de cada motor

8
INGENIERÍA MECÁNICA

• Jumper para decidir si voy a utilizar el regulador LM7805 o no lo voy a


utilizar.

Figura 3. Driver L298N (Controlador de motores).

Hay que tener presente el voltaje con el cual lo vamos a alimentar, si bien el
módulo tiene un regulador de tensión y es capaz de soportar tensiones de hasta
36V, también tiene un Jumper que nos permite decidir si lo usamos o no.

Si vamos a alimentar el módulo con la misma tensión que alimentamos el


microcontrolador o la placa arduino, no es necesario utilizar el regulador, ya que
el driver l298 tolera tensiones de entre 6 y 12 volt, los mismos niveles que se usan
para alimentar el arduino. En el caso que alimentemos el módulo con tensiones
superiores a 12V si o si tenemos que conectar el jumper para que utilice el
regulador, de lo contrario podemos quemarlo en cuestión de segundos.

9
INGENIERÍA MECÁNICA

Figura 4. Esquema de Conexión del Microcontrolador L298N.

7.5. Sensor de ultrasonido HC-SR04

El HC-SR04 es un sensor de distancias por ultrasonidos capaz de detectar objetos


y calcular la distancia a la que se encuentra en un rango de 2 a 450 cm. El sensor
funciona por ultrasonidos y contiene toda la electrónica encargada de hacer la
medición. Su uso es tan sencillo como enviar el pulso de arranque y medir la
anchura del pulso de retorno. De muy pequeño tamaño, el HC-SR04 se destaca
por su bajo consumo, gran precisión y bajo precio por lo que está reemplazando a
los sensores polaroid en los robots más recientes.

Figura 5. Sensor Ultrasónico HC-SR04.

10
INGENIERÍA MECÁNICA

Características

• Dimensiones del circuito: 43 x 20 x 17 mm


• Tensión de alimentación: 5 Vcc
• Frecuencia de trabajo: 40 KHz
• Rango máximo: 4.5 m
• Rango mínimo: 1.7 cm
• Duración mínima del pulso de disparo (nivel TTL): 10 μS.
• Duración del pulso eco de salida (nivel TTL): 100-25000 μS.
• Tiempo mínimo de espera entre una medida y el inicio de otra 20 mS.

8. DISEÑO METODOLÓGICO

8.1. Tipo de control Anticipado

a) Control Anticipado

El tipo de control que se empelara para el proyecto carro evasor de obstáculos es


anticipativo

Y retroalimentado dado que cuenta con un sensor de ultrasonido y modulo


bluetooth para responder a la variable manipulada en este caso la distancia a los
obstáculos y actuar para evadirlos antes de 15 cm.

Figura 6. Diagrama de un control anticipado.

11
INGENIERÍA MECÁNICA

9. Esquema de conexión de todo el circuito con el Arduino

Figura 7. Diagrama de conexion de los componentes del sistema de control del autorobot.

12
INGENIERÍA MECÁNICA

10. Desarrollo de la apk android

Para la creación de aplicación Android que controla el autorobot se utilizó la


plataforma virtual MIT App inventor.

10.1. Diseño de la aplicación Control Car_V1

Figura 8. Aplicación android instalada e Interfaz de la


aplicación que controla el autorobot.

10.2. Código en bloques MIT App inventor

13
INGENIERÍA MECÁNICA

10.3. Código de programación arduino

#include <Servo.h> // Incluye la libreria Servo

Servo servo1; // Crea el objeto servo1 con las caracteristicas de

Servo#include "LedControlMS.h"

LedControl lc=LedControl (12,8,7,1); // Los numeros se refieren a que pin de


ARDUINO tienes en cada uno de los terminales

14
INGENIERÍA MECÁNICA

/* 12 para el DIN, 8 para el CLK, 7 para el CS y el 1 se refiere a la asignacion de


la matriz */

int izqA = 5;

int izqB = 6;

int derA = 9;

int derB = 10;

int vel = 255; // Velocidad de los motores (0-255)

int estado = 'c'; // inicia detenido

int pecho = 2; // define el pin 2 como (pecho) para el Ultrasonido

int ptrig = 3; // define el pin 3 como (ptrig) para el Ultrasonido

int duracion, distancia; // para Calcular distacia

void setup() {

Serial.begin(9600); // inicia el puerto serial para comunicacion con el Bluetooth

pinMode(derA, OUTPUT);

pinMode(derB, OUTPUT);

pinMode(izqA, OUTPUT);

pinMode(izqB, OUTPUT);

pinMode(pecho, INPUT); // define el pin 2 como entrada (pecho)

pinMode(ptrig,OUTPUT); // define el pin 3 como salida (ptrig)

pinMode(13,OUTPUT);

servo1.attach(11,660,1400); // Asocia el servo1 al pin 11, define el min y max


del ancho del pulso // eso depende del fabricante del servo

15
INGENIERÍA MECÁNICA

// El numero que colocamos como argumento de la funcion se refiere a la


direccion del decodificador

lc.shutdown(0,false);

lc.setIntensity(0,8);// La valores estan entre 1 y 15

lc.clearDisplay(0);

void loop() {

if(Serial.available()>0){ // lee el bluetooth y almacena en estado

estado = Serial.read();

if(estado = = 'a'){ // Boton desplazar al Frente

analogWrite(derB, 0);

analogWrite(izqB, 0);

analogWrite(derA, vel);

analogWrite(izqA, vel);

if(estado = = 'b'){ // Boton IZQ

analogWrite(derB, 0);

analogWrite(izqB, 0);

analogWrite(izqA, 0);

analogWrite(derA, vel);

16
INGENIERÍA MECÁNICA

if(estado = = 'c'){ // Boton Parar

analogWrite(derB, 0);

analogWrite(izqB, 0);

analogWrite(derA, 0);

analogWrite(izqA, 0);

if(estado = = 'd'){ // Boton DER

analogWrite(derB, 0);

analogWrite(izqB, 0);

analogWrite(derA, 0);

analogWrite(izqA, vel);

if(estado = = 'e'){ // Boton Reversa

analogWrite(derA, 0);

analogWrite(izqA, 0);

analogWrite(derB, vel);

analogWrite(izqB, vel);

if (estado = = 'f'){ // Boton ON, se mueve sensando distancia

digitalWrite(ptrig, HIGH); // genera el pulso de trigger por 10us

17
INGENIERÍA MECÁNICA

delay(0.01);

digitalWrite(ptrig, LOW);

duracion = pulseIn(pecho, HIGH); // Lee el tiempo del Echo

distancia = (duracion/2) / 29; // calcula la distancia en centimetros

delay(10);

if (distancia <= 15 && distancia >=2){ // si la distancia es menor de 15cm

digitalWrite(13,HIGH); // Enciende LED

analogWrite(derB, 0); // Parar los motores por 200 mili segundos

analogWrite(izqB, 0);

analogWrite(derA, 0);

analogWrite(izqA, 0);

delay (200);

analogWrite(derB, vel); // Reversa durante 500 mili segundos

analogWrite(izqB, vel);

delay(500);

analogWrite(derB, 0); // Girar durante 600 milisegundos

analogWrite(izqB, 0);

analogWrite(derA, 0);

analogWrite(izqA, vel);

delay(600);

digitalWrite(13,LOW);

18
INGENIERÍA MECÁNICA

else{ // Si no hay obstaculos se desplaza al frente

analogWrite(derB, 0);

analogWrite(izqB, 0);

analogWrite(derA, vel);

analogWrite(izqA, vel);

if(estado = = 'g'){ // Boton SER, activa el Servomotor

servo1.write(30); // Gira el servo a 30 grados

delay(1000); // Espera 1000 mili segundos a que el servo llegue a


la posicion

servo1.write(90); // Gira el servo a 90 grados

delay(700); // Espera 700 mili segundos a que el servo llegue a la


posicion

servo1.write(150); //Gira el servo a 150 grados

delay(700);

servo1.write(90); // Gira el servo a 90 grados

delay(700); // Espera 700 mili segundos a que el servo llegue a la


posicion

/* CONFIGURACION de la Matriz LED 8X8 */

if(estado = = 'h'){ //Programacion de los botones Led-10-9-6-5

19
INGENIERÍA MECÁNICA

for (int row=0; row<8; row++)

for (int col=0; col<8; col++)

lc.setLed(0,col,row,true); //

delay(25);

for (int row=0; row<8; row++)

for (int col=0; col<8; col++)

lc.setLed(0,col,row,false); //

delay(25);

delay(500);

lc.writeString(0,"AUTOROBOT MECÁNICA NOVENO CICLO");

delay(1000);

if(estado = = 'm'){

20
INGENIERÍA MECÁNICA

digitalWrite(12,LOW);

digitalWrite(8,LOW);

digitalWrite(7,LOW);

if(estado = = 'i'){

digitalWrite(derB,1);

if(estado = = 'n'){

digitalWrite(derB,0);

if(estado = = 'j'){

digitalWrite(derA,1);

if(estado = = 'o'){

digitalWrite(derA,0);

if(estado = = 'k'){

digitalWrite(izqB,1);

if(estado = = 'p'){

digitalWrite(izqB,0);

21
INGENIERÍA MECÁNICA

if(estado = = 'l'){

digitalWrite(izqA,1);

if(estado = = 'q'){

digitalWrite(izqA,0);

22
INGENIERÍA MECÁNICA

11. CONCLUSIONES

➢ En conclusión, el robot funciono muy bien, se logró conectar un módulo


bluetooth para su manejo inalámbricamente para tener un mayor control.
➢ Para que nuestro autorobot siga las instrucciones que nosotros queramos se
empleó la plataforma arduino para realizar la programación lógica que nos
ayuda a poder realizar todo el trabajo y ordenes que debe realizar nuestro
robot.
➢ En cuanto al desarrollo de la aplicación Android para controlar nuestro robot
fue realizado en la plataforma virtual MIT app inventor gracias esto pudimos
crear un pequeño aplicativo para manejo y control de nuestro proyecto.

12. BIBLIOGRAFÍA

➢ Gutiérrez, J. M. (2007). Manual de Programacion Arduino.

13. LINKOGRAFÍA

➢ https://es.slideshare.net/visentet/manual-arduino-programaci
➢ http://jamangandi2012.blogspot.com/2012/10/que-es-arduino-te-lo-mostramos-
en-un.html
➢ http://arduino.cl/arduino-uno/
➢ http://www.iescamp.es/miarduino/2016/01/21/placa-arduino-uno/
➢ https://www.nextiafenix.com/producto/puente-h-l293d/
➢ http://www.electrontools.com/Home/WP/2016/05/06/puente-h-con-driver-l298/

23

Vous aimerez peut-être aussi