Sanchez Jose Dispensador Automatico Pastillas
Sanchez Jose Dispensador Automatico Pastillas
Sanchez Jose Dispensador Automatico Pastillas
2
Índice
1. Presentación de la problemática………………….………….4
3. Sistema mecatrónico………………………………………….10
3.1 Estructura de funciones
del sistema mecatrónico………………………………..10
3.2 Sensores y actuadores………………………………...12
3.3 Planos del sistema mecánico….………………………18
3.4 Diagramas esquemáticos de los circuitos
del sistema mecatrónico……………………………….25
3.5 Diagramas de flujo del programa de control………...32
4. Presupuesto……………………………………………………45
5. Conclusiones…………………………………………………..48
Bibliografía………………………………………………………...49
3
Capítulo 1
Presentación de la problemática
Hoy en día es usual que las personas que sufren enfermedades, en su mayoría de la
tercera edad, posean extensas recetas de medicamentos los cuales se deben de tomar
en distintas dosis y horarios. Un problema recurrente que surge a raíz de esto es el
recordar el momento indicado y las pastillas que deben ser ingeridas. Las consecuencias
del olvido o confusión suelen ser perjudiciales para la salud, ya que dilatan el tiempo de
tratamiento o simplemente este no tiene los efectos esperados.
Esto repercute no solo en las personas enfermas, sino también afecta la economía del
estado. De acuerdo al PHMRA (Pharmaceutical Research and Manufacturers of America)
(2011) en Estados Unidos se generan pérdidas de hasta 100 millones anuales porque los
pacientes no siguen correctamente sus prescripciones médicas por motivos diversos.
4
Capítulo 2
Requerimientos del sistema mecatrónico y
presentación del concepto
2.1 Requerimientos del sistema mecatrónico
Sistema confiable que permita conocer al usuario el nivel del contenido de cada
contenedor y saber cuando sea necesario ingresar más pastillas.
5
2.2 Concepto de la solución
Las figuras 2.1, 2.2, 2.3 y 2.4 muestran la vista frontal, lateral, superior e isométrica
respectivamente del dispensador automático de pastillas, este presenta una cavidad
superior para el ingreso de pastillas y una cavidad de salida en la parte inferior frontal,
además de una pantalla LCD táctil de 7 pulgadas que sirve de interfaz hacia el usuario y
que permite configurar el horario en el que serán recogidas las dosis de pastillas.
La estructura exterior está conformada por 3 partes (tapa frontal, tapa lateral y tapa
posterior) que se juntan por uniones atornilladas y que están hechas de acrílico
(Polimetilmetacrilato [PMMA]).
Fig. 2.1: Vista Frontal. Fuente: Elaboración Propia. Fig. 2.2: Vista Lateral. Fuente: Elaboración Propia.
Fig. 2.3: Vista Superior. Fuente: Elaboración Propia. Fig. 2.4: Vista Isométrica. Fuente: Elaboración
Propia.
6
En la Fig. 2.5 se observan los elementos montados sobre la tapa frontal del dispositivo
desde una vista posterior, en ella se ubica la pantalla LCD (4DCAPE-70T), la cual es una
tarjeta electrónica que se acopla directamente a un BeagleBone Black, controlador usado
por el sistema, a través de uno de los dos sockets que la pantalla posee en la parte
trasera, de modo que el primero posibilita la comunicación entre la LCD y el controlador,
mientras que el segundo, que se muestra libre en la imagen inferior, permite conectar el
BeagleBone Black a los demás elementos electrónicos del dispensador. El piezo buzzer o
zumbador es el dispositivo que permite al sistema emitir el sonido de alarma. El
zumbador al igual que toda la parte posterior de la pantalla LCD y los componentes que
están montados en ella están protegidos por una cubierta de acrílico que posee una
abertura en la parte inferior derecha para la salida de cables de alimentación y control. En
la parte inferior de la tapa frontal se ubica la cavidad de salida de pastillas y en los
costados 3 bisagras y dos agujeros pasantes para uniones atornilladas, de modo que si
se desea acceder al interior del dispositivo, no se necesite desacoplar totalmente esta
parte del resto del cuerpo.
En la Fig. 2.6 se observa una vista interior del dispensador automático de pastillas, este
presenta 7 contenedores que están apilados y distribuidos circularmente, ver Fig. 2.7. Los
contenedores giran alrededor de dos rodamientos a los cuales están acoplados mediante
ejes que pasan a través de los agujeros señalados en la Fig. 2.7 (círculos anaranjados) y
que son sostenidos a su vez por 2 estructuras internas de acrílico montadas a la tapa
lateral por brackets. El giro de los contenedores es controlado mediante un mecanismo
de transmisión de engranajes por un motor a pasos, el cual posiciona el contenedor con
las pastillas requeridas en la parte central inferior. En esta posición, un actuador lineal
hace descender a una ventosa conectada por una manguera a una bomba de vacío que,
al energizarse, produce la succión necesaria para levantar una pastilla. Un solenoide
ayuda a mantener la posición de los contenedores, estos ocupan las 7 octavas partes de
la circunferencia en la que se distribuyen, permitiendo de este modo dejar un espacio
vacío para que la pastilla pueda ser expulsada por la cavidad de salida cuando los
contenedores regresan a su posición inicial. Para expulsar la pastilla se retira el
7
suministro de energía a la bomba de modo que deje de producir succión sobre la pastilla
y esta caiga por gravedad. El ingreso de las pastillas a sus contenedores se da por la
cavidad de entrada, ver Fig. 2.8, la cual posee una compuerta conectada a un servomotor
que limita la cantidad de pastillas ingresantes y restringe el paso de las pastillas hasta
que el contenedor se posicione correctamente en la parte central inferior. Un sensor de
proximidad permitirá saber el nivel de llenado de los contenedores (valor aproximado), lo
cual ayudará al controlador a saber la posición a la cual el vástago del actuador lineal
deberá descender para succionar una pastilla, mientras que un emisor y receptor
infrarrojo comprobará si los contenedores están vacíos emitiendo una luz a través del
agujero que presentan los contenedores en la parte inferior (círculo rojo). Las partes
mencionadas que no son visibles en la Fig. 2.6 serán expuestas con mayor detalle en los
capítulos siguientes debido a la complejidad del sistema.
8
Fig. 2.8: Ingreso de Pastillas. Fuente: Elaboración Propia
9
Capítulo 3
Sistema mecatrónico
3.1 Estructura de funciones del sistema mecatrónico
La Fig. 3.1 muestra la estructura de funciones del sistema mecatrónico, el cual será
explicado a continuación.
Los datos ingresados (recetas) y opciones seleccionadas a través de la pantalla táctil son
almacenados y procesados por el controlador del sistema (BeagleBone Black) que a su
vez muestra en la pantalla LCD las ventanas y opciones que posee. De acuerdo a los
datos ingresados se activará la alarma en el horario establecido por el usuario y
empezará el proceso de dosificación.
10
Previamente es necesario ingresar pastillas a los contenedores. Cuando el usuario
selecciona esta opción a través de la pantalla táctil, debe introducirlas en el conducto de
entrada del sistema mecánico del dispensador, es entonces cuando se desbloquea los
contenedores de modo que pueda posicionarse el contenedor requerido en el lugar
donde recibirá las pastillas, seguidamente se vuelve a bloquear los contenedores para
mantener la posición y se abre la compuerta para que las pastillas caigan desde el
conducto de entrada y se almacenen en el contenedor establecido. Finalmente se cierra
la compuerta de ingreso y el sistema vuelve a su posición inicial.
11
3.2 Sensores y actuadores
3.2.1 Sensores
El sensor infrarrojo es usado para detectar si un contenedor está vacío o no, este
consta de 2 partes un emisor y un detector de luz infrarroja, el valor de voltaje en
la salida varía cuando un objeto se interpone entre los dos. Los componentes del
sensor infrarrojo se muestran en la Fig. 3.3 a), mientras que en la Fig. 3.3 b) se
observa su ubicación (círculo: amarillo (emisor), rojo (detector)), uno frente al otro
en la estructura interior frontal y posterior respectivamente.
12
Fig. 3.3 a) Emisor y detector infrarrojo [15] b) Ubicación. Fuente: Elaboración Propia
3.2.2 Actuadores
3.2.2.1 Servomotor:
13
Fig. 3.4 a) Servomotor [16] b) Ubicación. Fuente: Elaboración Propia
14
El actuador lineal presenta las características descritas en la Tabla 3.4.
3.2.2.3 Solenoide:
Fig. 3.6 a) Solenoide [18] b) Ubicación (Vista Posterior). Fuente: Elaboración Propia
15
3.2.2.4 Motor a Pasos:
Fig. 3.7 a) Motor a Pasos [19] b) Ubicación (Vista Posterior). Fuente: Elaboración Propia
16
Fig. 3.8 a) Bomba de Vacío [20] b) Ubicación (Vista Posterior). Fuente: Elaboración Propia
17
3.3 Planos del sistema mecánico
La Fig. 3.9 muestra la tapa frontal del dispensador automático de pastillas. Como se
observa esta posee 296 mm de alto por 250 mm de ancho. La tapa está hecha en base a
una plancha de acrílico (PMMA) de 5 mm de espesor y posee dos aberturas
rectangulares, la más grande sirve para montar la LCD, de modo que la parte posterior de
la pantalla pueda ser conectada al controlador del sistema y demás elementos
electrónicos, mientras que la otra, que se encuentra en la parte inferior, sirve para que el
usuario tenga acceso a la dosis de pastillas expulsada. En la parte lateral izquierda
presenta 3 cortes rectangulares que sirven para colocar bisagras que la conecten con la
tapa lateral, de modo que para acceder al interior del dispositivo solo sea necesario
extraer los 2 tornillos que son fijados en los agujeros de 5,5 mm de diámetro que se
encuentran cerca al borde derecho.
18
3.3.1.2 Estructura Externa Lateral
La Fig. 3.10 muestra la tapa lateral del dispensador, cuyas dimensiones son 250 mm x
296 mm x 140 mm. La tapa está hecha en base a acrílico, el cual sigue un proceso de
termoformado para que pueda adoptar esa forma; presenta numerosos agujeros que
sirven para montar la estructura interna por medio de uniones atornilladas al igual que
otros componentes. En la parte superior presenta una abertura de 30 mm x 25 mm que
es por donde se da el ingreso de los comprimidos, mientras que como se observa, en la
parte lateral existen 2 rendijas, las cuales permiten la ventilación del convertidor AC/DC lo
cual le permite tener un funcionamiento más eficiente en términos de liberación de la
energía calorífica. El agujero que se encuentra a lado de estas permite el ingreso del
cable de alimentación proveniente del tomacorriente. En la parte inferior de esta
estructura se colocan 4 topes de goma que permiten soportar el peso del dispositivo así
como amortiguar las vibraciones.
La Fig. 3.11 muestra la tapa posterior del dispositivo, esta tiene las mismas dimensiones
que la frontal, salvo que no posee aberturas rectangulares, lo que sí posee son múltiples
19
agujeros, ya que en ella están montados el servomotor, solenoide y actuador linear,
además del conducto de entrada. Los agujeros que se encuentran cercanos al borde
inferior y los costados sirven de unión con la estructura lateral mediante brackets,
mientras los que están distribuidos circularmente son atornillados a la tapa de los
contenedores.
La estructura interna posee múltiples componentes; es por ello que se mostrarán solo los
principales, que son los que conforman la estructura que sostiene a los contenedores,
además de los canales de ingreso y salida. Los soportes y monturas que sirven para
acoplar los actuadores a la estructura externa se presentan en el Anexo 2.
Las Fig. 3.12 a) y b) muestran la estructura interior frontal y posterior respectivamente del
dispensador automático de pastillas. Estas estructuras se acoplan a tapa lateral de forma
paralela, mediante brackets en ambos costados, las 2 poseen un agujero de 156,5 mm
de diámetro, cuya función es la de sostener un rodamiento que está acoplado mediante
ejes a la pila circular de contenedores. Ambas estructuras están hechas de una plancha
de acrílico de 4 mm de espesor y en la parte inferior poseen una pequeña muesca a la
que va acoplado el emisor y detector IR respectivamente, de modo que ambos se
encuentren en un mismo plano horizontal. Adicionalmente la estructura interior posterior
20
posee un agujero de 9,5 mm de diámetro que alberga a un pequeño rodamiento que sirve
de sostén del eje conectado al engranaje intermedio del sistema de transmisión.
21
Fig. 3.13 Rodamiento a) Frontal b) Posterior. Fuente: Elaboración Propia
3.3.2.3 Contenedores
La Fig. 3.14 muestra la geometría del contenedor utilizado por el dispensador para
almacenar pastillas, este posee una capacidad 120 cm3 (100 utilizables), el número de
pastillas en el cual esta capacidad se traduce varía debido a que son de distintas formas
y tamaños y al ser cuerpos sólidos dejan espacios entre sí al ser acumulados; sin
embargo de acuerdo a pruebas caseras se podría estimar un aproximado de 40-50 de un
tamaño promedio. Cada contenedor posee 1 mm de espesor y está hecho en una
impresora 3D.
22
Como se observa en la figura, el contenedor posee 2 agujeros en ambos costados en la
parte superior y uno en la parte central inferior. Los dos primeros sirven para sostener el
contenedor a través de ejes que van conectados a los rodamiento, mientras que el
inferior permite que la luz que produce el emisor infrarrojo pase a través de este y pueda
saberse si hay o no pastillas dentro del contenedor.
23
Fig. 3.16 Conducto de Entrada. Fuente: Elaboración Propia
24
3.4 Diagramas esquemáticos de los circuitos del sistema mecatrónico
La Fig. 3.19 muestra las 2 columnas de “headers” que posee el BeagleBone Black (tarjeta
controladora del sistema), el cual es una plataforma de desarrollo que posee un
procesador de 1 GHz, 512 MB de memoria SDRAM y 4 GB de memoria interna flash,
esto me permite que el sistema sea bastante rápido y no tenga problemas en controlar la
LCD y el proceso de dosificación al mismo tiempo. Además posee 65 pines de entrada
salida (GPIO) (3.3 V) y 7 pines de entrada analógica (1.8 V), requiere una alimentación
directa de 5 V, tal y como se observa. En la figura se muestran los pines usados por los
sensores y actuadores, la conexión entre ambos se mostrará en cada uno de sus
diagramas esquemáticos respectivos. Por otra parte, el LCD se conecta directamente al
BeagleBone Black (BBB), ya que justamente es un “cape” (capa) diseñado
exclusivamente para esta tarjeta, esto y los pines que usa para la comunicación entre
ambos puede observarse en su hoja de datos (Anexo 1).
25
Fig. 3.19 BeagleBone Black [21]
La Fig. 3.20 muestra el diagrama de conexiones del controlador del motor a pasos
(EasyDriver V4.4) basado en el circuito integrado A3967. Los pines M+ y GND son los de
alimentación (12V y GND). Para el control del motor a pasos se usan 3 pines: DIR, STEP
e ENABLE, los cuales están conectados a los pines (P8_4, P8_5 y P8_3) del BBB
(BeagleBone Black) respectivamente, DIR se usa para controlar la dirección de giro del
eje del motor (horario u antihorario) (‘1’ o ‘0’ lógico), STEP es el pin por el cual el BBB
envía al controlador del motor los pulsos que representan el número de pasos (1,8° cada
paso) que el motor debe girar, mientras que ENABLE permite energizar el motor cuando
se establece en ‘0’ el pin P8_3 lo cual produce que el eje del motor mantenga su posición
aun cuando exista carga de por medio cuando está en posición de reposo.
Los cuatro cables del motor a pasos bipolar son conectados a los pines B1, B2, A2 y A1
del controlador.
26
Fig. 3.20 Controlador del Motor a Pasos [22]
27
Fig. 3.21 Controlador del Solenoide y Bomba de Vacío [23]
La Fig. 3.22 muestra la conexión entre el BBB y el actuador lineal. El actuador lineal
posee 6 cables de control y alimentación, debido a que presenta distintas opciones de
control; sin embargo, solo se usarán 4 de ellos. La alimentación del actuador lineal se da
por el pin V+ que está conectado a 12 V mientras que el pin GND se conecta a tierra, el
control de la posición del vástago se da ingresando al pin INPUT una señal PWM (5V)
con un ciclo de trabajo proporcional (100% -> 50 mm(carrera)); no obstante, el BBB me
brinda una señal PWM de 3.3 V es por ello que es necesario que la señal proveniente del
pin (P8_13) del BBB sea convertida (3.3 V->5 V) antes de ingresar al actuador; por otra
parte, el actuador lineal posee una señal de retroalimentación que me permite conocer la
posición real del vástago, esta señal varía entre 0 y 3.3 V, mientras que los pines
ADC(Convertidor Analógico Digital) del BBB soportan un voltaje máximo de 1.8 V; por
ello, es necesario usar primeramente un divisor de voltaje que reduzca los 3.3V antes de
ingresar al pin (P9_33) del BBB.
28
3.4.5 Conexión del Servomotor
29
3.4.7 Conexión del Sensor de Proximidad
La Fig. 3.26 muestra el Piezo o Buzzer, que es el dispositivo que produce el sonido de la
alarma, y su conexión con el BBB. Una de sus patas va conectada a 5 V mientras que la
otra está conectada al colector de un transistor NPN, el BBB envía un tono (señal de
pulsos) por su pin (P8_20) a la base del transistor permitiendo que el Piezo produzca el
necesario para alertar al usuario.
La Fig. 3.27 muestra el diagrama esquemático del reloj de tiempo real (RTC, Real Time
Clock) que usa el BBB para saber la hora y fecha actual, la comunicación entre ambas
tarjetas se produce usando I2C, que es un tipo de bus de comunicaciones; para ello es
necesario primeramente convertir el voltaje de 3.3 V a 5 V y viceversa. La comunicación
usando I2C requiere de 2 señales, SCL que es la señal de reloj y que va conectada al pin
(P9_17) del BBB y SDA que es por donde se transmiten los datos y va conectada al pin
(P9_18).
30
Fig. 3.27 Reloj de Tiempo Real [24]
31
3.5 Diagrama de flujo del programa de control e interfaz de usuario
INICIO 1
No
CARGA DEL
SISTEMA
CONFIGURACIÓN
¿TOCÓ
DE PARÁMETROS
PANTALLA?
PUERTOS (GPIO) E
INICIALIZACIÓN DE
VARIABLES
Sí
¿PRIMER
ventana = 3
INGRESO?
Sí
MOSTRAR MOSTRAR
VENTANA VENTANA
1 3
LCD LCD
No
¿SELECCION
Ó ACEPTAR? ¿SELECCIONÓ
OPCIÓN?
Sí
ESTABLECER Sí
HORA Y FECHA
AL RTC DIRIGIRSE A
I2C (SDA, SCL) VENTANA DE
OPCIÓN
SELECCIONADA
HASTA
RETORNO
ventana= 2
ESTABLECER
INTERVALO
INTERRUPCIÓN
(5 segundos,
Func1)
Fig. 3.28 Diagrama de Flujo Principal del Sistema Mecatrónico. Fuente: Elaboración Propia
32
Fig. 3.29 Ventana 1. Fuente: Elaboración Propia
Salvo que se apague la pantalla usando el botón que dispone la LCD en la parte inferior,
esta es la ventana que se mostrará normalmente. Para acceder a las distintas opciones
33
que presenta el sistema basta con tocar la pantalla, si esto sucede se activará y mostrará
la ventana 3, la cual se muestra en la Fig. 3.31, esta posee tres opciones, la primera de
ellas, “PASTILLAS”, sirve para configurar los horarios, dosis e ingreso de pastillas; la
segunda opción, “CONFIGURACIÓN”, permite retornar a la ventana 1 y modificar los
datos inicialmente ingresados; mientras que la tercera opción, “ACCEDER A UN
CONTENEDOR”, posibilita el acceso a un contenedor en específico, para lo cual es
necesario abrir la tapa frontal del dispensador.
34
uno de los 3 horarios basta con seleccionar el recuadro correspondiente y aparecerá un
símbolo de “check” tal y como aparece en la Fig. 3.32, si se desea quitar esa asignación
se repite el proceso. La columna de estado representa el nivel de cada uno de los
contenedores (CRÍTICO < 5 %), a lado de esta se presenta una columna de botones que
permite ingresar pastillas a cada compartimento. Todos los parámetros mencionados se
guardan en registros, los cuales pueden ser modificados si el usuario selecciona
ACEPTAR, en caso contrario (selecciona CANCELAR) las modificaciones no se guardan,
regresando en ambos casos a la ventana 3. El diagrama de flujo de la función ingresar se
presenta en la Fig. 3.33.
INICIO
1
Sí
ACTIVAR MOTOR
POSICIONAR A PASOS
SERVO ¿SELECCION
CERRAR enable = ‘0’
No Sí CUADRO DE
SERVO_PWM >> Ó ACEPTAR?
DIÁLOGO 1
0°
No ENERGIZAR
SOLENOIDE
PWMA >> 100%
¿SELECCIONÓ AIN1 = ‘1’
RETORNAR 2 AIN2= ’0’
ABRIR CUADRO STBY= ’1’
DE DIÁLOGO 2 PASTILLAS?
Sí
MotorAPasosMov
CERRAR er[7,n]
CUADRO DE
No DIÁLOGO 1
¿SELECCIONÓ
CANCELAR?
DESENERGIZAR
No Sí SOLENOIDE
CERRAR AIN1 = ‘0’
CUADRO DE AIN2 = ‘0’
DIÁLOGO 2 STBY = ‘0’
¿SELECCIONÓ
ACEPTAR?
Sí DESACTIVAR
2 MOTOR A
PASOS
enable = ‘1’
ocupado = 1
Fig. 3.33 a) Diagrama de Flujo Función Ingresar (Parte 1). Fuente: Elaboración Propia
35
1 2
POSICIONAR RETORNAR
SERVO VÁSTAGO
SERVO_PWM >> InputSignal_PWM
90° >> 0%
No
POSICIONAR
SERVO ¿feedback ==
SERVO_PWM >> 0?
0°
Sí
Calcular_REG_ESTAD
x=0 O
(n,REG_2[n][0],REG_3[
n])
ACTIVAR
EMISOR
ACTIVAR MOTOR
INFRARROJO
A PASOS
IR_emitter = ‘1’
enable = ‘0’
ENERGIZAR
DETECCIÓN DE SOLENOIDE
PASTILLAS PWMA >> 100%
¿IR_detector < AIN1 = ‘1’
nivel? AIN2= ’0’
STBY= ’1’
Sí
MotorAPasosMov
er[n,7]
No
REG_2[n][0] = 1
DESENERGIZAR
SOLENOIDE
AIN1 = ‘0’
AIN2 = ‘0’
DESACTIVAR STBY = ‘0’
EMISOR
INFRARROJO
IR_emitter = ‘0’
DESACTIVAR
MOTOR A
PASOS
enable = ‘1’
DESCENDER
VÁSTAGO
ACTUADOR
InputSignal_PWM ACTUALIZAR
>> x% DATOS
VENTANA 4
No
DETECCIÓN DE
PASTILLAS ocupado = 0
No ¿x==96?
¿sensor_output ==
2
‘0’?
Sí
Sí
FIN
REG_3[n] = x
Fig. 3.33 b) Diagrama de Flujo Función Ingresar (Parte 2). Fuente: Elaboración Propia
36
Las Fig. 3.33 a) y b) muestran el diagrama de flujo de la función “ingresar”, se accede a
esta al seleccionar alguno de los botones que se encuentran en la columna del mismo
nombre y que hace referencia a cada uno de los 7 contenedores de pastillas.
37
INICIO
actual = 7
¿SELECCIONÓ
No Sí ¿actual == 7?
RETORNAR?
No Sí
ocupado = 1
¿SELECCIONÓ ACTIVAR MOTOR
ALGÚN A PASOS
CONTENEDOR enable = ‘0’
?
Sí ENERGIZAR
SOLENOIDE
PWMA >> 100%
ASIGNAR
AIN1 = ‘1’
SELECCIONADO:
AIN2= ’0’
n >> (0,1,..,6)
STBY= ’1’
No
¿actual != n? MotorAPasosMov
er[actual,7]
Sí No
ocupado = 1
ACTIVAR MOTOR DESENERGIZAR
A PASOS SOLENOIDE
enable = ‘0’ AIN1 = ‘0’
AIN2 = ‘0’
STBY = ‘0’
ENERGIZAR
SOLENOIDE
PWMA >> 100% DESACTIVAR
AIN1 = ‘1’ MOTOR A
AIN2= ’0’ PASOS
STBY= ’1’ enable = ‘1’
MotorAPasosMov
er[actual,n] ocupado = 0
actual = 7
DESENERGIZAR
SOLENOIDE
AIN1 = ‘0’ RETORNAR A
AIN2 = ‘0’ VENTANA 3
STBY = ‘0’
DESACTIVAR
MOTOR A FIN
PASOS
enable = ‘1’
actual = n
ocupado = 0
38
Fig. 3.35 Ventana 5. Fuente: Elaboración Propia
Ahora que se conoce internamente las opciones que presenta la interfaz de usuario y
para qué y cómo se ejecutan cada una de ellas se procederá a explicar la “Func 1” la cual
se mencionó en el diagrama de flujo principal inicialmente. Esta función, como ya se dijo,
se ejecuta cada 1 segundo, este lapso se establece entre el momento en que terminó de
ejecutarse y el momento en el que vuelve a realizarlo, la Fig. 3.36 muestra el diagrama de
flujo de la función. Básicamente en esta función se lee periódicamente el reloj establecido
en el RTC (Real Time Clock) de modo que se compara los valores de hora y minutos
actuales con los horarios ingresados de mañana, tarde y noche para ver si se encuentra
en alguno de ellos y empezar a realizar la dosificación de pastillas requerida. El diagrama
de flujo empieza preguntando si el valor de la variable “retraso” es igual a 1 y el de
“ocupado” igual a cero, estas 2 variables cumplen la función de indicar cuando el sistema
está llevando a cabo alguna acción que involucre el cambio de estado de algún actuador,
lo que esto permite es que si en caso se esté; por ejemplo, ingresando pastillas y el
momento en que esto pase concuerde con uno de los horarios no se interrumpa la acción
y se espere a que esta termine (ocupado = 0) para que se active la alarma y el proceso
de dosificación. La variable “retraso” se asigna a 1 cuando el sistema está ocupado y ha
llegado el momento de activar la alarma, de este modo cuando deja de estarlo (retraso =
1 && ocupado = 0) se procede directamente activar la alarma, de lo contrario como esta
función es periódica y el tiempo sigue avanzando podría pasar el minuto siguiente
mientras el sistema esté ocupado y obviar la activación de la alarma y proceso de
dosificación incluso cuando el sistema deje de estar ocupado.
Cuando el momento de dosificación ha llegado se asigna el valor (0-2) a la variable
tiempo, este valor representa el momento del día (mañana, tarde o noche).
39
INICIO 1
FIN
¿PASÓ 2
MINUTOS?
¿ocupado ==
No 1?
¿SELECCIONÓ
CANCELAR? Sí
No
retraso = 1
¿SELECCION
Ó ACEPTAR?
Sí
APAGAR
Sí ALARMA
speaker >> 0
Sí
EMPEZAR:
Dosificacion
(tiempo)
No
MOSTRAR
DOSIS
REQUERIDA Y
ENTRE GADA
EN CUADRO
DE DIALO GO,
DELAY 5
SEG UNDOS
APAGAR
ALARMA
speaker >> 0
retraso = 0
CERRAR
CUADRO DE
DIÁLOGO 4
40
Si el sistema no está ocupado o deja de estarlo se abre un cuadro de diálogo que
muestra lo siguiente: “Empezar proceso de dosificación” junto a 2 opciones en la parte
inferior ACEPTAR y CANCELAR, seguidamente se envía una señal de pulsos al pin que
está conectado al zumbador (“speaker”) de modo que se genere el ruido de alarma.
La alarma suena durante un máximo de 10 minutos hasta que se seleccione una de las
opciones, si pasa este tiempo o el usuario selecciona CANCELAR, la alarma se apaga y
se cierra el cuadro de diálogo no llevándose a cabo el proceso de dosificación. Por otra
parte, si el usuario selecciona ACEPTAR se apaga la alarma y llama a la función
“Dosificación” indicándole el tiempo (0-2) como parámetro de entrada, cuando termina
este proceso se muestra durante 5 segundos en el cuadro de diálogo, la dosis requerida
y la que ha sido entregada, las cuales pueden diferir si es que algún contenedor se ha
quedado vacío. Finalmente se restablece el valor de la variable “retraso” (0), se cierra el
cuadro de diálogo y si en caso se encuentre actualmente la ventana 2 activa, que es la
que muestra la fecha y hora actual, se procede a actualizarla y mostrarla en la pantalla
con los valores leídos del RTC.
Básicamente para el tiempo indicado (mañana, tarde o noche) se realiza un “loop” para
cada contenedor de pastillas (n) (0-6), si el valor de REG_1[tiempo][n] es igual 1 significa
que es necesario extraer la dosis (1-3) de pastillas del contenedor “n” y expulsarlas por la
cavidad de salida, de lo contrario se analiza el estado del siguiente contenedor (n++), el
proceso de dosificación de cada tipo de pastilla se encuentra en otro “loop” que se repite
(REG_2[n][1]) veces que es la dosis necesaria del tipo de pastillas almacenadas en el
contenedor “n” en caso de que el contenedor esté vacío (REG_2[n][0]=0) se termina el
“loop” y analiza el estado del siguiente contenedor de pastillas para ese tiempo
establecido.
41
INICIO 1
ENERGIZAR
SOLENOIDE
PWMA >> 100%
n=0 AIN1 = ‘1’
AIN2= ’0’
STBY= ’1’
Sí
No ¿n<7? MotorAPasosMov
er[actual,n]
Calcular_REG_ESTAD
O Sí
(n,REG_2[n][0],REG_3[
n])
DESENERGIZAR
¿REG_![tiemp SOLENOIDE
o][n] ==1? AIN1 = ‘0’
ACTUALIZAR AIN2 = ‘0’
DATOS STBY = ‘0’
VENTANA 4
Sí
FIN No
num=0 DESACTIVAR
MOTOR A
6 PASOS
enable = ‘1’
¿num<REG_2[
No n++
n][1]?
x=0
3
Sí
¿REG_2[n][0]= DESCENDER
No REG_4[n]=num VÁSTAGO
=1?
ACTUADOR
InputSignal_PWM
>> x%
Sí
No
ACTIVAR MOTOR
A PASOS
enable = ‘0’ ¿feedback ==
4096*x%?
Sí
2
1
Fig. 3.37 a) Diagrama de flujo “Dosificación” (Parte 1). Fuente: Elaboración Propia
42
4
DESCENDER
2 2mm
x +=4
3
No
DETECCIÓN
CONTENEDOR
DETECCIÓN DE VACÍO
PASTILLAS ¿IR_detector >
No ¿x==96?
¿sensor_output == nivel?
‘0’?
Sí
Sí
Sí
No REG_2[n][0] = 0
DESCENDER
2mm
InputSignal_PWM
>> (x+4)%
DESACTIVAR
EMISOR
INFRARROJO
IR_emitter = ‘0’
REG_3[n] = x
ACTIVAR MOTOR
A PASOS
ENERGIZAR enable = ‘0’
BOMBA
PWMB >> 100%
BIN1 = ‘1’
BIN2 = ‘0’
STBY = ‘1’ ENERGIZAR
SOLENOIDE
PWMA >> 100%
AIN1 = ‘1’
AIN2= ’0’
RETORNAR
VÁSTAGO
InputSignal_PWM 5
>> 0%
MotorAPasosMov
er[n,7]
No
DESACTIVAR
MOTOR A
PASOS
¿feedback == enable = ‘1’ DESENERGIZAR
0? BOMBA
BIN1 = ‘0’
BIN2 = ‘0’
Sí
num ++
ACTIVAR DESENERGIZAR
EMISOR SOLENOIDE
INFRARROJO AIN1 = ‘0’
IR_emitter = ‘1’ AIN2 = ‘0’
STBY = ‘0’
6
4
Fig. 3.37 b) Diagrama de flujo “Dosificación” (Parte 2). Fuente: Elaboración Propia
43
El proceso empieza posicionando el contenedor “n” en la parte central inferior, de modo
que la ventosa pueda tener acceso a este. Luego se baja el vástago del actuador hasta
que el sensor de proximidad detecte las pastillas, cuando esto ha pasado se guarda el
valor de la distancia descendida en el REG_3[n] y se desciende 4 mm más por
precaución, debido a que el sensor está posicionado unos milímetros detrás del eje
vertical de la ventosa y el nivel de pastillas no es tan uniforme en toda la superficie, luego
se activa la bomba de modo que la pastilla se adhiera a la ventosa, seguidamente se
retorna el vástago a la posición inicial, se activa el emisor y detector IR lo cual me permite
saber si el contenedor está vacío, y se posiciona el contenedor en su posición inicial, de
este al desactivar la bomba de vacío la pastillas tiene libre camino para caer al ducto de
salida. Cuando finaliza el “loop” principal se actualizan los registros de los datos que se
muestran en la ventana 4.
44
Capítulo 4
Presupuesto
Tabla 4.1 Presupuesto de Parte Electrónica
Dólar Venta 2.96
Parte Electrónica
Precio Precio
Costo
Ítem Nombre Unitario Unitario Cantidad Proveedor
(S/.)
(USD) (S/.)
1 SparkFun Real Time 14.95 44.252 1 Sparkfun 44.252
Clock Module
Resistor 10K Ohm 1/6th
2 0.95 2.812 1 Sparkfun 2.812
Watt PTH - 20 pack
Transistor - NPN
3 0.5 1.48 2 Sparkfun 2.96
(2N3904)
Infrared Emitters and
4 1.95 5.772 1 Sparkfun 5.772
Detectors
5 Stepper Motor with Cable 14.95 44.252 1 Sparkfun 44.252
SparkFun Logic Level
6 2.95 8.732 1 Sparkfun 8.732
Converter - Bi-Directional
Piezo Speaker - PC Mount
7 1.95 5.772 1 Sparkfun 5.772
12mm 2.048kHz
SparkFun EasyDriver -
8 14.95 44.252 1 Sparkfun 44.252
Stepper Motor Driver
SparkFun Motor Driver -
9 8.95 26.492 1 Sparkfun 26.492
Dual TB6612FNG (1A)
Beaglebone Black Cape -
10 89.95 266.252 1 Sparkfun 266.252
LCD (7.0")
11 Vacuum Pump - 12V 14.95 44.252 1 Sparkfun 44.252
12 HS-81 Servo 12.69 37.5624 1 Servocity 37.5624
Pololu Carrier with Sharp
13 GP2Y0D805Z0F Digital 5.95 17.612 1 Pololu 17.612
Distance Sensor 5cm
Push Type Open Frame
14 9.49 28.0904 1 Ebay 28.0904
Solenoid ZYE1-0837Z
L12-I Linear Actuator -
15 90 266.4 1 Firgelli 266.4
50mm - 50:1 - 12 volts
BEAGLEBONE
16 54.95 162.652 1 Jameco 162.652
BLACK,1GHZ,REV.C
PWR SPLY,SW,OPEN
17 12.95 38.332 1 Jameco 38.332
FRAME,40W
PWR CORD,6',AWG
18 2.95 8.732 1 Jameco 8.732
18/2,SPT-2,BLK
Coste
Total:
1055.1808
45
Tabla 4.2: Presupuesto de Parte Mecánica
46
Tabla 4.3 Costos Totales
Precio en Precio en Soles (S/.)
Dólares(USD)
Parte Electrónica - 1055.2
Parte Mecánica - 2255.3
Pagos Extras(shipping) 120 355.2
Total - 3665.7
Del presupuesto presentado en las tablas 4.1, 4.2 y 4.3 se observa que el costo
total de la fabricación del dispensador es de 3665,7 soles, este se divide en la
parte electrónica y mecánica, e incluye los gastos de envío de los ítems
importados. La parte más cara de la fabricación (más del 30% del total) es la de
los componentes elaborados en una impresora 3D, principalmente debido al costo
del material; probablemente esto pueda reducirse usando otros métodos de
fabricación, pero esto solo sería conveniente si se considera una producción
masiva.
47
Capítulo 5
Conclusiones
El diseño de los contenedores, los cuales poseen una pendiente mínima de 25°
en la parte inferior permite dar mayor seguridad al proceso de dosificación
haciendo que las pastillas sobrantes puedan establecerse en un punto central que
es donde la ventosa succiona el comprimido.
La velocidad del giro de los contenedores (1 vuelta cada 2 segundos) permite que
el proceso de dosificación sea rápido pero al mismo tiempo sea estable, ya que
todos los contenedores de pastillas están movimiento.
48
Bibliografía
[1] Stepper motor quick start guide, online: https://www.sparkfun.com/tutorials/ 400
[Consulta: martes, 05 de noviembre de 2014]
[4] Boylestad, Robert L., and Louis Nashelsky. “Electrónica: teoría de circuitos y
dispositivos electrónicos”. Pearson Educación, 2003.
[5] “Dibujo Mecánico 1”, Pontificia Universidad Católica del Perú, 2000
[7] Isermann, Rolf. “Modeling and Design Methodology for Mechatronic Systems”.
IEEE/ASME Transactions on Mechatronics, Vol1, NO.1, March 1996.
[12] Ullman, David. “The Mechanical Design Process”, 4 Edition, McGraw Hill, 2010.
49
[16] Servocity, HS-81 Micro, online:
https://www.servocity.com/html/hs-81_micro.html#.VRJsU_mG91Z
[Consulta: martes, 30 de setiembre de 2014]
[24] Sparkfun, Sparkfun Real Time Clock Module, Eagle Files, online:
http://www.schmalzhaus.com/EasyDriver
[Consulta: jueves, 02 de octubre de 2014]
50