Minivoltios fase3

19
DESAFIOSTEM E-HEALTH FASE 3 MINIVOLTIOS ROBÓTICA AL SERVICIO DE LAS PERSONAS

Transcript of Minivoltios fase3

Page 1: Minivoltios fase3

DESAFIOSTEM E-HEALTH

FASE 3

MINIVOLTIOS

ROBÓTICA AL SERVICIO DE LAS PERSONAS

Page 2: Minivoltios fase3

pág. 2

ÍNDICE

1. Objetivos

2. Organización del equipo y

distribución de tareas

3. Alternativas de construcción

4. Placa de control y entorno de

programación

5. Programación en Arduino

6. Circuitos

7. Programación en AppInventor

8. Definición final del proyecto

Page 3: Minivoltios fase3

pág. 3

1. Objetivos

Programar un brazo robótico que permita beber a una persona con

discapacidad motora aprehensora. Tanto el robot, como la bebida tendrán una

posición fija sobre la mesa de trabajo y el recorrido del brazo estará

determinado, por tanto, se deberá realizar un ajuste por aprendizaje de los

movimientos del robot. El entorno del usuario será un dispositivo Android, móvil

o Tablet, que le permita solicitar la acción deseada. Asimismo, dispondrá de una

aplicación para el cuidador con las mismas opciones. En cualquier caso, la puesta

en marcha del sistema necesitará un paso previo de conexión vía bluetooh.

Posteriores ampliaciones permitirán añadir al proyecto diferentes sensores que

facilitarán la automatización.

1. Sensor de proximidad (ultrasonidos): que nos permita localizar el

recipiente de la bebida.

2. Acelerómetro: que impedirá que el recipiente se incline derramando la

bebida.

3. Sensor de presión: para impedir que deformemos el recipiente.

Page 4: Minivoltios fase3

pág. 4

2. Organización del equipo y distribución de tareas

La complejidad del trabajo a realizar demanda que organicemos el trabajo en

subgrupos, de forma que todos avancemos de forma paralela y confluyamos al final en

la unión del proyecto. Hemos considerado que necesitaremos 3 equipos: montaje del

brazo robot, programación de Arduino y programación de AppInventor. Las tareas

encomendadas a cada uno, se detallan a continuación.

Page 5: Minivoltios fase3

pág. 5

3.Alternativas de construcción

Hemos trabajado con dos opciones y utilizaremos uno de los brazos de robot de

los que disponemos en el aula, están accionados por pequeños motores de continua con

un par motor reducido

.

Nos hemos decidido por el robot ARM MR 999E con 5 grados de libertad, por ser

más robusto y permitirnos utilizar mayor espacio de trabajo y envases de bebida de

dimensiones más acordes con la realidad.

Page 6: Minivoltios fase3

pág. 6

Diseño y construcción de la mesa de trabajo

Otra de las tareas a realizar es el diseño y adecuación de la mesa de trabajo, debe

estar adaptada a las necesidades del usuario y permitir el uso del brazo robótico de

forma sencilla. En nuestra visita al centro de Educación especial, observamos que la

forma de los tableros de las mesas adaptadas permitía acercarse a los elementos que se

encontraban sobre la mesa. Tomamos esta idea y nuestro prototipo tendrá las

siguientes medidas:

Las especificaciones del proyecto nos

indican que el robot debe mantenerse fijo en

posición inicial o de reposo, así deberemos

realizar el montaje del brazo sobre la mesa de

trabajo según indica la figura:

Page 7: Minivoltios fase3

pág. 7

En la realidad el montaje queda de la siguiente forma:

La colocación del robot sobre el tablero de trabajo nos permitirá, realizar las

conexiones adecuadas, estudiar la posibilidad de colocar sensores y realizar las prácticas

de aprendizaje del robot.

Page 8: Minivoltios fase3

pág. 8

4.Placa de control y entorno de programación

Hemos valorado diferentes opciones:

Nuestra primera opción será S4A, pero la limitación en cuanto a salidas, será un

factor importante a tener en cuenta en la elección. Deberemos valorar utilizar el IDE de

Arduino. Asimismo, es importante controlar el número de salidas digitales necesarias

para el control del proyecto.

Al utilizar un robot con 5 motores es insuficiente el número de salidas digitales

disponibles en un Arduino Uno, si además queremos controlar la velocidad de los

motores utilizamos además una salida adicional PWM, tenemos dos opciones utilizar

otra Arduino Uno o bien cambiar a Arduino Mega, nos hemos decidido por Arduino

Mega.

Placa Arduino Uno,

programación S4A

Placa Arduino Uno, entorno

IDE

Placa Arduino Mega

Page 9: Minivoltios fase3

pág. 9

Otro factor a tener en cuenta es la

alimentación de los motores, utilizaremos

directamente un L293D y nos permitirá manejar de

forma adecuada las potencias necesarias para el

funcionamiento de los motores, controlar el sentido

de giro de dos motores por cada integrado, controlar

la velocidad por medio de las patillas 1 y 9 conectadas

a una salida digital PWM (en la que se escribe un valor

analógico) y alimentar los motores con una fuente

externa en la patilla 8 si es necesario. El control del sentido de giro lo determinan los

valores conectados a las patillas 2-7 y 10-15 según la siguiente tabla:

Aunque existe la posibilidad de utilizar una shield para el control de motores,

creemos más conveniente entender y utilizar directamente el driver.

Page 10: Minivoltios fase3

pág. 10

5.Programación en Arduino. Método de aprendizaje

El proceso de programación con Arduino comienza desde cero, nunca

hemos trabajado con Arduino así que comenzamos por el principio, el proceso que

hemos utilizado ha sido el siguiente:

La complejidad de los programas ha ido en aumento, por tanto, organizaremos

las instrucciones en funciones que nos permitan, programas fáciles de leer e interpretar.

Comentaremos cada función del programa y lo diseñaremos de forma que facilite su

interpretación.

•Programación LED placa

•Puesta en marcha motor

PROGRAMACIÓN BÁSICA

•Control movimiento

•Control velocidad

PRUEBA MOTORES

•Secuencia de servicio

•Secuencia de posición inicial

PROGRAMACIÓN FUNCIONES

Page 11: Minivoltios fase3

pág. 11

Valoramos como muy importante definir correctamente los pines de utilización

de los diferentes motores:

#define E1 5 // control de velocidad base morado

#define baseA 30 // control pin A para motor base blanco

#define baseB 31 // control pin B para motor base blanco

#define E2 8 // control de velocidad hombro morado

#define hombroA 40 // control pin A para motor hombro naranja

#define hombroB 41 // control pin B para motor hombro naranja

#define E3 6 // control de velocidad codo morado

#define codoA 22 // control pin A para motor codo negro

#define codoB 23 // control pin B para motor codo negro

#define E4 7 // control de velocidad munyeca morado

#define munyecaA 52 // control pin A para motor munyeca marrón

#define munyecaB 53 // control pin B para motor munyeca marrón

#define E5 11 // control de velocidad pinza morado

#define pinzaA 44 // control pin A para motor pinza gris

#define pinzaB 45 // control pin B para motor pinza gris

También tendremos bien definidos

los colores de los cables de conexión y lo

indicamos en los comentarios de la

definición para evitar errores.

Page 12: Minivoltios fase3

pág. 12

Definiremos funciones para cada motor Mover_elemento y le indicaremos el

sentido de giro, la velocidad y el tiempo. De esta forma la secuencia de funcionamiento

quedará mucho más clara, porque tendremos instrucciones del tipo mover_base

(1,255,1000). La definición de una de estas funciones será del tipo:

void moverBase (int d, int v,int t) // d=direccion, v=velocidad, t=tiempo,

2=cambio de dirección

{

digitalWrite(E1, HIGH); // Activamos Motor1

analogWrite(E1, v);

if (d==1) // 1=ir a la derecha

{

digitalWrite(baseA, HIGH); // Arrancamos

digitalWrite(baseB, LOW);

delay(t);

}

Else // movimiento hacia la izquierda

{

digitalWrite(baseB, HIGH); // Arrancamos

digitalWrite(baseA, LOW);

delay(t);

}

digitalWrite(baseA, HIGH); //paramos motor

digitalWrite(baseB, HIGH);

}

Page 13: Minivoltios fase3

pág. 13

A continuación, leeremos la información que a través del bluetooh nos

envía nuestra aplicación, básicamente nos indicará si el usuario o el cuidador desean

realizar operación de bebida o de retirada de la misma.

Dejamos para posibles ampliaciones la colocación de un detector de proximidad

por infrarrojos que nos permita acercarnos con mayor precisión a la posición deseada,

así como la incorporación de un sensor de movimiento que permita accionara la

aplicación por movimiento y dirigido a personas con mayores problemas motores.

Page 14: Minivoltios fase3

pág. 14

6. Circuitos a utilizar

Documentaremos los circuitos realizados

utilizando Fritzing

Comenzamos con la realización y prueba de un circuito sencillo y a continuación

nos planteamos la conexión de nuestro proyecto con 5 motores, cada uno de ellos

deberá tener las siguientes conexiones

Page 15: Minivoltios fase3

pág. 15

Tras este proceso nuestro robot está conectado y listo para realizar las pruebas

de funcionamiento.

A continuación nos planteamos organizar el cableado

para mayor claridad.

Page 16: Minivoltios fase3

pág. 16

7. Programación AppInventor

Nuestro equipo no ha trabajado con aplicaciones para móvil anteriormente, así

que nuestro proceso de aprendizaje comienza con seguir el curso de formación ofrecido

en la plataforma. El proceso de programación será el siguiente:

Instalación y programas prueba

Programación de Botones, Etiquetas..., Diseño y Bloques

Programación de pantallas

Conexión a Bluetooh

Pruebas con Arduino

Problemas de Bluetooh entre pantalllas

Rediseño mediante tablas

Pruebas de funcionamiento

Page 17: Minivoltios fase3

pág. 17

En primer lugar, debemos aprender cómo funciona App Inventor, para ello

utilizaremos los Tutoriales, proporcionados por la plataforma Stembyme.

Son tutoriales muy claros y nos permitirán tener una primera aproximación a

nuestro programa.

Debemos ver si somos capaces de

programar nuestra propia aplicación con

diferentes botones, etiquetas. La pantalla de

interface con el usuario debe tener iconos de

identificación claros.

Page 18: Minivoltios fase3

pág. 18

A continuación, descargamos la aplicación en el

móvil

y probamos nuestro bluetooh con una placa de Arduino

Al realizar esta operación aparecen algunos problemas de

conexión al realizar cambio de página. Debemos replantear la

programación y optamos por organizar nuestra pantalla mediante

tablas que vamos a visibilizar en el momento adecuado. Así

conseguimos evitar el error.

Page 19: Minivoltios fase3

pág. 19

8. DEFINICIÓN FINAL DEL PROYECTO

Tras el análisis de nuestro proyecto, queda definido según las siguientes

especificaciones:

Accionamiento de un brazo de robot de 5 grados de libertad a partir de la

programación de una placa Arduino Mega

Control del sistema vía bluetooth

Realización de una aplicación con AppInventor con dos modos de

funcionamiento Cuidador y Usuario.

Posibilidad de ampliación del proyecto mediante sensores de movimiento y

ultrasonidos

Prueba y ajuste del prototipo