24
Diseño y construcción de un robot acuático para la recolección de basura en lagos y lagunas Resumen El proyecto consiste en el diseño y construcción de un robot capaz de recoger desechos flotantes en un medio acuático. Esto con el fin de proveer una alternativa tecnológica para la recolección de este tipo de residuos. A lo largo de este documento se explicarán las principales herramientas y técnicas usadas para su construcción, así como los rasgos elementales de su funcionamiento. La base de la estructura es cúbica, de 50 cm. de largo y está constituida de PVC de una pulgada de diámetro. El robot es controlado a distancia mediante Bluetooth y sus señales son procesadas y ejecutadas haciendo uso de un microcontrolador Arduino. Consideramos que su implementación es viable en zonas acuáticas con poca corriente. Los conocimientos y habilidades adquiridos durante el proceso de diseño y construcción poseen aplicaciones en otras áreas del conocimiento, contribuyen a nuestro desarrollo académico y nos brindan herramientas que seguramente nos serán de utilidad para afrontar retos a lo largo de nuestra vida profesional. 1

D is e ñ o y c o n s tru c c ió n d e u n ro b o t a c u á ......De acuerdo con Vasconcelos (2011), una computadora es una máquina capaz de procesar y transformar gran cantidad

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: D is e ñ o y c o n s tru c c ió n d e u n ro b o t a c u á ......De acuerdo con Vasconcelos (2011), una computadora es una máquina capaz de procesar y transformar gran cantidad

Diseño y construcción de un robot acuático para la recolección de basura en lagos

y lagunas

Resumen

El proyecto consiste en el diseño y construcción de un robot capaz de recoger desechos

flotantes en un medio acuático. Esto con el fin de proveer una alternativa tecnológica para la

recolección de este tipo de residuos. A lo largo de este documento se explicarán las

principales herramientas y técnicas usadas para su construcción, así como los rasgos

elementales de su funcionamiento. La base de la estructura es cúbica, de 50 cm. de largo y

está constituida de PVC de una pulgada de diámetro. El robot es controlado a distancia

mediante Bluetooth y sus señales son procesadas y ejecutadas haciendo uso de un

microcontrolador Arduino. Consideramos que su implementación es viable en zonas

acuáticas con poca corriente. Los conocimientos y habilidades adquiridos durante el

proceso de diseño y construcción poseen aplicaciones en otras áreas del conocimiento,

contribuyen a nuestro desarrollo académico y nos brindan herramientas que seguramente

nos serán de utilidad para afrontar retos a lo largo de nuestra vida profesional.

1

Page 2: D is e ñ o y c o n s tru c c ió n d e u n ro b o t a c u á ......De acuerdo con Vasconcelos (2011), una computadora es una máquina capaz de procesar y transformar gran cantidad

Introducción

Marco teórico

El proyecto que se presenta considera la integración de conocimientos de programación

con electrónica y mecánica básica, a fin de resolver un problema de la vida real: la

presencia de objetos ligeros y basura en la superficie de un cuerpo acuático.

Dicha problemática fue seleccionada dada la insistencia actual de la aplicación de la

tecnología en la solución de problemas de carácter ecológico y de ayuda al medio

ambiente. De esta manera, se consideró la afectación que tiene hacia la fauna, la

presencia de basura en superficies acuáticas, que en general, son de difícil acceso para

las personas. Otra idea que guía este proyecto, es la posibilidad de reciclar material de

desecho, lo que no solo da alternativas para el aprovechamiento de materiales, sino que

también permite la reducción de costos del producto final.

Cabe señalar entonces, que este trabajo se centra en el diseño y construcción del

dispositivo, más que en el análisis de la problemática misma.

Así, el presente marco teórico radica en dar una serie de definiciones básicas de

conceptos que fungen como un marco de referencia de elementos que interactúan de

manera práctica en el producto final.

Robot

Según el diccionario de Oxford, un robot es aquella:

Máquina automática programable capaz de realizar determinadas

operaciones de manera autónoma y sustituir a los seres humanos en algunas

tareas, en especial las pesadas, repetitivas o peligrosas; puede estar dotada de

sensores, que le permiten adaptarse a nuevas situaciones (2007).

Podríamos añadir a esta definición, el hecho de que se emplean en un entorno real

con el que establece una conexión inteligente entre percepción y acción por medio de

sensores que aportan información para la resolución de un problema.

Aunado a ello, podemos clasificarlos por sus distintos tipos(2017):

Androides y zoomórficos: robots análogos al hombre y a los animales

respectivamente

Industriales: Están destinados a realizar de forma automática determinados

procesos de fabricación o manipulación

2

Page 3: D is e ñ o y c o n s tru c c ió n d e u n ro b o t a c u á ......De acuerdo con Vasconcelos (2011), una computadora es una máquina capaz de procesar y transformar gran cantidad

De Servicio: todos los que no son industriales

Telemanipulados o Teleoperados: precisa el mando continuo de un operario.

Móviles: están provistos de patas, ruedas u orugas que los capacitan para

desplazarse en función de su programación y de la información que reciben. Pueden

llevar diversos sistemas de sensores para captar información

Josep Fernández Rufaza menciona que, dentro de los robots móviles, se encuentran

los vehículos guiados automáticamente o AGV ( Automatic Guided Vehicle), y son aquellos

que están capacitados para moverse de manera autónoma en entornos determinados,

teniendo como objetivo realizar tareas específicas como el transporte de objetos o

manipulación y recolección de estos, recibiendo órdenes de una unidad de control.

(2001,CEABE)

Un robot AGV tiene como objetivo principal poder navegar de manera autónoma en

un ambiente no controlado, es decir, se debe contar con la información de su localización y

contar con un mecanismo que le permita desplazarse.

Nuestro dispositivo entra en esta última clasificación, ya que el prototipo ha sido

diseñado para realizar tareas sencillas y, con una aplicación en Android, controlar sus

movimientos de manera remota. Así, es posible definir trayectorias complejas y controlarlo.

Estructura y funcionamiento de una computadora

De acuerdo con Vasconcelos (2011), una computadora es una máquina capaz de

procesar y transformar gran cantidad de datos rápidamente. Este mismo autor señala que

una computadora digital realiza dichas acciones controlando y efectuando operaciones con

señales digitales, esto es, señales que saltan entre un valor bajo y uno alto, sin pasar por

valores intermedios.

Los unos y ceros que manejan las computadoras digitales son llamados bits (Binary

DigiT) y constituyen la unidad mínima de información. Un byte es una agrupación de 8 bits

consecutivos y suele representar un caracter.

En general, las computadoras digitales se construyen con base en un esquema o

arquitectura conocido como modelo de Von Neumann (Vasconcelos, 2011), el cual

describe una máquina integrada por cinco partes:

3

Page 4: D is e ñ o y c o n s tru c c ió n d e u n ro b o t a c u á ......De acuerdo con Vasconcelos (2011), una computadora es una máquina capaz de procesar y transformar gran cantidad

1. Unidad de entrada: Parte de la computadora encargada de recibir información del

exterior para conducirla hacia la sección de procesamiento.

2. Unidad de salida: Parte que permite que los datos procesados salgan de la

computadora.

3. Unidad de memoria: Medio de almacenamiento tanto de datos de entrada, datos

procesados e instrucciones.

4. Unidad de control: Sección de la computadora que dirige y coordina los procesos a

realizar.

5. Unidad aritmética y lógica: Parte encargada de realizar las operaciones.

Microcontrolador Arduino

Angulo y Hernández (2011) consideran que un microcontrolador es un computador

completo dentro de un circuito integrado; aunado a la CPU o microprocesador, contiene las

memorias y las unidades de entrada/salida y otros recursos complementarios.

Según su página oficial, Arduino Uno es una plataforma de hardware libre, basada en una

placa con unmicrocontrolador. El microcontrolador es del Fabricante Atmel y usa el modelo

Atmega328.

Las características principales de Arduino son:

El voltaje de alimentación externa: se encuentra en un rango de 7 a 12V, pero el

voltaje con que trabaja el microcontrolador es de 5V. La frecuencia de trabajo del

procesador de dicho microcontrolador es de 16 MHz. Tiene una memoria flash para

almacenar un programa con una capacidad de 32 Kbytes La comunicación con el

exterior es a través de 6 entradas o puertos analógicos y 14 puertos digitales que

pueden ser configurados como entradas o salidas, siendo así un total de 20 puertos

E/S.

Las entradas analógicas: se caracterizan por leer valores de voltaje de 0 a 5 Volts

con una resolución de 1024 (10 bits). Por lo que es capaz de detectar variaciones

en el nivel de la señal de entrada de casi 5 mV.

Los puertos digitales sólo tienen dos estados: 0 lógico o 1 lógico; en términos de la

electrónica de la tarjeta Arduino 0 lógico es de 0 a 0.2 Volts y 1 lógico es de 4.5 a 5

4

Page 5: D is e ñ o y c o n s tru c c ió n d e u n ro b o t a c u á ......De acuerdo con Vasconcelos (2011), una computadora es una máquina capaz de procesar y transformar gran cantidad

Volts que puede ser como voltaje de entrada o de salida de la tarjeta. Los puertos

digitales corresponden a los pines del 0 al 13 marcados en la tarjeta.

En cuanto a las señales digitales, éstas consisten en una sucesión de pulsos

digitales, en otras palabras, secuencias de bits que representan los datos, y que dependen

de un pulso de reloj.

Para establecer una comunicación es necesario un protocolo, esto es, las reglas

para determinar la frecuencia a la que se envía una señal y cómo se debe interpretar esa

sucesión de bits que representan la información.

Arduino tiene diferentes tipos de interfaces de comunicación. Dentro la

comunicación serial tenemos el protocolo serial simple SPI (Interfaz Periférica Serial). Un

dispositivo denominado maestro envía la señal de reloj, y tras cada pulso de reloj, envía un

bit de datos al esclavo. Los nombres de las señales son, SCK para el reloj yMOSI para el

maestro. En el Arduino, el protocolo está implementado en los pines 13 como reloj y en el

pin 11 como dato.

Un circuito eléctrico es un arreglo de componentes conectados entre sí, que permite

el flujo de electrones denominado corriente eléctrica bajo la fuerza de un voltaje.

Tal como lo explica Serway Raymond y Beichner (1999), el voltaje, tensión o

diferencia de potencial es la fuerza que ejerce una fuente de suministro de energía eléctrica

o fuerza electromotriz (FEM) sobre las cargas eléctricas o electrones para moverse en un

circuito eléctrico cerrado.

La corriente eléctrica consiste en la circulación de cargas o electrones a través de

un conductor en un circuito eléctrico cerrado, que se mueven de la terminal negativa a la

positiva de la fuente de suministro de fuerza electromotriz (FEM).

Sistema Operativo

Es el programa encargado de simplificar el manejo y utilización del dispositivo. Está

conformado en tres niveles: usuario, kernel (núcleo) y hardware.

En general puede efectuar las siguientes tareas:

Manejo de archivos y directorios.

Mantenimiento de memoria secundaria.

Configuración del equipo.

5

Page 6: D is e ñ o y c o n s tru c c ió n d e u n ro b o t a c u á ......De acuerdo con Vasconcelos (2011), una computadora es una máquina capaz de procesar y transformar gran cantidad

Optimización del uso tanto de la memoria principal como secundaria.

Eficiencia en la ejecución de los programas.

Android

Android es un sistema operativo basado en Linux 2.6 para sistemas de servicios

básicos tales como seguridad, gestión de memoria, gestión de procesos, la pila de red, y

el conductor modelo. Es desarrollado por el conglomerado de empresas: Open Handset

Alliance, el cual encabeza Google (Universidad Carlos III de Madrid, 2016), inicialmente

para dispositivos móviles y posteriormente hacia otros instrumentos. Permite programar y

modificar aplicaciones sobre una variación de la máquina de Java en su entorno de

trabajo, con compilación en tiempo de ejecución.

El núcleo también actúa como una capa de abstracción entre el hardware y el resto

de la pila de software. Es decir, una aplicación puede llamar a cualquier función básica de

un teléfono, como hacer llamadas, enviar mensajes de texto, o usar la cámara con la

intermediación del núcleo. Además, utiliza una máquina virtual personalizada que ha sido

diseñada para optimizar la memoria y los recursos de hardware en un entorno móvil.

La programación en Android está basada en Java, lo que hace que sea compatible

con la mayoría de los dispositivos con el sistema operativo antes mencionado.

Java

Es un lenguaje de programación que se fundamenta en el paradigma de

Programación Orientada a Objetos (POO), y como cualquier otro, cuenta con su propia

estructura y reglas de sintaxis.

Los fundamentos de este paradigma están en el uso de componentes de software

tal como lo describe Microsoft en su página oficial (2017):

Objeto: Componente o código de software que contiene en sí mismo tanto

sus características(campos) como sus comportamientos (métodos)

Campo: ayuda a definir su estructura y permite diferenciarlo de otros objetos.

Se define con un identificador y un tipo, el cual indica los valores que puede

almacenar. El conjunto de valores de los campos definen el estado del objeto.

6

Page 7: D is e ñ o y c o n s tru c c ió n d e u n ro b o t a c u á ......De acuerdo con Vasconcelos (2011), una computadora es una máquina capaz de procesar y transformar gran cantidad

Método: Es la implementación de un algoritmo que representa una operación

o función que realiza un objeto. El conjunto de los métodos de un objeto

determinan el comportamiento del objeto.

En otras palabras, en la POO el elemento principal es el objeto, y es una unidad que

contiene sus características y comportamiento en símisma, es independiente y puede o no

relacionarse con objetos de su misma clase como sucede en la vida real.

Java, es un lenguaje considerado como potente, versátil y multiplataforma (funciona

en cualquier sistema operativo moderno).

Tal y como se describe en la página oficial de

IBM, es un derivado del lenguaje C, por lo que

sus reglas de sintaxis resultan ser similares .

De manera general, los sistemas en Java

constan de diversas partes: un ambiente, el

lenguaje, la interfaz de programación de

aplicaciones Java (API) y varias bibliotecas de

clases. Los programas, pasan a través de

cinco fases para poder ejecutarse: edición,

compilación, carga, verificación y ejecución, tal

y como se muestra en la figura 1.1 (Deitel,

2004)

(Figura 1.1)

Bluetooth

Para la Universidad de las Américas Puebla(2017),Bluetooth es un estándar

global abierto para enlaces de radio, que ofrece conexiones inalámbricas

económicas para transmisiones de datos entre computadoras portátiles,

7

Page 8: D is e ñ o y c o n s tru c c ió n d e u n ro b o t a c u á ......De acuerdo con Vasconcelos (2011), una computadora es una máquina capaz de procesar y transformar gran cantidad

dispositivos de mano, teléfonos celulares mediante un enlace de

radiofrecuencia.

El estándar Bluetooth opera en la banda 2.4 GhZ­ISM (industrial, scientific and

medical) y del mismo modo que WIFI, utiliza la técnica FHSS (Frequency Hopping Spread

Spectrum, en español Espectro Ensanchado por Saltos de Frecuencia),que consiste en

dividir la banda de frecuencia de 2.402 ­ 2.480 GHz en 79 canales (denominados saltos)

de 1 MHz de ancho cada uno y, después, transmitir la señal utilizando una secuencia de

canales que sea conocida, tanto para la estación emisora como para la receptora. Con la

llegada de estándares de comunicaciones inalámbricas en la redes de transmisión de

datos, ha permitido la implementación de diversas interfaces operadas bajo frecuencias no

licenciadas.

Bluetooth pertenece a las Redes Inalámbricas de Área Personal WPAN (por sus

siglas en inglés) es decir, es parte de las tecnologías creadas para proveer comunicación

inalámbrica en áreas de uso personal. Contar con un espectro de frecuencias, lo convierte

en una alternativa para los sistemas de comunicaciones móviles, tal como se describe en

el artículo Bluetooth technology: alternative to cellular networks of voice and data (2017).

Uno de los objetivos que se pretenden con su uso, es ofrecer la posibilidad de crear

pequeñas redes inalámbricas (WLAN) y facilitar la sincronización de datos entre equipos

personales, también el bajo costo y consumo de potencia.

Servomotor

Charles Platt, en la enciclopedia de componentes electrónicos (2016), describe al

servomotor como el “[...] dispositivo electromecánico que tiene un sistema de corrección

con retroalimentación para el control de un parámetro específico.”(p.201)

Está conformado por 4 elementos principales confinados dentro de una carcasa de

plástico:

Motor de corriente continua: Permite la movilidad en dos sentidos del servomotor.

Juego de engranajes reductores: Reduce la alta velocidad de giro para acrecentar

su capacidad de torque 1

Tarjeta de control: Circuito electrónico que envía al servomotor una posición.

1 Momento de fuerza

8

Page 9: D is e ñ o y c o n s tru c c ió n d e u n ro b o t a c u á ......De acuerdo con Vasconcelos (2011), una computadora es una máquina capaz de procesar y transformar gran cantidad

Sensor de desplazamiento: Usualmente, potenciómetro para conocer la posición

angular en la que se encuentra el servomotor.

En un documento, la Universidad Técnica Federico de Santa María (2010)

menciona que,para comandar un servo es necesario aplicar un pulso de duración y

frecuencia específicos. Todos los servos disponen de tres cables, dos para alimentación

Vcc yGnd (4.8 a 6 [V]) y un tercero para aplicar el tren de pulsos, que hace que la tarjeta de

control diferencial interno ponga el servo en la posición indicada, dependiendo del ancho

del pulso.

A diferencia de otro tipo de motores, tiene la característica de contar con un tope

mecánico en los engranajes para tener un cierto grado de rotación, porque son dispositivos

de posicionamiento, como se muestra en la figura 1.2, donde además, se señalan sus

componentes. Sin embargo para el propósito de este proyecto, dicho tope fue retirado.

(Figura 1.2)

Turbina

Es una máquina formada por una serie de paletas unidas a un eje central, la cual

aprovecha la energía dada para generar una fuerza motriz.

Según Julián Pérez Porto y María Merino (2012), las turbinas s e pueden clasificar en:

Turbinas eólicas: aprovechan la energía cinética del viento para producir energía

mecánica

Turbinas térmicas: utilizan la energía del cambio de densidad que sufre su fluido de

trabajo al atravesar la máquina. Por ejemplo: turbina de gas y turbina de vapor.

Turbinas hidráulicas: El agua intercambia energía con un dispositivo mecánico de

revolución que gira alrededor de su eje de simetría; éste mecanismo lleva una o

9

Page 10: D is e ñ o y c o n s tru c c ió n d e u n ro b o t a c u á ......De acuerdo con Vasconcelos (2011), una computadora es una máquina capaz de procesar y transformar gran cantidad

varias ruedas, (rodetes o rotores), provistas de álabes, de forma que entre ellos

existen unos espacios libres o canales, por los que circula el agua

Objetivo del proyecto

Diseñar y construir un robot dotado con una aplicación de software que permita el

control por parte del usuario, para la recolección de basura en lagos y lagunas.

Problema

¿Cómo integrar los conocimientos de programación, electrónica ymecánica básica

para reducir la contaminación de lagos y lagunas, a través de la recolección de basura?

Desarrollo

El desarrollo de nuestro prototipo está basado en la idea de reutilizar materiales,

puesto que estamos conscientes del daño provocado por los seres humanos a nuestro

planeta.

El producto final se realizó en cuatro etapas. La primera corresponde al diseño

lógico y estructural del robot; la segunda, al desarrollo de la composición electrónica; la

tercera, a la construcción del prototipo; la cuarta, al diseño y desarrollo del software. A

continuación se describen dichas etapas:

1. Diseño lógico y estructural del robot

La primera parte de esta etapa consistió en modelar una estructura adecuada para

brindar alternativas viables y eficaces para la resolución del problema anteriormente

planteado. Para ello, se realizaron cálculos, se externaron y ponderaron ideas sobre un

posible diseño del prototipo, se identificaron los materiales idóneos al proyecto y se

tomaron decisiones a partir de: un funcionamiento eficaz; criterios de funcionalidad como

facilidad y comodidad de empleo; la viabilidad en los costos; la factibilidad de

reproducción; un bajo impacto ambiental; y la durabilidad del producto.

Elegimos un cubo como mejor diseño estructural, porque tiene la capacidad de

recolectar mayor volumen de residuos comparado con otras figuras geométricas. Sin

embargo decidimos diseñar la estructura con dos de las artistas superiores opuestas, a un

desnivel de 10 cm para acomodar los componentes electrónicos en una placa de acrílico

10

Page 11: D is e ñ o y c o n s tru c c ió n d e u n ro b o t a c u á ......De acuerdo con Vasconcelos (2011), una computadora es una máquina capaz de procesar y transformar gran cantidad

centrada. Con ello podría darse también mayor estabilidad al prototipo. Además, las

características del espacio y la masa que ocupa, da la posibilidad de un índice más alto de

estabilidad y flotabilidad.

Otros de los componentes principales son aquellos que brindan movilidad al

dispositivo; las turbinas y los motores. Su planteamiento fue a partir de la idea de realizar

un ensamblaje adecuado para que su movilidad fuera óptima considerando la fuerza del

dispositivo y el costo del producto. (Anexo de imágenes: Figura 1.13)

Al mismo tiempo, se diseñó el circuito electrónico para su ensamblaje en una

protoboard , en la cual se colocarían los componentes para la conexión entre el módulo de 2

Bluetooth, el microcontrolador arduino, los motores y las fuentes de poder.

Otro de los retos a resolver, fue la disposición del circuito electrónico en la estructura

del dispositivo, ya que en el agua estaría expuesto al medio, lo que provocaría posibles

daños a los elementos electrónicos. Se pensó en un recipiente que permitiera aislar a los

más vulnerables. Por otro lado, se diseñaron bases de madera para elevar los motores que

irían conectados a los ejes de las turbinas, mismos que se eligieron para tener la suficiente

distancia a las bases de las estas y así, protegerlos de las condiciones mencionadas.

Las turbinas se planearon a partir de la estructura de los ejes, los cuales deben

brindar mayor soporte para que la contrafuerza del eje al motor no sea perjudicial. Sumado

a esto, los engranajes deben incrementar la potencia del motor para que, junto con las

hélices ayuden al desplazamiento.

Debido a que el objetivo es recoger residuos que se encuentren en la superficie del

agua, el robot tiene que contar con la característica de flotabilidad. Se llegó a la resolución

de usar tubos de espuma, que se componen de un material sintético repleto de espacios

de aire que, sumados al comportamiento normal del material, evita el hundimiento del

robot. Para la recolección de los residuos, se decidió colocar una red reciclada en las

caras del cubo.

Para que se pueda controlar el dispositivo a distancia, se propuso el diseño y

desarrollo de una aplicación para celulares. Dadas las necesidades, el lenguaje de

programación seleccionado fue Java para Android. Para que tuviera la facilidad y rango de

conexión entre el microcontrolador Arduino y la aplicación, se contempló el uso de un

2 La protoboard es una especie de tablero con orificios, en la cual se pueden insertar componentes electrónicos y cables para armar circuitos

11

Page 12: D is e ñ o y c o n s tru c c ió n d e u n ro b o t a c u á ......De acuerdo con Vasconcelos (2011), una computadora es una máquina capaz de procesar y transformar gran cantidad

módulo de Bluetooth, ya que las ventajas de éste comparado con uno de wifi fueron: la

relación costo­alcance y la facilidad de interconexión.

Para todo lo anteriormente planteado, se realizaron diversos planos con la finalidad

de tener una representación gráfica y concisa del prototipo del producto final. Tal y como se

muestra en la figura 1.3 y en el anexo de imágenes figura 1.11 y 1.12.

(Figura 1.3)

2. Desarrollo de la composición electrónica

En esta etapa, se elaboró la electrónica que controla a la parte mecánica a partir del

diseño ya esbozado. Se utilizaron: 1 protoboard, 10 jumpers, 1 Arduino Uno, 1 Módulo de

Bluetooth y 2 pilas recargables.

En primera instancia y poniendo en práctica los conocimientos más elementales

sobre electrónica de potencia , se elaboró un circuito que distribuye la energía eléctrica 3

hacia los servomotores y el microcontrolador Arduino, para que el funcionamiento entre

éstos y el flujo de la corriente fueran los correctos. Con el propósito de contar con la

potencia necesaria de funcionamiento, se ocupó una pila recargable y una solar como

fuente de poder del circuito, y posteriormente se añadieron los motores a éste. Luego, se

hizo la conexión eléctrica entre el microcontrolador y el módulo de Bluetooth, dando lugar

así a un circuito completo y eficiente.

3 La electrónica de potencia combina la energía, la electrónica y el control, ha revolucionado la idea del control para la conversión de potencia y para el control de los motores eléctricos. El control se encarga del régimen permanente y de las características dinámicas; la energía está relacionado con el equipo de potencia para la generación, transmisión y distribución de energía eléctrica; la electrónica se ocupa de los dispositivos y circuitos de estado sólido requeridos en el procesamiento de señales para cumplir con los objetivos de control deseados.

12

Page 13: D is e ñ o y c o n s tru c c ió n d e u n ro b o t a c u á ......De acuerdo con Vasconcelos (2011), una computadora es una máquina capaz de procesar y transformar gran cantidad

3. Construcción del prototipo

Esta etapa radica en la construcción de la parte mecánica del robot . Como se

mencionó anteriormente, los servomotores tienen cierto ángulo de giro causado por la

posición de los engranajes con respecto a un tope, sin embargo, esto no resultaba

deseable para el proyecto, dado que se requería un giro de 360°. Debido a esto, el

servomotor tuvo que ser modificado abriendo la carcasa de plástico, quitando los

engranajes del motor y, con ayuda de un par de pinzas de corte, retirar dicho elemento.

Ulteriormente, procedimos con la construcción y ensamblaje del esqueleto,

compuesto fundamentalmente por piezas y accesorios de Policloruro de Vinilo (PVC), para

ello se utilizaron: 13 tubos de 50 cm cada uno, 4 codos, 4 esquineros, y 4 conexiones T;

todos unidos con pegamento apropiado para el tipo de material. (Anexo de imágenes:

figura 1.4)

En las aristas desniveladas, se colocó un tubo de espuma cortado en dos

segmentos de 30 cm cada uno. Fueron cortados transversalmente para poder cubrir los

tubos de PVC, y unidos a estos por medio de cinchos de plástico. También se colocó un

mosquitero a modo de red en 4 caras del prisma: la base y 3 laterales, para que la basura

pueda entrar pero no salir.

Los baleros tienen la capacidad de dar movilidad y sustento a la dinámica entre el

eje y la base; reducen la fricción entre el primero y las piezas conectadas a éste, por medio

de una rodadura que le sirve de apoyo y facilita su desplazamiento.

Otro de los elementos básicos para la turbina es la rueda o rotor, que cuenta con

palas de Polipropileno, obtenidas gracias al reuso de una caja de este material, y

colocadas alrededor de una lata de aluminio cortada, de tal forma que el fluido en

movimiento produzca una fuerza tangencial que impulse a las hélices y las haga girar. Esta

energía mecánica se transfiere a través de un eje para proporcionar el movimiento del

dispositivo.

El juego de engranajes es uno de los mejores medios disponibles cuando en las

máquinas, la transmisión de potencia se hace de un eje a otro paralelo cercano a él. En

este caso, para los ejes de las turbinas se requirió de: 1 eje de bicicleta, 2 baleros , 2 4

tuercas para ajustar los baleros, 2 tuercas para sujetar la base de las paletas, 2 tuercas

para sujetar el engranaje, 2 bases de madera para sujetar a la estructura y 1 tubo de PVC

4 Pieza que sirve como apoyo a un eje y sobre el cual éste gira.

13

Page 14: D is e ñ o y c o n s tru c c ió n d e u n ro b o t a c u á ......De acuerdo con Vasconcelos (2011), una computadora es una máquina capaz de procesar y transformar gran cantidad

de 25 cm, que sirve de base para poder colocar el eje en la placa de acrílico cercanos a

los servomotores y al circuito. (Anexo de imágenes: Figura 1.7 ­ Figura 1.10).

4. Diseño y desarrollo del software

El desarrollo de la aplicación en Java para Android fue dividido en dos partes. La

primera, consistió en el desarrollo de la interfaz gráfica de la aplicación. La segunda, en la

conexión entre el módulo de Bluetooth asociado al Arduino y al del celular. El programa

hace que el usuario pueda comandar el dispositivo a una distancia de hasta 100 metros.

El módulo de bluetooth HC­05 es del tipo Maestro­Esclavo, esto quiere decir que,

además de recibir conexiones desde una PC o tablet, crea la comunicación App­Android a

Arduino . También es capaz de generar conexiones hacia otros dispositivos. Esto nos

permite conectar dos módulos de bluetooth y formar una conexión punto a punto, para

transmitir datos entre el microcontrolador y el celular.

Por otra parte, se encuentra el programa en Arduino que está hecho en lenguaje C

pero compilado y cargado en el microcontrolador. Básicamente, su funcionamiento radica

en mandar las señales correspondientes para hacer que los motores giren.

Resultados

Después de alrededor de cuatro meses de trabajo, se logró obtener un robot con la

estructura planeada a la de un cubo, de aproximadamente 50 cm por lado, funcionando con

una aplicación desarrollada en Java para Android, un programa en lenguaje C cargado en

un microcontrolador Arduino y la relación entre éstos mediante un módulo de Bluetooth

HC­05. (Anexo de imágenes: Figura 1.5)

El usuario interactúa con el robot a través de un teléfono celular. Se usa un programa

que se ejecuta sobre Android y el módulo para lograr esta conexión, permitiendo así que la

secuencia del movimiento se muestre de manera inmediata en el cubo y lleve a cabo la

recolección de desechos. (Anexo de imágenes: Figura 1.6)

A partir del planteamiento del problema inicial, se tuvo que realizar una investigación

minuciosa en la cual se hizo el análisis de cada una de las partes lógicas y estructurales del

robot. Gracias a esto, pudimos relacionar nuestros conocimientos sobre programación en

lenguaje C, programación orientada a objetos y electrónica básica; asimismo,

incorporamos nuevos conocimientos desarrollados a lo largo de este proyecto sobre las

características de distintos materiales, así como la comparación y selección de los

14

Page 15: D is e ñ o y c o n s tru c c ió n d e u n ro b o t a c u á ......De acuerdo con Vasconcelos (2011), una computadora es una máquina capaz de procesar y transformar gran cantidad

mismos, para la construcción de un prototipo que realice las funciones requeridas para

solucionar un problema específico.

Ver video en la dirección:

https://vimeo.com/207872857

Análisis e interpretación de resultados

Se consideran alcanzados los objetivos del proyecto, ya que el robot cumple con las

características definidas al inicio del proyecto, sin embargo dicho desempeño no fue

gratuito y se presentaron múltiples retos relacionados con el diseño y manufactura del

prototipo.

Sin embargo, existen mejoras que se pueden hacer tales como:

Poner flotadores verticales para bajar la línea de flotación y permitir que

basura más grande entre al cubo.

Adicionar una tapa al cubo para no dejar salir a la basura.

Perfeccionar el ensamblado de los engranajes y el eje.

Los principales retos que se enfrentaron durante el desarrollo del proyecto fueron:

El diseñar un robot que fuera viable, económico y de fácil manufactura.

Elegir los materiales adecuados para que fueran ligeros y fácilmente adaptables al

proyecto.

Rediseñar el prototipo para adaptarlo a las condiciones de vulnerabilidad al agua.

El almacenamiento de los residuos.

Conclusiones

El proyecto resulta pertinente para la limpieza de cuerpos de agua pequeños, tales

como albercas o lagos artificiales. Pero resulta muy ambicioso pensar en lagos naturales

grandes, ya que el alcance del módulo no supera la distancia de 100 metros y el prototipo

se enredaría con la flora subacuática.

El desarrollo de este robot contribuyó a mejorar las habilidades del trabajo

colaborativo y a tener consideraciones importantes en cuanto a materiales y técnicas

usadas para la construcción del mismo.

15

Page 16: D is e ñ o y c o n s tru c c ió n d e u n ro b o t a c u á ......De acuerdo con Vasconcelos (2011), una computadora es una máquina capaz de procesar y transformar gran cantidad

Desarrollar por cuenta propia, tanto la estructura física como el software, reduce los

costos considerablemente comparado con el gasto que representa adquirir un producto

comercial de este tipo, ya que el costo total de nuestro producto es de $2000 y en el

mercado el más barato es de $5800.

Fuentes de información

Anónimo.(2017).Robótica.Tudela, España: Centro Integrado Politécnico. Recuperado el 17 de

enero del 2017 de: http://www.etitudela.com/profesores/rpm/rpm/downloads/robotica.pdf

Anónimo. (2017). Definición de Bluetooth.Universidad de las Américas de Puebla.

Consultado el 03 de enero del 2017

de: http://catarina.udlap.mx/u_dl_a/tales/documentos/lem/valle_i_lf/capitulo3.pdf

Angulo, J., Hernández, J., Prieto, M., Etxebarria M. y Angulo, M. (2010). Electrónica digital y

microprogramable. España: Paraninfo.

Arduino (2017). Página oficial de Arduino. Consultado el 20 de febrero del 2017, de

https://www.arduino.cc/en/Main/ArduinoBoardUno

Camargo, O; Martínez, L && Hernández, C. (2017). Bluetooth technology: alternative to

cellular networks of voice and data. Consultado el 21/02/2017,

de:http://file :/// C:/Users/PREPA%206/Downloads/Dialnet­TecnologiaBluetooth­4168

662.pdf

Canchala, A. (2017). Página oficial de Microsoft, Fundamentos de la Programación

Orientada a Objetos. Consultado el 04 de marzo del 2017, de:

https://msdn.microsoft.com/es­es/library/bb972232.aspx

Carletti, E.J.(2007). Servos: Características Básicas. Consultado el 03 de febrero, de:

http://robots­argentina.com.ar/MotorServo_basico.htm

16

Page 17: D is e ñ o y c o n s tru c c ió n d e u n ro b o t a c u á ......De acuerdo con Vasconcelos (2011), una computadora es una máquina capaz de procesar y transformar gran cantidad

Deitel, Harvey M. && Deitel. Paul J.(2004), Cap.24 Introducción a las aplicaciones y a los

applets de Java. en Cómo programar en C/C++ y Java (4°a ed.) (pp.

769­773).México, Pearson­Educación.

Fernández Ruzafa, J && Escoda Herrando, J.(2001) Navot: robot autónomo educacional ,

XXII Jornadas de Automática, Comité Español de Automática. Barcelona España

Platt, Charles.(2016). Encyclopedia of Electronics Components. Power Sources & Conversion ,

Volume I,O'Reilly Media Inc., U.S.A., Pages 201­207.

Pérez, Julián && Merino, María. Publicado: 2012. Actualizado: 2015. Definicion.de:

Definición de turbina (http://definicion.de/turbina/).

Ramírez, V. && Weiss M.(1986). Introducción a los microprocesadores, equipo y sistemas.

México: Limusa

Rashid, M. (1993). Power Electronics Circuits, Devices, and Applications.New York:

Prentice Hall.

Serway, R. && Beichner, R.(1999). Physics for scientists and Engineers with Modern

Physics .(2° ed.). United States of America: Brooks cole.

Steven Perry, J.(2012). Conceptos básicos del lenguaje Java: programación orientada a

objetos en la plataforma Java. Consultado el 22 de febrero del 2017, de :

https://www.ibm.com/developerworks/ssa/java/tutorials/j­introtojava1

Varios. (2016). Programación en dispositivos móviles portables, Android. Consultado el 12

de diciembre del 2016 de

http://sites.google.com/site/swcuc3m/home/android/portada.

17

Page 18: D is e ñ o y c o n s tru c c ió n d e u n ro b o t a c u á ......De acuerdo con Vasconcelos (2011), una computadora es una máquina capaz de procesar y transformar gran cantidad

Varios. (2007). Oxford Dictionary. Oxford: Oxford University Press. oxforddictionaries.com.

Recuperado el 15 de enero del 2017

https://es.oxforddictionaries.com/definicion/robot

Varios. (2010). Servomotores. Universidad técnica Federico Santa María, Chile.

Consultado el 10 de febrero del 2017

de:http://www2.elo.utfsm.cl/~mineducagv/docs/ListaDetalladadeModulos/servos.pdf

Vasconcelos, J. (2011). Introducción a la Computación. México: Grupo Editorial Patria.

Anexos

SplashScreen.java

package com.led_on_off.led;

import android.app.Activity;

import android.content.Intent;

import android.os.Bundle;

public class SplashScreen extends

Activity

@Override

protected void onCreate(Bundle

savedInstanceState)

super.onCreate(savedInstanceState);

setContentView(R.layout.splash);

Thread timerThread = new Thread()

public void run()

try

sleep(700);

catch(InterruptedException e)

e.printStackTrace();

finally

Intent intent=new

Intent(SplashScreen.this,DeviceList.class)

;

startActivity(intent);

;

timerThread.start();

@Override

protected void onPause()

super.onPause();

finish();

ledControl.java

package com.led_on_off.led;

import

android.support.v7.app.ActionBarActivity;

import android.os.Bundle;

import android.view.Menu;

import android.view.MenuItem;

18

Page 19: D is e ñ o y c o n s tru c c ió n d e u n ro b o t a c u á ......De acuerdo con Vasconcelos (2011), una computadora es una máquina capaz de procesar y transformar gran cantidad

import android.bluetooth.BluetoothSocket;

import android.content.Intent;

import android.view.View;

import android.widget.ImageButton;

import android.widget.Toast;

import android.app.ProgressDialog;

import

android.bluetooth.BluetoothAdapter;

import android.bluetooth.BluetoothDevice;

import android.os.AsyncTask;

import java.io.IOException;

import java.util.UUID;

public class ledControl extends

ActionBarActivity

ImageButton forward, left, right, reverse,

stop, Discnt;

String address = null;

private ProgressDialog progress;

BluetoothAdapter bluetoothAdapter = null;

BluetoothSocket bluetoothSocket = null;

private boolean isBtConnected = false;

static final UUID myUUID =

UUID.fromString("00001101­0000­1000­8

000­00805F9B34FB");

@Override

protected void onCreate(Bundle

savedInstanceState)

super.onCreate(savedInstanceState);

Intent newint = getIntent();

address =

newint.getStringExtra(DeviceList.EXTRA_

ADDRESS);

setContentView(R.layout.activity_led_cont

rol);

forward =

(ImageButton)findViewById(R.id.forward);

left = (ImageButton)findViewById(R.id.left);

right =

(ImageButton)findViewById(R.id.right);

reverse =

(ImageButton)findViewById(R.id.reverse);

stop =

(ImageButton)findViewById(R.id.stop);

Discnt =

(ImageButton)findViewById(R.id.discnt);

new ConnectBT().execute();

forward.setOnClickListener(new

View.OnClickListener()

@Override

public void onClick(View v)

if (bluetoothSocket!=null)

try

bluetoothSocket.getOutputStream().write("

a".toString().getBytes());

catch (IOException e)

msg("Error");

);

left.setOnClickListener(new

View.OnClickListener()

@Override

public void onClick(View v)

if (bluetoothSocket!=null)

try

19

Page 20: D is e ñ o y c o n s tru c c ió n d e u n ro b o t a c u á ......De acuerdo con Vasconcelos (2011), una computadora es una máquina capaz de procesar y transformar gran cantidad

bluetoothSocket.getOutputStream().write("

c".toString().getBytes());

catch (IOException e)

msg("Error");

);

right.setOnClickListener(new

View.OnClickListener()

@Override

public void onClick(View v)

if (bluetoothSocket!=null)

try

bluetoothSocket.getOutputStream().write("

d".toString().getBytes());

catch (IOException e)

msg("Error");

);

reverse.setOnClickListener(new

View.OnClickListener()

@Override

public void onClick(View v)

if (bluetoothSocket!=null)

try

bluetoothSocket.getOutputStream().write("

b".toString().getBytes());

catch (IOException e)

msg("Error");

);

stop.setOnClickListener(new

View.OnClickListener()

@Override

public void onClick(View v)

if (bluetoothSocket!=null)

try

bluetoothSocket.getOutputStream().write("

g".toString().getBytes());

catch (IOException e)

msg("Error");

);

Discnt.setOnClickListener(new

View.OnClickListener()

@Override

public void onClick(View v)

Disconnect(););

private void Disconnect()

if (bluetoothSocket!=null)

try

bluetoothSocket.close();

catch (IOException e)

msg("Error");

finish();

private void msg(String s)

Toast.makeText(getApplicationContext(),s

,Toast.LENGTH_LONG).show();

@Override

public boolean

onCreateOptionsMenu(Menu menu)

getMenuInflater().inflate(R.menu.menu_led

_control, menu);

return true;

@Override

public boolean

onOptionsItemSelected(MenuItem item)

int id = item.getItemId();

20

Page 21: D is e ñ o y c o n s tru c c ió n d e u n ro b o t a c u á ......De acuerdo con Vasconcelos (2011), una computadora es una máquina capaz de procesar y transformar gran cantidad

if (id == R.id.action_settings)

return true;

return

super.onOptionsItemSelected(item);

private class ConnectBT extends

AsyncTask<Void, Void, Void>

private boolean ConnectSuccess = true;

@Override

protected void onPreExecute()

progress =

ProgressDialog.show(ledControl.this,

"Conectando", "Espera");

@Override

protected Void doInBackground(Void...

devices)

try

if (bluetoothSocket == null ||

!isBtConnected)

bluetoothAdapter =

BluetoothAdapter.getDefaultAdapter();

BluetoothDevice dispositivo =

bluetoothAdapter.getRemoteDevice(addr

ess);

bluetoothSocket =

dispositivo.createInsecureRfcommSocket

ToServiceRecord(myUUID);

BluetoothAdapter.getDefaultAdapter().can

celDiscovery();

bluetoothSocket.connect();

catch (IOException e)

ConnectSuccess = false;

return null;

@Override

protected void onPostExecute(Void

result)

super.onPostExecute(result);

if (!ConnectSuccess)

msg("La conexión falló, intenta otra vez");

finish();

else

msg("Conectado");

isBtConnected = true;

progress.dismiss();

DeviceList.java

package com.led_on_off.led;

import android.content.Intent;

import

android.support.v7.app.ActionBarActivity;

import android.os.Bundle;

import android.view.Menu;

import android.view.MenuItem;

import android.view.View;

import android.widget.AdapterView;

import android.widget.ArrayAdapter;

import android.widget.Button;

import android.widget.ListView;

import

android.bluetooth.BluetoothAdapter;

import android.bluetooth.BluetoothDevice;

import android.widget.TextView;

21

Page 22: D is e ñ o y c o n s tru c c ió n d e u n ro b o t a c u á ......De acuerdo con Vasconcelos (2011), una computadora es una máquina capaz de procesar y transformar gran cantidad

import android.widget.Toast;

import java.util.ArrayList;

import java.util.Set;

public class DeviceList extends

ActionBarActivity

Button pairedDevicesBtn;

ListView deviceList;

private BluetoothAdapter

bluetoothAdapter = null;

private Set<BluetoothDevice>

pairedDevices;

public static String EXTRA_ADDRESS =

"device_address";

@Override

protected void onCreate(Bundle

savedInstanceState)

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_device_li

st);

pairedDevicesBtn =

(Button)findViewById(R.id.button);

deviceList =

(ListView)findViewById(R.id.listView);

bluetoothAdapter =

BluetoothAdapter.getDefaultAdapter();

if(bluetoothAdapter == null)

Toast.makeText(getApplicationContext(),

"Tu dispositivo no tiene conexión

Bluetooth",

Toast.LENGTH_LONG).show();

finish();

else if(!bluetoothAdapter.isEnabled())

Intent turnBluetooth = new

Intent(BluetoothAdapter.ACTION_REQUE

ST_ENABLE);

startActivityForResult(turnBluetooth,1);

pairedDevicesBtn.setOnClickListener(ne

w View.OnClickListener()

@Override

public void onClick(View v)

pairedDevicesList();

);

private void pairedDevicesList()

pairedDevices =

bluetoothAdapter.getBondedDevices();

ArrayList list = new ArrayList();

if (pairedDevices.size()>0)

for(BluetoothDevice bt : pairedDevices)

list.add(bt.getName() + "\n" +

bt.getAddress()); //Get the device's name

and the address

else

Toast.makeText(getApplicationContext(),

"No se encontraron dispositivos

emparejados.",

Toast.LENGTH_LONG).show();

final ArrayAdapter adapter = new

ArrayAdapter(this,android.R.layout.simple

_list_item_1, list);

deviceList.setAdapter(adapter);

deviceList.setOnItemClickListener(myList

ClickListener);

22

Page 23: D is e ñ o y c o n s tru c c ió n d e u n ro b o t a c u á ......De acuerdo con Vasconcelos (2011), una computadora es una máquina capaz de procesar y transformar gran cantidad

private AdapterView.OnItemClickListener

myListClickListener = new

AdapterView.OnItemClickListener()

public void onItemClick (AdapterView<?>

av, View v, int arg2, long arg3)

String info = ((TextView)

v).getText().toString();

String address =

info.substring(info.length() ­ 17);

Intent i = new Intent(DeviceList.this,

ledControl.class);

i.putExtra(EXTRA_ADDRESS, address);

startActivity(i);

;

@Override

public boolean

onCreateOptionsMenu(Menu menu)

getMenuInflater().inflate(R.menu.menu_de

vice_list, menu);

return true;

@Override

public boolean

onOptionsItemSelected(MenuItem item)

int id = item.getItemId();

if (id == R.id.action_settings)

return true;

return

super.onOptionsItemSelected(item);

arduino.ino

#include <Servo.h>

char jarvis;

Servo motorL, motorR;

void frente()

motorL.write(170);

motorR.write(10);

Serial.print(1, DEC);

void atras()

digitalWrite(8, LOW);

motorL.write(10);

motorR.write(170);

Serial.print(2, DEC);

void izquierda()

motorL.write(10);

motorR.write(10);

Serial.print(3, DEC);

void derecha()

motorL.write(170);

motorR.write(170);

Serial.print(4, DEC);

void detener()

digitalWrite(8, HIGH);

motorL.write(61);

motorR.write(27);

Serial.print(5, DEC);

void setup()

Serial.begin(38400);

pinMode(8, OUTPUT);

motorR.attach(2);

motorL.attach(4);

void loop()

if (Serial.available() > 0)

jarvis = Serial.read();

if (jarvis == 'a')

23

Page 24: D is e ñ o y c o n s tru c c ió n d e u n ro b o t a c u á ......De acuerdo con Vasconcelos (2011), una computadora es una máquina capaz de procesar y transformar gran cantidad

atras();

else if (jarvis == 'b')

frente();

else if (jarvis == 'c')

izquierda();

else if (jarvis == 'd')

derecha();

else if (jarvis == 'g')

detener();

ANEXO DE IMÁGENES

Figura 1.4

Figura 1.5

Figura 1.6

Figura 1.7

Figura 1.8

Figura 1.9 Figura 1.10

Figura 1.11

Figura 1.12

Figura 1.13

24