Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 75

Robot Cuadrúpedo con control inalámbrico

David Resa Ruiz


Grado en Ingeniería de Tecnologías y Servicios de Telecomunicación
Sistemas Encastrados

Consultor: Jordi Bécares Ferrés


Profesor responsable de la asignatura: Pere Tuset Peiró

Junio 2020
Esta obra está sujeta a una licencia de
Reconocimiento-NoComercial-
SinObraDerivada 3.0 España de Creative
Commons
FICHA DEL TRABAJO FINAL

Título del trabajo: Robot Cuadrúpedo con control inalámbrico

Nombre del autor: David Resa Ruiz

Nombre del consultor/a: Jordi Bécares Ferrés

Nombre del PRA: Pere Tuset Peiró

Fecha de entrega (mm/aaaa): 06/2020


Grado en Ingeniería de Tecnologías y
Titulación::
Servicios de Telecomunicación
Área del Trabajo Final: Sistemas Encastrados

Idioma del trabajo: Castellano

Palabras clave Robot, Cuadrúpedo, MSP432.

Resumen del Trabajo (máximo 250 palabras):

El objetivo del proyecto es el desarrollo de un robot cuadrúpedo con control


inalámbrico a través de conexión WIFI.
El sistema está basado en el sistema embebido MSP432 de Texas Instruments
al que se dota de conectividad inalámbrica a través de la placa de expansión
CC3100 del mismo fabricante, además de esto incorpora otra serie de sensores
para recoger datos relevantes del entorno.
El producto final consta de una estructura física con cuatro patas con tres grados
de libertad cada una, que mediante la parametrización de las posiciones relativas
de los servomotores es capaz de desplazarse en varias configuraciones
definidas.
Mediante una aplicación para dispositivos móviles Android el usuario tiene la
posibilidad de seleccionar varios modos de funcionamiento o realizar un control
manual, a la vez que visualiza los parámetros de los sensores incorporados en el
robot.
Para su desarrollo se ha seguido una metodología de proyectos para dividir las
distintas tareas en fases concretas y totalmente documentadas, junto con un
seguimiento temporal y de riesgos.
El resultado final ha sido un prototipo totalmente funcional que cumple con las
especificaciones de diseño planteadas
Abstract (in English, 250 words or less):

The aim of the project is the development of a quadruped robot with wireless
control through WIFI connection.
The system is based on the embedded system MSP432 produced by Texas
Instruments, which is improved with connectivity through the expansion board
CC3100 built by the same company, additionally there are different sensors
included to acquire relevant data from the environment.
The final product includes a physical structure with four legs with three degrees of
freedom each, which by parameterization of the relative positions of the
servomotors, it can move in various defined configurations.
Through an Android application for mobile devices, the user has the possibility to
choose among various operating modes or perform manual control, while viewing
the parameters of the sensors incorporated in the robot.
Development has followed a project methodology in order to split the different
single tasks into concrete and fully documented phases, with temporary and risk
evaluation
The result has been a fully functional prototype that meets the design
specifications
Índice

1. Introducción.................................................................................................. 1
1.1 Contexto y justificación del trabajo ............................................................ 1
1.2 Descripción del trabajo .............................................................................. 1
1.3 Objetivos del TFG ..................................................................................... 2
1.4 Requerimientos del producto ..................................................................... 2
1.5 Enfoque y método seguido ........................................................................ 3
1.6 Planificación del trabajo............................................................................. 4
1.6.1 Definición fases del proyecto ............................................................ 4
1.6.2 Planificación alto nivel del proyecto. ................................................. 5
1.6.3 Desglose de tareas. .......................................................................... 6
1.6.4 Planificación de riesgos .................................................................... 7
1.6.5 Desviaciones sobre la planificación. ................................................. 7
1.7 Recursos empleados ................................................................................. 9
1.7.1 Recursos de propósito general. ........................................................ 9
1.7.2 Recursos de Software. .................................................................... 10
1.7.3 Recursos de Hardware. .................................................................. 10
1.8 Productos obtenidos ................................................................................ 14
1.9 Breve descripción de los otros capítulos de la memoria.......................... 16
2. Antecedentes .............................................................................................. 17
2.1 Estado del arte ........................................................................................ 17
2.2 Estudio de mercado ................................................................................ 19
3. Descripción funcional ................................................................................ 21
3.1 Robot cuadrúpedo con control inalámbrico ............................................. 21
3.1.1 Descripción del sistema. ................................................................. 21
3.1.2 Diagrama funcional de alto nivel ..................................................... 21
3.1.3 Protocolo de comunicaciones. ........................................................ 22
3.2 Modulo Robot .......................................................................................... 24
3.2.1 Estructura física. ............................................................................. 24
3.2.3 Estructura de software embebido. .................................................. 26
3.3 Modulo aplicación cliente ........................................................................ 27
3.3.1 Interfaz de usuario. ......................................................................... 28
3.3.2 Estructura de software App Android. .............................................. 29
4. Descripción detallada ................................................................................ 30
4.1 Estructura física ....................................................................................... 30
4.1.1 Estudio físico del sistema................................................................ 30
4.1.2 Definición de orden de marcha. ...................................................... 32
4.2 Módulos de hardware .............................................................................. 36
4.2.1 Esquema general. ........................................................................... 36
4.2.2 Alimentación. .................................................................................. 37
4.2.3 Movilidad. ........................................................................................ 38
4.2.4 Periféricos ....................................................................................... 38
4.2.5 Control. ........................................................................................... 39
4.3 Módulos de software sistema embebido ................................................. 40
4.3.1 Estrategia modular en tiempo real .................................................. 40
4.3.2 Modulo control ................................................................................ 41
4.3.3 Modulo comunicaciones.................................................................. 43
4.3.4 Modulo movimientos ....................................................................... 44
4.3.5 Modulo temperatura ........................................................................ 45
4.3.6 Modulo distancia ............................................................................. 46
4.3.7 Modulo iluminación ......................................................................... 47
4.3.8 Modulo pantalla ............................................................................... 47
4.3.9 Modulo sonido................................................................................. 48
4.4 Módulos de software aplicación Android ................................................. 49
4.4.1 Interfaz gráfica. ............................................................................... 49
4.4.2 Modulo envío órdenes. ................................................................... 49
4.4.3 Modulo recepción información. ....................................................... 50
5. Viabilidad técnica ....................................................................................... 51
6. Valoración económica ............................................................................... 52
6.1 Coste fabricación prototipo. ..................................................................... 52
6.2 Escenario de producción en masa y comercialización. ........................... 52
7.Conclusiones ............................................................................................... 54
7.1 Lecciones aprendidas.............................................................................. 54
7.2 Autoevaluación. ....................................................................................... 54
7.3 Líneas de trabajo futuras ......................................................................... 55
8. Glosario ....................................................................................................... 56
9. Bibliografía.................................................................................................. 57
10. Anexos ...................................................................................................... 58
10.1 Datos técnicos Servomotor SG90 ......................................................... 58
10.2 Datos técnicos AMS1117 ...................................................................... 59
10.3 Datos técnicos UBEC 8A....................................................................... 60
10.4 Datos técnicos Sensor HC-SR04 .......................................................... 61
10.5 Datos técnicos DHT11........................................................................... 62
10.6 Datos técnicos KY018 ........................................................................... 63
10.7 Datos técnicos LCD1602 ....................................................................... 64
10.8 Esquema eléctrico ................................................................................. 65
10.9 Modulo software Android ....................................................................... 66
Lista de figuras

Figura 1 - Matriz probabilidad/Impacto ............................................................... 7


Figura 2 - Plataforma desarrollo MSP432 ........................................................ 10
Figura 3 - Expansión inalámbrica CC3100 ....................................................... 10
Figura 4 - Batería LIPO Hubsan ....................................................................... 11
Figura 5 - Regulador UBEC 8A ........................................................................ 11
Figura 6 - Regulador AMS1117 ........................................................................ 11
Figura 7 - Servomotor SG90S .......................................................................... 12
Figura 8 - Sensor volumétrico HC-SR04 .......................................................... 12
Figura 9 - Sensor temperatura y humedad DHT11 .......................................... 12
Figura 10 - Sensor iluminación KY-018 ............................................................ 13
Figura 11 - Pantalla LCD 1602 ......................................................................... 13
Figura 12 - Altavoz pasivo ................................................................................ 13
Figura 13 - Robot cuadrúpedo vista frontal ...................................................... 14
Figura 14 - Robot cuadrúpedo vista superior ................................................... 14
Figura 15 - Robot cuadrúpedo vista lateral ...................................................... 15
Figura 16 - Robot cuadrúpedo vista inferior ..................................................... 15
Figura 17 - Robot cuadrúpedo aplicación Android ........................................... 15
Figura 18 - Sistemas embebidos ...................................................................... 17
Figura 19 - Alternativas conectividad inalámbrica ............................................ 18
Figura 20 - Aplicaciones robótica ..................................................................... 18
Figura 21 - Diagrama alto nivel sistema ........................................................... 22
Figura 22 - Modelo OSI interconexión sistemas ............................................... 22
Figura 23 - Modelo de comunicaciones ............................................................ 23
Figura 24 - Estructura mensaje HTTP/1.1 ........................................................ 23
Figura 25 - Modelo físico Robot ....................................................................... 24
Figura 26 - Modelo funcional hardware Robot.................................................. 25
Figura 27 - Modelo funcional software Robot ................................................... 26
Figura 28 - Interfaz gráfica App Android ........................................................... 28
Figura 29 - Modelo funcional software App ...................................................... 29
Figura 30 - Modelo físico robot ......................................................................... 30
Figura 31 - Diseño pata robot ........................................................................... 30
Figura 32 - Comparación modificación diseño ................................................. 31
Figura 33 - Modificaciones modelo físico ......................................................... 32
Figura 34 - Nombres de los segmentos de las patas ....................................... 32
Figura 35 - Movimiento Reposo-Listo............................................................... 32
Figura 36 - Esquema eléctrico hardware .......................................................... 36
Figura 37 - Detalle módulo de alimentación ..................................................... 37
Figura 38 - Ciclo de trabajo servo .................................................................... 38
Figura 39 - Detalle conexión servomotores ...................................................... 38
Figura 40 - Detalle conexión periféricos ........................................................... 39
Figura 41 - Detalle conexión MSP432 y CC3100 ............................................. 39
Figura 42 - Gestión de tareas RTOS ................................................................ 40
Figura 43 - Diseño modular software embebido ............................................... 41
Figura 44 - Diagrama de flujo modulo control................................................... 42
Figura 45 - Diagrama flujo modulo comunicaciones......................................... 43
Figura 46 - Diagrama flujo modulo movimiento ................................................ 44
Figura 47 - Ciclo de lectura DTH11 .................................................................. 45
Figura 48 - Diagrama flujo modulo temperatura ............................................... 45
Figura 49 - Diagrama flujo modulo distancia .................................................... 46
Figura 50 - Diagrama flujo modulo iluminación ................................................ 47
Figura 51 - Diagrama flujo modulo pantalla ...................................................... 48
Figura 52 - Diagrama flujo modulo sonido ........................................................ 48
Figura 53 - Función envío orden software app ................................................. 50
Figura 54 - Función recepción información software app ................................. 50
Lista de tablas

Tabla 1 - Planificación temporal alto nivel .......................................................... 5


Tabla 2 - Lista de tareas acotadas ..................................................................... 6
Tabla 3 - Evaluación de riegos ........................................................................... 7
Tabla 4 - Lista de movimientos paso hacia delante.......................................... 35
Tabla 5 - Costes de producción prototipo ......................................................... 52
Tabla 6 - Costes de producción prototipo homologado .................................... 53
Tabla 7 - Plan de negocio comercializacion prototipo ...................................... 53
Tabla 8 - Dedicación fases del proyecto .......................................................... 54
1. Introducción

El presente capítulo desarrolla los conceptos generales del proyecto que se aborda, desde los
hechos que han motivado su realización, pasando por los objetivos y enfoque seguido, hasta los
puntos generales de planificación y gestión del producto a conseguir.

1.1 Contexto y justificación del trabajo


Debido al fuerte desarrollo de todas las tecnologías alrededor de IoT y la gestión de dispositivos
de forma remota, resulta muy atractivo realizar el desarrollo de un proyecto, que no solo sea
posible gestionar de forma remota, recibiendo y enviando información, sino que además pueda
interactuar con el entorno. Unido este hecho con el potencial de uso de software de tiempo real
hace posible abordar situaciones que requieran monitorización y actuación, tanto física como
lógica.

Además de los elementos de software y hardware que incluye cualquier sistema IoT, es
necesario evaluar otro tipo de factores físicos que intervienen en el desarrollo, como resistencia
de materiales, torque y velocidad de los servomotores, control del centro de gravedad, puntos de
estabilidad y orden de marcha, por nombrar algunos de ellos.

Hoy en día es muy común ver todo tipo de drones o sistemas terrestres basados en plataformas
con ruedas debido a los bajos precios y sencillez de uso, pero todavía no es tan común el uso
de dispositivos que son capaces de adaptarse a la orografía y superar barreras arquitectónicas,
que en función de sus características pueden cubrir necesidades también muy interesantes.

1.2 Descripción del trabajo

El producto final desarrollado consiste en un robot cuadrúpedo que se mueve libremente por
superficies y a su vez recoge datos del entorno para poder interactuar en tiempo real, todo el
sistema es controlado desde un dispositivo móvil para dotar al sistema de total independencia.

Dentro de la configuración básica del sistema se definen varios modos de funcionamiento, tanto
manuales como automáticos, fácilmente ampliables en futuras actualizaciones de software, así
como el control y monitorización de variables físicas del entorno

El proyecto se puede dividir en tres grandes bloques, basados en la estructura física del robot,
integración de hardware y desarrollo de software con las funcionalidades previstas en el alcance
del prototipo.

1
Con relación a la estructura física, el esqueleto se basado en modelos 3D de terceros, disponibles
en repositorios en la red, al que se han realizado las modificaciones necesarias para integrar los
elementos de hardware previstos y con el objetivo de que el sistema sea lo más ligero posible
para minimizar problemas de estabilidad y compatibilizarlo con el funcionamiento de los
servomotores seleccionados.

La sección de hardware se basa en el sistema embebido desarrollado por Texas Instruments, el


MSP432401R, al que se añaden funcionalidades de conectividad inalámbrica con la placa de
expansión CC3100. El resto de las características del sistema se desarrolla con bloques de
hardware funcionales disponibles en el mercado, como servomotores, controladores de potencia,
reguladores de tensión y diversos sensores.

El bloque de software del sistema embebido se realizará en el entorno de programación CCS1 ,


desarrollado por el propio fabricante y empleando un sistema RTOS, planteando la solución de
forma modular para que sea fácilmente actualizable y escalable. Asimismo el sistema de control
se desarrolla para ser usado en dispositivos móviles con sistema operativo Android, para el cual
se utiliza el entorno de programación App-Inventor2

1.3 Objetivos del TFG

Como resultado del análisis y descripción del proyecto se definen los siguientes objetivos
generales del proyecto:

- Construcción de robot cuadrúpedo basado en sistema embebido


- Creación de distintos modos de funcionamiento tanto manuales como automáticos.
- Integración del control en un entorno de dispositivo móvil

1.4 Requerimientos del producto


En base a los objetivos descritos en el punto anterior se establecen una serie de requerimientos
y funcionalidades para llevarlo a cabo que se detallan a continuación:

- Fabricación de prototipo físico de robot cuadrúpedo.


- Parametrización de movimientos de un cuadrúpedo y monitorización de variables
ambientales.
- Gestión de sistema en tiempo real de forma inalámbrica a través de app en dispositivo móvil.

- Creación de distintos modos de funcionamiento:

1
Entorno de desarrollo Code Composer Studio, disponible en http://www.ti.com/tool/CCSTUDIO
2
Entorno de diseño aplicaciones Android desarrollada por MIT, disponible en línea https://appinventor.mit.edu/

2
o Automático: El robot deambulara de forma aleatoria detectando y evitando
obstáculos.
o Reacción a movimiento: El robot reaccionara a la detección de presencia en el
campo de acción del sensor volumétrico
o Reacción a iluminación: El robot reaccionara a la detección de incrementos de
iluminación en el campo de acción del sensor.
o Manual: Se realizarán movimientos indicados a través app en dispositivo móvil.

Como funcionalidades extraordinarias tenemos:

- Alarmas mediante altavoz integrado.


- Visualización en pantalla integrada de mensajes.

1.5 Enfoque y método seguido

El proyecto está enfocado en la integración de distintos módulos de hardware para conseguir un


prototipo funcional que cumpla los objetivos planteados, adaptando, y en la medida de lo posible
mejorando, desarrollos teóricos o prácticos disponibles.

Existen diversas estrategias para el desarrollo del objetivo, pero se estima que para obtener un
resultado optimo en cuanto a costes y tiempo la mejor estrategia es intentar aprovechar los
elementos disponibles en el mercado, en vez de desarrollar desde cero los elementos que lo
componen, un enfoque muy acorde con la situación de mercado actual y en línea con las nuevas
tendencias de Fast-innovation3.

Una vez definido el alcance del proyecto, se plantea un enfoque en cuatro grandes bloques,
claramente diferenciados, que se enumeran a continuación y se planifican en los siguientes
puntos siguiendo una temporización que permita la ejecución en paralelo de algunas actividades.

- Estudio teórico del proyecto, donde se definen las funcionalidades y se identifica que
elementos de hardware y software serán necesarios, la estructura física donde ira
implementado y los efectos físicos implicados, así como la planificación temporal y
económica para evaluar si podrá ser alcanzable.

- Desarrollo estructura física, partiendo de la idea teórica, se localiza y adapta una estructura
compatible con la finalidad del objetivo, para lo cual se aprovechan desarrollos de terceros
reduciendo los tiempos de implementación.

- Desarrollo de estructura de hardware, una vez identificados los diferentes elementos


necesarios para realizar las funcionalidades planteadas se busca en el mercado posibles

3
Estrategias de innovación rápida, https://paugarciamila.video/conferencia-pau-garcia-mila-tedx-esade-fast-innovation/

3
bloques de hardware que cumplen con los requerimientos, también se estima conveniente el
uso de bloques ya existentes en vez de desarrollarlos desde cero por la complejidad de estos.

- Desarrollo de software, teniendo en cuenta en los elementos anteriores y con el foco en los
objetivos a conseguir se desarrolla el software necesario para que el sistema realice de la
forma más eficiente posible las funciones definidas, teniendo en cuenta siempre un sistema
basado en ejecución en tiempo real y con planteamiento modular que pueda soportar un
horizonte de ampliación de funcionalidades.

Dentro del método de trabajo definido se establecen varias fases de desarrollo y pruebas
funcionales sobre plataforma de software en primera instancia y sobre la plataforma física
posteriormente ya que pueden existir potenciales desviaciones al llevar al mundo real los
diferentes módulos.

1.6 Planificación del trabajo


El trabajo se planifica siguiendo un planteamiento por fases, compatible con la metodología
Scrum4, que permitan el desarrollo independiente de los diferentes módulos de forma incremental
y faciliten la realización de una serie de baterías de pruebas tanto a nivel de software como de
hardware que garanticen el éxito de cada una de ellas.

1.6.1 Definición fases del proyecto

Para lograr los objetivos marcados realiza el siguiente desglose en tareas, divididas en las
distintas fases del proyecto.
Fase 0
- Investigación y planificación del proyecto.
- Búsqueda de documentación teórica y técnica.
- Selección de materiales y componentes.
- Selección de plataformas de desarrollo.

Fase 1
- Montaje de estructura física y hardware
- Parametrización teórica de movimientos de un cuadrúpedo.
- Planificación de sistema basado en RTOS
- Diseño rutinas gestión de elementos de hardware para movimiento
- Diseño rutinas gestión de elementos de hardware para monitorización variables físicas
- Diseño rutinas gestión de elementos de hardware para envío respuestas externas

4
Metodología de desarrollo de proyectos que requieran flexibilidad y rapidez, https://www.scrum.org/

4
Fase 2
- Diseño rutinas gestión de conexión inalámbrica y colas de mensajes.
- Creación de modo básico de funcionamiento
o Automático: Deambulando de forma aleatoria y evitando obstáculos
- Control inalámbrico por conexión WIFI a través de App en dispositivo móvil.
o Monitorización eventos a través de App
o Modo manual: Atendiendo a las instrucciones dadas desde el dispositivo móvil
o Selección de modos de funcionamiento a través de App

Fase 3
- Modo reacción movimiento: Detección de presencia y reacción a ella.
- Modo reacción iluminación: Detección de iluminación y reacción a ella.
- Alarmas sonoras relacionadas con eventos.
- Visualización en pantalla del prototipo de información monitorizada y otros eventos.

Fase 4
- Documentación del proyecto

Fase 5
- Presentación y defensa del proyecto

1.6.2 Planificación alto nivel del proyecto.

Una vez definidas las fases del proyecto se realiza una planificación a alto nivel de los recursos
necesarios para completar cada una de las fases.

Tabla 1 - Planificación temporal alto nivel

5
1.6.3 Desglose de tareas.

Relacionadas con las distintas fases del proyecto se plantea una lista de tareas definidas a
completar en cada una de ellas.
Recursos Recursos
Hito Descripción Tipo %
plan reales
Fase 0 Selección proyecto Documentación 2 2 100%
Investigación Documentación 18 18 100%
Planificación Documentación 10 10 100%
Documentación Documentación 30 30 100%

Fase 1 Diseño e impresión estructura física Hardware 10 12 100%


Montaje hardware Hardware 10 12 100%
Parametrización teórica movimientos cuadrúpedo Hardware 10 8 100%
Planificación de sistema basado en RTOS Software 6 40 100%
Diseño rutinas gestión de elementos de hardware 100%
Software 22 20
para movimiento
Diseño rutinas gestión de elementos de hardware 100%
Software 18 20
para monitorización variables físicas
Diseño rutinas gestión de elementos de hardware
Software 14 12 100%
para envío respuestas externas
Test funcionamiento desarrollos fase 1 Test 2 5 100%
Documentación Documentación 16 8 100%
Fase 2 Rutina de movimiento aleatorio Software 14 20 100%
Rutina detección de obstáculos Software 14 10 100%
Rutina conexión WIFI Software 20 18 100%
Rutina modo avanzado RTOS Software 16 18 100%
App dispositivo móvil Android Software 6 10 100%
Rutina monitorización obstáculos App Software 2 3 100%
Rutina modo avanzado App Software 2 1 100%
Rutina selección modos App Software 2 1 100%
Test funcionamiento desarrollos fase 2 Test 2 4 100%
Documentación Documentación 16 8 100%
Fase 3 Rutina modo reacción movimiento RTOS Software 10 6 100%
Rutina modo reacción movimiento App Software 2 1 100%
Rutina modo reacción temperatura RTOS Software 10 18 100%
Rutina modo reacción temperatura App Software 2 1 100%
Rutina alarmas sonoras eventos RTOS Software 10 2 100%
Rutina alarmas sonoras eventos App Software 2 1 100%
Test funcionamiento desarrollos fase 3 Test 2 2 100%
Depuración y correcciones Software 0 20 100%
Documentación Documentación 16 4 100%
Fase 4 Memoria Documentación 50 60 100%
Fase 5 Presentación Documentación 12 12 100%
Defensa Documentación 2 2 100%
Total 380 419
Tabla 2 - Lista de tareas acotadas

6
1.6.4 Planificación de riesgos

Se realiza el análisis de los riesgos más comunes a la hora de desarrollar un proyecto, los
desarrollos principales están basados en software y los riesgos más notables pueden sobrevenir
por problemas en la planificación temporal y disponibilidad de recursos para la ejecución del
proyecto.

Para esto se realiza la evaluación mediante una matriz que combina probabilidad de ocurrencia
e impacto en el proyecto.

Figura 1 - Matriz probabilidad/Impacto

De acuerdo con esta definición se procede a evaluar los riesgos con detalle de las acciones y
resultado en caso de producirse.

Id Descripción P(A). Imp. Total Acciones Resultado


Reserva 15% tiempo Impacto
Subestimación carga de
1 3 7 21 adicional para dedicación
trabajo
contingencias
Fallos de Hardware Material disponible para Impacto
2 2 5 10
prototipo entrega en 48h económico
Viabilidad técnica Realizado prototipo para No es un riesgo
3 2 9 18
prototipo evaluar riegos físicos
Viabilidad técnica Evaluación desarrollos Retraso entrega
4 3 7 21
software disponibles del fabricante
Curvas de aprendizaje Simplificación Retraso entrega
5 software de desarrollo y 3 7 21 funcionalidades del
lenguajes programación proyecto
Modificaciones en el Definición clara de las Retraso entrega
6 2 9 18
alcance del proyecto funcionalidades
Accesibilidad a Software de desarrollo Retraso entrega
7 2 1 3
plataformas online instalado en equipo
Gestión información en la Retraso entrega
8 Fallos equipo informático 2 5 10 nube, plan de reinstalación
software
Tabla 3 - Evaluación de riegos

1.6.5 Desviaciones sobre la planificación.

Dentro del desarrollo del proyecto se han podido finalizar todos los objetivos planificados, pero
se han detectado problemas relacionados con la definición inicial, en los que ha sido necesario
tomar decisiones sobre cambios en el alcance del proyecto, para que continúe siendo viable, no
ha provocado una merma de calidad en el producto entregado, pero ha supuesto un aumento

7
del tiempo de desarrollo el cual ha sido asumido mediante el tiempo de reserva planificado en la
gestión de riesgos.

Los cambios de alcance realizados se detallan a continuación:

- Planificación de sistema basado en RTOS

En un primer momento se define el desarrollo del sistema mediante el uso de FreeRTOS 5 y CCS,
pero al realizar las pruebas de implementación se vieron grandes dificultades para gestionar el
módulo de conexión inalámbrica CC3100 junto con el sistema embebido MSP432, ya que todos
los ejemplos y desarrollos disponibles están enfocados al modelo más actual del fabricante, el
CC3200, por lo que después de emplear muchos recursos con distintas pruebas no se consiguió
un funcionamiento viable para el proyecto.

Las opciones disponibles eran cambio de hardware o software, en vista de las dificultades de
conseguir el hardware necesario y en previsión de continuar teniendo problemas de integración
se consideró conveniente el cambio de plataforma de software, esta se encuentra disponible
inmediatamente y simplifica los tiempos de desarrollo, por lo que se opta por cambiar la
plataforma de desarrollo a Energía6, que si dispone de elementos compatibles con CC3100 y
sigue siendo válido conceptualmente al utilizarse como RTOS.

- Uso de librerías externas para sensor de temperatura y humedad

En una primera definición se planta el desarrollo del módulo de control de temperatura y humedad
mediante el uso de librerías externas dedicadas a este recurso que simplifican enormemente el
desarrollo de la aplicación.

Durante la fase de desarrollo se detectaron problemas de compilación al portar el espacio de


trabajo a otros equipos informáticos, por lo que se toma la decisión de desistir del uso de estas
y plantear un escenario donde se ataca directamente el recurso realizando la activación y lectura
de información del dispositivo siguiendo las especificaciones técnicas del fabricante.

- Elementos de hardware

Para completar la adquisición de señales externas y conseguir una representación del entorno
más amplia se incorpora adicionalmente un sensor de iluminación, este ya se encontraba entre
el hardware disponible.

En la última fase se plantea como objetivo adicional la implementación de una pantalla OLED de
0.96 pulgadas para la representación de información en el propio robot. Al existir problemas de

5
Plataforma de desarrollo de software tiempo real, https://www.freertos.org/
6
Plataforma de desarrollo de software de Texas instuments para desarrollo rápido de prototipos, https://energia.nu/

8
suministro del hardware, se ha opta por sustituirla por una pantalla LCD que se encontraba
disponible, a nivel de software y hardware no supone una gran diferencia salvo por las
limitaciones en cuanto a la información que se puede representar.

- Estructura física.

Después de las pruebas físicas de movimiento se detectan algunos fallos de diseño de la base
y las patas del robot relacionadas con la estabilidad del sistema, así como de la situación del
sensor volumétrico, por lo que se realiza la impresión de las piezas modificadas, la desviación
en tiempo es asumible y entra dentro de la planificación general.

En una fase posterior se realiza el cambio de alcance relacionado con la pantalla de visualización
de datos, debido al elevado peso de la nueva pantalla es necesario crear una nueva estructura
para soportarla y cambiar la disposición de los elementos de hardware existentes, en conjunto
supone un aumento del 10% en el peso, que supone un gran reto al aproximarse al límite de
torque que pueden manejar los servomotores, principalmente en el momento de arranque hasta
que se coloca en la posición de pie.

También es necesario modificar parámetros en algunas posiciones de los movimientos por la


alteración del orden de marcha al mover el centro de gravedad del sistema incluyendo la pantalla.

1.7 Recursos empleados


Se detallan a continuación los recursos utilizados tanto a nivel de software como de hardware.

1.7.1 Recursos de propósito general.

Se relacionan los elementos de propósito general utilizados para el desarrollo del presente
proyecto.

- Equipo informático con sistema operativo Windows.


- Entorno de ofimática Microsoft Office 365
- Impresora 3D Anycubic I3 Mega 7y materiales plásticos.
- Teléfono móvil con sistema operativo Android.
- Material de laboratorio electrónico y herramientas varias.

7
Impresora 3D del fabricante Anycubic, https://www.anycubic.com/products/anycubic-i3-mega

9
1.7.2 Recursos de Software.

En relación con el software ha sido necesaria la utilización de los distintos paquetes:

- Entorno de desarrollo programación sistema embebido CCS 6.0 (1)


- Entorno de desarrollo programación aplicaciones Android App-Inventor. (3)
- Entorno desarrollo circuitos esquemáticos, EasyEDA (4)
- Entorno desarrollo diseños 3D, Tinkercad (5)
- Entorno de desarrollo impresión 3D Ultimaker Cura (6)
- Entorno edición de video de Sony Vegas 13 (7)

1.7.3 Recursos de Hardware.

Respecto a los elementos de hardware que conforman el sistema encontramos los que se
describen a continuación, para aquellos que ha sido necesaria documentación técnica para el
desarrollo, se incluyen como anexos las hojas de características.

- Sistema embebido Simplelink MSP-432P401R8


Se trata de un kit de desarrollo basado en un procesador ARM de 32 bits a 48MHz y con muy
bajo consumo. Dispone de una gran variedad de puertos y sistemas de comunicación.

Figura 2 - Plataforma desarrollo MSP432

- Sistema expansión inalámbrica Simplelink CC31009


Se trata de una tarjeta de expansión para dotar al sistema de conexión Wifi, se ensambla muy
fácilmente al kit anterior al utilizar el puerto de expansión de ambos, se encarga de todas las
tareas relacionas con la conexión, liberando así al sistema principal de todo este trabajo.

Figura 3 - Expansión inalámbrica CC3100

8
Desarrollo de Texas Instruments, http://www.ti.com/tool/MSP-EXP432P401R#1
9
Desarrollo de Texas Instruments, http://www.ti.com/tool/CC3100BOOST

10
- Batería LIPO 7,4V
Teniendo en cuenta la gran demanda de energía por parte de los servomotores es necesario
incorporar en el prototipo de un sistema de alimentación que sea capaz de entregar altos picos
de intensidad y con un peso contenido, el modelo seleccionado pertenece al fabricante Hubsan
y entre sus principales características se encuentran una capacidad de 610mAh con un
coeficiente de descarga 15C, lo que garantiza entregas de hasta 9A.

Figura 4 - Batería LIPO Hubsan

- Regulador de tensión UBEC


Los servomotores seleccionados, que se explican más adelante tienen un voltaje de
funcionamiento de entre 4,8-6 V, por lo que es necesario disponer de un regulador de tensión
para adaptar el voltaje de la batería LIPO pero que a su vez soporte los picos de consumo del
sistema en torno a los 4A, por lo que se equipa al sistema de este regulador con una corriente
nominal de 8A y que puede soportar picos hasta 12A.

Figura 5 - Regulador UBEC 8A

- Reguladores de tensión AMS1117


Partiendo del sistema de alimentación basado en la batería LIPO es necesario conseguir voltajes
regulados para alimentar los diferentes componentes de hardware por lo que se incluyen dos
reguladores de tensión de 3,3V y 5V, con una corriente de salida máxima de 1A, más que
suficiente para el propósito del proyecto.

Figura 6 - Regulador AMS1117

11
- Servomotor SG90S
Para la realización de los movimientos del robot se han seleccionado los servomotores del tipo
SG90S, se trata de un modelo muy estándar en el mercado para el que existen infinidad de
fabricantes.
Entre sus características técnicas tenemos una rotación de 180º, un rango de tensión entre 4,8
a 6 V y un torque elevado de 1,5 Kg-cm.
Puede ser manejado con las librerías estándar que se pueden encontrar en los entornos de
desarrollo mediante el uso de señales PWM con un periodo de 20 ms y estableciendo el ciclo de
trabajo entre 1 y 2 ms en función de la rotación requerida

Figura 7 - Servomotor SG90S

- Sensor volumétrico HC-SR04


Según los objetivos del proyecto es necesario evaluar la presencia de obstáculos delante del
robot, para lo que se utiliza un módulo estándar del mercado denominado HC-SR04 producido
por diversos fabricantes, para su utilización se recurre a las hojas de características técnicas,
generando un pulso en las condiciones indicadas en estas y midiendo el tiempo de retorno de
este.

Figura 8 - Sensor volumétrico HC-SR04

- Sensor Temperatura y Humedad DHT11


Otro elemento estándar del mercado es el sensor de temperatura y humedad DHT11, se trata de
un dispositivo encapsulado de bajo consumo que entrega las lecturas mediante una interface
serie de un solo cable, a través del cual se realiza la solicitud de información y se recibe en el
formato y tiempos definidos por el fabricante.

Figura 9 - Sensor temperatura y humedad DHT11

12
- Sensor de iluminación KY-018
Se trata de un módulo que incluye una resistencia fotosensible que reduce su resistencia
proporcionalmente a la iluminación, por lo que conocido el voltaje de alimentación es posible
determinar, mediante la lectura del valor de la caída de tensión a través de uno de los puertos
del sistema, el nivel de iluminación.

Figura 10 - Sensor iluminación KY-018

- Pantalla LCD 1602


Para realizar la representación de información relevante del sistema e incorporar gestos
asociados a las acciones se incorpora al diseño una pantalla LCD de 16 caracteres por dos filas,
es un producto muy común y de fácil integración al llevar incorporado el controlador ST7066 que
permite la comunicación a través de I2C y el manejo a través de librerías desarrolladas por
terceros con las funcionales más habituales ya definidas.

Figura 11 - Pantalla LCD 1602

- Altavoz pasivo
Como último elemento se incorpora un altavoz pasivo para representar alarmas del sistema, al
ser un sistema pasivo la forma de onda se genera mediante la conexión a una salida PWM y
usando la función tone() que permite crear formas de onda de frecuencia y tiempo definidos.

Figura 12 - Altavoz pasivo

13
1.8 Productos obtenidos

Como resultado final del proyecto se obtiene un prototipo completamente funcional que cumple
con todos los requerimientos y objetivos marcados en el proyecto.

Figura 13 - Robot cuadrúpedo vista frontal

Figura 14 - Robot cuadrúpedo vista superior

14
Figura 15 - Robot cuadrúpedo vista lateral

Figura 16 - Robot cuadrúpedo vista inferior

Figura 17 - Robot cuadrúpedo aplicación Android

15
1.9 Breve descripción de los otros capítulos de la memoria

El resto de los capítulos de la presente memoria se enfocan en los aspectos técnicos y de


desarrollo del proyecto, siendo estos:

El capítulo 2 trata una visión del estado tecnológico actual de los desarrollos usados y posibles
soluciones existentes similares a la propuesta, indicando también el posible nicho de mercado al
que podría enfocarse y las alternativas que propone la competencia para este segmento.

El capítulo 3 describe con una visión de alto nivel la idea general del proyecto, desarrollando a
nivel conceptual los bloques del sistema y la relación entre ellos, pretende ser una introducción
sobre el diseño del producto que ofrezca una visión general y permita al lector abordar los
detalles técnicos en los que se profundiza en el siguiente capítulo.

El capítulo 4 explica detalladamente los desarrollos técnicos realizados tanto a nivel de software
como de hardware, presentado una visión a bajo nivel del producto y la interacción e
interconexión entre los distintos módulos.

En los capítulos 5 y 6 se realiza una reflexión sobre la viabilidad técnica del producto y sus
posibilidades de mercado teniendo en cuenta los costes de desarrollo y producción del prototipo
así como la posibilidad de comercialización y producción en masa.

Por último en el capítulo 7 se analizan las conclusiones generales del proyecto a nivel académico
y las posibles líneas de desarrollo futuro en base a las experiencias adquiridas.

Como complemento de la memoria se incluyen en los siguientes capítulos cuestiones de carácter


general como pueden ser glosario de términos utilizados, bibliografía y anexos con
documentación técnica relevante para la correcta interpretación de la información incluida a lo
largo de la memoria.

16
2. Antecedentes

2.1 Estado del arte

El mundo de IoT y la robótica está en continuo auge, en los últimos años ha habido un verdadero
boom de dispositivos y recursos que están disponibles para el gran público.

Debido a la gran variedad de sistemas embebidos capaces de ofrecer funcionalidades completas


y abstrayéndose a los requerimientos, pudiendo obviar las partes más complejas de bajo nivel,
se ha abierto la puerta a una gran cantidad de personas para que puedan desarrollar ideas con
una versatilidad y rapidez asombrosa.

De hecho se está impulsando de manera notable el uso de este tipo de recursos en el mundo de
la educación, haciendo que desde edades tempranas la población se introduzca no solo en el
uso de los productos sino también en el desarrollo de ellos, haciendo que de manera natural se
aprendan conceptos de programación y ejecución de proyectos.

Entre los sistemas embebidos podemos encontrar plataformas completas y sencillas de muchos
fabricantes, con multitud de documentación y ejemplos, como dispositivos del tipo MSP432,
Arduino, Raspberry, Beaglebone entre otros, cada uno de ellos con características distintas y
que serán adecuados según el tipo de proyecto a desarrollar.

Figura 18 - Sistemas embebidos

Unido a esto, en los tiempos actuales, tiene cada vez más sentido poder dotar a estos con
sistemas de comunicaciones inalámbricas, permitiendo el control y monitorización en remoto a
través de sistemas informáticos o dispositivos móviles, otro gran avance en este campo ha sido
el desarrollo de plataformas de diseño de aplicaciones móviles accesibles para casi cualquiera y
con bajos requerimientos de conocimiento a nivel programación o de bajo nivel.

17
Figura 19 - Alternativas conectividad inalámbrica

Este abanico de posibilidades ofrece al usuario la elección de la tecnología que más se adecue
al producto donde se va a aplicar, desde comunicaciones de campo cercano, conexiones directas
de medio alcance o incluso en cualquier punto del planeta mediante el uso de comunicaciones a
través de internet.

La existencia de estándares internacionales para la mayoría de ellos hace que sea posible la
utilización de plataformas y dispositivos sin tener que emplear esfuerzos en integrar distintas
tecnologías, ejemplo de ello pueden ser los protocolos HTTP o MQTT entre otros, ambos válidos
para el proyecto, aunque a priori el estándar MQTT se adapta mejor a un tipo de dispositivos IoT
al ser más liviano, con menor tasa de transmisión y permite trabajar con total independencia al
emisor y receptor mediante el uso de un intermediario, no son características determinantes para
el proyecto en curso, por el contrario, aunque el HTTP requiere mayores recursos, es menos
flexible y la complejidad del protocolo es mayor, se disponen de bibliotecas y ejemplos
funcionales totalmente disponibles en el entorno de programación de Texas instruments.

Y no menos importante es el campo de la robótica, hasta hace no mucho tiempo este campo
estaba reservado solamente para grandes corporaciones y empresas tecnológicas debido a las
grandes inversiones necesarias para desarrollar un sistema, hoy en día es posible encontrar en
casi cualquier parte del mundo sistemas modulares con los que poder crear sistemas robóticos
para cubrir las necesidades más ingeniosas.

Figura 20 - Aplicaciones robótica

18
2.2 Estudio de mercado
Como se ha mencionado anteriormente existen en la actualidad multitud de desarrollos con
objetivos parecidos, que básicamente buscan crear dispositivos que se puedan mover de forma
autónoma y salvando irregularidades del terreno.

Estos equipos tienen un gran abanico de potenciales usuarios según las características de
diseño, pero el punto más relevante viene relacionado con la calidad de los materiales empleados
y las prestaciones que estos pueden ofrecer.

Dia a día se realizan avances muy importantes en las características de los elementos que los
componen que permiten realizar nuevas funciones y aproximarse cada vez más a imitar la gran
variedad de movimientos que puede realizar un ser vivo.

Entre los más avanzados podemos encontrar Legged Squad Support System (LS3)10
desarrollado por el ejército de EEUU capaz de correr y saltar obstáculos, otros a medio camino
como el PhantomX AX Metal Hexapod Mark III Kit 11, modelos más comerciales de coste
asequible como Alienbot12 o plataformas DIY como Freenove13, se incluye comparativa de
distintos modelos

PhantomX AX Metal
Alienbot Freenove Robot cuadrúpedo
Hexapod Mark III Kit

Numero servo 18 AX-12A 8 18 MG90 12 MG90

CPU ATMEGA644p N/A Arduino MSP432

Vel CPU 16 MHz N/A 16 MHz 48 MHz

Material Metal Plástico Plástico Plástico

Batería 4500mAh LiPo 8x1.5V AA 2x3.7V 750MAh 610mAh Lipo

Control Mando Mando App/mando App/Ordenador

Precio 1070,90€ 87,94€ 135,95€ 150€

10 https://www.xatakaciencia.com/robotica/el-primer-robot-cuadrupedo-que-corre-y-salta-obstaculos-sin-perder-el-equilibrio
11 https://www.trossenrobotics.com/phantomx-ax-hexapod.aspx
12https://es.aliexpress.com/item/33038918270.html?spm=a2g0o.productlist.0.0.2041125dz4gg0X&algo_pvid=15caeea3-d5cc-4677-84f4-
83eddc654190&algo_expid=15caeea3-d5cc-4677-84f4-83eddc654190-
31&btsid=0be3769015889530269337116ed3c7&ws_ab_test=searchweb0_0,searchweb201602_,searchweb201603_
13https://www.amazon.es/Freenove-Quadruped-Raspberry-Crawling-
Detailed/dp/B071HDJMJ4/ref=sr_1_98?__mk_es_ES=%C3%85M%C3%85%C5%BD%C3%95%C3%91&dchild=1&keywords=robot+DIY
&qid=1588953462&s=toys&sr=1-98&swrs=0B99D1ABF575EBEC64C35B11ABE1E949

19
El prototipo del proyecto en su estado actual podría competir en un segmento de mercado
intermedio o bajo, más dedicado a un juguete o como kit de desarrollo para aficionados, como
se verá en los capítulos 5 y 6 para llegar a otros perfiles de consumidores sería necesario
incrementar las funcionalidades y principalmente la calidad de los servomotores, donde se
encuentra el punto más diferenciador entre sistemas, así como algún tipo de plataforma donde
se puedan realizar actualizaciones del software incluyendo nuevas funcionalidades u ofrecer
expansiones del sistema.

En cualquier caso, incluso en el segmento en el que se puede enmarcar este producto la gama
de productos disponibles no es muy amplia, por lo que incluyendo algunos cambios de diseño,
principalmente estéticos, haría que fuera una alternativa interesante.

20
3. Descripción funcional

En este capítulo se introduce el proyecto realizado desde un punto de vista funcional y de alto
nivel, tratara de explicar las características del sistema en su conjunto, los distintos módulos del
sistema y como se relacionan los distintos elementos entre ellos, así como los protocolos de
comunicaciones.

3.1 Robot cuadrúpedo con control inalámbrico

3.1.1 Descripción del sistema.

Como se indicaba en los capítulos de introducción los requerimientos generales del proyecto son
crear un robot cuadrúpedo que sea capaz de recrear movimientos de manera estable y continua,
a su vez tendrá disponibles una serie de funciones predefinas que completaran la experiencia de
usuario, por lo que el sistema funcionalmente cubre los siguientes requisitos:

- Control del sistema mediante dispositivo móvil

- Captura de variables físicas como distancia, iluminación, temperatura y humedad

- Representación en pantalla de variables físicas y gestos relacionados con eventos.

- Movimiento según instrucciones recibidas de manera manual

- Movimiento según modos programados

o Automático: Movimiento aleatorio evitando obstáculos

o Presencia: Reacción a presencia dentro del campo de acción

o Iluminación: Reacción a Aumento de iluminación.

Mediante todas estas funciones el usuario puede tener un control total de los movimientos del
sistema o usar los modos de funcionamiento automáticos en los que el robot reaccionara a
estímulos externos.

3.1.2 Diagrama funcional de alto nivel

Para lograr los objetivos el sistema se divide en dos grandes bloques funcionales, uno de control
y otro de ejecución, que actúan de manera independiente y se comunican entre ellos mediante
el uso de protocolos de internet.

21
Cada uno de ellos hace uso de plataformas de hardware independientes, un dispositivo móvil
Android para el bloque de control y un sistema embebido basado en MSP432 y CC3100 para el
robot.

A su vez también disponen de desarrollos de software independientes que permite introducir


actualizaciones o mejoras de forma modular y sencilla, haciendo el sistema fácilmente escalable.

Figura 21 - Diagrama alto nivel sistema

De esta forma el usuario enlazará ambos dispositivos en el arranque y a partir de ese momento
podrá seleccionar el funcionamiento deseado a través de la interfaz gráfica del dispositivo móvil,
y a su vez recibiendo información de los parámetros físicos monitorizados por el robot.

3.1.3 Protocolo de comunicaciones.

Para poder realizar la comunicación entre módulos se establece la conexión de ambos equipos
a una red local mediante conexión inalámbrica Wifi, desde el punto de vista conceptual la
comunicación está basada en el modelo OSI, haciendo uso de las funcionalidades de capa de
red según las recomendaciones X.200 14 sobre interconexión de sistemas abiertos de ITU.

Figura 22 - Modelo OSI interconexión sistemas

14 https://www.itu.int/rec/T-REC-X.200-199407-I/es

22
Cada equipo negocia la conexión con el router siguiendo los protocolos y definidos en el estándar
y se le asigna una dirección IP dentro del sistema, lo que posibilitara la intercomunicación dentro
y fuera de la red. A nivel practico debido al uso de librerías integradas en el software de ambos
equipos podemos abstraernos de la configuración y gestión de las conexiones de comunicación
y usar para ello los métodos definidos, ya que están fuera del alcance del proyecto, y de esta
manera centrar los esfuerzos simplemente en la funcionalidad.

El módulo CC3100 incorpora todas las características de conectividad sobre Wifi 15 necesarias
para actuar como servidor Web y liberar al resto del sistema del robot de estas tareas, en la
siguiente figura se indican los protocolos utilizados por este para cada una de las capas
relevantes del modelo OSI

Figura 23 - Modelo de comunicaciones

Siguiendo esta estructura Cliente-servidor se realiza el intercambio de información entre


sistemas mediante los protocolos de transferencia de texto HTTP 16, donde principalmente se
utilizan mensajes del tipo HTTP GET para realizar el intercambio de mensajes sencillos entre
ambos sistemas, al igual que en los servicios de red y transporte en este caso se usan los
métodos definidos en las bibliotecas disponibles para el módulo.

Figura 24 - Estructura mensaje HTTP/1.117

15 https://www.ti.com/lit/wp/swry019a/swry019a.pdf?&ts=1589105615220
16 https://datatracker.ietf.org/doc/draft-ietf-httpbis-messaging/?include_text=1
17 https://developer.mozilla.org/es/docs/Web/HTTP/Messages

23
3.2 Modulo Robot
En el presente apartado se detallan las características del módulo del robot, desde su estructura
física en la que se basa su construcción hasta los bloques de hardware y software utilizados.

3.2.1 Estructura física.

Existen multitud de modelos 3D de estructuras físicas que pueden ser utilizadas como soporte
para la construcción de un robot cuadrúpedo, con la premisa de la utilización de servomotores
SG90 se parte de un modelo compatible con las funcionalidades buscadas.

El modelo se encuentra en el repositorio Thingiverse bajo el nombre Qu4druped quadpod18

Figura 25 - Modelo físico Robot

Como parte de la estructura física se estudian distintos modelos de movimiento para un


cuadrúpedo y con ello establecer la estrategia de movimiento más adecuada para el proyecto.

También es necesario tener en cuenta las características técnicas de los servomotores usados
ya que tienen limitaciones físicas, principalmente con el torque máximo que pueden ofrecer en
relación con la distancia de actuación y el peso del sistema, por encima de las cuales harían el
sistema inviable.

Con toda esta información se abordan cambios de diseño en algunos componentes para cumplir
con los requisitos del proyecto y adaptarlo a los componentes de hardware elegidos, también
como resultado de los estudios de movimiento y estabilidad del sistema.

18 https://www.thingiverse.com/thing:1677703

24
3.2.2 Estructura de hardware.

Para cumplir todas las funcionalidades descritas es necesario incorporar al prototipo una serie
de elementos de hardware, todos ellos están disponibles en el mercado de forma independiente
y trabajan como periféricos alrededor del sistema de proceso principal que es el MCU.

Figura 26 - Modelo funcional hardware Robot

En función del tipo de periférico es necesario aplicar un tipo de alimentación diferente y realizar
la conexión al MCU al tipo de entrada/salida más adecuado, pudiendo ser entradas o salidas
analógicas, digitales o PMW.

Para la interconexión del sistema se ha desplegado el cableado necesario teniendo siempre en


mente un escenario en el que el bloque pueda ser reemplazado con la mayor rapidez posible y
sin tener que modificar otros elementos.

El desarrollo así como el diagrama eléctrico de conexiones se explica con detalle en el siguiente
capítulo.

25
3.2.3 Estructura de software embebido.

Aprovechando las posibilidades del MCU utilizado se plantea un escenario de procesamiento en


tiempo real, y siguiendo una estrategia modular al igual que la implementación de hardware.

Figura 27 - Modelo funcional software Robot

Cada uno de los módulos trabaja de manera independiente y su tiempo de ejecución es


controlado por el scheduler del RTOS, algunos de ellos se están ejecutando continuamente, otros
se planifican para ejecución cada x segundos al no ser necesaria su ejecución continua, otros
permanecen bloqueados hasta que un evento desencadena el proceso, liberando así recursos
de proceso que pueden ser necesarios para otros módulos.

Se realiza una breve descripción de cada uno de ellos:

- Robot Cuadrúpedo: Modulo de control principal del sistema, se ocupa de la inicialización del
sistema y en función de la información que recibe como mensajes desde el Web Server envía
órdenes mediante eventos a los módulos operativos para que ejecuten las acciones necesarias.

- Web Server: Modulo de comunicaciones, establece la conexión con el router y trabaja como
servidor web, una vez recibida la conexión del cliente envía un mensaje al módulo principal con
la información relevante y sigue a la escucha. hace uso de librerías externas para el control de
hardware.

26
- Pantalla: Modulo pasivo, permanece bloqueado hasta que recibe un evento desde el módulo
de control para que ejecute una representación en pantalla, hace uso de librerías externas para
el control de hardware.

- Buzzer: Modulo pasivo, permanece bloqueado hasta que recibe un evento desde el módulo de
control para que ejecute la reproducción de un sonido.

- Temperatura: Modulo activo, realiza la adquisición de datos del hardware de temperatura cada
cierto tiempo, al ser un parámetro físico con variaciones lentas el refresco se hace menos
frecuentemente, permanece bloqueado el resto del tiempo.

- Iluminación: Modulo activo, realiza la adquisición de datos del hardware de iluminación cada
cierto tiempo, al ser un parámetro físico con variaciones medias el refresco se hace
frecuentemente, permanece bloqueado el resto del tiempo.

- Distancia: Modulo activo, realiza la adquisición de datos del hardware de distancia cada cierto
tiempo, al ser un parámetro físico con variaciones rápidas el refresco se hace muy
frecuentemente, permanece bloqueado el resto del tiempo.

- Movimiento: Modulo pasivo, realiza el control de los servomotores y envía a estos las
instrucciones necesarias para completar los movimientos configurados en función del tipo de
modo en el que se esté trabajando, una vez completada la rutina, la ejecución del módulo queda
bloqueada hasta recibir nuevo evento.

El detalle de todos los módulos, funcionalidades, configuración y relación con el hardware se


explica con detalle en el siguiente capítulo.

3.3 Modulo aplicación cliente

En el presente apartado se detallan las características del módulo de aplicación Android,


básicamente se divide en una interfaz gráfica con la que interactúa el usuario y unos módulos de
software que se ejecutan en función de esos eventos.

Todo el desarrollo se hace haciendo uso de la aplicación para diseño indicada en capítulos
anteriores, el APP-Inventor desarrollado por el MIT.

En este caso no se describe el hardware necesario, un dispositivo móvil con software Android y
conectividad inalámbrica para su ejecución, ya que se encuentra fuera del alcance del proyecto.

27
3.3.1 Interfaz de usuario.

Respecto a la interfaz gráfica se plantea un diseño limpio y que pueda estar autocontenido en
una sola pantalla para evitar desplazamientos, en ella se incluyen varios bloques para el control
del funcionamiento.

Figura 28 - Interfaz gráfica App Android

- Área conexión: Debido a que no se ha definido una IP fija al robot para permitir la conexión
sencilla en otras redes inalámbricas es necesario indicar a la aplicación la IP asignada en cada
conexión, esta es visible en la pantalla del robot al iniciar la conexión.

- Área movimiento manual: Mediante unas sencillas fechas en usuario puede seleccionar los
movimientos que quiere que realice el robot.

- Área de funciones: Mediante la pulsación de los diferentes botones se selecciona cada una de
las funcionalidades disponibles.

- Área visualización: Los datos obtenidos por el robot están disponibles para ser visualizados con
una frecuencia de refresco de 1 segundo.

Para hacer más atractiva la experiencia de usuario se han asignado una serie de sonidos
asociados a la pulsación de cada uno de los botones.

28
3.3.2 Estructura de software App Android.

Los bloques de software se dividen en dos áreas, que se detallan a continuación:

Figura 29 - Modelo funcional software App

- Entorno gráfico: Cada uno de los botones tiene asociado un evento que desencadena una
petición HTTP GET hacia el servidor del robot, en la cual se incluye una codificación para que
este pueda interpretar la opción seleccionada.

- Tarea programada: Se planifica una ejecución de petición de información en segundo plano que
se ejecuta cada segundo y desencadena una petición HTTP GET hacia el servidor del robot, en
cuya respuesta se incluyen los valores de los parámetros físicos obtenidos por el robot.

Todos los procesos de comunicaciones están cubiertos por las funcionalidades usadas en la
programación, por lo que podemos abstraernos de ellas y enfocar el proyecto solamente a las
tareas definidas en el alcance.

29
4. Descripción detallada

4.1 Estructura física

Una vez realizado un estudio de los modelos 3D disponibles en los repositorios que pudieran
encajar con las necesidades del proyecto se analizan una serie de puntos para asegurar que el
diseño seleccionado es capaz de cumplir con los requerimientos planteados.

Figura 30 - Modelo físico robot

Los potenciales problemas podrían presentarse por superar el peso máximo del conjunto que los
servomotores son capaces de gestionar y definir que estrategias de movimiento para sistemas
cuadrúpedos son más convenientes para los modos planeados.

4.1.1 Estudio físico del sistema.

Como punto de partida se establece como requisito que el robot sea capaz de mantenerse
estable en posiciones con solamente dos o tres patas sobre la superficie y que pueda de levantar
su peso desde una posición de reposo y mantenerlo en una posición de estabilidad.

Al partir de una base simétrica, para garantizar el punto de estabilidad, solo es necesario distribuir
el peso de los elementos de hardware uniformemente y realizar un cálculo correcto de las
posiciones de los servomotores para que en todos los escenarios mantengan el centro de
gravedad en unos márgenes dentro de la proyección para no provocar inestabilidad.

En el diseño original se desarrolla una solución con unas dimensiones determinadas.

Figura 31 - Diseño pata robot

30
Los servomotores ofrecen una fuerza de 1,5Kg a un centímetro de su eje, cuanto más alejado
está el punto donde se ejerce, la fuerza disponible desciende proporcionalmente, por lo que
teniendo en cuenta la longitud de los brazos tenemos.

Segmento 1: 1.5Kg a 6.5cm = 0.23Kg en el extremo

Segmento 2: 1.5Kg a 10cm = 0.15Kg en el extremo

Siendo el peso del conjunto 0,6 Kg se determina que el modelo no es viable, la fuerza de los
servomotores, principalmente en el segmento intermedio, no es suficiente para mantener el
conjunto de pie al realizar algún movimiento y perder alguno de los puntos de apoyo, no siendo
posible tampoco mantener ninguna posición estable sobre dos patas debido al diseño de la
terminación de la pata.

Se realiza una modificación de diseño acortando la longitud del último tramo e implementado una
superficie a 2 cm del servomotor con base plana, para facilitar mantener posiciones de
movimiento sobre dos patas, esto además modifica las posiciones relativas del segmento anterior
que hace que en posiciones de reposo el sistema se soporte por la propia estructura , exigiendo
una fuerza mínima al servo y evitando tenerlo activo continuamente, que adicionalmente supone
un ahorro significativo de energía.

Figura 32 - Comparación modificación diseño

Para adaptar el modelo a los elementos de hardware disponibles, se realizaron algunas


modificaciones sobre el diseño original.

31
Figura 33 - Modificaciones modelo físico

4.1.2 Definición de orden de marcha.

Dentro de las funcionalidades planteadas es necesario desarrollar rutinas de movimiento para


varios escenarios que se exponen a continuación, cada movimiento se desglosa en varias fases
para poder disponer de movimientos puntuales o marcha continua.

Para una correcta identificación cada uno de los segmentos recibe un nombre relacionado con
su posición en el robot.

Figura 34 - Nombres de los segmentos de las patas

Ponerse de pie:

Partiendo de una posición de reposo donde las cuatro patas están en posición horizontal es
necesario mantener las articulaciones del primer segmento (H) en posición de 45º y girar los
segmentos (B) y (M) 90 grados de forma coordinada para repartir el esfuerzo entre los servos,
especialmente (B) que son los que principalmente ejecutan la acción.

Figura 35 - Movimiento Reposo-Listo

32
Andar hacia delante / Detrás

Se definen una serie de movimientos que completan un paso hacia adelante, quedando el robot
colocado en la posición de reposo al finalizar, para realizar un paso continuo se deben ejecutar
una sola vez el paso inicial y el final, y repetir los intermedios tantas veces como sea requerido.

En las figuras se identifican en rojo las partes en las que se produce movimiento en cada fase.

Paso inicial:

Se colocan IDH y DDH retrasados 30º para


comenzar en una posición de estabilidad para
avance, se levantan al mismo tiempo los
brazos ID y DT

Fase 1:

Se giran los hombros de las patas levantadas


30º hacia adelante.

Fase 2:

Se bajan los brazos de las patas levantadas

33
Fase 3:

Se levantan los brazos contrarios

Fase 4:

Giro de los 4 hombros, ID/DT 30 grados hacia


atrás, giro hombros DD/IT 30 grados hacia
delante

Fase 5:

Se bajan los brazos de las patas levantadas

Fase 6:

Se levantan los brazos contrarios

34
Fase 7:

Giro hombros DD/IT 30 grados hacia atrás (en


este paso no se giran los 4 hombros a la vez
para permitir marcha continua o paro desde
este punto)

Fase 8:

En caso de acabar el paso se coloca en robot


en posición inicial, si es rutina de paso
continuo se pasaría a ejecutar la secuencia
desde la fase 1

Tabla 4 - Lista de movimientos paso hacia delante


La secuencia de paso atrás es exactamente igual pero la secuencia de movimientos se ejecuta
invertida simétricamente.

Giro Izquierda / Derecha

Para los giros a izquierda y derecha se parametriza una serie de movimientos para completar un
giro de 30º, al igual que en la secuencia anterior se repetirán en secuencia para completar giros
más amplios, en este caso solamente se detallan las posiciones.

Paso Inicial, Robot en posición de inicio


Fase 1, Levanto brazos ID/DT 30 grados
Fase 2, Giro hombros ID 60 grados hacia delante y DT 60 grados hacia atrás
Fase 3, Bajo brazos ID/DT 30 grados
Fase 4, Levanto brazos DD/IT 30 grados
Fase 5, Giro hombros IT 60 grados hacia atrás y DD 60 grados hacia delante
Fase 6, Bajo brazos DD/IT 30 grados
Paso final, Robot en posición de inicio

La secuencia de giro a la izquierda es exactamente igual pero la secuencia de movimientos se


ejecuta invertida simétricamente.

Los servos ensamblados tienen una velocidad angular suficiente (0.12ms/60º) para alcanzar las
posiciones definidas con suficiente rapidez para que no sea necesario plantear posiciones
intermedias por desviaciones en el centro de gravedad.

35
4.2 Módulos de hardware
4.2.1 Esquema general.

Se presenta el esquema general de la solución de hardware necesaria.

Figura 36 - Esquema eléctrico hardware

36
4.2.2 Alimentación.

El módulo de alimentación del sistema está formado por varios bloques que dan soporte a los
distintos requisitos de tensión y potencia de los módulos:

Figura 37 - Detalle módulo de alimentación

Para conseguir la suficiente autonomía y picos de entrega de intensidad se utiliza como fuente
de alimentación una batería LiPo de 7,4 V 610 mAH 15C, este factor indica que la entrega de
intensidad puede ser hasta 15 veces el nominal, por lo que puede entregar hasta 9A

Aunque los servomotores pueden funcionar en un rango variado de tensiones se configura el


sistema para alimentarlos con 5V y no forzarlos hasta su límite, cada uno requerirá alrededor de
300mA durante su ciclo de movimiento, por lo que se utiliza un regulador de potencia como el
UBEC que regula la tensión de hasta 5V con una entrega máxima de intensidad de 8A, que está
por encima de máxima demanda si todos ellos funcionaran a la vez, alrededor de 3.5A.

El sistema embebido requiere una alimentación de 3,3V, por lo que se incluye un nuevo regulador
a esa tensión y con una intensidad máxima de 1A.

Para el resto de los dispositivos se incorpora un regulador independiente de 5V y con una


intensidad máxima de 1A, esto evita que les puedan afectar posibles variaciones por los picos
de consumo de los servos y que pueda interferir en el correcto funcionamiento y la toma de
muestras.

37
4.2.3 Movilidad.

En el apartado de movilidad se utilizan servomotores SG90S, estos pueden ser alimentados


dentro del rango disponible en el proyecto y ofrecen un torque de 1.5 Kg/cm y velocidad de
desplazamiento de 0.12s/60º, suficiente para los requerimientos.

El control de estos se realiza mediante una señal PWM, configurándola con periodo de 20ms es
posible controlar la posición del eje mediante un ciclo de trabajo de entre 1ms a 2ms
aproximadamente, siendo el centro la posición de 0º y los extremos +90º y -90º.

Figura 38 - Ciclo de trabajo servo

Los servos tienen tres pines de conexión, dos para alimentación que se conectan al regulador
independiente para ellos y otro de control que se conecta a una de las salidas PWM del sistema
embebido.

Figura 39 - Detalle conexión servomotores

4.2.4 Periféricos

El resto de los periféricos del sistema van igualmente conectados al módulo de alimentación
independiente incorporado para ellos y los pines de E/S están conectados a los pines
correspondientes del sistema embebido en función de las necesidades.

Como se detalla en apartado anteriores se han utilizado diferentes dispositivos para cubrir las
necesidades del proyecto, todos ellos se han incorporado como módulos independientes, lo que
facilita su sustitución en caso de avería o mal funcionamiento.

38
El consumo máximo de estos no supera el margen ofrecido por el regulador por lo que funcionan
de forma estable, todos los detalles técnicos sobre ellos se pueden encontrar en los anexos a
este documento.

Figura 40 - Detalle conexión periféricos

4.2.5 Control.

El control del sistema está basado en dos componentes, el sistema embebido MSP432 y el
módulo de conexión inalámbrica CC3100 ambos de Texas instruments.

Figura 41 - Detalle conexión MSP432 y CC3100

39
Respecto al MSP432 se trata de un sistema basado en un microcontrolador ARM con
arquitectura de 32 bits, una velocidad de reloj de 48 MHz, y una memoria de 256KB. La versión
utilizada es el modelo Launchpad, que incorpora un emulador que permite su programación y
depuración sin necesidad de incluir hardware adicional.

El módulo CC3100 está totalmente dedicado a la conexión inalámbrica, incluye un procesador y


módulos de memoria que le permiten gestionar completamente el servicio, liberando así al
procesador principal de todas estas tareas, su conexión se realiza directamente sobre la placa
Launchpad mediante el conector de 40 pines incorporado en ambas.

4.3 Módulos de software sistema embebido

El presente apartado pretende desglosar desde un punto de vista funcional los distintos módulos
de software que se han implementado en la solución así como la estrategia de diseño seguida.

4.3.1 Estrategia modular en tiempo real

Como uno de los requisitos del proyecto tenemos el diseño de una solución de software que
corra en tiempo real. Para este propósito existen varias soluciones a nivel de software facilitadas
por varios desarrolladores.

La solución se centra en disponer de un software de gestión, independiente del proyecto a


desarrollar, que en base a una parametrización de prioridades permita ejecutar distintos módulos
de software, esto libera al desarrollador de preocuparse de las tareas de gestión.

El sistema por sí mismo realiza una división del tiempo asignado a cada tarea y hace los cambios
de contexto necesarios en caso de tener que interrumpir una tarea a mitad de proceso por una
solicitud de prioridad superior.

Figura 42 - Gestión de tareas RTOS19

19 https://www.freertos.org/RTOS-task-states.html

40
Con todas estas premisas se desarrolla el proyecto dividiendo el software en tareas
independientes, cada una relacionada con un ámbito concreto del dispositivo y con un sistema
de comunicación entre ellas mediante eventos.

Figura 43 - Diseño modular software embebido

En los siguientes puntos se desglosa desde un punto de vista teórico la funcionalidad que debe
cumplir cada módulo y que recursos gestiona.

4.3.2 Modulo control

El módulo de control es el módulo principal del sistema, su función es la de gestionar la


inicialización de sistema y las acciones que deben ser ejecutadas en función de las órdenes
recibidas a través de módulo de comunicaciones.

41
Todo el sistema de control está enfocado en dos estrategias concretas, un sistema de disparo
de tareas en función de eventos y una cola de mensajes.

La gestión de eventos está basada en la biblioteca de terceros “Event.h20”, después de inicializar


las variables de evento necesarias se utilizan principalmente dos métodos.

-Evento.waitfor(): Este método bloquea la tarea por tiempo indefinido en este punto esperando
recibir el número de evento fijado, el módulo permanecerá en escucha en los tiempos de
ejecución determinados por el RTOS.

-Evento.send(): Este método envía a la variable el número de evento fijado.

La variable que se pasa al método es un numero codificado en binario, por lo que pueden
gestionarse 32 estados diferentes o la combinación de estos.

La gestión de cola de mensajes está basada en la biblioteca de terceros “Mailbox.h 21”, una vez
inicializada la cola con el número de elementos necesarios se utilizan los siguientes métodos
para su gestión.

-Cola.available(): Evalúa si existe algún elemento en la cola de mensajes.

-Cola.waitfor(): Mantiene la tarea en espera mientras recibe el mensaje.

-Cola.post(): Este método se utiliza en el módulo de comunicaciones para colocar un elemento


en la cola de mensajes.

El módulo se divide en dos bloques, el primero de inicialización y el segundo de gestión.

Figura 44 - Diagrama de flujo modulo control

20 https://embeddedcomputing.weebly.com/exploring-rtos-with-galaxia.html
21 https://embeddedcomputing.weebly.com/exploring-rtos-with-galaxia.html

42
El primer bloque se encarga de inicializar el dispositivo en una secuencia lógica para evitar
tiempo de proceso y gasto de energía innecesario, todos los módulos permanecen a la espera
del evento de arranque hasta que el módulo de comunicaciones esta correctamente conectado
a la red, una vez disponible la conexión se arrancan el resto de los eventos y se ejecutan según
la planificación.

El bloque de gestión permanece a la espera de mensajes en la cola, una vez recibido evalúa su
valor y lanza eventos al resto de módulos para que ejecuten las acciones necesarias.

También están definidos al final del módulo las rutinas de ejecución continua perteneciente a los
módulos automático, reacción a movimiento y reacción a iluminación, una vez recibido el mensaje
de lanzamiento de la acción permanecen en ejecución hasta que un nuevo mensaje cambia el
tipo de funcionamiento.

4.3.3 Modulo comunicaciones

El módulo de comunicaciones se encarga de configurar el CC3100 como servidor web, toda la


gestión se lleva a cabo en el propio hardware, comunicándose con el MSP432 mediante el uso
de la biblioteca “SPI.h”, desde el módulo de software se ejecutan distintos métodos
pertenecientes a la biblioteca “Wifi.h22” para gestionar la conexión y crear el servidor web, como
son:

-WiFi.begin(ssid, password): Negocia la conexión con el router que radia el SSID dado.

-server.begin(): Inicializa el servidor web declarado al principio del modulo

-server.available(): Evalúa la existencia de una conexión de un cliente y desencadena los


procedimientos necesarios para la recepción del mensaje HTTP.

Figura 45 - Diagrama flujo modulo comunicaciones

22 https://energia.nu/guide/#_core_functions

43
Una vez recibido el mensaje se realiza una lectura del contenido para encontrar el patrón de
comunicación definido donde se encuentra codificada la acción a realizar, "GET /RX", siendo X
una serie de valores definidos.

Una vez capturado este valor se coloca en la cola de mensajes para que el módulo de control
pueda actuar en consecuencia.

Además de esto en cada llamada del cliente se incluye como contenido de la cabecera de
respuesta HTTP los valores de los sensores del dispositivo para que puedan ser utilizados por
el cliente a su conveniencia.

4.3.4 Modulo movimientos

El módulo movimiento se encarga de la gestión de los servomotores para ejecutar los


movimientos necesarios en función de las órdenes recibidas, para esta gestión hace uso de los
métodos disponibles en la biblioteca “servo.h23”, como son:

-servo.attach(Puerto): El método asocia el servo con un pin digital seleccionado en la placa.

-servo.write(grados): Se encarga de mandar la orden de movimiento para el servo recibiendo


como parámetro de entrada la posición en grados.

El uso de esta biblioteca y el método write permite al desarrollador abstraerse de la configuración


del pulso PWM y la definición del ciclo de trabajo necesario para el hardware, que es gestionado
por el método directamente, por ejemplo para colocar el servo en la posición relativa de 0º es
necesario enviar al servo una señal de control de 20ms creada mediante el uso de timers con un
ciclo de trabajo de 1ms, funcionalidad que queda cubierta dentro del método usado.

Figura 46 - Diagrama flujo modulo movimiento

23 https://energia.nu/guide/#_core_functions

44
Una vez configurados todos los servos necesarios se procede a definir las listas de movimientos
necesarios para completar las acciones, y estas se ejecutan mediante la utilización de dos
rutinas.

-MoverCompleto_Lista(): Recibe como parámetro de entrada una lista de movimientos definida


y la repite n veces, para la ejecución física del movimiento utiliza el siguiente método.

-MoverCompleto(): Recibe un array de 12 elementos y a través del método servo.write genera


las señales de control necesarias para que el servo ejecute el movimiento hasta la posición
deseada.

4.3.5 Modulo temperatura

El módulo temperatura se encarga de gestionar el hardware DHT11, que está conectado a una
entrada analógica, una vez configurado e inicializado ejecuta la lectura de los parámetros del
dispositivo siguiendo los tiempos de proceso dados por el fabricante

Figura 47 - Ciclo de lectura DTH1124

El módulo solicita lectura de datos mediante la transmisión de una señal definida y el hardware
responde mediante una secuencia de 40 bits transmitida de forma secuencial siguiendo el
protocolo de comunicaciones, estos 40 bit contienen los valores de temperatura y humedad así
como un bit de control para comprobar que la lectura ha sido correcta.

Figura 48 - Diagrama flujo modulo temperatura

24 https://www.mouser.com/datasheet/2/758/DHT11-Technical-Data-Sheet-Translated-Version-1143054.pdf

45
El método de comunicaciones se ejecuta mediante una comunicación serie de dos vías, por lo
que es necesario ir alternado la función del pin conectado entre entrada y salida.

Para realizar las distintas fases se utilizan los siguientes métodos.

-pinMode(Pin, INPUT); Configura el pin seleccionado como entrada o salida

-digitalWrite(Pin,estado): Coloca el pin seleccionado en estado alto, 3,3v o bajo 0v

-pulseIn(Pin,HIGH): Calcula la duración de una señal entrante entre cambios de estado.

4.3.6 Modulo distancia

El módulo distancia se encarga de gestionar el hardware HC-SR04C, que dispone de un emisor


y un receptor de ultrasonidos, está conectado a una entrada y una salida analógicas, una vez
configurado e inicializado ejecuta el envío de una señal y realiza la lectura del tiempo que tarda
en retornar después de rebotar.

Se envía un pulso de longitud conocida por el pin Trigger y se mide el tiempo que tarda en
recibirlo en pin echo, almacenando el resultado en variable global cm, El tiempo recibido se
convierte en distancia teniendo en cuenta la velocidad del sonido y que la onda recorre el camino
de ida y vuelta.

Figura 49 - Diagrama flujo modulo distancia

Para realizar las distintas fases se utilizan los siguientes métodos.

-pinMode(Pin, INPUT); Configura el pin seleccionado como entrada o salida

-digitalWrite(Pin,estado): Coloca el pin seleccionado en estado alto, 3,3v o bajo 0v

-pulseIn(Pin,HIGH): Calcula la duración de una señal entrante entre cambios de estado.

46
4.3.7 Modulo iluminación

El módulo iluminación se encarga de gestionar el hardware KY-018, que dispone de una


resistencia variable en función de la iluminación, variando con esto la caída de tensión entre sus
externos, y está conectado a una entrada analógica.

El valor recibido, al realizar la lectura analógica del pin, es interpretado usando el conversor
analógico-digital, se obtiene un valor con una resolución de 10 bits, que va desde 0 - iluminación
total a 1023 - ausencia de iluminación.

Si se determina que la iluminación no es suficiente se enciende un led de apoyo.

Figura 50 - Diagrama flujo modulo iluminación

Para realizar las distintas fases se utilizan los siguientes métodos.

-analogRead(): Realiza la lectura analógica del pin seleccionado como entrada.

-digitalWrite(Pin,estado): Coloca el pin seleccionado en estado alto, 3,3v o bajo 0v

4.3.8 Modulo pantalla

El módulo pantalla se encarga de gestionar el hardware LCD1602, que se basa en una pantalla
LCD de 16 caracteres por 2 columnas con un sistema de control mediante protocolo I2C, para
esta gestión hace uso de los métodos disponibles en la biblioteca “LiquidCrystal_I2C.h 25”, como
son:

-LiquidCrystal_I2C lcd(address, columns, rows): Crea un objeto con la dirección I2C seleccionada
y un número determinado de filas y columnas

25 //wiki.dfrobot.com/I2C_TWI_LCD1602_Module__SKU__TOY0046_

47
-lcd.setCursor(0,0): Coloca el puntero en una posición concreta de la matriz

-lcd.print(): Representa en pantalla el texto indicado

El uso de esta biblioteca y los métodos permiten al desarrollador obviar de la configuración del
dispositivo y la comunicación I2C, para centrar los esfuerzos en el uso del dispositivo para la
representación de información.

En función de los eventos recibidos desde el módulo de control se ejecutan distintas secuencias
de representación de información en pantalla.

Figura 51 - Diagrama flujo modulo pantalla

4.3.9 Modulo sonido

El módulo sonido se encarga de gestionar el altavoz pasivo, que donde se representan distintas
formas de onda con frecuencia y duración definidas mediante el uso del método tone(), al igual
que los módulos anteriores ejecuta distintas secuencias de sonidos en función del evento que le
llega desde el módulo de control.

Figura 52 - Diagrama flujo modulo sonido

48
4.4 Módulos de software aplicación Android
El presente apartado realiza una explicación a nivel funcional de los distintos elementos que
forman el módulo de software diseñado en la plataforma Appinventor y que se utiliza como control
inalámbrico del dispositivo.

4.4.1 Interfaz gráfica.

Haciendo uso del diseño por bloques ofrecido por Appinventor se realiza un diseño de pantalla
acorde con las necesidades.

El sistema de diseño es bastante amigable y solo es necesario arrastrar los elementos necesarios
para después modificar las propiedades para que se adapten al diseño buscado, en este punto
también es posible añadir elementos no visibles como sonidos y temporizadores que ejecutaran
tareas cuando sea requerido.

4.4.2 Modulo envío órdenes.

Una segunda parte de la aplicación es el módulo de diseño, donde se programan acciones a


ejecutar cuando se realiza la pulsación de algún elemento.

Para cada uno de los botones de función se programa una tarea que se dispara con cada
pulsación, al igual que en ejemplos anteriores, Appinventor nos abstrae de todo tipo de
configuración y solamente es necesario indicarle que acciones se quieren ejecutar.

En la siguiente figura se puede ver el ejemplo de una de las funciones, donde se indica que al
hacer clic en el botón se haga una llamada a la URL capturada de la pantalla añadiendo al final
la codificación necesaria para el proyecto en curso.

49
Figura 53 - Función envío orden software app

Internamente el software genera todas las acciones necesarias para realizar una conexión al
servidor web y enviar el mensaje HTTP en las condiciones adecuadas.

4.4.3 Modulo recepción información.

La estrategia de funcionamiento para la recepción de información desde el servidor web se


configura de una manera muy similar, pero en esta ocasión se realiza una petición periódica de
información programando una tarea mediante un timer.

Figura 54 - Función recepción información software app

Una vez recibido el mensaje de respuesta HTTP se extrae la información enviada con los valores
de los sensores que se encuentran en posiciones fijas del mensaje.

50
5. Viabilidad técnica

Una vez realizado el análisis detallado de la propuesta el proyecto se estima como viable en
plazo y presupuesto.

Todos los componentes de hardware necesarios para el desarrollo se encuentran disponibles y


con fácil acceso para todo el público.

Para el desarrollo de software, del sistema embebido y la aplicación Android, es posible contar
con suficiente documentación y herramientas informáticas para su realización.

En cuanto a la estructura física se ha partido de un prototipo construido previamente por otros


desarrolladores y se han realizado los test de funcionamiento necesarios para comprobar la
viabilidad y que fenómenos físicos intervienen en el movimiento, después del análisis se han
podido tomar medidas de diseño correctivas para acometer el desarrollo del proyecto.

Como puntos fuertes podemos destacar la sencillez de implementación de nuevas


funcionalidades por el esquema modular del software, así como la rápida reparación en caso de
fallo de alguno de los componentes.

El proyecto también cuenta con puntos débiles como son la durabilidad y características técnicas,
especialmente de los servomotores, que debido a su precio no tienen calidad suficiente para
asegurar un periodo de funcionamiento suficiente para su comercialización, así como la precisión
de los sensores incorporados.

En caso de querer abordar una fabricación a gran escala será necesario un replanteamiento de
la estructura física y los elementos móviles que cumplan con los estándares de calidad y
normativas existentes.

51
6. Valoración económica

Una vez finalizada la propuesta técnica del proyecto se realiza un análisis financiero de la
solución para conocer el coste de producción por unidad y plantear un posible escenario de
comercialización en la que se tengan en cuenta todos los aspectos necesarios para su
homologación, fabricación, distribución y servicio post-venta.

6.1 Coste fabricación prototipo.

Se incluye una relación de todos los costes relacionados con la fabricación del prototipo al que
se refiere el proyecto actual, para el coste de mano de obra se toma el salario medio de un
ingeniero establecido en 50000€ brutos/año y una jornada anual de 1920 horas, por lo que el
precio hora queda determinado como 26€ brutos/hora.

Nombre Tipo Cantidad Precio/unidad Precio


MSP432P410R Launchpad Hardware 1 20,58€ 20,58€
CC3100 Boosterpack Hardware 1 20,58€ 20,58€
Servomotor SG9 Hardware 12 0,93€ 11,22€
Regulador tensión 3,3V Hardware 1 0,30€ 0,30€
Regulador tensión 5V Hardware 1 0,30€ 0,30€
UBEC Henge 8A Hardware 1 6,86€ 6,86€
Sensor volumétrico HC-SR04 Hardware 1 0,66€ 0,66€
Sensor temperatura DHT-11 Hardware 1 0,66€ 0,66€
Sensor iluminación KY-018 Hardware 1 0,98€ 0,98€
Altavoz pasivo Hardware 1 1,3€ 1,3€
Pantalla LCD1602 Hardware 1 0,62€ 0,62€
Batería LIPO 650 mA Hardware 1 7,8€ 7,8€
Plástico PLA para impresora 3D Hardware 200gr 2€ 2€
Tornillería Hardware 12 2€ 2€
Cableado conexión Hardware Varios 2€ 2€
Subtotal Hardware 77,86€

Desarrollo software embebido Software 247 26€ 6422€


Desarrollo software Android Software 18 26€ 468€
Documentación Software 154 26€ 4004€
Subtotal desarrollo prototipo 10894€
Coste total 10971,86€
Tabla 5 - Costes de producción prototipo

6.2 Escenario de producción en masa y comercialización.


En el punto anterior sobre la viabilidad técnica se expresaba la opinión de que el prototipo no es
una versión viable para su puesta en el mercado, por lo que será necesario abordar una serie de
gastos adicionales para plantear una versión funcional que cumpla con los requisitos técnicos
necesarios.

52
En la siguiente tabla se estima una serie de conceptos necesarios para implementación definitiva
y homologación.

Nombre Tipo Cantidad Precio/unidad


Coste prototipo final con mejoras 1 90€
Desarrollos de software actuales 1 10971.86€
Desarrollo de software adicionales 1 3000€
Homologación CE 1 4000€
Subtotal producto 1 18061,86€
Tabla 6 - Costes de producción prototipo homologado

Planificar un escenario de comercialización teniendo en cuenta la creación de una entidad


jurídica, canales de distribución, aprovechar economías de escala y servicio post-venta
obligatorio es una tarea delicada y compleja en la que es necesario tener en cuenta muchos
aspectos que escapan del alcance del presente proyecto, por lo que se realiza una simplificación
al mínimo de los conceptos a tener en cuenta y se establecen ciertas hipótesis sobre escalas de
costes, por lo que una posible proyección del negocio seria:

Tabla 7 - Plan de negocio comercializacion prototipo

En vista de los resultados obtenidos se estima que el negocio puede ser rentable a partir de una
producción y comercialización de 2000 unidades.

Debido a las características del producto y los rápidos avances tecnológicos se realiza una
proyección con un horizonte de vida del prototipo de un año, por lo que se estima que será
necesario crear nuevas versiones frecuentemente y los costes de desarrollo se mantendrán en
el tiempo.

53
7.Conclusiones

El proyecto se ha finalizado en tiempo y forma en unos márgenes razonables dentro de la


planificación, se han abordado retos interesantes y se han completado con éxito, para su
finalización ha sido necesario abordar algunos cambios de planificación y alcance, pero el
resultado final ha cumplido las expectativas personales planteadas en cuanto a usabilidad y
funcionalidad.

7.1 Lecciones aprendidas

En general la calidad del producto es bastante buena, pero para un desarrollo a gran escala y
poder explotar todas las posibilidades será necesario incorporar cambios de diseño en cuanto al
hardware, con servomotores que soporten mayor peso y sensores con mayor sensibilidad, y de
diseño para hacerlo comercialmente atractivo.

El prototipo es funcional y probablemente tenga cierta aceptación en el mercado, pero para que
sea realmente atractivo es necesario incorporar otro tipo de características que hagan que los
potenciales clientes lo elijan, como superación de obstáculos, vista en primera persona o control
gestual.

7.2 Autoevaluación.

Se incluye una lista de los objetivos planteados, los cuales se han cumplido completamente.

- Construcción de robot cuadrúpedo basado en sistema embebido


- Creación de distintos modos de funcionamiento tanto manuales como automáticos.
- Integración del control en un entorno de dispositivo móvil

En la siguiente tabla se muestra la dedicación a cada una de las fases del proyecto.

PAC0 Propuesta PEC1 PEC2 PEC3 Entrega Memoria Presentación Total


Final
Plan 25 24 11 108 94 54 50 14 380
Real 25 24 11 137 124 24 60 14 419
Tabla 8 - Dedicación fases del proyecto

En cuanto a la planificación temporal se han tomado todas las medidas correctoras necesarias
para mantener la viabilidad del proyecto al enfrentarse a situaciones más o menos esperadas en
cuanto a fallos de diseño, incompatibilidades de software, o previsión de disponibilidad de

54
recursos reducida durante la última fase, aun así se ha producido una desviación del 10% sobre
el tiempo planificado, pero dentro de los márgenes previstos en la planificación de riesgos.

Ha sido necesario realizar varios cambios de alcance por incompatibilidades de hardware o falta
de disponibilidad, pero se han podido resolver adecuadamente utilizando soluciones alternativas
que encajan con la finalidad del prototipo.

También ha sido necesario replantear la solución de software planteada de inicio al no ser


funcional con la plataforma de hardware recibida, además de introducir las recomendaciones en
cuanto a la estructura del código realizadas por el consultor.

7.3 Líneas de trabajo futuras

Como se ha comentado antes la idea es claramente mejorable para que tenga un impacto
relevante en los posibles clientes.

Dentro de las tendencias actuales de la tecnología y el estado del arte se antoja muy conveniente
continuar el desarrollo explorando las siguientes líneas de trabajo.

- Movimiento por superficies irregulares incorporando servomotores con feedback de posición.

- Ampliación de rango de acción y uso en exteriores.

- Vista en primera persona con uso de gafas FPV

- Control de movimiento mediante gestos con un control acoplado en las manos, u otro tipo de
dispositivos que sean capaces de interpretar señales corporales.

- Modos automáticos colaborativos entre varias unidades.

55
8. Glosario

Definición de los términos y acrónimos más relevantes utilizados dentro del documento.

IoT: Internet of things


3D: Espacio físico tridimensional
MSP432401R: Sistema embebido desarrollado por Texas Instruments.
CC3100: Expansión conectividad inalámbrica desarrollado por Texas Instruments
RTOS: Sistema operativo en tiempo real.
CCS: Code Composer Studio, plataforma de desarrollo de software
SCRUM: Metodología de desarrollo de software flexible
OLED: Pantalla de visualización basada en diodo orgánico de emisión de luz
LCD: Pantalla de visualización basada en cristal liquido
ARM: Arquitectura de construcción para microprocesadores
PWM: Modulación por ancho de pulsos
LIPO: Batería recargable de polímero de litio
UBEC: Regulador de voltaje para baterías.
I2C: Protocolo de comunicaciones por bus serie
HTTP: Protocolo de comunicaciones a través de la red, sigue esquema petición-respuesta.
MQTT: Protocolo de comunicaciones a través de mensajes orientado a pequeños dispositivos.
ITU: Unión internacional de telecomunicaciones
IETF: Grupo de trabajo de ingeniería de internet

56
9. Bibliografía

[1] Web: Entorno de desarrollo software, http://www.ti.com/tool/CCSTUDIO , Marzo 2020


[2] Web: Entorno de desarrollo software, https://energia.nu/ , Marzo 2020
[3] Web: Entorno de desarrollo aplicaciones Android, https://appinventor.mit.edu/ , Marzo 2020
[4] Web: Entorno desarrollo circuitos esquemáticos, https://easyeda.com/ , Marzo 2020
[5] Web: Entorno desarrollo diseños 3D, https://www.tinkercad.com/ , Marzo 2020
[6] Web: Entorno desarrollo impresión 3D, https://ultimaker.com/es/software/ultimaker-cura ,
Marzo 2020.
[7] Web: Entorno edición de video, https://www.apple.com/es/imovie/ , Mayo 2020
[8] Web: Hoja de características Embebido, https://www.ti.com/product/MSP432P401R, Marzo
2020.
[9] Web: Hoja de características expansión inalámbrica, http://www.ti.com/product/CC3100 ,
Marzo 2020.
[10] Web: Pagina web asignatura,
http://cv.uoc.edu/webapps/xwiki/wiki/matembeddedsystemslabhome/view/Main/WebHome ,
Marzo 2020

[11] Libro: Kernighan, Ritchie, El lenguaje de programación C, Segunda edición, Editorial


Pearson Education, México 1991

57
10. Anexos

10.1 Datos técnicos Servomotor SG9026

26
http://www.ee.ic.ac.uk/pcheung/teaching/DE1_EE/stores/sg90_datasheet.pdf

58
10.2 Datos técnicos AMS111727

27 http://www.advanced-monolithic.com/pdf/ds1117.pdf

59
10.3 Datos técnicos UBEC 8A28

28
http://www.henge-rc.com/UploadFiles/201751721654.pdf

60
10.4 Datos técnicos Sensor HC-SR0429

29 https://www.electroschematics.com/wp-content/uploads/2013/07/HCSR04-datasheet-version-1.pdf

61
10.5 Datos técnicos DHT1130

30
https://www.mouser.com/datasheet/2/758/DHT11-Technical-Data-Sheet-Translated-Version-1143054.pdf

62
10.6 Datos técnicos KY01831

31 http://www.electronicapty.com/modulo-fotoresistor-ky-018-para-arduino-detail?tmpl=component&format=pdf

63
10.7 Datos técnicos LCD160232

32 https://www.openhacks.com/uploadsproductos/eone-1602a1.pdf

64
10.8 Esquema eléctrico

65
10.9 Modulo software Android

66

También podría gustarte