Item Type info:eu-repo/semantics/bachelorThesis
Authors Castillo Nieto, Gustavo; Huachupoma Quiroz, Samuel
Publisher Universidad Peruana de Ciencias Aplicadas (UPC)
Rights info:eu-repo/semantics/openAccess
Download date 04/10/2021 02:55:59
Item License http://creativecommons.org/licenses/by-nc-nd/4.0/ Link to Item http://hdl.handle.net/10757/273541
FACULTAD DE INGENIERÍA
CARRERA DE INGENIERÍA ELECTRÓNICA
DISEÑO DE SILLA DE RUEDAS MOTORIZADA CONTROLADA POR VOZ
PROYECTO PROFESIONAL PRESENTADO POR GUSTAVO CASTILLO NIETO
SAMUEL HUACHUPOMA QUIROZ
PARA OPTAR EL TITULO DE INGENIERO ELECTRÓNICO
A nuestros padres y hermanos
Definitivamente no fue sencillo obtener lo que desde un principio pensamos hacer. Fueron muchas las noches de constante trabajo, sacrificio y esfuerzo. No había MOSFET que escapara a nuestras pruebas de potencia…, no fue fácil, sin embargo el incentivo constante de muchas personas que nos sirvieron de ejemplo nos alentó a terminar lo empezado…
Al Dr. Antonio Morán, por apoyarnos en todo lo que pudo desde un principio, creyendo siempre en nosotros.
Al Ing. Jorge Gonzáles que nos apoyó con los temas relacionados a la etapa de potencia.
Al Ing. Guillermo Kemper, por apoyarnos en un principio con los temas relacionados al procesamiento de señales.
Al Ing. Gustavo Mesones por los acertados comentarios respecto a la electrónica. A José, por dejarnos el laboratorio abierto para poder trabajar.
A todos aquellos que de alguna manera tuvieron que ver con este trabajo y nos brindaron su amistad.
A nuestra Alma Mater.
INDICE Resumen
Introducción i
Capítulo 1:
DESCRIPCIÓN GENERAL DEL PROYECTO 1
Capítulo 2:
DISEÑO DEL SISTEMA DE CONTROL 9
2.1 Los Microcontroladores 10
2.1.1 Tipos de microcontroladores usados 11
2.1.2 Arquitectura de los microcontroladores 16
2.1.3 Configuración de los microcontroladores (Master-Slave) 19
2.2 Control del sentido de giro de los motores 27
2.3 Control de la velocidad de los controladores 29
2.3.1 Modulación por ancho de pulso (PWM) 29
2.3.2 Rampa de arranque 34
2.3.3 Frenado 35
2.3.4 Movimiento en curvas (diagonales) 37
2.4 Mando manual (Joystick) 40
2.4.1 Asignación de puertos 43
2.4.2 Función y uso del mando manual 44
2.5 Sensores de presencia 46
2.6 Control por voz 49
2.6.1 Control por voz con sensores 51
2.7 Algoritmo Master – Slave del circuito de control 52
2.8 Caja del circuito de Control 79
Capítulo 3:
SISTEMA DE RECONOCIMIENTO DE PALABRAS 84
3.1 Circuito de reconocimiento de palabras (Direct Voice) 85
3.1.1 Características del Direct Voice 86
3.1.2 Algoritmo del Direct Voice 86
3.1.3 Configuración del Direct Voice 89
3.1.4 Modo de operación, grabación y uso del Direct Voice 92 3.1.5 Consideraciones para el correcto uso del Direct Voice 97 3.2 Microcontrolador para el control del Circuito de
Reconocimiento de palabras 98
3.2.1 Algoritmo del microcontrolador 16F84 99
3.3 Seguridad para los comandos de voz 103
Capítulo 4:
SISTEMA DE POTENCIA 107
4.2 Circuito de Protección 113 4.3 Mediciones de los parámetros de voltaje y corriente 114
4.4 Comparador del nivel del voltaje 115
4.5 Caja del circuito de potencia 116
Capítulo 5:
Adaptación Mecánica 121
Capítulo 6:
PRUEBAS, RESULTADOS Y RECOMENDACIONES 129
6.1 Pruebas y análisis de resultados 129
6.1 .1 En cuanto al sistema electrónico 130
6.1.2 En cuanto al sistema de potencia 141
6.1.3 En cuanto a la etapa mecánica 142
6.2 Revisión del correcto funcionamiento del sistema 143
CONCLUSIONES 147
PROPUESTAS PARA MEJORAR EL PROYECTO 150
ANEXOS
Anexo Capítulo 2: Programas del los Microcontroladores , PCB, Datasheets Anexo Capítulo 3: Programas del Microcontrolador 16F84, Datasheets Anexo Capítulo 4: PCB de Sistema de Potencia, Datasheets Mosfet IRFZ48
Lista de Figuras
Figura 1.1 Ubicación de las partes de la silla de ruedas. 3
Figura 1.2 Vista posterior de la silla de ruedas. 3
Figura 1.3 Caja de control. 4
Figura 1.4 Micrófono y audífonos. 5
Figura 1.5 Mando manual adaptado. 5
Figura 1.6 Sensores de presencia. 6
Figura 1.7 Circuito de potencia. 7
Figura 1.8 Arreglo de baterías. 7
Figura 1.9 Motores de la silla de ruedas. 8
Figura 2.1 Diagrama de Pines del PIC Master y Slave. 12
Figura 2.2 Distribución de la memoria de datos, PICMaster y Slave 16
Figura 2.3 PWM del sistema de control. 30
Figura 2.4 PWM con rampa de arranque. 35
Figura 2.5 PWM con Rampa de frenado. 36
Figura 2.6 Rampa del movimiento en curva. 38
Figura 2.7 Rampas de velocidad. 39
Figura 2.8 Orientación de las ruedas de la silla. 41
Figura 2.9 Vista lateral del mando manual (Joystick). 42
Figura 2.10 Movimientos permitidos por el mando manual. 46
Figura 2.11 Sensor de presencia de la silla de ruedas y configuración electrónica. 47 Figura 2.12 Sensor de presencia utilizado y adaptación al sistema de control. 48
Figura 2.13 Sensor de presencia posterior. 49 Figura 2.14 Sensor de presencia frontal. 49 Figura 2.15 Rutina de recepción de datos. 50
Figura 2.16 Entradas y Salidas del Algoritmo de control del PICMaster. 54
Figura 2.17 Entradas y Salidas del algoritmo de control del PIC Slave. 71
Figura 2.18 Vista de la caja del circuito de control y switches. 79
Figura 2.19 Switches de activación de control e indicadores. 80 Figura 2.20 Pulsadores de programación del circuito de control. 81 Figura 2.21 Diagrama esquemático del circuito de Control. 83 Figura 3.1 Vista superior de circuito Direct Voice 364. 85
Figura 3.2 Audífono y micrófono utilizado por el Circuito Direct Voice 364. 85
Figura 3.3 Configuración del modo de operación SD y sus características. 90
Figura 3.4 Configuración del modo de operación Single Word CL y características. 91
Figura 3.5 Configuración del modo de operación Multi-World CL y características. 92
Figura 3.6 Botones de configuración del circuito de reconocimiento de palabras. 93
Figura 3.7 Diagrama de operación del reconocimiento continuo de palabras. 96
Figura 3.8 Diagrama de pines del PIC 16F84. 99
Figura 3.9 Diagrama esquemático del Sistema de reconocimiento de palabras. 106
Figura 4.1 Driver del MOSFET de potencia. 109
Figura 4.2 Diagrama de Bloques de la aplicación de PWM. 110
Figura 4.3 Circuito de protección. 113
Figura 4.4 Vista de la tarjeta del circuito de potencia. 117
Figura 4.6 Diagrama esquemático del sistema de potencia. 120
Figura 5.1 Refuerzo mecánico de la estructura de la silla de ruedas. 122
Figura 5.2 Vista superior de refuerzo central de la estructura. 123
Figura 5.3 Acoplamiento mecánico de las ruedas. 124
Figura 5.4 Tornillo de ajuste de la rueda y motor acoplado. 124
Figura 5.5 Llantas de la silla y garrucha mejorada. 125
Figura 5.6 Ubicación de las baterías. 127
Figura 6.1 Movimiento en línea recta de la silla de ruedas. 133
Figura 6.2 Movimiento de la silla de ruedas sobre superficies curvas. 135
Figura 6.3 Giro sobre el eje central de movimiento. 137
RESUMEN
En esta tesis se llega a implementar una silla de rueda motorizada, donde el usuario puede comandar el vehículo escogiendo entre dos modos de operación. El primer modo, a través del uso de un mando manual y el segundo, a través del uso de palabras de control ( señales de voz ).
El contenido de este trabajo se divide en seis capítulos. En el primer capítulo se explica en forma genérica el funcionamiento de la silla de ruedas, y se describe cada una de sus partes. En el segundo capítulo se explica el funcionamiento del sistema de control de la silla y cómo este hace posible controlar la velocidad, la dirección y los modos de operación. En el tercero, se explica el sistema de reconocimiento de palabras, indicando los tipos de señales de control que genera y como estás se utilizan para poner en movimiento la silla. En el cuarto capítulo se muestran y explican las características del sistema de potencia de la silla de ruedas. En el quinto capítulo se explica porque se hace necesaria la adaptación mecánica de la silla. Finalmente, en el sexto capítulo se describen las pruebas y resultados obtenidos al hacer uso del prototipo desarrollado.
INTRODUCCIÓN
En la actualidad son muy pocas las empresas que están orientadas al desarrollo de sistemas de control electrónico. Esto hace que muchas veces el país sea un mero importador de equipos electrónicos y con ello se deje de lado la capacidad de crear y desarrollar nuestros propios productos.
El presente proyecto tiene como finalidad el diseño e implementación de una silla de ruedas motorizada, capaz de ser controlada a través de un mando manual y por señales de voz.
En el mercado nacional es prácticamente inexistente la oferta de sillas de ruedas motorizadas accionadas por señales de voz y aquellas sillas que poseen cierto sistema de control tienen precios muy elevados, los cuales son aproximadamente diez veces mayor que el costo de una silla de ruedas convencional.
Este trabajo ha sido desarrollado por la importancia que significa el diseño y
fabricación de productos electrónicos propios, orientados a mejorar la calidad de vida de las personas con incapacidad motora.
En el país, existen personas con incapacidad motora en todas las extremidades a quienes les es imposible poner en movimiento una silla de ruedas manual. En tal sentido, este proyecto pretende dar solución a este tipo de necesidad a través de la motorización de una silla de ruedas manual, de manera que pacientes discapacitados puedan movilizarse.
Como objetivo general, se ha planteado desarrollar un sistema que transforme una silla de ruedas convencional en una silla de ruedas motorizada que pueda ser controlada por un mando manual y por señales de voz.
Cada uno de los objetivos específicos se encuentran distribuidos en cada capítulo de la tesis. En el primer capítulo se describe en forma general el proyecto ilustrando a través de imágenes todas sus partes.
En el segundo capítulo se detalla el sistema de control de la silla de ruedas. El diseño principal se basa en la tarjeta de control que envía señales eléctricas para controlar la dirección del movimiento y velocidad de los motores de corriente continua. El desarrollo del sistema de accionamiento y control de la silla de ruedas se realiza a través de un mando manual. El
proceso que permite controlar la silla de ruedas a través de señales de voz es preliminarmente mostrado. Por último, se explica el sistema de detección de obstáculos ya que es fundamental que el usuario tenga sistemas de protección para evitar choques al hacer uso de la silla.
En el tercer capítulo, se presenta el diseño del sistema de reconocimiento de voz, así como el desarrollo del algoritmo del chip que procesa la información que este genera para ser luego enviada a la etapa de control.
En el cuarto capítulo, se explica detalladamente el funcionamiento del diseño del driver de potencia que le da energía a los motores de corriente continua, así como el desarrollo del sistema de protección ante la presencia de sobrecargas en el equipo. El diseño de un sistema de verificación que indica al usuario el nivel de voltaje en las baterías es de suma importancia, razón por la cual se incluye en la etapa de potencia.
En el quinto capítulo se muestra el diseño mecánico de la estructura de la silla de ruedas convencional, el cual permite a la silla soportar mayor peso que el diseño original.
En el sexto capítulo se muestran los resultados obtenidos al hacer uso de la silla de ruedas motorizada y se explican las pruebas realizadas.
Finalmente se presentan conclusiones y sugerencias para el desarrollo de trabajo futuro o de proyectos similares al presentado.
CAPÍTULO 1
DESCRIPCIÓN GENERAL DEL PROYECTO
El presente trabajo incluye, en su ejecución, la creación de software y hardware integrados para la fabricación de una silla de ruedas motorizada controlada por palabras o por un mando manual. El desarrollo del proyecto involucra varios campos de la ingeniería electrónica, tales como control digital, electrónica de potencia y procesamiento de señales.
La silla de ruedas motorizada controlada por palabras, beneficia a aquellas personas con discapacidad física, además de ser un aporte que de alguna manera les puede brindar una mayor accesibilidad debido a su bajo costo1.
Para lograr este objetivo se tuvo que diseñar y adaptar una silla de ruedas convencional y convertirla en una silla de ruedas motorizada controlada por dos tipos de control. El primero, utilizando un mando manual (joystick) que controla la dirección y velocidad para el desplazamiento de la silla ruedas. El
1
En la gran mayoría de casos las sillas tan solo motorizadas presentan costos muy elevados que exceden en cinco veces el valor del prototipo final.
Cfr. Precios 2003 : http://www.walkerswheelchairs.com/power_wheekchairs.shtml
1
segundo tipo de control se basa en el reconocimiento de palabras, en este caso el desplazamiento de la silla de ruedas se logrará gracias al correcto procesamiento de señales de voz emitidas como órdenes para el movimiento de la silla.
La silla de ruedas se compone de las siguientes partes:
• Dos motores de corriente continua con sistema de control.
• Sistema de potencia alimentado por dos baterías de 12 voltios,
dispuestas en un arreglo serial para tener 24V.
• Mando manual, con pulsadores : para velocidad y bocina. • Circuito de reconocimiento de palabras.
• Un micrófono y un parlante que trabajan junto al circuito de
reconocimiento de palabras.
• Sistema de control energizado por una batería de 12V
• Dos sensores de presencia infrarrojos ubicados en la parte delantera y
posterior de la silla.
• Ruedas traseras neumáticas tipo montañera y ruedas delanteras de
jebe.
La Figura 1.1 muestra una vista frontal de la silla de ruedas con la ubicación de sus distintas partes, mientras que la Figura 1.2 muestra una vista de la parte posterior de la silla.
Circuito de potencia Control manual ( joystick ) Sistema de reconocimiento de palabras y circuito de control Micrófono y audífonos usados junto al circuito de reconocimiento de palabras
Figura 1.1 – Ubicación de las partes de la silla de ruedas.
Figura 1.2 – Vista posterior de la silla de ruedas.
Motores eléctricos de corriente continua de la silla de ruedas Sensor de obstáculos posterior Arreglo de Baterías 24V 3
Para el control de la dirección y movimiento, la silla de ruedas utiliza dos micro-controladores que se encargan de procesar las señales de control que provienen del mando manual, de los sensores y del circuito de reconocimiento de palabras. Estos microcontroladores son denominados Master y Slave.
En la etapa de reconocimiento de palabras se cuenta con un microcontrolador adicional encargado de procesar estas señales y enviarlas a la etapa de control principal. La Figura 1.3 muestra la ubicación de la caja de control donde están dispuestos todos los microcontroladores del sistema.
Para poder hacer uso del circuito de reconocimiento de palabras es necesario contar con un dispositivo capaz de transformar las señales de voz en voltajes eléctricos, y además transformar voltajes eléctricos en señales de voz. El circuito de reconocimiento de voz emite mensajes sonoros de control que indican al usuario si las palabras fueron reconocidas correctamente. Para tal efecto, se cuenta con un arreglo de
Figura 1.3 – Caja de control. Ubicación de la caja de
control (izquierda), junto al mando manual (derecha).
Micrófono
Audífonos
Figura 1.4 – Micrófono y audífonos. Usados junto al
circuito de reconocimiento de palabras.
micrófono y audífonos de fácil empleo. La Figura 1.4 muestra estos dispositivos.
De igual manera, la silla de ruedas puede ser controlada por un mando manual que permite tener un control directo de los movimientos, ya que se utilizan 4 contactos mecánicos para las direcciones de adelante, atrás, derecha e izquierda. Además de contar con dos pulsadores, uno para velocidad y otro para emitir una bocina. El correcto uso del mando manual dependerá de la destreza del usuario. La Figura 1.5 muestra el mando manual.
Joystick
Figura 1.5 – Mando manual adaptado.
Adicionalmente, la silla de ruedas tiene dos sensores de presencia, los cuales se encuentran ubicados en la parte frontal y posterior de la silla. Estos tienen como objetivo dar mayor seguridad al manejo de la silla de ruedas y evitar que ésta colisione. Los sensores de presencia tienen una distancia de detección máxima de un metro. El control con sensores puede funcionar tanto en el modo de control por mando manual, como en el modo de control por voz. La Figura 1.6 muestra la ubicación de los sensores de presencia.
Las señales de control que dan origen al sentido de giro y velocidad para cada uno de los motores de la silla de ruedas son finalmente transmitidas al circuito de potencia. Este se encarga de controlar el voltaje que se suministrará a los motores. La Figura 1.7 muestra la caja que contiene el circuito de potencia.
Figura 1.6 – Sensores de presencia. Se ubican en
la parte frontal y posterior de la silla de ruedas.
Sensor Frontal Sensor Posterior
Para alimentar el circuito de potencia y circuito de control, se cuentan con dos baterías de 12V 40AH para el circuito de potencia y una batería de 12V 6AH para el circuito de control. La Figura 1.8 muestra la ubicación de la baterías. Conectores y cable de alimentación del circuito de potencia Conectores y cable de alimentación del motor derecho Conectores y cable de alimentación del motor izquierdo Interruptores de encendido y perilla de calibración de sensado de baterías
Figura 1.7 – Circuito de potencia. Ubicado en la
base de la estructura de la silla de ruedas motorizada.
Figura 1.8 – Arreglo de baterías. Baterías del circuito de
potencia (izquierda), batería del circuito de control (derecha).
Batería de 12V, 40 Ah Batería de 12V, 6 Ah
La silla de ruedas utiliza dos motores: uno dispuesto en cada llanta posterior. Estos motores de corriente continua están especialmente diseñados para sillas de ruedas, ya que se requiere tener alta tracción y poca velocidad.
Adicionalmente, los motores vienen con frenos electromagnéticos que funcionan a manera de embrague, sólo por seguridad y que no intervienen en el frenado de los motores. La Figura 1.9 muestra la ubicación de los motores de la silla de ruedas.
En los siguientes capítulos se mostrará al detalle cada una de las partes de la silla de ruedas.
Figura 1.9 – Motores de la silla de ruedas.
Motor derecho Motor
izquierdo
CAPÍTULO 2
DISEÑO DEL SISTEMA CONTROL
El presente capítulo tiene por objetivo describir todos los elementos que forman parte del circuito de control. Este consta de dos etapas importantes: el circuito electrónico propiamente dicho y el software de programación.
La primera parte consta de un hardware cuyo diseño está compuesto por una tarjeta electrónica, encargada de conectar todos los dispositivos de control externos con las respectivas interfaces asociadas a cada uno de ellos. Estos dispositivos externos están compuestos por un mando manual, dos sensores de presencia y el circuito de reconocimiento de palabras. El funcionamiento de cada uno de estos dispositivos se explica con mayor detalle a lo largo de este capítulo.
La segunda parte del sistema está compuesta por un software de control programado y almacenado en dos microcontroladores principales. El
algoritmo de control de cada microcontrolador se explicará detalladamente en este capítulo.
Es de este modo que la interacción entre el hardware y software dará forma a las distintas cualidades y características de la silla de ruedas.
2.1 Los Microcontroladores
El microcontrolador es uno de los dispositivos más importantes utilizados en el proyecto. Por tal motivo, se ha visto necesario mostrar las principales características de los dos microcontroladores que forman parte del circuito principal de control.
En esta parte se presentará la configuración y asignación de los respectivos puertos1 de salida y entrada de datos de los microcontroladores. Esto permitirá el mejor entendimiento de siguientes puntos a tratar.
Los microcontroladores usados son de la marca Microchip, marca de mayor difusión tanto en el mercado nacional como internacional debido a su fácil manejo, versatilidad y fiabilidad para tareas que requieren relativo grado de precisión. Además, estos dispositivos no necesitan componentes e interfaces complejas para su configuración y funcionamiento. La denominación para 1
Este término es la denominación de las entradas y salidas de datos de los microcontroladores.
10
estos microcontroladores es PIC, término que se utilizará de ahora en adelante para referirse a ellos.
Los PIC’s usados en el proyecto pertenecen a la familia 16F87X que está compuesta básicamente por cuatro tipos de ellos: 16F873, 16F876, 16F874 y 16F877.
Los dos primeros tienen un empaque de 28 pines y los dos últimos un empaque de 40 pines. Para el circuito de control se ha visto conveniente utilizar el 16F877 y el 16F8732.
2.1.1 Tipos de Microcontroladores usados
El circuito de control tiene como dispositivos de control a dos PIC’s, el PIC16F877 y el PIC16F873.
El primero tiene un empaque de 40 pines y es el microcontrolador principal de todo el sistema de control. A este, se le denomina PIC Master, ya que maneja todas las tareas que realiza el circuito de control.
El segundo tiene un empaque de 28 pines y es el microcontrolador secundario. A este se le denomina PIC Slave, ya que depende directamente de los comandos que transfiera el PIC Master.
2
Cfr. Microchip Data Sheet Microcontroladores utilizados 2003:
http://www.microchip.com/download/lit/pline/picmicro/families/16f87x/30292c.pdf
11
La Figura 2.1 muestra los diagramas de pines de ambos PIC’s3.
Estos microcontroladores son alimentados con un voltaje de 5 VDC y usan un cristal de 3.686 Mhz. para su frecuencia de operación.
El PIC16F877, por ser de mayor tamaño, tiene incorporadas más funciones que el PIC16F873, es por ello que tiene bajo su cargo el control del PIC Slave.
A continuación, se presentan las principales características de ambos microcontroladores4:
3
Cfr. Microchip Data Sheet Microcontroladores utilizados 2003:
http://www.microchip.com/download/lit/pline/picmicro/families/16f87x/30292c.pdf
Figura 2.1 – Diagrama de Pines del PIC Master (izquierda)
y del PIC Slave (derecha).
12
- Velocidad de operación máxima, 20 Mhz de frecuencia de reloj. Como
se mencionó anteriormente, se utiliza una velocidad de operación de 3.686 Mhz, la cual está dentro del rango de operatividad de PIC.
- La memoria de programa es tipo FLASH con capacidad de 8K x 14
Words.
- Tiene una memoria de datos tipo RAM con una capacidad de 368 x 8
bytes.
- Tiene una memoria de datos tipo EEPROM con una capacidad de 256
x 8 bytes.
- Tiene capacidad de generar hasta 14 posibles tipos de interrupciones.
En el proyecto, no se hace uso de esta característica para ninguno de los dos PIC’s.
- Modos de direccionamiento de datos directo e indirecto.
4
Cfr. PIC16F97X Data Sheet 2003 – Device Overview: pp 5-9
http://www.microchip.com/download/lit/pline/picmicro/families/16f87x/30292c.pdf
13
- Tiene incorporado un Watchdog Timer (WDT) usado para prevenir
posibles colapsos de la secuencias del programa, sobre todo cuando hay extensos bucles o retardos.
- Existe la posibilidad de habilitar un código de protección por software,
característica que impide a una persona no autorizada tener acceso al algoritmo almacenado en la memoria de programa.
- Rango de voltaje de operación de 2.0 a 5.5 Voltios DC.
- Rangos comerciales e industriales de temperatura de funcionamiento:
-55 to +125°C.
- Bajo consumo de potencia, máximo 1 W.
- Tiene 3 tipos de Timer. Sin embargo, sólo se ha hecho uso del Timer
2 que posee un contador de 8 bits y un registro de 8 bits para configurar el periodo de oscilación. Además, cuenta con un pre- escalador y un post-escalador, necesarios para obtener frecuencias de oscilación más bajas de acuerdo a los requerimientos del usuario. El Timer 2 posee dos módulos de captura: comparación y PWM. El módulo de PWM tiene una resolución de 10 bits.
- Tiene 10 bits de resolución en la conversión análogo digital.
Estos datos son similares en toda la familia del PIC16F87X. Sin embargo, para este proyecto en que se utilizan dos PIC’s distintos, existen algunas diferencias que se muestran en la Tabla 2.1.
Características PIC16F873 PIC16F877
Capacidad de memoria de programa tipo FLASH
(14 bits-words) 4K 8K
Capacidad de memoria de datos RAM (Bytes) 192 368
Capacidad de memoria de datos EEPROM 128 256
Interrupciones 13 14
Puertos de Entrada y Salida (I/O) A, B y C A, B, C, D y
E
Se puede apreciar que el PIC Master posee mayor capacidad de almacenamiento en cuanto a la memoria de programa y memoria de datos. Esta característica es importante, porque el Master contendrá mayor información en la memoria de Programa, ya que el algoritmo de control es más extenso y complejo. Asimismo, en el caso del número de puertos de entrada y salida de datos, el PIC Master supera al Slave debido a que todos los componentes externos de la silla de ruedas están conectados al PIC Master, de este modo logra procesar la mayor parte de la información.
Tabla 2.1 – Comparación entre el PIC16F877 (Master) y el PIC16F873 (Slave)
2.1.2 Arquitectura de los microcontroladores
Organización de la memoria de datos
La memoria de datos está particionada en múltiples bancos que contienen registros de propósito general y registros de función especial. En la Figura 2.2 se muestra la disposición de la memoria5:
5
Cfr. PIC16F97X Data Sheet 2003 – Device Overview: pp 10-11
http://www.microchip.com/download/lit/pline/picmicro/families/16f87x/30292c.pdf
Espacio reservado para las variables
creadas por el programador (Registros de Propósito General) Espacio reservado para los registros asociados a las funciones de los PIC´s (Registros de Función Especial)
Figura 2.2 – Distribución de la memoria de datos del PIC Master y
Slave. Se divide en Bancos que contienen los registros.
16
Lo primero a tener en cuenta al utilizar la memoria de datos es conocer la forma de acceso a cada uno de los bancos en donde se encuentran almacenados los registros. Para poder acceder a cada uno de ellos es necesario modificar el registro STATUS configurando los respectivos bits de control:
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 STATUS IRP RP1 RP0 TO PD Z DC C
Estos bits de control son RP1 y RP0. Según se muestra en la Tabla 2.2, se tendrá acceso a los distintos bancos de memoria de acuerdo a la asignación de bits. RP1 RP0 Banco 0 0 0 0 1 1 1 0 2 1 1 3
Cada uno de los bancos almacena 128 registros de 8 bits cada uno. Las ubicaciones superiores de cada uno de estos bancos están reservadas para registros de Función Especial, mientras que las ubicaciones inferiores están reservadas para los registros de Propósito General6. En estos últimos se almacena el contenido de las distintas variables creadas en la programación del algoritmo.
6
Cfr. PIC16F97X Data Sheet 2003 - Organización de Memoria : pp 12-18 http://www.microchip.com/download/lit/pline/picmicro/families/16f87x/30292c.pdf
Tabla 2.2 – Asignación de los bits de
control para el acceso a los bancos de memoria.
17
La Figura 2 muestra la existencia de duplicidad de registros entre un banco y otro. Por tal motivo, es posible programar el funcionamiento de cualquier registro accediendo a cualquier banco que los contenga.
Configuración de puertos
El segundo factor importante a tener en cuenta es la asignación de los pines de cada uno de los puertos. Cada uno de estos puede ser configurado como una entrada o una salida de datos.
Es necesario definir desde un principio la asignación adecuada de los puertos porque de acuerdo a los requerimientos de los dispositivos utilizados, los puertos enviarán o recibirán datos según sea el caso7.
Si el valor del estado lógico es “1” se configura ese pin8 como entrada lógica. En el caso inverso, si el valor del estado lógico es “0” se configura ese pin como salida lógica.
Los registros responsables del direccionamiento de datos son el TRISA, TRISB, TRISC, TRISD y TRISE (los dos últimos no son validos para el PIC Slave).
7
Esto depende de la información que se esté manejando, y que algunas veces tendrá que ser enviada : comandos de control, o en su defecto información que este ingresando ( comandos de validación ).
8
Este término se refiere a la denominación que se le da al contacto físico del chip correspondiente al bit al cual esta relacionado, como entrada o salida de datos (puertos).
18
2.1.3 Configuración de los Microcontroladores (Master - Slave)
Hasta el momento se ha mostrado cual es el funcionamiento básico de los microcontroladores. Estos presentan cierta configuración de memoria, gracias a la cual se organiza la información y en donde se encuentran dos o más puertos que, según la capacidad de cada uno de ellos, permiten al PIC tener características adicionales.
A continuación se explica la configuración de los pines de cada uno de los PIC’s.
El Master
El Master posee cinco puertos, los cuales son configurados como salidas o entradas de datos según se explica en la arquitectura de los PIC’s. Los registros encargados de realizar esta configuración son : TRISA, TRISB, TRISC, TRISD y TRIDE.
El Master es el responsable de realizar el control principal del sistema correspondiéndole las siguientes tareas:
a. Control del movimiento
Es el encargado de reconocer el tipo de control que se va a realizar, ya sea mediante el modo manual utilizando un joystick o mediante el reconocimiento de voz.
El tipo de control se determina realizando la lectura del pin RC0. Si este presenta un estado lógico igual a “1” significa que se va a controlar el sistema mediante señales de voz. De no ser así, el sistema automáticamente detecta que el control se realizará manualmente.
b. Velocidad y giro / Envío de señales del control al PIC Slave
Este punto será explicado más adelante en la configuración entre Master y Slave.
c. Estado de sensores
Se encarga de reconocer si el usuario desea activar los sensores del sistema para evitar colisiones. Para tal efecto, el PIC realiza la lectura del pin RA2. De encontrarse en “1” lógico se procederá a realizar la lectura de las señales provenientes del sensor delantero o posterior. Estos sensores envían las señales de seguridad a través de los bits RA0 (sensor delantero) y RA1 (sensor posterior). Si alguno de ellos se encuentra en “1” lógico el sistema determina que puede haber un choque. Para evitarlo, automáticamente envía una señal de control que detiene los motores de la silla de ruedas.
d. Control manual
Se encarga de leer las señales que el joystick envía al sistema. Estas señales son las correspondientes al tipo de movimiento a realizar.
Los pines encargados de recibir esta información son los siguientes : RA4, RA5, RE0 y RE1.
La velocidad se determina gracias a la lectura del pin RA3, el cual en caso de encontrarse en “1” lógico, indica al sistema que la silla se moverá más rápido9.
Para el giro en curvas, el PIC Master lee la información de los contactos del comando manual y verifica que estén activos al mismo tiempo.
e. Control mediante voz
El PIC Master se encarga de leer las señales provenientes del circuito de reconocimiento de voz, y de acuerdo a ello permite que la silla de ruedas pueda realizar los movimientos básicos de desplazamiento10. Las señales de control de voz ingresan a través de los pines RC1, RC3 y RD0.
La configuración y asignación de pines del PIC Master se muestra en la Tabla 2.3.
9
La velocidad sólo puede ser incrementada cuando la silla de ruedas se mueve hacia adelante.
10
Adelante, atrás, derecha, izquierda, rápido, lento, alto.
21
Master Asignación de pines de cada uno de
los puertos Nombre I/O
RA0 Bit de estado del sensor delantero SENSOR1 I
RA1 Bit de estado del sensor trasero SENSOR2 I
RA2 Bit que activa los sensores ACTDESEN I
RA3 Bit que indica velocidad de la silla VELOCIDAD I RA4 Bit que indica movimiento a la derecha IZQUIERDA I RA5 Bit que indica movimiento a la izquierda DERECHA I
RE0 Bit que indica movimiento hacia atrás ATRAS I
RE1 Bit que indica movimiento hacia adelante ADELANTE I RE2 Bit que indica activación de circuito de voz FOCOVOZ O RC0 Bit que activa / desactiva circuito de voz ACTVOZ I
RC1 Bit de entrada de circuito de voz VOZ1 I
RC2 Bit de generación de PWM PWM O
RC3 Bit de entrada de circuito de voz VOZ2 I
RC4 Libre / I
RC5 Bit que indica activación de los sensores FOCOSENS O
RC6 Libre / O
RC7 Libre / O
RD0 Bit de entrada de circuito de voz VOZ3 I
RD1 Libre I
RD2 Bit de estado de giro del motor Izquierdo GIRO O
RD3 No utilizado O RD4 Libre / O RD5 Libre / O RD6 Libre / O RD Libre / O RB0 Libre / O RB1 Libre / O
RB2 Pines de comunicación con PIC Slave / O
RB3 Pines de comunicación con PIC Slave / O
RB4 Pines de comunicación con PIC Slave / O
RB5 Pines de comunicación con PIC Slave / O
RB6 Pines de comunicación con PIC Slave / O
RB7 Pines de comunicación con PIC Slave / O
El puerto B es el encargado de proporcionarle al PIC Slave las señales de control básicas con las que se logra el movimiento del motor derecho.
Tabla 2.3 – Asignación de pines de cada uno de los puertos para el PIC Master (16F877)
El Slave
A diferencia del PIC Master, el Slave posee solo tres puertos: PORTA, PORTB y PORTC. Estos son configurados como salidas o entradas de datos. Los registros encargados de realizar esta asignación son: TRISA, TRISB y TRISC.
El Slave es el responsable de realizar la lectura de datos provenientes del Master para permitir que el motor Derecho pueda moverse, correspondiéndole realizar básicamente la lectura de su Puerto A y de esta manera procesar la información para determinar el tipo de movimiento y velocidad del motor que controla.
Adicionalmente, este PIC se encarga del encendido de un led indicador de activación del sistema de control general. Esta señal de encendido se envía a través del pin RB5.
La configuración de pines asignada al PIC Slave se muestra en la Tabla 2.4.
Envío y recepción de datos entre el Master – Slave
El Master se encarga de enviar los bits de control a la tarjeta de potencia para hacer posible que el motor izquierdo pueda moverse. Estos bits son enviados a través del Puerto C pin RC2 (encargado de regular la velocidad del motor) y el Puerto D pin RD2 (encargado del giro horario o antihorario) dependiendo del estado lógico en el que se encuentre.
Slave Asignación de los bits de cada uno de los puertos Nombre I/O
RA0 Pines de comunicación con PIC Master / I
RA1 Pines de comunicación con PIC Master / I
RA2 Pines de comunicación con PIC Master / I
RA3 Pines de comunicación con PIC Master / I
RA4 Pines de comunicación con PIC Master / I
RA5 Pines de comunicación con PIC Master / I
RC0 Bit de estado de giro del motor Derecho / O
RC1 Libre O
RC2 Bit de generación de PWM Motor 2 PWM 2 O
RC3 Libre O
RC4 Libre O
RC5 Bit que indica activación de los sensores O
RC6 Libre O RC7 Libre O RB0 Libre O RB1 Libre O RB2 Libre O RB3 Libre O RB4 Libre O
RB5 Pin indicador encendido del sistema de control ENCENDIDO O
RB6 Libre O
RB7 Libre O
Tabla 2.4 – Asignación de pines de cada uno de los puertos del PIC Slave (16F873)
El Slave, al igual que el Master, se encarga de enviar los respectivos bits de control a la tarjeta de potencia para hacer posible que pueda moverse el motor derecho.
Estos bits son enviados a través del Puerto C correspondiéndole al bit RC2 regular la velocidad del motor y al bit RC0 determinar el giro horario o antihorario.
La relación existente entre el Master y Slave está dada básicamente por el envío de información desde el primer PIC hacia el segundo, el cual se encarga de procesar la información a través de una tabla de asignación predeterminada. De esta manera los dos PIC’s logran tener control de ambos motores.
La correspondencia entre los PIC’s y sus respectivos puertos se muestra mediante la siguiente Tabla de Asignación:
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 PORTB RB7 RB6 RB5 RB4 RB3 RB2 - -
Bit 0 Bit 1 Bit 2 Bit 3 Bit 4 Bit 5 Bit 6 Bit 7
RA0 RA1 RA2 RA3 RA4 RA5 - - PORTA
Tabla 2.5 - Correspondencia entre el Puerto B del Master y el Puerto A del Slave
PIC Master 16F877
PIC Slave 16F873
Es necesario hacer notar que la asignación de bits entre ambos puertos no es de uno a uno, como se daría si por ejemplo, la información fuese del bit RB0 del Master al bit RA0 del Slave. Esta asignación es inversa, correspondiéndole al bit RB7 del Master el bit RA0 del Slave, tal como se mostró en la Tabla 2.5.
El Master se encarga de enviar las señales de control a través del puerto B. Para tal efecto, el listado de asignación de bits se muestra en la Tabla 2.6:
Port B Master Dato enviado
en Hexadecimal DIRECCION RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 Atrás 0 0 0 0 0 0 X X 0 Adelante lento 0 0 0 0 1 0 X X 8 Adelante rápido 0 0 0 1 0 0 X X 10 Diagonal Izquierda 0 0 0 1 1 0 X X 18 Diagonal derecha 0 0 1 0 0 0 X X 20 Derecha 0 0 1 0 1 0 X X 28 Izquierda 0 0 1 1 0 0 X X 30 Alto 0 0 1 1 1 0 X X 38
El Slave recibe y procesa la información a través del Port A poniendo de esta manera en movimiento al motor derecho. La asignación de bits se muestra en la Tabla 2.7.
Tabla 2.6 - Bits que son enviados por el Master al Slave indicando el tipo de movimiento a realizar
Port A Slave Dato leído en Hexadecimal DIRECCION RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 Atrás - - X 0 0 0 0 0 0 Adelante lento - - X 1 0 0 0 0 10 Adelante rápido - - X 0 1 0 0 0 8 Diagonal Izquierda - - X 1 1 0 0 0 18 Diagonal derecha X X X 0 0 1 0 0 4 Derecha X X X 1 0 1 0 0 14 Izquierda X X X 0 1 1 0 0 C Alto X X X 1 1 1 0 0 1C
Una vez que el Slave recibe estos bits de control se encarga de procesarlos. Para ello, según se explica posteriormente en el algoritmo de control, se realiza una serie de operaciones matemáticas (principalmente de resta) y se determina si el resultado de una operación ha sido cero o no a través del bit 2 de validación del registro STATUS, determinando así el tipo de movimiento.
2.2 Control del sentido de giro de los motores
El control de la dirección de la silla de ruedas se basa en el sentido de giro de los motores. El circuito de control maneja este parámetro con el estado lógico de 2 bits, uno para cada motor :
Estado lógico alto: 1 ⇒ sentido horario Estado lógico bajo: 0 ⇒ sentido antihorario
Tabla 2.7 - Bits que recibe el Slave desde el Puerto B del Master indicando movimientos
La combinación del estado lógico de los bits, permite realizar a la silla de ruedas los siguientes movimientos: adelante, atrás, derecha e izquierda. En la siguiente tabla se muestra la combinación de bits.
Bit de giro 1 (motor derecho) Bit de giro 2 (motor izquierdo) Movimiento 0 0 Adelante 1 1 Atrás 1 0 Derecha 0 1 Izquierda
El bit de giro 1 es el correspondiente al pin RD2 del Puerto D, el cual se encuentra en el PIC16F877 (Master). Según se puede comprobar en la tabla de asignación de pines del Master, este bit controla la dirección de giro del motor izquierdo
El bit de giro 2 es el correspondiente al pin RC0 del Puerto C, el cual se encuentra en el PIC16F873 (Slave). Se puede comprobar que este bit controla el giro del motor derecho (observar tabla de asignación de pines del PIC Slave).
El cambio de los estados lógicos de los bits de control de giro se genera por el mando manual o por el circuito de voz.
Tabla 2.8 – Bits de
control de giro para los motores
2.3 Control de la velocidad de los motores
Para poder obtener rotaciones lentas o rápidas se hace necesario diseñar un sistema de control que indique a la etapa de potencia la cantidad de energía que debe recibir cada motor. El control de velocidad que utiliza este proyecto se basa en modulación por ancho de pulso (PWM) generada por el PIC Master, a cargo del control del motor izquierdo y la PWM del PIC Slave, a cargo del motor derecho.
Cabe resaltar que es importante controlar adecuadamente la velocidad de arranque y frenado, a fin de evitar movimientos bruscos de la silla de ruedas.
2.3.1 Modulación por ancho de pulso (PWM)
La PWM es una señal de onda cuadrada con una variación en el tiempo de bajada y de subida del pulso dentro un periodo. A esta variable se le denomina duty cycle.
Esta variable se expresa en porcentaje y puede variar de 0 a 100%. De esta forma la variación del porcentaje es directamente proporcional a la potencia que el motor consume.
La principal desventaja del uso de la PWM se debe a la interferencia de frecuencia (IRF). No obstante, este problema se minimiza colocando el generador de PWM (microcontroladores) cerca de los motores. Por otro lado,
se puede reducir la interferencia haciendo uso de cables cortos y además empleando filtros pasa-bajas en las fuentes de alimentación.
Características de la PWM
La frecuencia de la PWM generada es de aproximadamente 900Hz. Este valor está dentro del rango adecuado para el control de los motores empleados. La Figura 2.3 muestra la forma de onda de la PWM, así como los niveles de voltaje tanto en la etapa de control como en la de potencia.
T
T
5 VDC
periodo Duty cycle
24 VDC
periodo Duty cycle
Salida del PIC
Entrada al circuito de potencia
V
V
Figura 2.3 – PWM del sistema de control.
Configuración de la PWM
La generación de la PWM de cada motor es independiente; es decir, el Master se encarga de generar la PWM para el motor izquierdo y el Slave se encarga de generar la PWM para el motor derecho.
Para hacer uso de la señal de PWM es necesario configurar algunos registros11.
a. En principio debe determinarse cual va a ser el periodo de la señal, y de acuerdo a ello, programar el PIC. Esto se logra variando uno de los registros de control -en este caso el PR2 ubicado en el banco 1 del PIC- (para modificar el registro PR2 es necesario acceder al Banco 1).
La fórmula de asignación del valor a colocar en PR2 es :
11
Cfr. PIC16F97X Data Sheet 2003 – Capture/Compare/PWM Modules : pp 57-63 http://www.microchip.com/download/lit/pline/picmicro/families/16f87x/30292c.pdf
(
)
(
)
[
PR Tosc TRMR eescalamiento]
PWM Periodo_ = 2+1 *4 * 2_Pr
(
)
( )
+ = * 4 68640 . 3 1 4 * 1 2 00111 . 0 M PR(
)
( ) ( )
1 2 4 * 4 68640 . 3 * 00111 . 0 PR M − = 2 255=PR 31El valor obtenido para PR2 es 255 en decimal, en hexadecimal FF. Así, se logra programar la frecuencia de la PWM siendo esta de aproximadamente 900Hz, valor adecuado para el tipo de aplicación utilizada. Al disminuir la frecuencia de operación, el giro de los motores no es fluido y al aumentarla se produce el zumbido de los motores, lo cual no indica que estos se traban.
b. El segundo paso de la programación de la PWM es la selección del duty cycle. Para ello, es necesario variar el valor de dos registros: CCPR1L y CCP1CON <5:4>.
El módulo de PWM del PIC tiene 10 bits de resolución disponible, siendo los bits más significativos los del CCPR1L, y menos significativos los bits 5:4 del registro CCP1CON, tal como se muestra en la siguiente tabla.
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
CCPR1L 1 1 1 1 1 1 1 1
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
CCP1CON - - 1 1 X X X X
Tabla 2.9 - Registros de configuración de la PWM
Según lo explicado, al colocar los siguientes valores se logra obtener un duty cycle del 100% :
FFH CCPR1L 3FH CCP1CON
La asignación de los valores correspondientes se hallan mediante la siguiente formula :
La Tabla 2.10 muestra los valores en formato decimal, calculados para todos los duty cycle utilizados en el algoritmo del circuito de control. Duty cycle (%) CCPR1L <7:0> CCP1CON <5:4> Valor decimal 10 00011001 10 102 20 00110011 00 204 30 01001100 10 306 40 01100110 01 409 50 01111111 11 511 60 10011001 01 613 70 10110011 00 716
(
CCPR L CCP CON)
Tosc(
TMR eescalamiento)
PWM Cycle
Duty_ _ = 1 : 1 <5:4> * * 2_Pr
Tabla 2.10 – Asignación de los valores en los Registro de
Control del Duty Cycle de la PWM
Las velocidades que se consideran son de tres tipos: baja, normal y alta que corresponden al duty cycle de 30%, 50% y 70% respectivamente.
c. EL tercer y último paso es configurar el pin RC2 del Puerto C como salida, para que la PWM sea enviada dependiendo del duty cycle que se esté considerando. Sin embargo, sólo se activa en el preciso momento en el cual se envía la PWM.
2.3.2 Rampa de arranque
Mediante el control electrónico se incrementa paulatinamente la cantidad de energía que se les suministra a los motores hasta que tengan la velocidad deseada. Es así que una señal de control en rampa, permite vencer la inercia inicial al efectuar un movimiento estando la silla detenida. La rampa se obtiene haciendo uso de los distintos valores de duty cycle mostrados en la tabla 9.
Los valores de duty cycle utilizados para este efecto van aumentando paulatinamente desde 10% hasta 50%. Sin embargo, cabe señalar que al mover la silla hacia adelante o atrás el duty cycle disminuye a 30%. En cambio, los movimientos hacia la izquierda y derecha mantienen el duty cycle en 50%.
La Figura 2.4 muestra la variación del duty cycle con sus respectivos intervalos de tiempo al ejecutarse una rampa de arranque.
2.3.3 Frenado
Se ha propuesto un proceso de frenado que evita ocasionar problemas en la etapa de potencia debido a los cambios bruscos de velocidad. Esto ocurre si, por ejemplo, la silla de ruedas está movilizándose hacia adelante y repentinamente el usuario cambia el sentido de giro de los motores en dirección contraria al movimiento original. Este cambio brusco generará picos de corriente que dañan la etapa de potencia.
Cada vez que se envía una orden de frenado a los motores se genera una rampa decreciente, es decir, se hace variar el duty cycle de 50% a 0% hasta desactivar la PWM. La Figura 2.5 muestra el proceso de frenado con sus respectivos retardos.
Figura 2.4 – PWM con rampa de arranque.
5 VDC 10% V 20% 30% 40% 50% Retardo de 0.15S Retardo de 0.15S Retardo de 0.15S Retardo de 0.15S Retardo de 0.5S T 35
Cabe señalar que en la práctica se ha podido comprobar que el tiempo de frenado no es instantáneo y depende en mayor medida de la inercia del movimiento que tiene la silla. Por tanto, la rampa de frenado no genera mucho efecto en la velocidad de los motores una vez que el duty cycle es de 0%; sin embargo, los retardos protegen a los motores.
En el algoritmo del PIC Master se ha considerado un retardo de 2 segundos. La ocurrencia o no ocurrencia de este retardo depende del estado lógico de una variable creada por software denominada variable1 (de 8 bits) que cambia de estado al detectar un cruce por cero . No obstante, sólo se utilizan dos bits (0 y 1) a manera de flags 12.
El bit designado como 0 se utiliza para indicar si la silla se ha movido. En este caso, cuando se ordene el comando “parar” se realizará un retardo de 2 segundos antes de que se ordene otro movimiento.
12
Este termino se refiere a las banderas de estados que se utilizan generalmente en la mayoría de registros de control.
Figura 2.5 – PWM con Rampa de frenado.
T 5 VDC 10% V 30% 50% Retardo de 0.15S Retardo de 0.15S Desactivación de la PWM 36
El bit designado como 1 se utiliza para indicar si la silla tiene un movimiento diagonal, en este caso también se realizará el retardo.
2.3.4 Movimiento en curvas (diagonales)
La variación del duty cycle de un motor, al girar ambos motores hacia un mismo sentido, permite darle otra propiedad a la silla de ruedas. En este caso, la silla puede moverse en curvas sin necesidad de parar y girar sobre su propio eje para cambiar de dirección.
El movimiento diagonal se logra cuando se entrega menor velocidad a uno de los motores, mientras que el otro motor permanece con la velocidad normal. Para este proyecto se ha visto suficiente incluir este movimiento solamente cuando la silla esté avanzando hacia adelante, pues en el caso de retroceso no tendría mucha importancia.
La Tabla 2.11 muestra los movimientos en curva que puede realizar la silla de ruedas al combinarse los bits de control y el duty cycle de cada motor cuando estos están girando en sentido horario (hacia adelante).
Motor derecho Motor izquierdo Movimiento
Bit de giro 1 Duty cycle 1 Bit de giro 2 Duty cycle 2
0 0.5 0 0.5 Adelante
0 0.5 0 0.2 Adelante en curva
izquierda
0 0.2 0 0.5 Adelante en curva
derecha
Tabla 2.11 – Duty Cycle’s que generan los movimientos en curvas
Este tipo de movimiento sólo puede ser empleado al dirigir la silla de ruedas mediante el control manual. Para el control por voz no se ha incluido el movimiento diagonal por requerir de mayor tiempo de respuesta.
La Figura 2.6 muestra el tipo de rampa que se genera cuando se utiliza un movimiento en curva, ya sea para la derecha o bien para la izquierda. En este movimiento un solo motor disminuye su velocidad mientras que el otro permanece constante.
Figura 2.6 – Rampa del movimiento en curva. Velocidad de un motor (B)
permanece constante mientras que el otro (A) disminuye su velocidad. 30% Retardo de 0.15S T 5 VDC 10% V 20% 5 VDC V T 30% MOTOR A MOTOR B 38
2.3.5 Aumento y disminución de velocidad de los motores
La velocidad de la silla de ruedas se disminuye modificando el duty cycle de la PWM. En este proyecto sólo se considera el incremento de velocidad para el movimiento frontal de la silla. Esta función puede ser activada por el comando manual o por las señales que provienen del circuito de voz.
Tanto el incremento y decremento de velocidad se logra con la variación paulatina del duty cycle en rampas. Para el caso del aumento de velocidad, la variación del porcentaje del duty cycle va del 30% a 70% en un tiempo de 0.45 s. El decremento de velocidad tiene un duty cycle que va de 70% a 30% en un tiempo de 0.45 s. En la Figura 2.7 se observan estas variaciones.
Figura 2.7 – Rampas de velocidad. La superior e inferior muestran el
incremento y decremento de la velocidad respectivamente. 40% 5 VDC V 50% 60% 70% T 60% 5 VDC V 50% 40% 30% T Retardo de 0.15S Retardo de 0.15S Retardo de 0.15S Retardo de 0.15S Retardo de 0.15S Retardo de 0.15S 39
No obstante, cabe indicar que al igual que en el proceso de frenado, la inercia que tiene la silla de ruedas influye en el tiempo de respuesta del aumento y reducción de velocidad. Por lo tanto, la silla de ruedas sólo tendrá dos velocidades de avance: velocidad normal con un duty cycle de 30% y una velocidad alta con un duty cycle de 70%. El valor exacto de esta velocidad en m/s depende del peso del usuario que haga uso de la silla de ruedas. En el capítulo 4 se muestra la variación de la velocidad con usuarios de pesos distintos.
2.4 Mando manual (Joystick)
Este es el dispositivo que permite controlar manualmente el sistema. Gracias a él se logra que la silla de ruedas se mueva en todas las direcciones e inclusive lograr que la velocidad de desplazamiento aumente de ser necesario.
Este dispositivo se encarga de enviar las señales de control al PIC Master, el cual las procesa según se indica en el algoritmo de control.
La Tabla 2.12 muestra los movimientos que el mando manual permite desarrollar, mientras que la Figura 2.8 muestra el desplazamiento que puede desarrollar la silla de ruedas.
Movimientos permitidos Adelante lento Adelante rápido Diagonal derecha Diagonal Izquierda Atrás Derecha Izquierda Rápido Lento Alto
Tabla 2.12 – Movimientos posibles de la silla de ruedas
Silla de ruedas vista desde arriba
Diagonal derecha Diagonal izquierda Derecha Izquierda Atrás Adelante Lento / Rápido
Figura 2.8 – Orientación de las ruedas de la silla.
El control manual es un joystick de video juego, el cual se adaptó al proyecto. Para poder usar el joystick se deshabilitaron todas las salidas de control y se cablearon los contactos mecánicos con unas resistencias conectadas directamente al PIC Master, dispuestas en forma de pull-ups y alimentadas por un voltaje de 5 VDC.
La Figura 2.9 muestra la vista lateral del mando manual, así como la disposición de este en la silla de ruedas. En esta figura se indica la ubicación exacta de los pulsadores de velocidad y la bocina eléctrica.
Figura 2.9 – Vista lateral del mando manual (Joystick).
Pulsador de velocidad Pulsador de bocina
eléctrica
2.4.1 Asignación de puertos
Las señales de control son enviadas al PIC Master de acuerdo a la Tabla 2.13. Señales enviadas por el mando manual Pines de control PIC Master Velocidad RA3 Izquierda RA4 Derecha RA5 Atrás RE0 Adelante RE1
Obsérvese que el Master recibe las señales de control a través del Puerto A y el Puerto E. El algoritmo realiza una serie de validaciones para verificar el tipo de movimiento señalado en la Tabla 2.12, así como las posibles combinaciones como es el caso del movimiento en diagonal hacia la derecha e izquierda.
El movimiento en diagonal derecha se da cuando los pines RE1 y RA5 se encuentran en estado lógico igual a “1”. Del mismo modo, el movimiento diagonal izquierda se da cuando los pines RE1 y RA4 se encuentran en estado lógico igual a “1”.
Tabla 2.13 – Asignación de salidas del mando
manual y bits de entrada del PIC Master.
2.4.2 Función y uso del mando manual
El PIC Master es quien procesa las señales del mando manual con la finalidad de generar el movimiento. Cabe resaltar que al realizar cada uno de los movimientos, el sistema valida si el siguiente está permitido o no. La Tabla 2.14 muestra las validaciones que el sistema tiene.
Comando Anterior Comando Actual Movimiento que realiza la silla
Alto13 Adelante Adelante
Adelante Rápido Adelante R
Adelante R Atrás Alto
Alto Atrás Atrás
Atrás Derecha Alto
Alto Derecha Derecha
Derecha Izquierda Alto
Alto Izquierda Izquierda
Izquierda Atrás Alto
Alto Atrás Atrás
Atrás Adelante Alto
Alto Adelante Adelante
Adelante Adelante + Derecha14 Diagonal Der
Adelante + Derecha Adelante Alto
Alto Adelante Adelante
Adelante Adelante + Izquierda Diagonal Izq
Adelante + Izquierda Izquierda Alto
Alto Izquierda Izquierda Izquierda Izquierda + Adelante Izquierda
Izquierda Derecha Alto
13
Automáticamente el sistema genera este estado al inicializar el mando manual.
14
Se genera movimiento diagonal debido a la previa activación del movimiento adelante.
Tabla 2.14 – Señales generadas por el circuito de control al
manipular el mando manual
44
Alto Derecha Derecha
Derecha Derecha + Adelante15 Derecha
Nótese que al cambiar bruscamente la dirección de desplazamiento de la silla, el sistema protege al circuito haciendo que los motores se detengan durante 2 segundos para luego permitir se genere el movimiento deseado.
El movimiento en curvas sólo se genera cuando previamente ha sido activado el comando adelante. De no ser así, la función diagonal no se activa.
La Figura 2.10 muestra los movimientos contemplados en la programación y que pueden efectuarse mediante uso del joytick.
15
En este caso no se genera movimiento diagonal pese a estar activados los comandos adecuados para generarlo. Esto de debe al que el sistema no detectó previamente el movimiento hacia adelante sino luego de haber generado el movimiento hacia la derecha.
Tabla 2.14 – Continuación
45
2.5 Sensores de presencia
La silla de ruedas posee un sistema de seguridad a fin de evitar que al movilizarse el usuario colisione con un obstáculo hacia adelante o atrás.
Este sistema de seguridad está compuesto por dos sensores infrarrojos16 en la parte frontal y posterior de la silla de ruedas. Las principales características de estos sensores son las siguientes:
• Voltaje de alimentación 10 - 30 Vdc. • Led indicador de activación de sensor. 16 Cfr. Sensores Banner, 2002
1
1+2
1+4
Movimientos normales (adelante ,derecha, izquierda e izquierda) Movimientos en curvas (diagonal derecha y diagonal izquierda)2
4
3
1
Figura 2.10 – Movimientos permitidos por el mando manual.
46
• Led indicador de presencia de obstáculo.
• Distancia de detección de obstáculo máxima de 60 cm aprox.
Este proyecto utiliza la configuración normalmente cerrada, en donde al no existir ningún obstáculo el sensor envía constantemente al sistema de control un voltaje mayor a cero. Este voltaje es igual al voltaje de alimentación del sensor, por tal motivo es necesario realizar un divisor de voltaje para poder obtener 5 voltios (“1” lógico) y de esta manera poder enviar la señal al PIC
Señal que determina presencia de obstáculo
Señales de control y alimentación del sensor Indicadores de activación
y presencia
Figura 2.11 – Sensor de presencia de la silla de ruedas y configuración electrónica. En donde :
bu es el cable azul del sensor ( tierra )
bn es el cable marrón del sensor ( voltaje + )
bk es el cable negro del sensor ( modo de operación normalmente cerrado)
wh es el cable blanco del sensor ( modo de operación normalmente abierto )
Master. El master recibe la señal de control del sensor frontal a través del pin RA0 y la señal del sensor trasero por el pin RA1. Es por ello que se coloca un divisor de voltaje a la salida de la señal del sensor, para disminuir el voltaje de 12 VDC a 5VDC.
Esta señal es enviada a una compuerta inversora TTL 7404 con el fin de hacerla más estable y eliminar cualquier interferencia en la señal de los sensores. La Figura 2.12 muestra la configuración realizada.
Uso de sensores
La activación de los sensores se realiza manualmente. Al activarlos, se envía al pin RA2 del PIC Master una señal de control indicando que debe comenzar a leer los bits de control de estado de cada uno de los sensores.
Figura 2.12 - Sensor de presencia utilizado y adaptación al
sistema de control.
A B
C
En donde :
A es divisor resistivo que
permite conseguir 5 V
B es el inversor colocado
para aislar los circuitos
C, estado lógico “1” ó “0”
que le llega al Master, con el cual se determina la
presencia de obstáculos. *Ambos sensores
finalmente envían este tipo de señal a los pines RA0 y RA1
En la práctica, se determina que no es necesario colocar sensores a los lados de la silla de ruedas por no existir la posibilidad de traslación hacia los costados. Es por ello que la silla se ruedas cuenta con tan solo protección delantera y posterior.
Las Figuras 2.13 y 2.14 muestran la ubicación de los sensores de presencia en la parte frontal y posterior de la silla de ruedas.
2.6 Control por voz
Como se indicó en un principio, el PIC Master se encarga de procesar las señales provenientes del circuito de voz. De acuerdo a una tabla de asignación, el Master determina a qué comando de voz pertenece cada dato, y a su vez, transmitirle al PIC Slave la orden respectiva.
Figura 2.13 – Sensor de presencia
posterior. Evita la silla de ruedas choque al retroceder.
Figura 2.14 – Sensor de presencia
frontal. Es plegable y evita golpes frontales.
Sensor de presencia. Sensor de presencia.
Tabla 2.15 – Conversión de los
comandos del circuito de voz por el PIC Master
Figura 2.15 – Rutina de recepción de datos. Circuito de Voz Direct Voice 364 Señales de Voz del usuario VOZ 1 VOZ 2 VOZ 3 PIC MASTER (Variable2) Aislamiento Óptico
La Tabla 2.15 muestra los comandos del circuito de voz y los datos que procesa el PIC Master.
Para poder procesar los datos provenientes del circuito de voz se ha programado una rutina de recepción que transforma los datos binarios del chip de voz y los almacena la variable que el algoritmo registra como variable2 . La Figura 2.15 muestra el proceso de recepción.
Comandos del circuito de
voz
Datos que procesa el PIC Master ADELANTE 0 ATRÁS 1 DERECHA 2 IZQUIERDA 3 ALTO 6 RÁPIDO 4 LENTO 5 50
Tabla 2.16 – Conversión de
binario a hexadecimal (Rutina Recepción de datos)
El circuito de voz está alimentado por una fuente distinta a la del circuito de control, es por ello que a fin de evitar interferencias, las señales del circuito de voz pasan a través de un aislamiento óptico (optocopladores).
Este aislamiento le da mayor protección a los circuitos de control ante posibles sobrecargas en la etapa de potencia.
La Tabla 2.16 resume los resultados que finalmente el PIC Master procesa.
CIRCUITO DE VOZ PIC MASTER (Variable 2) VOZ 3 VOZ 2 VOZ 1
0 0 0 0 0 0 1 1 0 1 0 2 0 1 1 3 1 0 0 4 1 0 1 5 1 1 0 6
2.6.1 Control por voz con sensores
Para tener mayor protección frente a algún error en el manejo de la silla de ruedas, se ha dispuesto utilizar los sensores de presencia a criterio del usuario al dirigir la silla de ruedas mediante el control por voz.
En este caso, el PIC Master no sólo tendrá que procesar los datos que transmite el circuito de voz, sino que también tendrá que hacer una lectura constante de los sensores de presencia frontal y posterior. Éstos sólo
generaran paradas de emergencia cuando se haya ordenado el comando “adelante” o “atrás” y se haya detectado algún obstáculo.
2.7 Algoritmo Master - Slave del circuito de control
El sistema de control trabaja bajo el mando de dos microcontroladores: uno Maestro (Master) y uno Esclavo ( Slave) que es dependiente del primero. Estos microcontroladores se encargan de procesar la información proveniente del control manual, de los sensores y del circuito de voz -según convenga- para poder transmitir los datos de dirección y giro al circuito de potencia.
El algoritmo de control, tanto para el PIC Master como para el PIC Slave, se desarrolla con una programación a bajo nivel: Assembler, esta permite optimizar la velocidad de procesamiento de la información.
Los algoritmos de control del PIC Master y el PIC Slave realizan, en conjunto, las siguientes tareas de control y funcionamiento de la silla de ruedas:
1. Modo mando manual: bajo esta modalidad el usuario puede tomar el control de la silla utilizando sólo el mando manual. En este caso, el usuario tiene la facultad de moverse hacia cualquier
dirección: sobre su propio eje, avanzar y voltear en curvas, y además, aumentar y disminuir la velocidad hacia adelante.
2. Modo mando manual con sensores: bajo esta modalidad el usuario puede tomar el control de la silla sólo con el mando manual. Sin embargo, en este caso, se tiene la particularidad de no colisionar con posibles obstáculos ubicados tanto en la parte frontal y posterior, ya que el movimiento es inhabilitado si hay algún objeto interponiéndose en una de estas direcciones. Es este caso se ha suprimido el control de velocidad y de avance en curvas.
3. Modo de control por voz: bajo esta modalidad el usuario puede tener control de la silla de ruedas únicamente con señales de voz propias, habiendo sido estas grabadas con anterioridad. En este caso puede tener el control de velocidad y de dirección (se ha suprimido el avance de curvas).
4. Modo de control de voz con sensores: bajo esta modalidad el usuario puede tener control de la silla de ruedas -como el caso anterior-, y además no chocarse al avanzar o retroceder, ya que sus sensores de presencia están activados.