Вы находитесь на странице: 1из 115

UNIVERSIDAD NACIONAL

G')
"PEDRO RUIZ GALLO"
)>

S FACULTAD DE CIENCIAS FÍSICAS


14
Y MATEMÁTICAS
4fatn\
ESCUELA PROFESIONAL DE INGENIERÍA ELECTRÓNICA

, ,
DISEÑO DE UN SISTEMA DE CONTROL, MONITOREO Y
SEGURIDA-D PARA MEJORAR lAS ETAPAS DE UN
MODELO DE SILLA DE RUEDAS Pi10TORIZADA PARA
DISCAPACITADOS - HOSPITAl REGIONAllAMBAYEQUE
~ ~

TESIS
PARA OPTAR El TÍTUlO PROFESIONAL DE
INGENIE O LECTRÓNICO

PRESENTADO POR:
MANRIQUE ARANCIBIA, ROGER DENNIS
ESCOBAR MURO, MiGUEL ANGEL

ASESOR
ING. VICTOR JARA SANDOVAL

LAMBAYEQUE- PERÚ
2016
UNIVERSIDAD NACIONAL
PEDRO RUIZ 'GALLO

FACULTAD DE CIENCIAS FÍSICAS Y MATEMÁTICAS

ESCUELA PROFESIONAL DE INGENIERÍA ELECTRÓNICA

DISEÑO DE UN SISTEMA DE CONTROL, MONITOREO Y


SEGURIDAD PARA MEJORAR LAS ETAPAS DE UN
MODELO DE SILLA DE RUEDAS MOTORIZADA PARA
DISCAPACITADOS- HOSPITAL REGIONAL LAMBAYEQUE

TESIS
PARA OPTAR EL TÍTULO PROFESIONAL DE:
INGENIERO ELECTRÓNICO

PRESENTADO POR:

MANRIQUE ARANCIBIA, ROGER DENNIS


ESCOBAR MURO, MIGUEL ANGEL

ASESOR
ING. VICTOR .JARA SANDOVAL

LAMBAYEQUE- PERÚ
2016
2

UNIVERSIDAD NACIONAL
PEDRO RUIZ GALLO

FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS

ESCUELA PROFESIONAL DE INGENIERÍA ELECTRÓNICA

DISEÑO DE UN SISTEMA DE CONTROL, MONITOREO Y


SEGURIDAD PARA ME~ORAR LAS ETAPAS DE UN
MODELO DE SILLA DE RUEDAS MOTORIZADA PARA
DISCAPACITADOS· HOSPITAL REGIONAL LAMBAYEQUE

TESIS
PARA OPTAR EL TÍTULO PROFESIONAL DE:
INGENIERO ELECTRÓNICO

SUSTENTADA POR:

MANRI~BIA, AUTOR
ROGER DENNIS

APROBADA POR:

ING.MANUEL .JAVIER RAMIREZ CASTRO


PRESIDENTE
!fl
ING.CARLOS LEONARDO OBLITAS VERA
SECRETARIO

ING. VICTOR OLEARIO .JARA SANDOVAL


ASESOR

¡?-(¿e'-~~
lng. Hugo JaviffChic/ayo Padilla
~· DIRECTOR ESCUELA PROF. DE
INGENIERIA ELECTftONICA
3

DEDICATORIA

Con mucho amor a las personas más importantes

en mi vida, que siempre me brindaron su apoyo y

estuvieron conmigo en todo momento, para así yo

hiciera posible que logrará todos mis sueños, con

todo mi cariño para ustedes: papá y mamá.

Roger Dennis

Con todo mi cariño y mi amor para las personas que


hicieron todo en la vida para que yo pudiera lograr
mis sueños, por motivarme y darme la mano cuando
sentía que el camino se terminaba, a ustedes por
siempre mi corazón y mi agradecimiento: papá y
mamá.

Miguel Ángel
4

AGRADECIMIENTOS

En primer lugar a Dios, por darnos ese tesoro más hermoso que puede existir,

como es la vida. Y por darnos esa fortaleza para seguir adelante en busca de

nuestras aspiraciones y/o metas que nos hemos propuesto en los diferentes

aspectos de nuestras vidas.

A nuestros padres, por ese apoyo incondicional para con nosotros, por sus

consejos y aliento que nos brindan día a día, sobre todo en esos momentos más

difíciles.

A nuestros amigos, por darnos ánimos y su ayuda para realizar este proyecto.

Al ingeniero Víctor Oleario Jara Sandoval quien nos brindó su asesoría en la

preparación de este informe y que con paciencia y buena voluntad atendió


amablemente a nuestras inquietudes y/o consultas.

Los autores
S

HOMENAJE PÓSTUMO AL INGENIERO VÍCTOR JARA SANDOVAL

Unos de los sentidos más profundos del ser humano es el de trascender más allá de la
mera existencia terrenal. Todos buscamos de distintas maneras alcanzar este sentido.
Entre quienes en verdad lo logran existen siempre dos atributos que les son comunes: el
amor que imponen en todo lo que emprenden y la honestidad con que rigen su conducta
en todo momento.

Hoy rendimos homenaje a uno de esos hombres, a un ilustre ingeniero lambayecano y


amigo, cuya obra ha trascendido su tiempo y su espacio, un hombre de bien, un visionario,
un maestro de saber y tesón, un dirigente, un hombre inagotable en cualidades.

La vida solo tiene utilidad si cada día la trocamos por algo de valor. Siendo el recurso más
valioso que poseemos, un recurso irrecuperable, no renovable, la clave para aprovecharlo
esté en decidir si vamos a invertirlo o a derrocharlo ... Y el ingeniero Víctor Jara sí que supo
invertirlo día a día.

A lo largo de su muy fructífera vida, el amigo y profesor Víctor Jara Sandoval, el ingeniero,
el científico, el humanista, el servidor público, el dirigente de la escuela profesional de
ingeniería electrónica de la Universidad Nacional Pedro Ruiz Gallo, y sobre todo su
capacidad de ser y hacer amigos, supo encontrar los caminos para construir con amor y
honestidad un espléndido legado que mantendrá viva su memoria y permanente gratitud
por su generosidad. Este legado incluye desde luego haber llegado a la Universidad
Nacional Pedro Ruiz Gallo como ingeniero electrónico, y ser uno de los impulsadores de
esa moderna carrera profesional para su tiempo, asimismo colaboró en solucionar las
innumerables dificultades de sus alumnos en su especialidad y posteriormente liderar la
Jefatura de la escuela profesional de ingeniería electrónica con eficiencia, responsabilidad
y cariño a sus alumnos y colegas. Amante de la puntualidad como pocos y del desarrollo
de su escuela profesional.

En nuestra calidad de egresados de la escuela profesional de ingeniería electrónica de la


Universidad Nacional Pedro Ruiz Gallo, y como alumnos y futuros colegas, damos fe, que
nuestras vidas se vio' enriquecida por el contacto directo con él, rendimos homenaje a
este hombre excepcional, cuyo legado vivirá por siempre en sus contribuciones a la
ingeniería y docencia de nuestra universidad y de la Región del Norte del país. Homenaje
póstumo que expresamos, en nombre de todos los alumnos y amigos de trabajo. Gracias
una vez más Maestro. Descansa en Paz.

Gracias.

Los Autores
6

RESUMEN

Se investigará, estudiará y mejorará el funcionamiento de las etapas de un modelo


de silla de ruedas motorizada para discapacitados, asegurándonos de lograr una
óptima interacción con las personas a las cuales están destinadas, utilizando
materiales de bajo costo, de fácil accesibilidad para cualquier persona y disponibles
en la mayoría de tiendas electrónicas locales.

El núcleo principal del proyecto será el microcontrolador STM32F103RBT6


perteneciente a la familia Arm cortex M3 el cual se encargará de hacer la
comunicación con los diferentes periféricos que la componen y de la comunicación
entre la etapa de potencia y la etapa de control.

Básicamente el sistema esta alimentado por dos baterías de 12v. Cada una, las
cuales hacen girar a dos motores del tipo A9Y1X00272, de 24v. , 15A y con una
revolución de 172 RPM cada uno, a continuación se encuentra la etapa de
potencia, que básicamente su función es controlar los movimientos de Jos motores,
donde se utilizaron principalmente transistores (IRFP150N), integrados (IR2112),
reguladores de voltaje y componentes menores.

En la etapa de control, que es la parte que interactúa con el usuario, se utiliza una
pantalla táctil (en la que se encuentran los diferentes menús), un control de
videojuegos (joystick) y un bluetooth; la comunicación puede ser de dos modos:
comunicación manual y comunicación de manera remota (bluetooth), con un rango
de 15 metros. Cabe señalar que la comunicación vía bluetooth es controlada por un
Smartphone, el cual utiliza un software, en nuestro caso es el programa App
inventor.

Por último, podemos dar cuenta de las ventajas de las nuevas aplicaciones que se
le ha añadido a la silla eléctrica, como la comunicación vía bluetooth, un mejor
control de velocidad, tratando de lograr una calidad de vida más plena para
aquellas personas que cuenten con cierta discapacidad.

Contribuyendo de esta manera así a la mejora de la sociedad.


7

ABSTRACT

We investigate, study and improve the functioning of the stages of a model of scooter for
disabled, ensuring optimal interaction · with the people they are intended, using
inexpensive materials, easily accessible for anyone and available in most local electronic
stores.

The core of the project will be the microcontroller STM32F103RBT6 belonging to the
family ARM Cortex M3 which was to be undertaken to make communication with
peripherals that compase and communication between the power unit and the control
stage.

Basically the system is powered by two 12V batteries. Each, which rotate two motors
A9Y1X00272 type 24v. lSA and a revolution of 172 rpm each, then is the power stage,
which basically their function is to control the movements of the engines, which mainly
transistors (IRFPlSON), integrated (IR2112), voltage regulators used and minar
components.

In the control stage, which it is the part that interacts with the user, a touch screen (which
are different menus), video game control üoystick) and a Bluetooth used; communication
can be of two modes: manual and remate communication (Biuetooth), with a range of 15
meters. lt notes that Bluetooth communication is controlled by a smartphone, which uses
software in our case is the App Inventor program.

Finally, we can realize the benefits of new applications has been added to the electric
chair, as communication via Bluetooth, better speed control, trying to achieve a quality of
lite more fulfilling for those who have sorne disability.

And thus contributing to the improvement of society.


fWwrns¡oftñ·¡;;:¡nm;;~'t¡¡m;i'm~üt,.,;
~ OF!CH·U, Cf:I.!TRAL Dí: 8iUU01l':CA
f;_~-:.,_._~.,.::~:~~~i.~:~~~ ~ ?~.~:~. ~~~~-~~!:~-~. ~=~ ~~~-t 8
f~ ,¡
¡) ....... .,. ... _,,,-~..,_,. ..~.·~··· ·. . .·~ ....... -·· ~·· ·--~.,. .. _.

IN DICE

~~;~',~~Sii'ZJ}i;':fé~
Dedicatoria .......................................................................................................................................................3

Dedicatoria .........................................................·.............................................................................................4

Agradecimientos .............................................................................................................................................4

Homenaje póstumo al ingeniero Víctor Jara Sandovai ...............................................................................S

Resumen ..................... .-.....................................................................................................................................6

Abstrae ..............................................................................................................................................................7

l. ASPECTOS GENERALES ........................................................................................................................14

1.1. Generalidades de la empresa .....................................................................................................14

1.1.2Situación Problemática ......................................................................................................14

1.2. Diagnóstico de la situación actual.. ........................................................................................... 15

1.3. Delimitación del proyecto ..........................................................................................................15

1.3.1. Formulación del problema ............................................................................................... 15

1.3:2. Hipótesis............................................................................................................................. 15

1.3.3. Objetivos ............................................................................................................................. 15

1.3.3.1. Objetivo General .................................................................................................. 15

1.3.3.2. Objetivos Específicos ........................................................................................... 16

1.3.4. Justificación e importancia ............................................................................................... 16

11. MARCO TEORICO .................................................................................................................................. 17

2.1. Sistemas de control ..................................................................................................................... 17

2.2. Control Proporcional ................................................................................................................... 19

2.3. Sensores electrónicos .................................................................................................................. 19

2.3.1 Características de un sensor ............................................................................................. 19

2.3.2 Tipos de sensores ............................................................................................................... 21

2.4. Actuadores .....................................................................................................................................23

2.4.1 Actuadores electrónicos .................................................................................................... 23

2.5. Técnicas de control de velocidad de motores ......................................................................... 23

2.5.1 Dispositivos Semiconductores de Potencia .................................................................. 23

2.5.2 Convertidores de la Energía Eléctrica ............................................................................ 23

2.5.2.1 Aplicaciones .......................................................................................................... 24

111. HADWARE ..................................................................................................................................................26

3.1. Descripción de un modelo de silla de ruedas convencional (chasis) ..................................... 26


9

3.1.1 Silla de ruedas eléctrica .................................................................................................... 26

3.1.2 Tipos de sillas de ruedas ..................... ;.............................................................................. 26

3.1.3 Diagrama de bloques de modelo de silla motorizada .................................................. 27


3.2. Placa de Evaluación STM32-H103 .............................................................................................. 28

3.2.1. Historia .............................................................................................................................. 28

3.2.2. El Core Cortex-M3 ............................................................................................................ 30

3.2.3. Características Técnicas ................................................................................................... 32

3.2.4. Microcontrolador............................................................................................................... 35

3.2.5.Mapa de memoria ............................................................................................................... 36

3.2.6.Esquema eléctrico STM32H103 ......................................................................................... 37

3.2.7. CMSIS ................................................................................................................................... 37

3.2.8. Librerías............................................................................................................................. 39

3.2.9. ARM-JTAG Wiggler ........................................................................................................... 43

IV. Software ................................................................................................................................................ 47

4.1. lntroducción ...................................................................................................................................47

4.2. Keil uVision4 ................................................................................................................................. 47

4.2.1. MDK-ARM ...................................................................................................................... 47

4.2.2. Conceptos de las ventanas de diseño .........................................................................48

4.2.3. Redistribución de la zona de trabajo .......................................................................... 49

4.2.4. Modos de uVision ......................................................................................................... 50

4.2.5.Barra de menú de herramientas .................................................................................... 51

4.2.6. Ventana de proyecto .................................................................................................... 51

4.2.7. Ventana de Edición .......................................................................................................52

4.2.8. Editor de configuración ............................................................................................... 53

4.2.9. Ventanas de Salida ....................................................................................................... 53

4.2.10. Ayuda en Línea ............................................................................................................ 54

4.3. H-JTAG .......................................................................................................................................... 55


4.3.1. Configuración ............................................................................................................... 55

4.3.2. Depurando un Programa ............................................................................................. 57

4.4. App inventor.................................................................................................................................. 64

4.S.Programa .......................................................................................................................................... 70
10

V. DESARROLLO DEL PROYECTO................................................................................................................ 86

5.1. Introducción ...................................................................................................................................... 86

5.2. Diseño y construcción del hardware ............................................................................................. 87

5.2.1. BATERIAS..................................................................................................................................87

5.2.2. MOTORES.................................................................................................................................87

5.2.3. Etapa de potencia ...................................................................................................................89

5.2.4. Etapa de control.. .................................................................................................................. 97

VI. RECUPERACIÓN DE LA INVERSIÓN ......................................................................................................... 110

6.1. Gastos totales del proyecto ................................................................................................................. 110

VII.CONCLUSIONES .........................................................................................................................................111

VIII. RECOMENDACIONES............................................................................................................................. 112

IX. REFERENCIAS BIBLIOGRAFICAS.. :............................................................................................................113

BIBLIOGRAFÍA................................................................................................................................................. 113

GLOSARIO....................................................................................................................................................... 114
11

INDICE DE FIGURAS

1.1. Ubicación geográfica de El Hospital Regional Lambayeque ............................................................14

2.1. Modo conceptual del funcionamiento de un sistema de control .................................................. 17

2.2. Esquema general de un Sistema de Control ....................................................................................18

3.1. Chasis de silla de ruedas motorizada .................................................................................................26

3.2. Chasis de silla de ruedas motorizada de tracción trasera............................................................ 27

3.3. Placa de Evaluación STM32-H103 ..................................................................................................... 28

3.4. Arquitectura Arm .................................................................................................................................31

3.5. Placa de evaluación empleada, con todos los periféricos que la componen .............................. 33

3.6. Diagrama de Bloques del microcontrolador STM32-H103 ............................................................ 34

3. 7. Microcontrolador STM32-H103 .........................................................................................................35

3.8. Mapa de Memoria ...............................................................................................................................36

3.9. Esquema Eléctrico STM32H103 ........................................................................................................ 38

3.10. Interface estándar del software cortex microcontroller (CMSIS) .............................................. 39

3.11. STM32L1xx Standard Peripherals library....................................................................................... 40

3.12. STM32Llxx USB library ......................................................................................................................41

3.13. Pines jtag (pruebas de puertos de acceso) .................................................................................... 44

3.14. Esquema Eléctrico ARM-JTAG Wiggler.......................................................................................... 45

3.15. ARM-JTAG Wiggler............................................................................................................................ 45

4.1. Keil uVision4..........................................................................................................................................46

4.2. Ventana principal MDK-ARM ..............................................................................................................47

4.3. Áreas de trabajo ....................................................................................................................................48

4.4. Reorganización de ventanas ...............................................................................................................50

4.5. -Barra de menú y de herramienta ...................................................................................................... 51

4.6. Ventana de proyecto .......................................................................................................................... 52

4.7. Ventana de edición ..............................................................................................................................52

4.8. Dialogo de configuración .....................................................................................................................53

4.9. Ayuda en línea ..................................................................................................................................... 54

4.10. Lanzar el software H-JTAG ............................................................................................................... 55

4.11. H-JTAG Server .................................................................................................................................... 56

4.12. Opciones LPT JTAG ........................................................................................................................... 57

4.13. Configurar H-JTAG con uVision ....................................................................................................... 57

4.14. Ventana Too1Conf..............................................................................................................................58

4.15. Mensaje de configuración de uVision4.......................................................................................... 58

4.16. Opción Debug .................................................................................................................................... 59

4.17. Opción Utilities.................................................................................................................................. 59


12

4.18. Menú flash ........................................:...................................................................................................60

4.19. H-Fiasher.................................................................;.............................................................................60

4.20. Opción de programación ....................................................:............................................................... 61

4.21. Ventana de Depuración ......................................................................................................................62

4.22. Ventana de Hyperterminal .................................................................................................................63

4.23. Ventana de confirmación de desconexión .......................................................................................63

4.24. Ventana para guardar la sesión de comunicación ..........................................................................64

4.25. primera pantalla de diseño en App ...................................................................................................64

4.26. Visor de App inventor .........................................................................................................................65

4.27. Teclas de nuestra aplicación ..............................................................................................................66

4.28. Control en el móvil ..............................................................................................................................67

4.29. Declaración de librerías y variables ..................................................................................................71

4.30. RCC_Configuration ..............................................................................................................................72

4.31. GPIO_Configuration ............................................................................................................................73

4.32. DMA_Configuration ............................................................................................................................74

4.33. ADC_Configuration .............................................................................................................................75

4.34. NVIC_Configuration ............................................................................................................................76

4.35. Void HW_Init (void) .............................................................................................................................77

4.36. Void Timer_OS (void) ..........................................................................................................................77

4.37. Void Timer_3 (void) .............................................................................................................................78


4.38. Void Timer_2 ........................................................................................................................................78
4.39. Void USART_Configuration1 (void) ...................................................................................................79
4.40. Declaración de librerías y variables ..................................................................................................80

4.41. Función main ........................................................................................................................................80

4.42. App_TaskStart () ..................................................................................................................................81


4.43. App_TaskCreate ...................................................................................................................................81

4.44. AppTaskUseriF ......................................................................................................................................82

4.45. AppTaskKbd ..........................................................................................................................................82


4.46. AppTaskAdc ..........................................................................................................................................83

4.47. Modo de temporizador .......................................................................................................................83

4.48. Definición de variables ........................................................................................................................84

4.49. Gama de colores ..................................................................................................................................84

4.50. Datos de los pixeles .............................................................................................................................85

4.51. Mapa de bits .........................................................................................................................................85

5.1. Diagrama general ...................................................................................................................................86

5.2. Baterías de la silla eléctrica ..................................................................................................................87

5.3. Motores tipo A9Y1X00272 ...................................................................................................................88

5.4. Especificaciones técnicas del motor...................................................................................................88

S.S. Etapa de potencia de motor derecho, donde IR_ H e IR_L son las salidas de los IR2112 ...........89
13

5.6. Etapa de potencia de motor izquierdo, donde IR_ H e IR_L son las salidas de los IR2112 ......... 90

5.7. Adaptación de voltajes ..........................................................................................................................90

5.8. Vista lateral de los MOSFET IRFP150N ..............................................................................................91

5.9. Vista superior de los MOSFET IRFP150N ...........................................................................................92

5.10. Diseño de las fuentes de voltajes .....................................................................................................93

5.11. Fuente de voltaje de 5V. Y 3.3V .......................................................................................................93

5.12. Diseño de fuentes de voltaje de 12V. Y 5V ......................................................................................94

5.13 Fuentes de voltaje ...............................................................................................................................94

5.14 Diseño del circuito de bocina ............................................................................................................95

5.15. Circuito de bocina .............................................................................................................................96

5.16 Vista superior de toda la etapa de potencia ..................................................................................96

5.17. Pantalla táctillll9325 ........................................................................................................................98

5.18. Pantalla táctil y joystick ....................................................................................................................99

5.19. Vista superior del joystick ................................................................................................................99

5.20 Vista lateral del joystick ....................................................................................................................100

5.21. Bluetooth HC06 ................................................................................................................................101

5.22. Vista posterior del bluetooth HC06 ................................................................................................101

5.23. Configuración del módulo bluetooth HC-06 usando comandos AT ............................ 102

5.24 conversor USB-Seria ..........................................................................................................................102


5.25. Puerto serial COM5 .........................................................................................................................103

5.26. Configuramos la velocidad de comunicación ...............................................................................104

5.27. Menú principal ..................................................................................................................................105

5.28. Modo manual ...................................................................................................................................106

5.29. Modo digital ......................................................................................................................................106

5.30. Menú de velocidades .......................................................................................................................107

5.31. Indicador de carga de la batería ....................................................................................................108

5.32. Bluetoot activado ............................................................................................................................108

5.33. Diagrama general de los diferentes menús .................................................................................109


14

l. ASPECTOS GENERALES

1.1. Generalidades de la empresa

1.1.1. Situación Problemática


El Hospital Regional Lambayeque, es una de las instituciones de mayor importancia y

complejidad de la Región Lambayeque, tanto que constituye un Hospital con nivel 111-1, es

decir nosocomio de ALTA COMPLEJIDAD, ubicado en la ciudad de Chiclayo - VÍA DE

EVITAMIENTO NORTE CON AVENIDA EL PROGRESO (Fig.1.1). Este hospital en el servicio de

medicina física y rehabilitación atienden a personas con discapacidad para tratamiento

especializado, la gran mayorfa para personas con discapacidad motora. Estas sillas de ruedas

motorizadas controlan la velocidad del motor utilizando para su control tecnología

desfasada, ocasionando un inadecuado control de variables involucradas en dicho proceso.

La constante necesidad de mejorar las distintas etapas que intervienen en un modelo de

silla de ruedas motorizada para discapacitados, demandó que se ejecuten modernizaciones

respecto al diseño inicial de dichas instalaciones, así como una nueva programación

teniendo en cuenta aplicaciones de seguridad como redundancia aplicada a las variables

controladas con el fin de ayudar en todo momento al discapacitado.

Tomando en cuenta la necesidad de El Hospital Regional Lambayeque, de mejorar las etapas

de un modelo de modelo de silla de ruedas motorizada para discapacitados del servicio de

medicina física y rehabilitación, se deben modificar las instalaciones y configurar el proceso

para que trabaje de manera óptima.

AvAugusro 8
. Leguia
J
JtJda AvAugu.
USAT Sin a/

Par/nas

:t. Luis Oyarcc

~...... t..ó'Po_Q
1¡.,.
fJeodoro Coral . ~"'Ó
c~\e \liclor Fonsecn Rios
UIP luis Casrilla
•elas Tildeao
To!tu:; C
Wilder Rodriguez Reye.-,
Av. Ff)mando Belaunde
. Gonzare:l Pr;1 d~
Ctro Ngeria .
5'
~ Jusliciíl Juslicia

(:JA. Calle Cultura Nmor.:~


A\' Co'ntrmernidüd
~

Fig.1.1. ubicación geográfica de El Hospital Regional Lambayeque


15

1.2. Diagnóstico de la situación actual

El Hospital Regional Lambayeque, actúalmente cuenta con el servicio de MEDICINA FISICA Y

REHABILITACION, en dónde se realizan tratamientos y rehabilitación a pacientes de toda la

región y departamentos anexos.

En la actualidad existe un porcentaje de personas con discapacidad motora que como

consecuencia de ello se ven en la necesidad de utilizar sillas de ruedas del tipo Manuales y

Motorizadas, así mismo se evidencia que las personas que cuentan con sillas eléctricas

motorizadas gran parte tiene problemas con el funcionamiento de su medio de transporte:

• Componentes deteriorados y costosos en el caso de que se desee comprar (importación).

• Costos de mantenimientos excesivos preventivos y/o correctivos por personal cualificado

o de fábrica para dichas sillas motorizadas; esto da como consecuencia que dichas sillas

queden inoperativas al no poder acceder a dichos mantenimientos.

Por lo antes expuesto hay una carencia de un sistema de control (software y hardware)

monitoreo y seguridad necesario para poder operar y mejorar dichas sillas eléctricas

motorizadas toda vez que se requiera tener una solución accesible y de bajo costo para los

usuarios finales (personas con discapacidad).

1.3. Delimitación del proyecto

1.3.1. Formulación del problema

¿E( diseño de un sistema de control y monitoreo mejorará las etapas de un modelo de silla

de ruedas motorizada para discapacitados- hospital regional Lambayeque?

1.3.2. Hipótesis

El diseño de un sistema de control y monitoreo sí mejorará las etapas de un modelo de silla

de ruedas motorizada para discapacitados -hospital regional Lambayeque

1.3.3. Objetivos

1.3.3.1. Objetivo General

Diseñar un sistema de control y monitoreo para mejorar las etapas de un modelo de

silla de ruedas motorizada para discapacitados- hospital regional Lambayeque.


16

1.3.3.2. Objetivos Específicos

~ Plantear el diseño para el sistema de control.


~ Realizar la selección de equipos y el diseño final

~ Poner en marcha la ejecución del diseño final

1.3.4. Justificación e importancia

Porque se quiere dar una solución a bajo coste y accesible para las personas con

discapacidad, así como mejorar las etapas de un modelo de silla de ruedas motorizada para
discapacitados para así lograr beneficiar en forma directa al hospital Regional Lambayeque y
servicio de rehabilitación.

Este proyecto permitirá aumentar el número de pacientes en el hospital Regional

Lambayeque por realizar un valor agregado al servicio de rehabilitación y tratamiento así

como mejorar y/o optimizar en el funcionamiento de un modelo de silla de ruedas


motorizada.
17

l. MARCO TEORICO

2.1. Sistemas de control

Un sistema dinámico puede definirse conceptualmente como un ente que recibe unas acciones

externas o variables de entrada, y cuya respuesta a estas acciones externas son las denominadas

variables de salida.

Las acciones externas al sistema se dividen en dos grupos, variables de control, que se pueden

manipular, y perturbaciones sobre las que no es posible ningún tipo de control. La Figura 2.1

ilustra de un modo conceptual el funcionamiento de un sistema.

' 1
\·a riabl~:~~ V:u·iabl<~s
SISTE:\'L\
dr ('lli r~ld:t dt< snlid!l

1 r
1 J- Y:1ri:lbl(•s dl• rontrol
~l- PN'f1U'b:lriOU('S
l.

Fig.2.1. modo conceptual del funcionamiento de un sistema de control

Control

Es un tipo de sistema que se caracteriza por la presencia de una serie de elementos que permiten
influir en el funcionamiento del sistema. La finalidad de un sistema de control es conseguir,
mediante la manipulación de las variables de control, un dominio sobre las variables de salida, de

modo que estas alcancen unos valores prefijados (consigna). Un sistema de control ideal debe ser

capaz de conseguir su objetivo cumpliendo los siguientes requisitos:


18

Garantizar la estabilidad y, particularmente, ser robusto frente a perturbaciones y errores en los

modelos.
Ser tan eficiente como sea posible, según un criterio preestablecido. Normalmente este criterio

consiste en que la acción de control sobre las variables de entrada sea realizable, evitando

comportamientos bruscos e irreales.

Ser fácilmente implementado y cómodo de operar en tiempo real con ayuda de un ordenador. los

elementos básicos que forman parte de un sistema de control y permiten su manipulación son los

siguientes:

Sensores. Permiten conocer los valores de las variables medidas del sistema.
Controlador. Utilizando los valores determinados por los sensores y la consigna impuesta, calcula
la acción que debe aplicarse para modificar las variables de control en base a cierta estrategia.

Actuador. Es el mecanismo que ejecuta la acción calculada por el controlador y que modifica las
variables de control.

la Figura 2.2. ilustra el esquema de funcionamiento de un sistema de control genérico.

Yariable; Pemirbaciones ~
de control 1 ---11:.___ _,

.1
Yariables
SISTE::\L.\

~:-d~
r~ r,alicia

~
r •
~ ACTrADOR 1
e SE:\' SOR 1 1 SE~ SOR í
,
J CO~TROLADOR
L
1 r
t .a
Con.s1gna

Fig.2.2. Esquema general de un Sistema de Control


19

2.2. Control Proporcional

Un controlador proporcional calcula la diferencia entre la señal de variable de proceso y

la señal de setpoint, lo que vamos a llamar como error. Este valor representa cuanto el proceso se

está desviando del valor del setpoint, y puede ser calculado como SP-PV o como PV-SP,

dependiendo si es que o no el controlador tiene que producir un incremento en su señal de salida

para causar un incremento en la variable de proceso, o tener un decremento en su señal de salida

para hacer de igual manera un incremento de PV (variable de proceso).

Los controladores proporcionales nos dan la opción de decirle que tan "sensible" deseamos que el

controlador se comporte entre cambios en la variable de proceso (PV) y setpoint (SP).

Entonces aquí, nosotros programamos al controlador para cualquier nivel de agresividad del

controlador. La ganancia (Kp) de un controlador es algo que podemos alterar, en controladores

analógicos tomará la forma de un potenciómetro, en sistemas de control digitales será un

parámetro programable.

Una manera de expresar la "sensibilidad" de la acción proporcional, y que es la inversa de la

ganancia (Kp) llamada Banda Proporcional (BP}:

Kp = 1/PB PB =1/Kp

2.3. Sensores electrónicos

El sensor está siempre en contacto con la variable de instrumentación con lo que puede decirse

también que es un dispositivo que aprovecha una de sus propiedades con el fin de adaptar la señal

que mide para que la pueda interpretar otro dispositivo. Como por ejemplo el termómetro de

mercurio que aprovecha la propiedad que posee el mercurio de dilatarse o contraerse por la

acción de la temperatura.

Un sensor también puede decirse que es un dispositivo que convierte una forma de energía en

otra.

Áreas de aplicación de los sensores: Industria automotriz, Industria aeroespacial, Medicina,

Industria de manufactura, Robótica, etc., Los sensores pueden estar conectados a un computador

para obtener ventajas como son el acceso a una base de datos, la toma de valores desde el sensor,

etc.

2.3.1. Características de un sensor

Rango de medida: dominio en la magnitud de medida en el que puede aplicarse el sensor.


20

Offset o desviación de cero: valor de la variable de salida cuando la variable de entrada es


nula. Si el rango de medida no llega a valores nulos de la variable de entrada, habitualmente

se establece otro punto de referencia para definir el offset.

Sensibilidad de un sensor: suponiendo que es de entrada y de salida, sería la variación de la


magnitud de entrada.

Rapidez de respuesta: puede ser un tiempo fijo o depender de cuánto varíe la magnitud a
medir. Depende de la capacidad del sistema para seguir las variaciones de la magnitud de

entrada.

Derivas: son otras magnitudes, aparte de la medida como magnitud de entrada, que influyen
en la variable de salida. Por ejemplo, pueden ser condiciones ambientales, como la humedad,

la temperatura u otras como el envejecimiento (oxidación, desgaste, etc.) del sensor.

Repetitividad: error esperado al repetir varias veces la misma medida.

Un sensor es un tipo de transductor que transforma la magnitud que se quiere medir o


controlar, en otra, que facilita su medida. Pueden ser de indicación directa (ejemplo un

termómetro de mercurio) o pueden estar conectados a un indicador (posiblemente a través


de un convertidor analógico a digital, un computador y un display) de modo que los valores
detectados puedan ser leídos por un humano.

Por lo general, la señal de salida de estos sensores no es apta para su lectura directa y a veces

tampoco para su procesado, por lo que se usa un circuito de acondicionamiento, como por
ejemplo un puente de Wheatstone, amplificadores y filtros electrónicos que adaptan la señal

a los niveles apropiados para el resto de los circuitos.

Resolución y precisión: La resolución de un sensor es el menor cambio en la magnitud de


entrada que se aprecia en la magnitud de salida. Sin embargo, la precisión es el máximo error
esperado en la medida.
La resolución puede ser de menor valor que la precisión. Por ejemplo, si al medir una

distancia la resolución es de 0,01 mm, pero la precisión es de 1 mm, entonces pueden


apreciarse variaciones en la distancia medida de 0,01 mm, pero no puede asegurarse que

haya un error de medición menor a 1 mm. En la mayoría de los casos este exceso de

resolución conlleva a un exceso innecesario en el coste del sistema.


21

No obstante, en estos sistemas, si el error en la medida sigue una distribución normal o

similar, lo cual es frecuente en errores accidentales, es decir, no sistemáticos, la repetitividad

podría ser de un valor inferior a la precisión.

Sin embargo, la precisión no puede ser de un valor inferior a la resolución, pues no puede

asegurarse que el error en la medida sea menor a la mínima variación en la magnitud de

entrada que puede observarse en la magnitud de salida.

2.3.2. Tipos de sensores


En la siguiente tabla se indican algunos tipos y ejemplos de sensores electrónicos.

Magnitud Transductor Característica

Potenciómetro Analógica
Posición lineal o
Encoder Digital
angular
Sensor Hall Digital

Transformador diferencial de variación


Analógica
lineal

Desplazamiento y Galga extensiométrica Analógica

deformación Magnetoestrictivos A/D

Magnetorresistivos Analógica

LVDT Analógica

Dinamo tacométrica Analógica

Encoder Digital

Velocidad lineal y Detector inductivo Digital

angular Servo-inclinómetros A/D

RVDT Analógica

Giróscopo

Acelerómetro Analógico
Aceleración
Servo-acelerómetr,os

Fuerza y par Galga extensiométrica Analógico

(deformación) Triaxiales A/D

Membranas Analógica

Presión Piezoeléctricos Analógica

Manómetros Digitales Digital

Turbina Analógica
Caudal
Magnético Analógica

Temperatura Termopar Analógica


22

RTD Analógica

Termistor NTC Analógica

Termistor PTC Analógica

[Bimetal- Termostato]] 1/0

Inductivos 1/0

Sensores de Capacitivos 1/0


presencia 1/0 y
Ópticos
Analógica

Matriz de contactos 1/0


Sensores táctiles
Piel artificial Analógica

Procesa.
Cámaras de vídeo
Digital
Visión artificial
Procesamient
Cámaras CCD o CMOS
o digital

Sensor final de carrera

Sensor de Sensor capacitivo

proximidad Sensor inductivo

Sensor fotoeléctrico

Sensor acústico
micrófono
(presión sonora)

Sensores de
lsFET
acidez

foto diodo

Fotorresistencia
Sensor de luz
Fototransistor

Célula fotoeléctrica

Sensores captura
Sensores inerciales
de movimiento
23

2.4. Actuadores
Un actuador es un dispositivo capaz de transformar energía hidráulica, neumática o eléctrica en la
activación de un proceso con la finalidad de generar un efecto sobre un proceso automatizado.

Este recibe la orden de un regulador o controlador y en función a ella genera la orden para activar

un elemento final de control.

Existen varios tipos de actuadores como son:

• Electrónicos

• Hidráulicos
\ .·
• Neumáticos

• Eléctricos

2.4.1 Actuadores electrónicos

Los actuadores son dispositivos electrónicos por medio de los cuales se modifican los estados

de los sistemas. Para cada tipo de carga existe un determinado tipo de actuador.

Según se trate de un circuito de iluminación, de un motor o de una válvula, habrá que

seleccionar el actuador correspondiente para el correcto funcionamiento del sistema.

Los actuadores electrónicos también son muy utilizados en los aparatos mecatrónicos, como

por ejemplo, en los robots. Los servomotores CA sin escobillas se utilizarán en el futuro como

actuadores de posicionamiento preciso debido a la demanda de funcionamiento sin tantas


horas de mantenimiento.

2.5. Técnicas de control de velocidad de motores


A la técnica de controlar motores eléctricos se denomina electrónica de potencia, a la rama de

la ingeniería eléctrica que consigue adaptar y transformar la electricidad, con la finalidad

de alimentar otros equipos, transportar energía, controlar el funcionamiento de máquinas


eléctricas, etc.

Se refiere a la aplicación de dispositivos electrónicos, principalmente semiconductores, al control y


transformación de potencia eléctrica.

Esto incluye tanto aplicaciones en sistemas de control como de suministro eléctrico a consumos
industriales o incluso la interconexión sistemas eléctricos de potencia.

2.5.1. Dispositivos Semiconductores de Potencia


Para estas aplicaciones se han desarrollado una serie de dispositivos semiconductores de

potencia, todos los cuales derivan del diodo o el transistor. Entre estos se encuentran los

siguientes:
24

• Rectificador controlado de silicio (SCR en inglés)

• Triac

• Transistor IGBT

• Tiristor IGCT

• MCT

2.5.2. Convertidores de la Energía Eléctrica


Conversión de potencia es el proceso de convertir una forma de energía en otra, esto puede

incluir procesos electromecánicos.

Dichos dispositivos son empleados en equipos que se denominan convertidores estáticos de

potencia, clasificados en:

Rectificadores: convierten corriente alterna en corriente continua


Ciclo-conversores: convierten corriente alterna en corriente alterna
En la actualidad esta disciplina está cobrando cada vez más importancia debido

principalmente a la elevada eficiencia de los convertidores electrónicos en comparación a los

métodos tradicionales, y su mayor versatilidad.

Un paso imprescindible para que se produjera esta revolución fue el desarrollo de dispositivos

capaces de manejar las elevadas potencias necesarias en tareas de distribución eléctrica o

manejo de potentes motores.

2.5.2.1. Aplicaciones
Las principales aplicaciones de los convertidores electrónicos de potencia son las
siguientes:

Fuentes de alimentación: En la actualidad han cobrado gran importancia un subtipo de

fuentes de alimentación electrónicas, denominadas fuentes de alimentación


conmutadas. Estas fuentes se caracterizan por su elevado rendimiento y reducción de
volumen necesario. El ejemplo más claro de aplicación se encuentra en la fuente de
alimentación de los ordenadores.

Control de motores eléctricos: La utilización de convertidores electrónicos permite


controlar parámetros tales como la posición, velocidad o par suministrado por un
motor. Este tipo de control se utiliza en la actualidad en los sistemas de aire

acondicionado. Esta técnica, denominada comercialmente como "inverter" sustituye el

antiguo control encendido/apagado por una regulación de velocidad que permite

ahorrar energía. Asimismo, se ha utilizado ampliamente en tracción ferroviaria,

principalmente en vehículos aptos para corriente continua (C.C.) durante las décadas
de los años 70 y 80, ya que permite ajustar el consumo de energía a las necesidades
25

reales del motor de tracción, en contraposición con el consumo que tenían los
vehículos controlados por resistencias de arranque y frenado.
Actualmente el sistema chopper sigue siendo válido, pero ya no se emplea en la

fabricación de nuevos vehículos, puesto que actualmente se utilizan equipos basados


en el motor trifásico, mucho más potente y fiable que el motor de colector.

Las líneas de investigación actuales buscan la integración de dispositivos de potencia y


control en un único chip, reduciendo costes y multiplicando sus potenciales
aplicaciones. No obstante existen dificultades a salvar como el aislamiento entre zonas
trabajando a altas tensiones y circuitería de control, así como la disipación de la
potencia perdida.
26

111. HADWARE

3.1. DESCRIPCION DE UN MODELO DE SILLA DE RUEDAS CONVENCIONAL (CHASIS)

3.1.1 Silla de ruedas eléctrica

La silla de ruedas es una estructura que contribuye a solventar las limitaciones de


desplazamiento que tienen algunas personas con algún tipo de discapacidad. Para los
usuarios de silla de ruedas, ésta toma la función de extremidades inferiores lo cual
permite que estas personas desarrollen una mejor calidad de vida.

Para nuestra implementación, se utilizó un chasis de la marca fortress scientific, modelo


760fs, esta marca es americana. (Fig.3.1.).

Fig.3.1. chasis de silla de ruedas motorizada

3.1.2 Tipos de sillas de ruedas

SILLA ELÉCTRICA ESTÁNDAR INTERIOR- EXTERIOR

Es la más común teniendo los siguientes tipos de tracciones:

1. TRACCIÓN CENTRAL: Giran sobre sí mismas por lo que necesitan menos espacio para

maniobrar, habiendo modelos casi exclusivamente para interiores que usan este tipo de

tracción en combinación con unas ruedas estabilizadoras de menor tamaño.


27

2. TRACCIÓN DELANTERA: Al llevar las ruedas de mayor tamaño en la parte delantera son
buenas salvando obstáculos, sin embargo la dirección es algo más compleja.

3. TRACCIÓN TRASERA: Es más cómoda de conducir siendo la elegida por la mayoría

de usuarios. Como opción, algunas sillas pueden llevar un accesorio llamado sube bordillos,

que mediante un resorte que se apoya en el borde, nos ayuda a subir. Figura 3.2.

Fig.3.2. chasis de silla de ruedas motorizada de tracción trasera

3.1.3 Diagrama de bloques de modelo de silla motorizada

~ ; ..': : · : ":: . . .'1 :., ., "":1

l~;,.: ~. [... ;t ·.~~


.... 1 ·- ••
AI'JCRCID

(SUARTPHONEJ

~L-·--lmE--cR-FR--~~L--C-Cm_R_O_~_OO_R

JOSTiCK OlGITAL

(PA~TALLA T.4CTILI
28

3.2. Placa de Evaluación STM32-H103

El microcontrolador seleccionado cumple con las siguientes características:

• bajo Consumo de energía

• Bus 12C

• Bus SPI para comunicación

• Comunicación por Proto!=olo RS232.

• Comunicación por Protocolo USB.

• Manejo de datos tipo float.

En el mercado de los microcontroladores existen infinidad de placas usando

microcontroladores de diferentes marcas, pero para este proyecto de tesis se decidió usar la

placa STM32-H103 pues no solo ofrece todas las características descritas anteriormente si

no que es una plataforma compacta y versátil que usa un microcontrolador ARM Cortex M3

muy potente que también es de bajo costo y alto rendimiento accesible a cualquier

aficionado a la electrónica.

3.2.1. Historia

El diseño del ARM comenzó en 1983 como un proyecto de desarrollo en la empresa Acorn

Computers. Sophie Wilson y Steve Furber lideraban el equipo, cuya meta era, originalmente,

el desarrollo de un procesador avanzado, pero con una arquitectura similar a la del MOS

6502.

Figura. 3.3. Placa de Evaluación STM32-H103


29

El equipo terminó el diseño preliminar y los primeros prototipos del procesador en el año

1985, al que llamaron ARMl. La primera versión utilizada comercialmente se bautizó como

ARM2 y se lanzó en el año 1986.

La arquitectura del ARM2 posee un bus de datos de 32 bits y ofrece un espacio de

direcciones de 26 bits, junto con 16 registros de 32 bits. Uno de estos registros se utiliza

como contador de programa, aprovechándose sus 4 bits superiores y los 2 inferiores para

contener los flags de estado del procesador.

El ARM2 es probablemente el procesador de 32 bits útil más simple del mundo, ya que

posee solo 30.000 transistores. Su simplicidad se debe a que no está basado en microcódigo

(sistema que suele ocupar en torno a la cuarta parte de la cantidad total de transistores

usados en un procesador) ya que, como era común en aquella época, no incluye caché.

Gracias a esto, su consumo en energía es bastante bajo, a la vez que ofrece un mejor

rendimiento que un 286. Su sucesor, el ARM3, incluye una pequeña memoria caché de 4 KB,

lo que mejora los accesos a memoria repetitivos.

A finales de los años 80, Apple computer comenzó a trabajar con acorn en nuevas versiones

del núcleo ARM. En Acorn se dieron cuenta de que el hecho de que el fabricante de un

procesador fuese también un fabricante de ordenadores podría echar para atrás a los

clientes, por lo que se decidió crearuna nueva compañía llamada Advanced RISC Machines,

que sería la encargada del diseño y gestión de las nuevas generaciones de procesadores

ARM. Ocurría esto en el año 1990.

Este trabajo derivó en el ARM6, presentado en 1991. Apple utilizó el ARM 610 (basado en el

ARM6), como procesador básico para su innovador PDA, el Apple Newton. Por su parte,

Acorn lo utilizó en 1994 como procesador principal en su RiscPC.

El núcleo mantuvo su simplicidad a pesar de los cambios: en efecto, el ARM2 tiene 30.000

transistores, mientras que el ARM6 solo cuenta con 35.000. La idea era que el usuario final

combinara el núcleo del ARM con un número opcional de periféricos integrados y otros

elementos, pudiendo crear un procesador completo a la medida de sus necesidades.


30

La mayor utilización de la tecnología ARM se alcanzó con el procesador ARM7TDMI, con

millones de unidades en teléfonos en móviles y sistemas de videojuegos portátiles.

DEC licenció el diseño, lo cual generó algo de confusión debido a que ya se producía el DEC

alpha, y creó el strongARM. Con una velocidad de reloj de 233MHZ, este procesador

consumía solo lW de potencia (este consumo de energía se ha reducido en versiones más

recientes).esta tecnología posteriormente a manos de lntel, como fruto de un acuerdo

jurídico, que la integró en su línea de procesadores lntel i960 e hizo más ardua la

competencia.

Freescale (una empresa que derivó de Motorola en el año 2004), IBM, infineon tecnologies,

OKI, Texas instruments, nintendo, Philips, VLSI, Atmel, Sharp, Samsung y ST-

Microelectronics también licenciaron el diseño básico del ARM. El diseño del ARM se ha

convertido en uno de los más usados del mundo, desde discos duros hasta juguetes. Hoy en

día, cerca del 75 % de los procesadores de 32 bits poseen este chip en su núcleo.

3.2.2. El Core Cortex-M3

El núcleo Cortex-M3 presenta un proceso de interrupción rápido y de alta determinación,

por lo que es muy apropiado para aplicaciones de microcontroladores. Además Cortex-M3

pone en práctica la nueva arquitectura Thumb-2 de conjunto de instrucciones mixtas.

El núcleo central del Cortex-M3 está basado en la arquitectura Harvard caracterizada por

buses separados para instrucciones y datos. El core Cortex- M3 puede desarrollar varias

operaciones en paralelo. Este núcleo esta segmentado en tres etapas Fetch (búsqueda de

instrucción), decodificación de instrucción y Ejecución. El core Cortex-M3 contiene una

avanzada ALU la cual realiza operaciones de división y multiplicación de 32 bits por

hardware, lógica de control e interfaces con otros componentes del procesador.

Como se mencionó, el Cortex-M3 es un procesador de 32-bit, con un ancho de banda para el

flujo de datos de 32 bits, así como banco de registros e interface de memoria. Tiene
31

13 registros de propósito general, dos punteros de pila, un registro de búsqueda, un


contador de programa y registros especiales, incluido un registro de estado.

Dicho procesador cuenta con un sistema de mapa de memoria sencillo, es un mapa de


memoria fijo de 4 gigabytes, dividiendo el espacio de memoria con espacios predefinidos y
dedicados para código (espacio de código), SRAM (espacio de memoria),
memoria/dispositivos externos, periféricos externos y periféricos externos/internos.
(Figura 3.4).

r- --- -.--· ~

¡ ll',"fli~& l
1 Thllmf.-Z d~,.~rr..d~ 1
!__ . ··-· ··--- ---··:

Figura 3.4: Arquitectura Arm


32

3.2.3 Características Técnicas

La placa de evaluación STM32-H103 ofrece múltiples posibilidades para aplicaciones

relacionadas con la electrónica y la automática en general. En la figura 3.5 se puede

observar una imagen real de la placa de evaluación empleada, con todos los periféricos que

la componen. Las características técnicas más importantes de la placa se citan a

continuación:

• MCU: STM32F103RBT6 ARM CORTEX M3 de 32 bits con 128 K Bytes programa Flash,

20K Bytes de RAM, USB, CAN, 12C x2, x2 de ADC de 12 bits, USART x3, x2 SPI,

temporizadores x3, hasta la operación 72Mhz.

• Conector JTAG estándar con distribución de pines ARM 2x10 para la

programación/depuración con ARM-JTAG.

• Conector USB.

• Botón de usuario.

• Botón RESET.

• LEO de estado.

• Fuente de alimentación del LEO.

• El regulador de voltaje de 3.3V a bordo con un máximo de 800 mA de corriente.

• Sola fuente de alimentación: toma energía del puerto USB o la extensión de pines

del conector.

• 8 MHz oscilador de cristal.

• 32768 Hz cristal y conector de la batería de respaldo de RTC.

• Cabeceras de extensión para todos los puertos uC.

• Distancia entre los conectores extensión: 2SA mm (1").


33

v-regulator

Figura 3.5: placa de evaluación empleada, con todos los periféricos que la componen.

En la figura 3.4. Se puede apreciar una imagen a modo de diagrama de bloques extraída del

Manual de Usuario de la placa de evaluación con el microcontrolador y los periféricos que

componen.
34

Figure 1. STM32F1 03xx performance line block diagram

PO\'I'ER
V00 =2 to 3.6V
IJOLT.AEG.
JJVTO 18V LVss
fl~•" muia
G4 bol @VOD
F""', 72MHz

NVlC

GPDMA
i channol~

@VODA
. SUF!PLY·
SUPE.RVJSION
H---HI POR 1PPR 1 Rsl

1 ~ lnt
TAMPER·RTC

RX.TX.CTS, RTS.
CK. SmotlCMd v~ 1\F
RX.TX, CTS, R15,
CK. SmartCard as AF

MOSI.MISO.SCK,NSS
nsAF

12btl r,oc~ IF
SRAMSl~!l J
Teltip ~<':MOl -f-
1 ~
llt14390b

1. TA =-40 ·e to +105 ·e üunction temperature up to 125 ·e).


2. AF = altemate function on 1/0 port pin.

Figura 3.6: Diagrama de Bloques del microcontrolador STM32-H103


35

3.2.4. Microcontrolador
La placa de evaluación STM32-H103 utiliza un microcontrolador STM32F103RBT6

ARM Cortex M3 de la familia ST Microelectronics lnc. basado en un procesador (Véase figura

3.7) con las siguientes características:

• Reloj de la CPU hasta 72Mhz .

• 128KB FLASH .

• 20KB RAM .

• Canales x7 DMA .

• RTC.

• WDT .

• Timers x3 +l. X2 SPI.

• X2 12C. USART x3. Xl USB .

• Xl CAN (multiplexado con USB, por lo tanto no se puede utilizar en el mismo tiempo).

• GPIO hasta 51 (multiplexado con periféricos). X2 ADC de 12 bits.

• Tensión de funcionamiento 2.0-3.6V. Temperatura de-40C +85 C.

Figura 3.7: Microcontrolador STM32-H103


36

3.2.5. Mapa de memoria


El mapa se muestra en la figura 3.8 con los principales registros a configurar.

Memory mapping
The memory map is shown in Figure 7.

Figure 7. Memory map

111 ~;8 mmnory space

r<t-.SOI\fl:d 4Kbl1~

rna~d 1 Kbit
rt'!Ot'IN<I JKblts
IIIJ.ulltntorraco 1 Kbl<
o;o.s-::-~.: :r.ool-------l
rnorwd 3Kbfls
7
.........,
RCC

DIU.
1 Kbit
3Kbl~

1 Kbit

rr.:ar.vd" f Kbit
6
115ART'S 1 Kbit
H<b~
''·""" ,..,.,,1------1 ru.a'"-"C<<
.51'11 IKblt
f,>~:¡'::·~¡
.,.,.,
!~'Us.lf--------l
1 Kbll
5 ADC2 1 Kbit
AOC1 '1 Kbít
C,.l(;C~ ; " H t O f - - - - - - - j
:_....... 1)01) ·~·::,}1------l
rnan-td 2 Kbits

PortE 'B Kbit


4
Por40 1 Kbit
Pone 1 Kbit

Pooo 1 KbU
PoOA 1 Kbit

3 EXTI 11<.bi(
AFIO 1 Kbit

_te-14~ 35Kbl!r¡.

.......
1 Kbit
2
O:.:EC! "d)C<V 1----;=----j
BKP t Kblt
,......... 1 Kb¡l
bxCAN 1Kblr

~~1t.1 am:~ 1 Kbit


U$9Fl'l'Qitl1!1'!1 !Kb;t
1 E:C•11-----,c.---i
1:C2 1Kbll
12C1 t Kbit

2Kblts
"'""""
L"SARTJ 1 Kbit
o L"5.\RT'Z 1 Kbit

...........
eo,o - - - - - - - - - - .],...;:,.;:;. (;fo()Q'--------'
.,
ti''S.Ot'lo'l.."d
2Kblts

t Kbit
1 Kbit

C:J Ro-servad
!:::<~~:.; """'
IJDtll----,=;:---i
...woo
1 Kbit
1 Kbit
RTC 1 Kbll

rHarwc 7 Kbits

mu 1 Kbit
fWJ 1 Kbll
rnt2 1 Kbit

8!143040

Figura 3.8: Mapa de Memoria


37

3.2.6. Esquema eléctrico STM32H103


La figura 3.9 muestra la distribución y conexión de los diferentes periféricos que posee la
placa de evaluación STM32- H103.

3.2.7. CMSIS
CMSIS, siglas en inglés de cortex microcontroller software interface estándar, al cual le

otorgamos gran parte del éxito que está teniendo la arquitectura en los últimos tiempos.
Este interfaz estándar de software suele estar integrado en las librerías que proporcionan

los fabricantes y permite el acceso a serie de funciones del sistema y periféricos

transversales a todos los modelos. Nació en 2008 con el propósito de mejorar la


portabilidad y reusabilidad de código creado, evitar problemas de compatibilidad de drivers,

facilitar el trabajo a los creadores de herramientas de desarrollo y compilación, y en


definitiva, crear una plataforma que permita un desarrollo más estándar, rápido y sencillo.

En cualquier caso, gran parte de los aspectos relacionados con la arquitectura quedan

enmascarados cuando este tipo de microcontroladores se programan en lenguaje c. La


mayoría de los fabricantes de microcontroladores proporcionan librerías escritas en e que

permiten controlar todos los aspectos del dispositivo. Dado que los compiladores modernos

generan código muy eficiente, cada vez tiene menos sentido utilizar lenguaje ensamblador
(Figura 3.8).

CMSIS define:

• Una manera común de acceso a registros de periféricos del core y de definir vectores de
excepción.

• Los nombres de los registros de los periféricos del core y de los vectores de excepción del

mismo.
3.3V 3.3V
o
3.3U UDDA

U1
3.3U9 n•
~/81_L
0
1/l:: ""
{¿~f-.;
.
.,_~·(

~1
UDDA P80/ADC8/TIM3_CH3 ),, '
~~;.;; :~·: .
R18 RB P811ADC9/TIM3_CHt
10K U2 101:
~.~~~ r...:. ~
USSA P82/BOOT1
NA UBAT
RST P83/JTDO ,
LZiucc GN~SET~

· rr·
2 .... 1-v - 1

~
VBAT P81/JT~ST
'"
'> ~Jl'
) ""' t-
~. ¡b\;¡~ 19 32
P85/12C1_SMBA EXT1-12 1

BUTh 1 VD0_1 P86/12C1_SCLITIM~_CH1 EXT1-13 3.3U9 -- . '1........ ·'·)~r:,~ ., -~ :'


~!~
UT 48 V00_2 EXTi-15
.,~~-~-~::.~..
PB7/12C1_50A/TIM1_CH2

~~
19
VOD_1 PB8/TIM~_CH3 EXTi-16
~6
l
64
liC18
l00nF ..JE5 _f7 p U00_3 PB9/TIM1_CH1
PB10/12C2_5CL/USART3_ TX
EXT1-17
EXT2-14
""'i'o0nr!i'oonfaor'l'WonF, ~~ 1
PB11/12C2_5DAIU5ART3_RX EXT2-15

~
-~ '~~~=~
-L.. PB12/SPI2_N5S/12C2_5MBAL/USART3_CK/TIM1_BKIN EXT2-17
3.3V P813/SPI2_5CK/USART3_CTS/TIM1_CH1N EXT2-16 33K
63 VSS_3 PB1i/SPI2_MISO/USART3_RTS/TIM1_CH2N EXT2-18 03.3V
~ _j_
1a uss_ • PB15/SPI2_MOSI/TIM1_CH3N EXT2-19

J2~1yl¡R6~5~25 in_T QST


D~¡<Tl.-25 NRST PC0/AOC10 B EXTi-19 STAT m
'f
.:f~R~:
PC1/ADC11 S EXTi-20 green
~ 0 o
~g~~ggg m~=§
•• BOOT0 ..-1
0Jr!eJrleJrleJrleK "'n'Ci..!"---j
EXT2-4 B!ll 11 PAB-UKUP/USART2_GTS/ADC0/TIM2_CH1_ETR PC4/ADC11
1
~; USB 0
EXT2-12
::e
Wl R4 N
EXT2-8 15 PA1/USART2_RTS/AOC1/TIM2_CH2 PC5/ADC15 EXT2-13 330 m
rns EXT2-7 1
~~~~~~~~g=~~~=gg~~:~~=~~! ~~ m~=~~
~o
Ti3< EXT2-10 7 38
EXT2-11
~~;~~~:~=~~~~~~~~T2_CKIADC1 ~g~ gg=~~
2
TOO EXTi-18 1 10
¡¡sj 51
EXTi-14 2 PA6/SPI1 MISO/AOC61TIM3 CH1 PC10 EXT1-8
EXT1-22 23 PA7/SPI1-MOSI/ADC7/TIM3-CH2 PC11 52 EXT1-9 u
EXT1-2 1 PA8/USA~T1 CK/TIM1 CH1tMCO PC12 53 l m EXT1-10
·;:
-L.. -L..
EXT1-4
EXT1-7
42
13
PA9/USA~T1= TX/TIM1=CH2 PC13/ANTI_ TAMP 2 EXTi-24 ,--,..,..-¡-""""f t
•QJ
00 3.3U EXTi-1 ISflrlH 14 ~~i~~~~~~~i=~~~~~~~~1seOMITIM1_CH4 P~;;:¿~~ii:o~~ jj1t::::======~~~~Q:jfiJ!l&: ¡¡¡
m USO_P
r.:;- +5U usa EXT2-23 EXT1-3 Wlill?
TNS
45
16 ~~i~~~~~~~~¡j~~~/CANTX/US8DP/TIM1_ETR PDB/OsC_IN 5 ro
2x13 R11 ...-.10K
1 1'CK 4S E
1
i Q4
BC817
T_Ol ----s0 ~~i;~ ~~g~-S~CLK :oo2'/T~~~=~~~ 1 EXTi-11 QJ
3,3U :::1
'R1 STM32F103R8T6<LQFP64) C"
151<
_j_ "'
LU

- DISC TRST, TDI, TMS, TCK, TDO,RST ) ói


m
R29
22K UIN ( 1 C21
EXT2-26 UDDA (!) 1C22
EXT2-1 e
:::1
bO
¡¡:
3.3U ::reanF ::raenF
1 EXT2-25 <1 EXT2-3"

UIN uce
USB!JM PWR
3.3U0 EXT1-5
I - - EXT1-6 3.3U 0 1 - EXT2-5
EXT2-6

'f
STM32-H103
Ci(¡j- >rl1
100n~47pF<NA~~7pF<NA)
I"] li
39~1
R9 0/ii'Bli T~ R7
510 COPYRIGHT<C> 2087, OLIMEX L TD
HTTP://1-JWW.OLIMEX.COM/OEU
39

• Una interfaz independiente del dispositivo para RTOS Kernels incluyendo un canal de

depuración.

• Mediante el uso de software CMSIS compatible, el usuario puede fácilmente reutilizar el

código. CMSIS tiene por objeto permitir la combinación de componentes de software de

múltiples proveedores de componentes.

Apphc.atlon ende

Figura 3.10: interface estándar del software cortex microcontroller (CMSIS).

3.2.8. Librerías

STMicroelectronics facilita una librerfa que hemos descargado desde su página web llamada
STM32Llxx

Standard Peripherals library y STM32F10xxx USB Library. Esta cubre dos niveles de abstracción:

./ Un completo mapeo de registros con todos los bits, campos de bits y registros declarados

en lenguaje C. Esto evita conocer a fondo cada periférico ya que son de elevada
complejidad y con esto se facilita el aprendizaje en fases iniciales .

./ Colección de funciones y estructuras de datos que cubren todas las funcionalidades de los

periféricos.
40

Cada driver consiste en un conjunto de funciones cubriendo todas las funcionalidades de


periféricos. El desarrollo de cada driver está basado en un API común (Application Programming
Interface) que estandariza la estructura del driver.

El código de los drivers ha sido escrito en C. Está documentado y es conforme a los requisitos

MISRA-C 2004 y CMSIS. la librería es independiente del toolchain empleado, solo los ficheros de
inicio startup dependen del toolchain.

la ventaja de utilizar esta librería reside en el tiempo que se necesita para comenzar a desarrollar

aplicaciones para STM32l1xx. Gracias a ella, no necesitamos conocer en profundidad todas las
facetas y posibilidades del periférico que deseamos programar. Sin embargo, tiene la desventaja

que no optimiza el tamaño de la aplicación ni la velocidad de ejecución. En casos en los que


tengamos restricciones de tamaño o tiempo, es conveniente utilizar la librería como una referencia
para aprender como programar el periférico.

A) STM32L1XX standard periperals library: descargamos de la página web de STMicroelectronics

la librería en un fichero comprimido Zip. la extracción de este fichero generará la carpeta:


STM32F10x stdperip lib. V.3.5.0. el contenido de esta carpeta es el que se muestra en la figura

3.11.
_sr:.A3~FlOx_StdPeriph,..Lib_~.~·o _
_htmresc
. Libraries
Cf·..,SIS
CIYI3
CcreS•Jpport
De.•. .keSuppcrt
~ ST
5TI'v132F10x
!ítartup
Docume.ntatian
5TM32Fl0x_StdPeriph_Dñver
in e
. src
Prcject
STM32FlO"-StdPeriph_Examples
. STI\.132FlOx_StdP eriph_T en1 p 1ate
Utilitie:s
.- ST~olt32_EVA.l

Con1mcn
5TM3 2U52_EVAL
STrv13llOB_EVAL
STf\.1321QC_EVAL
STrlll3210E_EVAL
STr-..132lOOB_EVAL
STM3.2J.OOE_EVAL

Figura 3.11: STM32l1xx Standard Peripherals library


41

Htmresc: Esta carpeta contiene todas las páginas de recursos de HTML de la librería.

Libraries: Contiene todos los ficheros CMSIS y STM32L1xx Standard Peripheral's Drivers.

• CMSIS: Contiene todos los ficheros CMSIS de STM32L1xxxx: device peripheral access

layer y core peripheral access layer.

• STM32L1xx StdPeriph Driver: Contiene todos los subdirectorios y ficheros que

constituyen el núcleo de la librería:

•!• lnc.: Contiene los ficheros de cabecera de los drivers de periféricos, contiene un

fichero cabecera por cada driver de periférico.

•!• Src: Contiene los ficheros fuente de los drivers de periféricos. Contiene un fichero

fuente por cada driver de periférico.

Project: Esta carpeta contiene los template para diferentes toolchain y ejemplos de cada

periférico.

• STM32L1xx StdPeriph Examples: Esta carpeta contiene una subcarpeta por cada

periférico, y dentro de ella, ejemplos de código para aprender a usar dicho periférico.

• STM32L1xx StdPeriph Templates: Esta carpeta contiene templates para proyectos para

los toolchain: EWARM, MDK-ARM, RIDE, HiTOP, y TrueSTUDIO.

• STM32 EVAL: Implementa una capa de abstracción para que el usuario interactúe con

la placa: botones, leds, LCD, puertos COM, etc. Contiene varias subcarpetas en función

de la placa de evaluación que estemos utilizando.

B) STM32F10xxx USB Library: descargamos de la página web de ST Microelectronics la

librería en un fichero comprimido Zip. La extracción de este fichero generará la carpeta:

um0424. El contenido de esta carpeta es el que se muestra en la (figura 3.12).


urn0424
. FWlib
librar;•
in e

res e
USBUb
demc!i
Audic_Speaker
Cmtom_HID
Oe.vice_Firmware_Upgrade
JcySticklv1cu!:e
Ma,;_Storage
Virtuai_COM_Pcrt
libra~¡

in e

Figura 3.12: STM32L1xx USB library


42

FW Lib: Contiene todos los subdirectorios y ficheros que constituyen Standard


Peripheral's Drivers.

• lnc.: Contiene los ficheros de cabecera de los drivers de periféricos. Contiene un fichero

cabecera por cada driver de periférico.

• Src: Contiene los ficheros fuente de los drivers de periféricos. Contiene un fichero

fuente por cada driver de periférico.

Resc: Contiene algunas imágenes de la página HTML.


USB Lib: Contiene todos los subdirectorios y ficheros que constituyen a la comunicación
USB.

• Demos: Esta carpeta contiene ejemplos de código para aprender a usar dicha librería.

• Library: Contiene todos los subdirectorios y ficheros que constituyen el núcleo de la

librería

../ lnc: Contiene los ficheros de cabecera de los drivers de USB. Contiene un fichero

cabecera por cada driver de USB .

../ Src: Contiene los ficheros fuente de los drivers de USB. Contiene un fichero

fuente por cada driver de USB.


43

3.2.9. ARM-JTAG Wiggler

JTAG, un acrónimo para Joint Test Action Group, es el nombre común utilizado para la

norma IEEE 1149.1 titulada Standard Test Access Port and Boundary-Scan Architecture para

test access ports utilizada para testear PCBs utilizando escaneo de límites.

JTAG se estandarizó en 1990 como la norma IEEE 1149.1-1990. En 1994 se agregó un

suplemento que contiene una descripción del boundary sean description language (BSDL).

Desde entonces, esta norma fue adoptada por las compañías electrónicas de todo el

mundo. Actualmente, Boundary-scan y JTAG son sinónimos.

Diseñado originalmente para circuitos impresos, actualmente es utilizado para la prueba de

sub módulos de circuitos integrados, y es muy útil también como mecanismo para

depuración de aplicaciones empotradas, puesto que provee una puerta trasera hacia dentro

del sistema. Cuando se utiliza como herramienta de depuración, un emulador en circuito

que usa JTAG como mecanismo de transporte permite al programador acceder al módulo de

depuración que se encuentra integrado dentro de la CPU. El módulo de depuración permite

al programador corregir sus errores de código y lógica de sus sistemas.

Una interfaz JTAG es una interfaz especial de cuatro o cinco pines agregadas a un chip,

diseñada de tal manera que varios chips en una tarjeta puedan tener sus líneas JTAG

conectadas en daisy chain, de manera tal que una sonda de testeo JTAG necesita conectarse

a un solo "puerto JTAG" para acceder a todos los chips en un circuito impreso (Figura 3.13).

Los pines del conector son:

• TDI (Entrada de Datos de Testeo).

• TOO (Salida de Datos de Testeo).

• TCK (Reloj de Testeo).

• TMS (Selector de Modo de Testeo).

• TRST (Reset de Testeo) es opcional.


44

TMS
e::>-
TCK
D

'--- TMS '--- TMS - TMS


- TCK '--- TCK '--- TCK
DEVICE 1 DEVICE 2 DEVICE 3
~
.___.. TDI TDO TDI TDO TDI TDO t -

~
~

Figura 3.13: Pines jtag (pruebas de puertos de acceso)

Ya que posee una sola línea de datos, el protocolo es necesariamente serial, como el serial

pheriperal interface. La entrada de la señal de reloj es por el pin TCK. La configuración del

dispositivo la realizamos manipulando una máquina de estados de un bit empleando el pin

TMS. Un bit de datos es cargado en TDI y otro sacado en TOO por cada pulso de reloj de la

señal TCK. Se pueden cargar diferentes modos de instrucción como leer el ID del chip,

muestrear el valor de pines de entrada/salida, manejar pines de salida, manipular funciones

del chip o funciones de bypass que unen el pin TDI con TOO para lógicamente unir cadenas

de varios chips (chips en cascada).la frecuencia de trabajo de la señal de reloj del pin TCK

varía en función de cada chip, pero típicamente está en el rango de 10-lOOMHZ (10-

100ns/bit).

El pin TRST es una señal opción bajo-activa para reseteo o reinicio de la prueba lógica (por lo

general asíncrona, pero que a veces esta sincronizada con el reloj, dependiendo del chip).si

no se dispone de dicho pin, la prueba lógica puede reiniciarse mediante una instrucción
reset.
45

La figura 3.14 muestra el esquema eléctrico para el ARM-JTAG wiggler.

Figura 3.14: Esquema Eléctrico ARM-JTAG Wiggler

El ARM-JTAG Wiggler es una interfaz que se usa en el diseño, depuración y programación de

microprocesadores y microcontroladores basados en sistemas embebidos. Un extremo de la

interfaz se conecta al puerto paralelo de un host PC y el otro extremo se conecta a un

puerto JTAG del sistema de destino tal como se muestra en la figura 3.15.

Figura. 3.15: ARM-JTAG Wiggler


46

IV. SOFTWARE

4.1. Introducción
Una vez presentado el hardware necesario para el desarrollo del prototipo de una silla eléctrica

motorizada a construir el siguiente paso será dar a conocer los diferentes tipos de programas que

se utilizaron en este proyecto.

Dentro de los programas a mencionar se encuentran Keil uVision4 que es utilizado para editar y

compilar el programa principal y distintas librerías en lenguaje C para el microprocesador

STM32F103 ARM, H-JTAG encargado de la programación del microcontrolador ARM, y la

aplicación para el Smartphone, App inventor.

4.2. Keil uVision4

El entorno de desarrollo uVision de Keil es una herramienta de carácter profesional de enorme

calidad que junto con algunas otras más se ha convertido en un estándar para el desarrollo de

aplicaciones basadas en las arquitecturas ARM-Cortex (Figura 4.1).

~KE-Il:
ILJ Tools by ARM
.~ ¡JVision®4
lntegt·ated Oe>.relopment Envimnmetit

Figura 4.1: Keil uVision4


47

Las herramientas desarrolladas por Keil apoyan los microcontroladores más populares y son

distribuidas en varios paquetes y configuraciones, dependiendo de la arquitectura.

MDK-ARM: Kit de desarrollo de microcontroladores, para varios ARM7, ARM9 y dispositivos


basados en Cortex-Mx.

• PK166: Kit de desarrollo profesional de keil, para dispositivos C166, XE166 y XC2000.

• DK251: Herramientas de desarrollo Keil 251, para dispositivos 251.

• PK51: Herramientas de desarrollo Keil 8051, para dispositivos Classic & Extended 8051.

Esta parte proporciona una introducción sobre software MDK-ARM (versión 4.1.0 y anteriores).

4.2.1. MDK-ARM
El MDK-ARM es una plataforma de desarrollo de software basado en ventanas que combina

un robusto y moderno editor con un administrador de proyectos y lo hace una herramienta

fácil. Integra todas las herramientas necesarias para desarrollar aplicaciones incluyendo el

compilador C/C++, ensamblador de macros, enlazador/buscador, y un generador de archivos

AXF. En la figura 4.2 muestra una vista general del software.

E•:O ,
::J~-~
2.·-·~~·
1 !1" íJt-.,_~o:.-fot.c

',¡,¡ ••~
.i.!l""'-0:~
'y~ ... ~ ..

~ ~:· ~=~..:~~
e·~i~~"!!rn_>~.e:
Fi•llob·~ .
·~~ma.c
-..'¿]n:-J:"'.!X.~
~ i;]<tr'..l."!l~K,.r,.d>..c
... ~ ...,.,;,.-no.._p6.c·-
; ::JmM!r'.l4,.r<U
'·.;~f!mU111}o..,....,r
t:•:-.~a.ll
'"::!)~<"'U
;.!.,:):.,;t~_....t.(
·;:_-__-_...::...-·.::.-_-.

Figura 4.2: Ventana principal MDK-ARM


48

MDK-ARM nos ayuda acelerando el desarrollo de procesos de aplicaciones integradas

proporcionando lo siguiente:

• Editor de código fuente con todas las funciones.

• Base de datos de los dispositivos para configurar la herramienta del desarrollo.

• Administrador de proyectos para la creación y mantenimientos de tus proyectos.

• Utilidad make integrado para ensamblar, compilar y vincular sus aplicaciones embebidas.

• Diálogo para todas las opciones del entorno de desarrollo.

• Verdadero depurador a nivel de fuente y nivel ensamblador integrado con CPU de alta

velocidad y un simulador de periféricos.

• Utilidad de programación flash para la descarga del programa de aplicación en flash

ROM.

• Enlace a manuales, ayuda en línea, hoja de datos de dispositivos y guías de usuarios.

4.2.2. Ventanas de diseño

Nosotros podemos configurar el entorno de trabajo de uVision según nos sea conveniente.

Sin embargo definiremos tres áreas más importantes. Estas definiciones nos ayudarán para el

entendimiento futuro de comentarios, ilustraciones e instrucciones (Figura 4.3).

~~t'~:.l.~~ ~ ,~=-
/if
·--~"''" ..
~ 1~~:-~,~~,~-~-
-~~· . . , -_,;-. :-.:-;:-,- -_-_-_-_-_-. ,_
-;;:;."" -.-...:!:::·E~·\

. •:J-·
.....
• '1•~,_ •.,......
...
n
""'·'"'"""'-.... '""'
• ..'.! .. -.-·~-·
•JJ~~"'"'•'

..
-· : ~~~:;:;,:::.:,
. 'l'"'··-~·
. ·}-·"·

lli ., ..... =
I_~':_NTAN_A_DE_s~~~~~~-=-LA-_c_o_N_s-r::::_Ru-cc-~,.-·~.....,!

Figura 4.3: Áreas de trabajo


49

El área de la ventana de proyectos es la parte de la pantalla en la cual, por defecto, el

proyecto, las funciones, los libros y registros son mostrados.

Con el área de la ventana de edición, nosotros somos capaz de cambiar el código fuente, ver

la performance y análisis de información, y verificar el código de desmontaje.

El área de la ventana de salida nos proporciona información relacionada con la depuración,

memoria, símbolos, llamada de pila, variables locales, comandos, buscador de información, y

encuentra los resultados en archivos.

Si, por alguna razón, nosotros no pudiéramos ver una ventana en particular y hemos tratado

de mostrar/ocultar esto varias veces, tendríamos que hacer uso del diseño por defecto de

uVisión a través del menú Windows- Reset Current Layout.

4.2.3. Redistribución de la zona de trabajo

A la zona de trabajo podemos cambiarla de aspecto y de organización. Para ello es necesario

que actuemos sobre alguna o algunas de las restantes ventanas, lo que nos origina un cambio

conjunto de las distribuciones de todas las ventanas y zona de trabajo. Los procesos que

comentamos se pueden aplicar sucesivamente con diferentes ventanas o pestañas una tras

otra. La manera de proceder es la siguiente:

• Primero, damos click en la barra superior de la ventana que se deseamos reorganizar (o

en la pestaña oportuna, en el caso de una organización en pestañas y que solo se desee

reubicar esa pestaña en concreto y no todas las de la ventana). En nuestro caso, la


pestaña Templates.

• Manteniendo pulsado el botón izquierdo del ratón, arrastramos. En ese preciso


momento nos aparecerán unos símbolos u operadores de organización, tal y como se

aprecia en la figura 4.4.


so

' .J ".l :.J ..... ~- ' !!" _,


t'.r,:,.~ :n ~r~_..... _;A~~·

·-- ---_:~---=-~-M ~~~-~-,..., ':J~~~--'-


~!~

,. 11
!
/':
r--- ¡---------------------------------------------------:

j i
.2:! i
flL&:...;~,:.;.¡.- ,,J¿,{j:l_~ ~-

Figura 4.4: Reorganización de ventanas

4.2.4. Modos de uVision

Uvisión opera en dos modos: modo de construcción y modo de depuración. Ajustes de

pantalla, ajustes de barra de herramientas y opciones de proyecto son almacenados en el

contexto del modo. La barra de herramientas de archivo está activa en todos los modos,

mientras que la barra de herramientas de depuración y construcción está mostrados

solamente en sus respectivos modos. Botones, iconos y menús son activados si son relevantes

para un modo espedfico.

• Modo de Construcción: Es el modo de trabajo estándar, el cual es el que se ha utilizado

para nuestro proyecto.En este modo escribimos nuestra aplicación, configuramos el

proyecto, establecemos preferencias, seleccionamos el hardware de destino y el

dispositivo; compilamos, enlazamos, ensamblamos el programa, corregimos errores, y

establecemos ajustes generales válidos para toda la aplicación.

• Modo de Depuración: En este modo nosotros también podemos cambiar algunas

opciones generales y editar archivos de código fuente, pero esos cambios solo se harán

efectivos después de que haya cambiado de nuevo a modo de construcción, y reconstruir


la aplicación. Los cambios de ajustes de depuración son inmediatamente efectivos.
51

4.2.5. Barra de menú de herramientas

La figura 4.5 muestra en la parte superior la barra de menú, mediante la cual nosotros
podemos acceder a todas las opciones de uVision, y debajo de ella se encuentra la barra de

herramientas, con los iconos de las funciones más usuales. Estos iconos suponen un atajo

alternativo para realizar tales tareas .

. .: ,,¡A!

Figura 4.5: Barra de menú y de herramienta

Es importante advertir que si ya se hubiese trabajado con algún proyecto y se hubiese

modificado la apariencia y forma de las ventanas de la interfaz, entonces al entrar en uVision4

se mostrará la interfaz exactamente igual a como quedó al cerrarse la última vez.

4.2.6. Ventana de proyecto

Una vez que ya hemos empezado a configurar, y quisiéramos ver nuestro avance, en las

diferentes librerías, la ventana de proyecto (figura 4.6), nos muestra información acerca del

proyecto actual. Las fichas en la parte inferior de esta área proporcionan acceso a:

Proyect: Estructura y gestiona el proyecto. Agrupa los archivos para mejorar la visión general

del proyecto.

Funtions: muestra las funciones del proyecto. Encuentra y navega rápidamente entre

funciones del código fuente.

Registers: registros del microcontrolador. Solamente está disponible durante la depuración.

Templates: plantillas de bloques de texto de uso frecuente. Doble click en la definición para

insertar el texto predeterminado en la posición del cursor.


Books: libros específicos para el IDE u visión del proyecto y a veces del microcontrolador

usado. Configura y añade sus propios libros a cualquier sección.


52

¡.,;~,;d -~@:
r·r:B:'-·¡'"'~-:cU:;;So;-B_""p,-ol;-o--~~--'----.-~ f
Él~\ Start_up
; ~-[,l;] otortup_stm32f!Q,_hd,, ji
B·'C'1 Source l!
' ~- ~ hw_config.c J !
oo-{;;J m.!lin.c. 11:
~. [,j;J u,b_dooc.c 1
1
r±J-[;2 u:;:b_i:otr.,;.: 1 1r
EB~~ usb_prop.c ~
rB- ~ u!ib_pwr.c
8 }::_\ lntenupt
l rfl- ~ ctm32f10x_it.c
8-~\ libra!)'
! s-[2mbc.c
\ ffi . ~ ~tm32f10x_ert'i.c
' á f!J rtm32fi0<JIJSh.c
Gl- Gt1 run32fi0x_gpic.c:
[~1- (2 !;tm32fl0x_rcc,c
ffi -!,!:) run32fl0<_u,.rt.c
él USBlib
t.fl-!.itl U!ib_c.ore.c
&1-@;) u~b_init.c
é¡.. L1GJ u~b_int.c
j $ -~ u~b_mem.c
' m f.¡.,,.,.'" ...,,.,.,.
_!
·-~-~~:!..J~::.'.';: o,,_,n., . ,,, u., ..,'",,,, ..

Figura 4.6: Ventana de proyecto

4.2.7. Ventana de Edición

La ventana de edición es usada para:

• Escribir, editar, y depurar archivos fuente.

• Establece puntos de ruptura (breakpoint) y marcas de libro (bookmarks).

• Establece opciones de proyecto e inicializa el sistema de destino mediante potentes

asistentes de configuración.

• Ver el código de desmontaje y traza durante la depuración.

Típicamente, esta área contiene el editor de texto con los archivos de código fuente, la

ventana de desmontaje, el analizador de rendimiento, y el analizador lógico (figura 4.7).

j
-- ---- - _.r:
Figura 4.7: Ventana de edición
53

4.2.8. Editor de configuración

;.··r,·,:'·.

En esta parte, procedemos a configurar las opciones del editor, colór~s y fuentes, palabras

clave definidas por el usuario, y plantillas a través del diálogo de configuración (figura 4.8).

Podemos invocar este diálogo vfa el Menú Edit - Configuration.

Configuratícn

;1 Editor j Colors &Forls j User Ke¡•Nc.ro.j Shortcut i<.eys j Ten-.plotes j Other l


General Eddor Setto,go: ~ Function Displa¡•:
~.Auto !r'tdert , í.i Di"PiaY Modules
~ 'ktual Spaces i r;¡ Sean function names ¡,., proje.ct files
f- \!:ew Whfte Space ' ~ Sean function ne~r.es in currert edttorfaes
1

---- - '
-~--- -· --- - --- -- - --- -- -- -··-- --~-- .- !1
Lock S Feel: ; ¡;¡¡, Hn:iect Hanemg: i
~ H>;¡hlight Curren! Une
í.i Hlg~JJght match.'ng and mosmetched brac""
l r Create llackup fdes \.SAK)
r .'dc-matic reload el e:<!emajy modii<d !les
i
1!
~ Pnr~ wdh eyntax colonng ' r Savo Proj•ct Wore entenng Debug ¡:

C/C~Fles: AS!v1 Res:


. __ . --=- ~~~-FU:sb~ore-~~:g~•bu~-
) Orher Faes:
_____ - - - ! ¡· ~-·.,
r;; Uze e-¡¡-ttax ccloring ~ Use S','ni& cd.oring
r lnsert=cesfortabo r Úleertspaces!ortebo r lnsertspacesfort..bs

Tabeize: r:B Tabeize: 14 ::B Tab&ize: 14 :B ,.

~ - _:_~_:~_·'.~-~-·ru-~-~-:·-·.--_---;:~=Sh=~=,~=-·=': ;-·~ -~=~=_eon=_=~=-~____=::;___~__-__-r_'_~_·__u_._,_~_•_~..-;::__=_=H=,:p=: ;_l~ 1

Figura 4.8: Dialogo de configuración

4.2.9. Ventanas de Salida ··~ ......


··<:.

Por defecto, las ventanas de salida se muestran en la parte inferior de la pantalla de uVisión e
incluyen:

• La Ventana de Salida de Construcción incluye errores y avisos del compilador,


ensamblador, y enlazador.

• La Ventana de Comandos permite ingresar comandos y evaluar.

• La ventana de Búsqueda de Archivos nos permite hacer doble die en un resultado para

localizar el código fuente que desencadenó el mensaje.

• La Ventana Serial y Usart muestra 1/0 de información de los periféricos.


54

• La Ventana de Llamada de Pila permite seguir el árbol de llamadas de programa.

• La Ventana Local muestra información acerca de variables locales de la función actual.

• La Ventana de Reloj nos suministra una conveniente manera de personalizar un conjunto

de variables que les gustaría investigar. Objetos, estructuras, uniones, y arreglos pueden

ser monitoreados en detalle.

• La Ventana de Símbolos es una opción útil para localizar definiciones de objetos. La

Ventana de Memoria permite revisar valores en el área de memoria. Define las

direcciones preferidas para ver Jos datos.

• La ventana de buscador de Fuente ofrece un modo rápido para encontrar ocurrencias y

definiciones de objetos. Use sus criterios de búsqueda para reducir la salida.

4.2.10. Ayuda en Línea

UVisión incluye muchas páginas de manuales en línea y ayuda sensible al contexto. La

principal ayuda del sistema es disponible desde el Menú Help (figura 4.9).

D/ ARM De...elo,c.ment Toob 41 _


~~ !*.f ;;-¡~ .~: ~,,..,_

!], p> ,: '· ~ !;,. -----·-----------------:-


-----
-~r--·---

' j hdox i ~ 1 F~,~··l ; j ARM Development Tools ~ KE 1[


j
!
¡;¡! ¡.:~7.'-F.~~~IU
~·~;~:.~~~-~=~~ i
:~
¡
~ AnAJ:.H2co.rpny
------------~-----~------------------
@.
1
~
P.e31'/leweow;,krR.;en!f'ICe GuY. , ;
I I I . Rea!V~-a·.... Lb!aies and A:~at:ro>J Po '1
m ~ Re<Jl\1aw ksemb!~ u~Guide.
ARM m_~ct~f) Set ll:etiJ Gutd~ 1
¡ 1
1
1

;
l
1 Ke1l development tools, designed for ARJ.l proc-essor-based d~vices, support eo·er,·loevel 'E:
of dew!loper from the professional applícation enQine~r ta th~ student just !eaming
about embedded softwar~ development. ThE industry-standard Keil C/C++ compilers,
~~~~~~S:~t~~~¿0~;g~~~=r~~~~!~~~~~~~n~=~~· Y~~d1 ;i~2~~b:~~~;g~}~ci~rs
@ Real'w'i'!·.v UM.er U...erGi.do ' ; completed en schedule.
f•1 • P.aaf'Ja;.: Lmr.er P.eierence Guida 1 '
~·Re~'o1e ... IY"Jil~G.dde ~· , 1 . . d . JI 1 .
Cil~ R!.. !.J\!.1 R.o,;;!.Tr.~a l..:lbrnr:, lk'..era (- ' j The foUowu10 components are 1ndu ed 1n the ARH Microcontro er Oeve opment K1t
• 1 (MOK-ARM®):
1 !:fl MCS1:C~l~~n;G.i.d9 , f
fE MCB1~C llw's G0Ca i j a MDK-APJ·J Primer.

: ~~~:;~;;~;:~: ! ! •~
L!1 l.'C8213C'L~ereGolde • ~~

~ ~:;~~~ t::: ~: • B.~M~~~ r.!;g:ro Assembl~r.


lí:!J P.CB2.!CO!Jw'eGUde • ReaMew LifJker.
~1 ~ M:B2SCOU:rer'~Gulde.

1
, 1 • Real\r'íew Utihties,
(fl MCEWJCbx u~~r'a W::J~
@ MCBSTU12U:-ers0uiée J • ~~ea!-tirrl,.f\¡ameflibrary.and
$ • MCBSTI-112C 'h~':¡ ~ J • uVrsf9n Debuqger.
'[f) 6- M:ssn.n2E lfuer'e ~ ' i'
ffl • f.~:BSTRi l!~er'' Guide
ff) •
!:ti
IACBSTR7JC U.ser' Gulde
't IJCBSTR~U~!'f'·oGuk:!e
-- - r,1 " - - - -
:

¡• l•
! Note
You c¡,n use the ¡JVision4 IDE and Debuoger to create and test applications you
bui!t with the ARM Rea!View Compi!.;;r.

Figura 4.9: Ayuda en línea


55

4.3. H-JTAG

La siguiente sección describe la programación en la memoria flash en controladores ARM7TDMI

con software libre. Se mostrará como la combinación uVisión/H-JTAG/Wiggler, en nuestro

proyecto, ha sido usado como una solución de programación. El software usado es H-JTAG Vl.O

(Build 20100120) de Twentyone y uVisión V4.10 de Keil.

4.3.1. Configuración

En primer lugar conectamos el Wiggler ARM-JTAG con el puerto paralelo de la PC y la tarjeta

de destino. Se verifica que la interfaz JTAG del microcontrolador esté habilitada y aplicamos

la alimentación a la placa de evaluación. Luego se Lanza el software H-JTAG como se

muestra en la Figura 4.10 para conectar con el microcontrolador ARM.

,. : ! \'/ínE-:lt 6
.,.
1!1 .:..j.ob~ R~a-j~r 3 Hl-IECH S·ofkare
--~ ···--·--·----
H-fT~.-.; ~ . ~~ ·: H-Con'/..:rt~r
~~ !:.~í:itent~ pJra ~~on~r-:s y j
HP ~ , <~; H-Fiash<r
::.. ·iLC media pi.J•¡'<!r i
1
rma·••2L(d ,. ; C:J H-Fia~11er Lite
l tnkio ~' \'-_¡ H-JT.'-G
Int-:rno::t D·:l•.'mload Uana·~·U

ls:;a Pact
Jueg.,s
H~:<iiET

hl.:taG.:-::1:
r\liU·J{IliP
r.uor-os~ft Offi<;:
! r..li-:ro~·Jft Sll'.·e¡llght ~ :
'-.
¡'
r·.Jio:r·J~·Jft SQL S¿:rl-tr 2•}}5
T·.Jicr-J:i•Jft Vi:iual Stvdi•J 2•J03

rdil:rtJ él .:l:tr•Jnil:a
r·likT..::-:. 2.9

OrC~D Refea::~ 9.1


P( Spe:;.j fda;o..irni:::-:r
PDFC¡tator
PIC-C

Figura 4.10: se lanza el software H-JTAG


56

H-JTAG Server automáticamente mostrara eiiDCODE detectado.

CORTEX·M3

Figura 4.11: H-JTAG Server

Normalmente H-JTAG Server detecta automáticamente la interfaz y establece una conexión.

Solo en el caso de que haya un error, nos vamos a LPT JTAG Setting del menú Settings para

que aparezca el menú de configuración. Asegurándonos que la opción Wiggler es

seleccionada y nTRST establecida con Pin2 DO. Intentamos diferentes valores para la

velocidad de TCK para probar la estabilidad. Finalmente se minimiza H-JTAG Server. Sin

cerrar la ventana.
57

File Control Fla;l1er [nlt T·Jols Settin·;¡s Option> Help

~ ,-¡,~ í. LPT JT-";G Setting

Ci" Vlir;gler ::Pr~def~rJeij:; H.·1S ~¡¡-.; ~· 1 _:::!


(- .Sdt .jta_g ~Predeflnedf
("' Us.er [:,z:f¡ned TCK ¡r,r< u_ _j
T[;l ji''r;-,;:- [·? :J
¡;¡- nTRST m.rt.pui ir,-./erted T[i()
r ...
nTRST jPin2 [:!}

n'3RST Jr·;O SYS r::ST ~j

Figura 4.12: Opciones LPT JTAG

4.3.2. Depurando el Programa

Para poder depurar nuestro programa con uVision y H-JTAG usando Wiggler se debe de

agregar las características del software dentro de uVision lanzando la herramienta TooiConf

del mismo H-JTAG como se muestra en la figura 4.13 .

1 19 :.ooo~ P.:lcter-5 i Hl-TE.-:H 'S'·~ft1-:are


,, . ~'..'infdt·S 1

' ~ .:.~i~t~nl~ p~rl !~t."'n~roes ~· ~ H-JT.!.G •:r.tH:c;~:.~rt¿~ ¡


1


HP • r·~ H-Fb~hi!r
·'"'
••d i1

·-
/n1:\Qo!.2üd H-FIJSI1i!rl!to!:
:·~¡ PS E.-port intoerla~<!1 loi.:lo •. [J H-n.:.~
1
~l~;ovtPiu~ !nterne¡t)O\',nlo.adF./,m"oer H-JT.!.G IJ~ERr ¡:.¡¡u!.LlOil 1
¡;j H-JT..!.G IHO PJd: •:"'" H-}T.:..GIJ5ERf.I.!JIU:.L1E/IJ 1
r-
J·J~gos •. ¡Q Too!.Cont 1
r.r..:.xmr •! ~-~~~-'_____ j
..,
1
f.l~taG.:~t

f Uo-ochip
•;
l.fi!:TO~Cift CfH.:e
I.!IO:r-JSoft ~il'io!rliQ:ht .¡
r.hm);.;¡ft "SQl 5~r;er .!005
r
,,•:
r.!icro!·oft ·,·üu.sl st~d1o 20·Ja
LUcrc~vn \'.1ndows ~DK\6,•):.

r.llJTO::l.:l:trcnll:l ~!
J.tif..TeX.!.~

fl<ltionllltn:;tlum~¡,t¡:
,,•¡
fleto
CrOO Rl!l~.ue 9.1 ..
,,
~C<n•
.
; P:::. 5r-~~d 1-lll•imi:H

~~;,"~-~ ~
PDfCI~Jit•Jr •!
PiC·<: ~

Figura 4.13: Configuración H-JTAG con uVision


58

TooiConf automáticamente nos muestra la siguiente ventana como se muestra en la figura

4.14 donde se tiene que seleccionar la dirección del archivo TOOL.INI de uVision.

coñfig ; Exit

Figura 4.14: Ventana TooiConf

Una vez configurado se mostrará un mensaje como se muestra en la figura 4.15 .

.,_.,_
Too!Conf
·,......·

(O;~ Upc!atEd TOOLS,!Nl fcr KEIL/MDK succmfully. ~

'1
.-------0-K--.1 1'
Figura 4.15: Mensaje de configuración de uVision4

Luego abrimos la ventana de Options en uVision y se da clic en la ficha Debug. Verificamos

H-JTAG CORTEX-M3 esté seleccionado y que las opciones Load Application at Star- tup () y

Run to main ()estén habilitadas como se muestra en la figura 4.16.


59

2~§Bi;~~~t€~~:~~i9~?~~:.:.:.~ __ ~~------.~--
~··'"·! r...,;., J·O.;:put 1Ut.;,,.¡u..,,·
r- Use S:m¡J.¡¡~:l:!"

~--== s'~~:o.P.ea!--~~=---~------·-··---·-~==::;====;;:::=::==~

.::L~
~ Re...~ore C~~g ~$'.CJ'l Sf.."'.sngo-··--------'-l i ¡-~t~ [~~ ~:;r¡ Se;t:r;;¡g-----~--...____1
1 ¡;;· Ereal-.pctl'lt' P To:lb·:t< 1 f 1 ~ Bre<:J.:;:-:.."1!3 r;¡_·T~=;c~ 1
j P •lh~.ch \;/;nd-;¡·.~·0 l _?~-errr.on~e P.na!)•ze~ IJ f W WatCn ''1/lr'.d~·Ns !
L~~~~or-,c~~~~~-- -----~-~J !t_ ~_'::~~~:~-------~-~--·-~---J
CPfJ [fL~ frarery:ew. ¡C~1·oer DLL: rPo_rá_n:~_!..-:_.._ _ _ _ _ __
fsA?.M:M3.DLL ' ¡s.!.?.r.:Cf,ll.[oLL
1

Üiqlo~ DLL-: Param~ter:


jD.~RMSn.~.D!.. j-pSTt.1J.éF1C3'•i.E
¡o-~:.:-; DLL:-
,-~V-Rr.1srr~t.DLL
Per~rneter: _
j,.:-o:,;:ST¿;.I,:-;:IJ;;,:2F:;,1C:,;l',,'E,-----

OK

Figura 4.16: Opción Debug

Se da click en la ficha Utilities para abrir las opciones de programación en flash. Necesitamos

descargar el programa antes de la depuración.se verifica la opción Use Esternal Tool for

Flash Programing donde usaremos H-Fiasher para descargar. Buscamos H-Fiash.exe y

marcamos la opción Run lndependent.

Cor~ fl.-es._~ r.:-::r"iu CcJrt!T',ar:j---~-~ --·-- ~-.,-- -------~-- ~ --- ~~---·--· ---------- ------~ ...............¡
r ·.~e Ta~e! Qnv.arfCrFle!fl. ?.-o;ra¡r>~r.tng 1
~. .Ts;::,n ::J~ l7 Ucdó'{•hr~ctt.Ei-:-.,;,r::f-~-~-':!~'.:1-1 ',l

1<1.~i1e' J ce·;, 1

(: ¡;;s:o.r,;;iTdkrP~P<e,·ra'"'"'Jr.¡;l 1
. ear.~~:{C:\!.r.::.t;¡·,·~!i.d~_oro:;rc.m!I'..Ji-JV·.~·\K·Ra&he•·.exs _::_1 t
!
i
¡
1

·-~-. -4--·-------"-·"--·---·-·-- ~~

OK 1· C.W,ce!

Figura 4.17: Opción Utilities


60

Clic en OK para salir de la ventana de configuración y regresar al menú principal. Luego

vamos al menú Flash y die en Download. Se debe recordar que antes de depurar el
programa se tiene que descargar el programa.

;~- s-rm3~~fd-:-Fi~~~LEO-. ~~·-.r~iot~l-+ --- --


File Eclit '·/iev: Pt:·Jject (_Flash 1 Debug Peripherals Too!~ S•:'CS

Configure Fl~sil To•JI~.,

Figura 4.18: Menú flash

Esta acción debería abrir automáticamente la aplicación H-Fiasher. Luego se resalta la

opción Flash Selection de la izquierda, y elegimos el chip de destino, STM32F y luego


STM32F103XE.

H-Fiaslw·- ppp.• hf•: :.:91 ·§ ~


1

New Load Save Save As Options EKit About

.t~gt+:~~~~~•t! :a~mt~~~i:;,
'r----. ------ ·¡ 1:
: 1 >\ FlaSI1 S¿lection

:¡,;: Configura\i·)n !:
8 STM22F
i Si!'.-12¿Fl:·1Xl
· ~r¡
?crtNc: SH.i22F1 ~ :x=
:~ lnit S.:ripts '¡ 1 j' ;J '''"¡·-•"'
·a~ ,ir ._.!)\e

:l~-
1
PFl<;¡rammin·;¡ ¡; l\ ·· Sihi?¿F1Gt.:<f
·· sn,:~<rlC•IXB
.í; j' '_.:_·_' Pgm C:pti -:ms 1
· 3Tf,l!2F1;:C1XC
G-:n..:rat · SThi?Lrl:,1XD
STM!2~1G1YE ¡--~
1
!j ~ Cm-Chip Flash
¡ 1
STh!22i= l :·2>:é
',._ j' ·.·...·. r·Jan•j Flash
STf..i?2rE'2Xf ¡_
H-flasl"t' H;;lp ·:.-
·· STM~2Flj~_XB
·· STM22i=1 G·2X:! 1 'lt'dth: 1f·BiT
1 i
:1 SH.,{?lF1C"l.><E

.! STf-,12:<F1C':?YB
.. SThl32FiC:3X~
:1
:j

Figura 4.19: H-Fiasher


61

Resaltamos la opción de Programación a la izquierda, y se da die en el botón Check en el


lado derecho cerca de la parte superior el cual detectará al microcontrolador. En la derecha
de la caja de texto Src File, dar die en el botón (... ) para buscar el código .HEX de destino.

H-Fiasher- ¡:ipp.hf·:

New Load Save SáveAs Options Exit About

·-i; .F103XE
: ¡· .!2 Fla>h S~le.:tio-n . - . - ; 1
. : ¡

:.!' ' _-.·.· C·:mfi·;Jurati·:m !: Target: CO~:TEX-h12 LITTLE-END!.~.N Check


---------
1

rnir5cript> · 1
' · !~ Securit¡t: '
UnPP:~te:::t ~
. i "'· Pro.;¡rammin·;¡
1 -"--····· ------ --·-
1 P·;tm Opti·Jt1;;
.'t General
Type:
~l Pfl:·gram ¡
1
1' On~Chip Fl.l:;h
il ,. Nan·j Flash ! 1 Sré: Ftle:
; 1 ·: H-Fiasi1er Help
!
Fmm: ~ra~s j

---------·
Tv: E!ank

o F:ead

Figura 4.20: Opción de programación


62

Una vez que todo ha sido configurado, die en el botón Program para descargar el código hex al

microcontrolador. También podemos realizar otras tareas como borrado, verificación de

banco, y limitar la región de programación.

Después de finalizar, minimizamos la aplicación de H-Fiasher. Se regresa a uVision4, vamos al

menú Debug y seleccionamos Start/Stop Debug Session o Ctri+FS en forma abreviada para

iniciar la depuración. Podremos ver la ventana de depuración con los registros RO- R15, CPSR, y

SPSR los cuales son el núcleo de los microcontroladores ARM en el panel izquierdo. Un cursor

se para en la primera sentencia en este caso porque la opción Run to main () que fue marcado

en la ficha de depuración. Se presiona la tecla FlO para pasar por cada sentencia.

~-:~~~~T!M:·~~~o .·;~~-=--~~:-:::-~-~w~-=~~~~--~--~~~-~=~::-~:=~~---_:--~~~~~~~~-~~~~-=~=-:-~~~---:--:2~;:~
f'(~ ~·u 1!1.,.... · f'lil;•rr t¡,.~ t~!l!..tJ P..t\1l~"'""'; 1~...t-. 1~·;,:¡ "'~"" ""lu

:¡ ~~~e@--~------·

~¡'(
·(\.1;3
l~-<: ~ . ::.~~-"<l~a,
.,_ .... "'"" . ""'""''' ..............................................
-:;;_':;::~!'~-~:::!:~:;~".
!

, IJ..tS 1 :!~-~-:;::.oH;
IH7 ~<l•li,. '~'
u.n:
o.Hr
0'):1: ~!~~:~~;~,.;:-~!!J :..:::;_;;:;~,
051¡
'::~a:;1":1'.~lfi::1;
""'
:J !.~!;·.;._-:r:'
=~:~:.{:...,::.nrr.;
:.;!.!:.;:_-;:;¡ :!::~_-::'! 1

:f;~;!. .. <' :~.::-....--::::-,: 11

""os:
057¡
:.:::t·:._cr;t :.r:p:_cr:; :r:-!_.:;1:
:~:!~·t:.~;.nr!•'
.. os; 1 ::;..,:,.~· ¡;;¡.;..;::~:, r
{5)\ \
(lt.Jij
1)\;l;
~--~U~I.:__¡·
"'' ,:JI¡
.!J
··-.··,
~==",;;;,;.:;;,;~;-,;,~:~~";~~?i?Co::: •
; .. ¡
~-=::::_::.::-:=_:~_·_b:.~ P::::~=~-=~:::..::.::.:=.::-_:.::~::.::...~~~-~-:,::,_:_ __ ~j·~~?.: - .)·

Figura 4.21: Ventana de Depuración


63

Archivo -~~~~ción_ V::_ __ l~an?_:r --~~~s!~r!r___ ~~-:uda


---¡
-D ¡¿: -~ 2J: el) [SI ~
-- ------------ ---· -------- --·¡
!

The current AD value = 2067 --- 2106


The current AD value = 2120 --- 2096
The current AD value = 2008 --- 2047
The current AD value = 2084 --- 2005
The current AD value = 2100 --- 2021
The current AD value = 2048 --- 2046
The current AD value = 2080 --- 2118
The current AO value = 2020 --- 2117
The current AD value = 2112 --~ 2123
The current AO value = 2046 --- 2103
The current AD value = 2083 --- 2124
The current AO value = 2063 --- 2020
The current AD value = 2128 --- 2067
The current AD value = 2048 --- 2080
The current AD value = 2022 --- 2047
The current AD value = 2047 --- 2029

Figura 4.22: Ventana de Hyperterminal

Cuando cerramos la ventana del hyperterminal nos mostrará primero una ventana de

confirmación de desconexión y luego otra por si queremos guardar la sesión del

hyperterminal con la configuración que hayamos determinado al iniciarla.

H;rp.:rTermina!

Figura 4.23: Ventana de confirmación de desconexión


64

H'j'perTerminal

11 !. '~'" ~·""'"""'"'" ~~" .,,,,.,


1 e~~=~ L-~~J
Figura 4.24: Ventana para guardar la sesión de comunicación

4.4. APP INVENTOR

Google App Inventor es una plataforma de Google Labs para crear aplicaciones de software para el
sistema operativo Android. De forma visual y a partir de un conjunto de herramientas básicas, el
usuario puede ir enlazando una serie de bloques para crear la aplicación. El sistema es gratuito y
se puede descargar fácilmente de la web. Las aplicaciones fruto de App Inventor están limitadas
por su simplicidad, aunque permiten cubrir un gran número de necesidades básicas en un
dispositivo móvil.

Con Google App Inventor, se espera un incremento importante en el número de aplicaciones para
Android debido a dos grandes factores: la simplicidad de uso, que facilitará la aparición de un gran
número de nuevas aplicaciones; y Google Play, el centro de distribución de aplicaciones para
Android donde cualquier usuario puede distribuir sus creaciones libremente.

Diseñando en el App inventor

Una vez que se ha descargado ( http://www.appinventor.mit.edu/ ) e instalado nuestra aplicación


procedemos a realizar nuestro diseño. Nos aparecerá la siguiente pantalla (Figura 4.25):

S App Jnventcrfcr Andmid • ,.

C'l O beta.appinventor.mit.edu/~2568359

'•/Velcome to the
Jl.pp lnvemor beta
prev;e·.v ret2.ase
!il\¡
: r, MIT Appinvi!ntor -f~ BETA / Projet:ts
DeSign Leam (Cebugg¡ng) Be sure to check
th~ h5t of knmm
~and
,-_:::-;-__ release notes_ ~-·- _ ___ ~·
·~ loJE.w!
;·- __ J

Projocts
Date Crea~ed

Figura 4.25: primera pantalla de diseño en App inventor


65

Luego Presionamos el botón "New" para generar un nuevo proyecto, al cual le hemos denominado
"silla de ruedas", para empezar a diseñar en sí (Figura 4.26).

--_ "ll!lll'

-- "•""" --~--.- . - .
¡~~~ ~~iB!~&~~~J t~ti~~~
Viewer CornponentJ: PropcriiP.s

tslc
~-s.:~~:;n ~.; .~JI~11HCI!'f:cn!<J!

Csrr;as
p Dlspta¡ ~.1(!_1~1'1 compon,;nt~ VJ.,;w~r
;·- ------ ------- -~mlti S:Q9-¡;N¡;
1n L~~! __ a
t..lit;n';i!rtical

~
eacr.grou:'lóColor
O \'!hite
Eael-,.¿rounCJ:Tiaíi.J
! Lat::el

L!SIPic.•:er r~~~=-==
CloscScr&t!n~nimatio
'
' IE'~0c-::::B
i
'¡ 1con
!Jeme...

O¡:r~<nStreen.!.Jllm~tiOJ
!!día
IDefault- -_E}
ll!na!ion Scrt!;;nOw;:ntatlon

Jcial l_U~~~~E
scrollaale
~
;r-:snhrangen~?nt" TWe
¡------- ~-

Jscr~en1
;GO~ f.lHlOSTORMS!i
Uac!la versloncoas
h~r stuff

lt!"Jadyfcrpli;n>J:im.a [~=-=

Figura 4.26: visor de App inventor

La App inventor nos brinda múltiples herramientas, tanto de diseño, lógica, operaciones
matemáticas e interfaces. En nuestro caso lo utilizaremos netamente como una interface, para eso
nos ubicamos en la izquierda (paleta de componentes), seleccionamos la opción "Button", y la
arrastramos a la pantalla "Screen1" (visor).

Haremos eso 10 veces para obtener 10 botones o teclas, y las nombraremos de la siguiente
manera (Figura 4.27):

botonl.. .................. arriba

boton2 ................... izquierda

boton3 ................... derecha

boton4 ................... abajo

botonS ...................v1

boton6 ...................v2
66

boton7 ................... v3

boton8 ................... v4

boton9 ................... v5

boton10 ................ timbre

Welcome to tile App ln•tentor beta release_ Be


My Design Leam (Oebugging)
sure to check the lis\ of known issues anc! Mote
Projects release notes_ Try the App Inventor Community -Y;u-~
Galle1y (Beta) 2.05 f

.. -~ " . :: -

Palette Vlewer Components

Basic . Screen·l ' 8 'J Screen1


8 :~'0 ! Horizontal•.rrangemenU
Media
:.Jeutton·t
Animation
•.Jsutton2
Social CJsutton3
8 !~J \h311icai.A.rrangement1
Sensors
·.Jeutton8
Screen Arrangernent :~Jsutton9
·- -.¡ Horizontatt,rrangement :~eutton10
8 •· Taoleesrangernent1
Taole.Arrangement

Vertlcal?.rrangement ,-. _ Botón 7 J _!lotón!U; CJeutton4

Bot~ Botón 1O ji C:;} 8utton5


-- . '.!

Figura 4.27: teclas de nuestra aplicación

Luego ordenamos los botones o teclas, regulamos sus tamaños, de tal forma, que se asemejen al
control de la silla, ya habiéndoles cambiado de nombres, procedemos a guardar nuestro
programa, para cargarlo en nuestro móvil (Figura 4.28).
67

Figura 4.28: control en el móvil

La comunicación es directa hacia el panel del control de la silla (control digital), la configuración
del reconocimiento de cada tecla con su similar en el control digital, está incluido en la
programación del microcontrolador stm32f103, que es la siguiente:

BOTON4 ABAJO

if (cadena2[0] == 'a')
{

bt_flag3 =O;

if (cadena2[0] == 'b')
{

bt_flag3 =1;
}

BOTONl ARRIBA

if (cadena2[0] == 'e')
{

bt_flag1 = O;
68

if (cadena2[0] == 'd')
{

bt_flag1 =1;

BOTON3 DERECHA

if (cadena2[0] == 'e')
{

bt_flag4 =O;

if (cadena2[0] == 'f')
{

bt_flag4 =1;

BOTON2 IZQUIERDA

cadena2[0] == 'g')

bt_flag2 =O;

if (cadena2[0] == 'h')
{

bt_flag2 = 1;

BOTONlO TIMBRE

if (cadena2[0] == 'i')
{

GPIO_ResetBits(GPIOD, GPIO_Pin_G);

}
69

if (cadena2[0] == 'j')

GPIO_SetBits(GPIOD, GPIO_Pin_6);

BOTON VELOCIDAD

V1:

if (cadena2[0] == 'k')

porcentaje = 20;

pwm_const = 6;

V2: if (cadena2[0] == '1')

porcentaje = 40;

pwm_const = 12;

V3: if (cadena2[0] == 'm')

porcentaje = 60;

pwm_const = 18;

V4: if (cadena2[0] == 'n')

porcentaje = 80;

pwm_const = 24;

VS: if (cadena2[0] =='o')

{
70

porcentaje =lOO;
pwm_const = 30;

Lo único que tenemos que tener en cuenta, en esta parte, es que exista una óptima comunicación
(bluetooth).

La App inventor es muy sencilla y fácil de usar, pero no cualquiera podría maniobrar la silla
eléctrica por bluetooth, debido a que la silla te exige una contraseña de acceso, la cual solo la
sabría el propietario.

Programación

Nuestra programación se divide en los siguientes bloques:

Hw_config.c, app.c, lagos de la pantalla táctil.

Hw_config.c

En esta sección vamos a declarar las diferentes librerías y variables (Figura 4.29).

En esta parte configuramos las Gpios que vienen a ser las Entrada/Salida de Propósito General

Los pines GPIO no tienen ningún propósito especial definido, y no se utilizan de forma
predeterminada. La idea es que a veces, para el diseño de un sistema completo que utiliza el chip
podría ser útil contar con un puñado de líneas digitales de control adicionales, y tenerlas a
disposición ahorra el tiempo de tener que organizar circuitos adicionales para proporcionarlos.

Los usart, que vienen a ser nuestros transmisores/receptores universales tanto


asíncronos/síncronos.

El DMA que es nuestro acceso directo a memoria.

El Bus SPI (del inglés Serial Peripheral Interface) que es un estándar de comunicaciones, usado
principalmente para la transferencia de información entre circuitos integrados en equipos
electrónicos.

l. Declaración de librerías y variables


71
File Edit Virw Projed fla~h Debug PWpherals Tooh SVCS Window Help
----------
rl r3_ I:HII_i._ J fl_l "l_ ~ J 1 !" ,:'. :~ -::11 i~ ;~m llil E!l
~ ¡¡:;¡ il1i ~ bll ':·~ 1 ffill1f10lVET6 ~'#i ¡;·,2:
~..,tia[ ---
Projtd 4 D ;J L0~~~ECTR;~l1~~c -~1]~-=<!~~.c~)-~hiC&íff.i.(!}j-,J- stm32f1Ci_it3rtu;Ú '.J cM"irmJ~M-;~~s ··U down~;rrto;~;-t] up_~rro-w2.c '·J up_au~3.c •) elec2.c -¡;,-X-~
aD startup - ~r---~,,~,~.~,~,~cl~u~de~,--------------~--~-~--~-=..=.=--==-~-~---------------------------------------------------------------------•~1~-----------------------------i
t] cortexml_macra.s 17 tir.clude nlncludes.t"
Ll stml1110,_stort'Jp5 18 hr.cl~.:de "str...32f10x.h"

J
19 tinclude: "h•.J ccnfiq. ~·
8 (J U1tt
20 4-lll~lt:de "s~2!10:.: g:¡ao.h"
1'1 J app.c 21 finclude ".!lt!:S2t!.Ox-~cc,h"
8 J hw_confrg.c 22 tinclud~ "sti:l32f10x-f~sb.i=."
] app_dg.h 23 Hr.::lud~ "'st.ID2fl0x-t.iit.h 11
24 hn::lude "st::S2tl0x-api.h,.
] COit_cmJ,h
25 hnclude 11 Bm32tl0x-adc,h"
J cpu.h 26' Hn::lude "sc:52f1úx-dl:.a.h"
J cpu.def.h 27 Hn~lude "st.:::32!10x:usa~t.h"
28 h.n=lt.:d~ "rJ.sc.t•
:.Jctypc.ll
29 Hn::lcd~ "fs:c s~an;..h"
J fsmc_sram.h 30 Hnclude "ilH'i20.h"
U GUI.h 31 !• Priva:e ClfP-:!def -----------------------------------------------------------•/
CJ GUI_ConfOefaults.h 32 1• Pri•ta'te define: ------------------------------------------------------------•/
] GUI_I<.h 33 fdefine ADCl OR Addre3S ( {u32)0x4DOl2HC)
34 fd~fin'l" TP_c5()- GPIO_Reset'31t.5(GPI09 1 GPIO_PL"l_7)
] GUConf.h
35 tdefine IP DCSI) GPIO SetB1ts(GPI0'3,GPIO Pin 7)
] GUITouchConf.h 36 !• Priva:e-tt.acrc ____: __________________: ___: ________________________________ .. ¡
[l GUITypc.ll 37 /'" Priva.:e variaCles -------------------------------------------------------•/
1] GUlVersion.h 38 ErrorSt.atus HSEStartOpStatus:
39 vu32 ADC Dual.ConvertedValueiab(180];
D hw_config.h 10 /• Ex-:er; ·;ariable!l ---------------------------------------------------------•/
f Jmmo.h 41 enern uns1qned in~ CCR.2 Val O, CClU Val 1, CCR2 Val. 2, CCR2 Val 3;
¡ J indudes.h 42 /• Priva::e fu.-,c-:ie::. :Prc-:C:nes ___: ___: _____: __: _______: ___: _____________ .. ¡
1
¡_<_]___ _______ _ oi3 /" Frivate fu.'lc:.ic:J.3 ------------------------------------------_-------+---~/
)•j
SuildOutput

Figura 4.29: Declaración de librerías y variables

#include "includes.h"

#include "stm32f10x.h"

#include "hw_config.h"

#include "stm32f10x_gpio.h"

#include "stm32f10x_rcc.h"

#include "stm32f10x_flash.h"

#include "stm32f10x_tim.h"

#include "stm32f10x_spi.h"

#include "stm32f10x_adc.h"

#include "stm32f10x_dma.h"

#include "stm32f10x_usart.h"

#include "misc.h"

#include "fsmc_sram.h"

#include "ili9320.h"
72

2. Desarrollo de la función: RCC_Configuration


En esta sección Configuramos los diferentes relojes del sistema (Figura 4.30).

FU~ E!llt Vltw Projett Fb;l\ 0-cbug ~<lph~n!1 To>:m SVCS Wlndi)W Htlp

n cHiloi\ .·. , .::~1 ~ -~- [ 1y;.,_-~. -.,¡ '" :~ 11 1~;1 ~ .• :,1 .. 1llll" -&)•:u~::JI':-"'T -- -----
---~~-111-~~~-ir·~~~ ~~1~~;-~--~~--~r~~~~• ii~J~~~--- ~--- --~-=--~~-- . -- - _
Pro]td
2

O stzrtup

8 D ustr
W O>t=l_ _ ,_,
L) rtm3Zfl~startvp.s
-
!)

J'
!J_
~
.__) ux;o_!l.fCTlWHICAl.c
S'J
SS
56
:~
''] .!O!P·-'
vo1d RCC cont'1oaratien (vo-id-)- -
( -
·"._j tuor_uonf;a.r:~-.-,_)

E:rrorStat:.>!l BS!:StarttlpStatus;
~~¡:,~I~~~~ re:Jt::~ {~cr clebug ¡:ürpc!I-=J •J
¡tml2fll)l_¡tartvp.s Q cortioli'I13:.. Mro.s • ;J down_M•tw:'.c \j .
~ .arrow!.c _] up_urawl.c

~trD !pp.c 59 /"' 't.n.ab1e HSE •f


f" D hw_tt'l'!fi9.c 60 RCC HS!:Co:~.tig IP.CC BSE lXI};
!..,] rpp_dg.h 61 /• W111t :all li.!!E 'i"!l r';ad7 •/
.J core_cmJ.h :; ~~~~:~~~;~:t:sR=-~~~~~-es~:ntUp();
..J cpu.h 61 - {
..) cpu_dd.h !• I!C"'..?. • S'lSC"..K •/
:J =~:~m.h ~~
6B
~CPc~~n;~~~-9'tSCI.K_01vll:
RCC PCr.E2Ccnti<;~{RCC HctJ( Divt) ¡
.J GUI.h 6!! /" Pe--~ .. HC""...'t/2 • ( -
.J GIJI.ConfDélufts.h 70 RCC FC:.IUCe!l!i.Q' {RCC HCLK Dlv::!);
.J GUIJO¡ 7l /• ~:c-r..K- FC.f!'.2/'4--l -
72 RCC AOCCU:Ccr:t"ia!RCC FCI.lt2 Dlv6):
:JGU1Conf.h /" ñ!k!l~ 2 W4l:O !1~3t;; • / -
=.J GUITwchConth 74 r~M Sectat~y(f"....AJ".S tatency 2):
L.) GUIType.h 7S /• l:::~;ble Prete'='-ch But't:er "/ -
~ GU!Vmion.h 76 l'I.A3H_ P.re!e tc~u.!!erCn:d 1P'LASH_ ¡>re!etch!lu!ter_ Enable) ;
/" P..:CI.K .. 8Y.ilz " 9 "" 12 Y.ilz •/
:J hw_tonfig.h 78 RCC_Pt!.Ccntiq{RCC_PLLSource_HSE_Div1, RCC_Ptllia1_9);
.J ili9!2tl.h 79
J indud~ ea /" EMble n.:. •!
Jl____, ! •!•! 9l RCC_PL!..CI!.'.d{t!lASll);

·~o!l«Q~j 1 () f<.1l~tL,j n.~!r.pb '--:-c---==----=--:------,co--::-~-~o--=-----o:-o-c------o--c---:c--c:--c:---=.,-----,--,-:--!


..•
CEll.lndo~~.~tP~.~ ···----·- ·oa'

Figura 4.30: RCC_Configuration

void RCC_Configuration(void)
{
ErrorStatus HSEStartUpStatus;
/* RCC system reset(for debug purpose) */
RCC_Delnit();

/* Enable HSE */
RCC_HSEConfig( RCC_HSE_ ON);

/* Wait till HSE is ready *1


HSEStartUpStatus = RCC_WaitForHSEStartUp();

if(HSEStartUpStatus == SUCCESS)
{
/* HCLK =SVSCLK */
RCC_HCLKConfig(RCC_SVSCLK_Divl);

/* PCLK2 = HCLK */
RCC_PCLK2Config(RCC_HCLK_Divl);

/* PCLKl = HCLK/2 */
RCC_PCLK1Config(RCC_HCLK_Div2);

/* ADCCLK = PCLK2/4 */
RCC_ADCCLKConfig(RCC_PCLK2_Div6);

/* Flash 2 wait state *1


73

FLASH_Setlatency(FLASH_Latency_2);
/* Enable Prefetch Buffer */
FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);

/* PLLCLK = 8MHz * 9 = 72 MHz */


RCC_PLLConfig(RCC_PLLSource_HSE_Divl, RCC_PLLMul_9);

/* Enable PLL */
RCC_PLLCmd(ENABLE);

/* Wait till PLL is ready *1


while(RCC_GetFiagStatus(RCC_FLAG_PLLRDY) == RESET)
{
}

/* Select PLL as system dock so urce *1


RCC_SYSCLKConfig(RCC_SVSCLKSource_PLLCLK);

/* Wait till PLL is used as system dock so urce *1


while(RCC_GetSYSCLKSource() != Ox08)
{
}
}

3. Desarrollo de la función: GPIO_Configuration


En esta sección Configuramos los diferentes puertos GPIO (Figura 4.31).
>1 e ~a '"'1 ,, ,, ~ 1 "' - 1 ·¡ !' :: :., .., ¡ ,,,.- tr 11; 1L!l -·:;. ..J ;¡¡ 1 ., & ~ILil:-JI "J
·-~~~~~~r~~;,~!~~~-----~~l~.~¿:~~--i~~-
,Projttt ~ ll,
--~-~~- _- -_ _ ___ .J
I_j LOGO.utrnONICA3.c ""1,]--ftp¡r..;- l]:p:;;,-.:~:cn- 1] it¡I,J2ff~.ifmvo1 • fJ-,;ltn;Jftiiroi'-!j Íkilvn_añoWú" ~P.Ill'~w2.~--;j ~p_l;;-owi.c- -._)- ,fia,~l··x-,
..,..,;_:::_;;_c:c.:.:=:::_-=._:.c:==-=---===='--=-:=='--"-==='-'='--"=--:-¡
S U starfup
d=~=~
E~ Ütr~¡:p.c
j'
~

'
109

11;!
lH
void GPIO

!iiEJf r.cc
Cooti~r~t1on(v"'ol~d~l

G'PIO_L"'I:r;IypeDe! GPIO_Ini:.Str-..ccure.;_
APB2PerlphClockCIE:d(RCC I.PB2Per1ph GPIW. 1 RCC Z.FB2Per1ph GPI03 1 RCC Af32Periph GPIOC 1 ll.CC: APB2Perip!l AOCl ¡
P.C:C-1L~PeriphCloc~(~C~~!!~~;;ph~~ ~~~~~~:~~~~iG!iC~U.~~~~~~;=ee¡;:; el puer::c i,B,C,D ,.al bu~ ~EC 1/hat
E:l L} h.v_conlig.c 1 11S 1\CC-AfBlP~r1~hClock:Ctd {RCC APBlf~::1Pb TIM3, t:tlASLt) :
'.J ~P'P-~b RCC-AP5li'~r1:~hC:loek:Om(itCC-AE'!Ut'~I:1ph.-Ultl, OWl.I:I:
J COI'l!_c;ml.h ii~ RCC)~P3lfer1~hClcc:kC=d.U\CC=A~5UI!!r1Ph=O'SAAl'2, !:M:o.S:.t);
..J cpu.h GPIO_!n.1I:Structuro.GPIO_P1n • GPIO_P1n_Sr //U:Dl //apl.1c!l a PUl S d~l pu~r':o;.
J cpu_dd.h 1.:20 C.PIO_InttStructure,GPIO_I'.ode • GPIO_Mode_Ou1¡_PP;//e!lt.4blece modo dr: ~alld!l d.1Q'lt.4l
,J ctype.h l::i:l GPIQ I:ti~:Seruccure.GFIO S~eed ,. GPlO :3peed SOHi!z;// e~·a.blec-e •telcc1d.'!á a S"J !L!:Iz
..J ('m(_U~m.h i~; GPlO=Inic.IOPIOS, -'GPIO_[ru.t3tructUC1!!)J//c~';rar la ccc~lquZ:IlC.l.C:l .:le pz.ne~

:JGUJ.h GPIO InltStrucroure.GiltO ~.in .. GPIO P1n 6 1 GPIO P.tn U; 1/:.Ult


~ GUI_ConfDefllllU.h GfiO-I:UeSu:ucture.GPIO-Mode • Glli0 Kc.d1'!! OU.e PP"? -
Q GUI_X.h GfiO-In1tStructu.re.GPIO-Speed • GPIÓ Spe:;d sCitm~;
W GU!Ccnf.h :ue GPIO=I:U!:.IGPICD, 'GPIO_I:!USI:ru:eu.r~); -

~
U
GUITouchCcnf.h
GIJIT)'Jit.h
129 //u,ar:: l.!U:------------------------------------------
/• Cc!l.!Í:';fl,lrc ti~Il Rz. (PA.l:)' o' :.n:pu: flca:l.ng ~1
L.) GUI\<ersicn.h 131 GPIO L'l1.tStructun.GPl0 Pi.D ., GPIO P1n 3;//a;!~ca a l'in 3 a_.,l pu"!r:c A
LJ hw_cenfig.h l!i2 GPIO::::lnit.Structute.GPIO)!t111~ • C!PIO_Mode_IU_fLOAIING;/II:::u:.cblcc-e :nq:aente' pine' o:c en:.rad4 en ne,... c16n
~ ¡¡,gJ.ZOJ, i33 GPIO_lnit{GPIOA, LGPlO_Init.Struoi:u:te) JI/ (GPICA .. PU[R!O lo.)

:.J ii\Ciudes.h 1.!!S 1~ CC!l!.i:¡ure ':".!hAll '!11 (E\.09} a' alt~:rna:.e t'.mc:.1cn ~u,h-p-..:11 •¡
'.!.L__ 1 •I•J 136 ~~:~-:n:~~trueeurc.~!:~-:ín ': CP:~~~1~_.2:
·~QC.=<i O hU'><T\. 0."kr~!.:l- o..':,~--=c-~-:.,-,,-:-~-o-c:-=:---o-c:----:c:-.,..---,,----c:--:-----=-oo------~=------',---'
~~~dOulp.~ - -- . . --- - - - - - - ___ _:_...:...._ __ ----~----...::. ------ - ·~
Figura 4.31: GPIO_Configuration

Las tres siguientes órdenes establecen la velocidad a 50 Mhz, que el pin actuará como una
salida en Push-Pull, y la tercera a que pines afectarán estos parámetros, en concreto
vemos que afecta a GPIO_Pin = GPIO_Pin_S, es decir, al Pin_S y así para el resto de los
pines a utilizar.

void GPIO_Configuration(void)
74

GPIO_InitTypeDef GPIO_InitStructure;

RCC_APB2PeriphCiockCmd(RCC_APB2Periph_GPIOA 1 RCC_APB2Periph_GPIOB 1

RCC_APB2Periph_GPIOC 1 RCC_APB2Periph_ADC1 1

RCC_APB2Periph_ADC2 1 RCC_APB2Periph_GPIOD, ENABLE);


RCC_AHBPeriphCiockCmd(RCC_AHBPeriph_DMAl, ENABLE);
RCC_APB1PeriphCiockCmd(RCC_APB1Periph_TIM3, ENABLE);
RCC_APB1PeriphCiockCmd(RCC_APB1Periph_TIM2, ENABLE);
RCC_APB1PeriphCiockCmd(RCC_APB1Periph_USART2, ENABLE);

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_S; //LEDl


GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_SOMHz;
GPIO_Init(GPIOB, &GPIO_InitStructure);

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6 1 GPIO_Pin_12;

//LEDl
GPIO_InitStructure.GPIO_Mode =GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_SOMHz;
GPIO_Init(GPIOD, &GPIO_InitStructure);

4. Desarrollo de la función: DMA_Configuration


Configuramos las interrupciones USB en el caso del DMA (Figura 4.32).

Fll~ fdlt Vltw Projtd. Anh Ot!IUIJ Ptrlphua/t lGCil SVCS Wlndo\,w Htlp

i.
'1.3iil¡llf¡. :;.,G¡.., 1 ·· ¡r;:, '·· :•.ill'il'mtt•l'-'
~ (.:J M~ :...!l ·.:";¡ STMWt03VET6 ~ ~1 tlJ :~ • .., ~
.'s';oJ~d ~-- .-a·--:-.J •'J ~p:o('l]·,;.c;~. J rtm:uttO:t_f~l iJ cértt~_C'im~:~ 'J c:c;..¡,_a.rr~t

J
- IOGO_urcrnowc.uc _] du2..c X.
e:;Wst•rtup ~
Ü tortttml.meuo.l
~~! L:.~::~~~---·-···-~-~~~:: .............................................................................,
ü 185 vaid DMA Ccnfiqurotion [void)

!::'Dvstr
\tmlll10..!.tartllp.$
' -
teu. Init!'ypeD.!( t!a. In1t5tnzeture:
u:J,e¡:p.c 1!3 JI [t..;. ~~.:11 eo:n't"1~r!l.t1~::t --------------------------------------------
~:.; lj kw.conf.g..c 139 CMA Ol!II!n.t: ¡rrru c:anMllJ:
\..} lpp_dg.h Cttli.-I:u~S~ruc~uie.ttu. Fer1¡:h'!!l:lllllo.~~eA:Mr • ADCl Di. Ad<:lress:
[JCOfi!_(ITil.h

Ll-
L]cpu_lftf.h
...
"'
[lotA- I!l1t5tructur0!! .t:MA-M='CY5a1!eA4dr • (U32) ~AOC OÜalconveree<ilialueT~:
ao.-tnit.Struct:ure.~-OUl '"DMA OUI. Pfl.tl.pheral.SII.C":
Ol-lA-Init5t:~cture.tHA.-3at!erS1:t;; • 'i'~:J:
t.tuo-In1t.St:ructu:r:-!.ttU.-f<!lr1ph.eraltnc • l:lHA fe¡:ipheralli\1:' D1.ii!o!ll:!le;
u ctype.h "'
I:lM:.-ln1tSt.I:UCt:Ure.Ol-tl-Mel!:.Oryll\c"" mc,. l{e,',z;y!ll.C ~M.ble;­
I:tU..-IC.1tSeruct:ure.riU.-Fez:1;:!l.eralD.3t4Sill:e • ~ Pez:1pbera1Dat:I!.S1re Word:
~ fur..c.smnll
LJ GU!.h
"'
"' ttt:.-llUtStrue-::c.:e.tltl!.-l!ttt~ryi);st&S11:e • D'.A ~ryOataS1re Wcrd; -
~l:utSt:ructure.re;..-M~"' • DMA Mod., C:u:~lar; -
LJ GU!_Ccr.fDd\ruttsJs "' IMA.-1!!;1t.S=cture.[MA-Pz:10t1ty --J:Mlo. iir1cr1ey H1qh:
rtiA-In1tStrueture.I:HA.-l'-2N .. DMA HlH O:r.:.obl<:.:-
lJ
lJ
Gln_lth
GUIConf.h
'"
,., ttfA:In1t !DMA1_Ch.a.:melÍ, UlMA_tn'i't.St;ucture);

lJ GUITcru<:hConf.h 11
~ GUJType.h '"
,..
~nable m.~ Ch.annell.
DHA._~f~l_Chl!.n:l.ell, !::OOU):
W GUr.Jerrion.h 206 }
\jb .. _a.nf'9h

-~ ~ ::; ·1·1 mr~:~:::~:~::··:·~~:~:::~:~::~:·:~::::::::·····---- ......................


~-(]'r-.,eu' (~r~~~... IJ..ót~:•p~..J '-'-;-:-cc----:----:c---~---~;-:----=:---:----:c:----:--::----,;:---,----=-C
JJ-tf

Figura 4.32: DMA_Configuration

Se da las respectivas configuraciones teniendo en cuenta que es para el Canal! y luego se


habilita el Canal.

void DMA_Configuration(void)
75

{
DMA_InitTypeDef DMA_InitStructure;
11 DMA channell configuration ----------------------------------------------
DMA_Delnit(DMAl_Channell);
DMA_InitStructure.DMA_PeripheraiBaseAddr = ADC1_DR_Address;
DMA_InitStructure.DMA_MemoryBaseAddr = (u32)&ADC_DuaiConvertedValueTab;
DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheraiSRC;
DMA_InitStructure.DMA_BufferSize = 180;
DMA_InitStructure.DMA_Peripherallnc = DMA_Peripherallnc_Disable;
DMA_InitStructure.DMA_Memorylnc = DMA_Memorylnc_Enable;
DMA_InitStructure. DMA_PeripheraiDataSize = DMA_PeripheraiDataSize_Word;
DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_Word;
DMA_InitStructure.DMA_Mode = DMA_Mode_Circular;
DMA_InitStructure.DMA_Priority = DMA_Priority_High;
DMA_InitStructure.DMA_M2M =DMA_M2M_Disable;
DMA_Init(DMA1_Channel1, &DMA_InitStructure);

11 Enable DMA1 Channell


DMA_Cmd(DMA1_Channel1, ENABLE);

S. Desarrollo de la función: ADC_Configuration


Configuramos las interrupciones USB en el caso del ADC (Figura 4.33).
FUe t:dlt Vltw Pr11ject fluli Oebull P<!ri¡Jrmal!. Tooli SVCS W\tldow ~Jp
- - -
',e lil '"'1 ... -.:J.Í ., -1 11' ·'· ,-, _>, 1'""' !!. ¡;, 1¡_!¡
e: i.!J_a_~_.:_:·J l •:1_1 STM!lF1o:wm
-~ L, "' ~__2_1!Ml_
;PioJtn. o.·EJ

-""'""""'
.J
:;;)l.:)user
ccrt.exml.maao.r
u•"""''"-"'""''
J
~ 216 vo1d ADC
21781
21a 1
219
-
ca:~Ugu.r3tiol1 (void)

AOC_'Inie!'ypc~! ADC_'InieSen~ceun:;

/• AOC1 c-::ntlo;uro-:~n ------------------------------------------------------•1


r~J U ~pp.c 221 :.OC lnle5t=e<tu-:e.ADC Moda • J.DC Mol:!.e 'I~de;endant;
E~ nw_ronr,9 ~ m ADC-lnieS~tooetw:e.ADC'-3c&:)CcnvHoÓe .. :t.'fAS!.!;
Ü app_dg.h ADC-I=t3eruct::n:e.AOC-Ccutlnuou.:rCcn!I'Mode • E.'fABLt;
:.DC-Inl.t.!leructure.ADC-I::nernal'I'riqCe.nv • ADC Exte=alTriqCcnv Done;
~ COfr_qnlh
ADC-InitStructu.re.::.:OC:-DataA.lign. • ;:,.oc ~to:!Aliqn Rio;~ht: -
[Jcpu.h :.OC-lnieSeruccure.ADC-UbrO!Cb.lln..""l.el • 3; -
Llcpu_dd'.h AVe-In1t (AOCl, ,;:,.oc ÚÍ1tStruetu:rcJ;
ü ayp:..h /• i:oc:. tequla-r ch..a.~~ls =nti¡¡ura~cn •/
[J kmc_::;o.sm.h ,,
229 ADC_P.11!"1Ul5ICh..LnnelCcnf1q{Mlel, ADC_Cha:mel_ll, 1, ;.oc:_Sa~q:~leT~_239Cyc;les5);
ADC RequlaJ;Ch.!.nnclConfi?{JUlC1, ADC Ch~nn~l 11, ;<, ADC S~lei:z.= 239CyclcsS);
~ GULh ADC-Req<o~larCl".lllnnclCo:~.U,.: (JUX::l, ADC-Channcl-14, :J, :.OC-S&<:plciilroe-239Cyclcs5);
lJ GUI_ConfDtflllitt.h "'
"'
!• i"1ahl'!! Arel tFJ. •/
:.\OC CW.Cllll:! IADCl, un.ai.tl:
- - - -
U GUI)C.h
¡ .. ~ablch.OC1•/
!J
'.J
GUIConf.h
Gl11Tcud1Ccnf.h
"'
,,
m ADC_CI::!:!(ADCl, !:r.\SU);
1• E.-ublc 1.[1C1 re.,ct. c:ol1bo:tra':'-c:> ~e<7l.-':.cr •1
Q GUITypUI ADC Rc::~etC&llb~-3.tlon ¡:..OC:l) 1 1/ól::H;.OCl. • J.:J!.•:..o..1.. • .t.E.;
[) GUNeoiPI\.h "'
w /• Ceel< ':;he "nd ot ADCl t~.:~ct. calibra:.tcn :rc71:!':e:r •¡
L)m.._conlig.h
l.Jili9lZO.h
"'
"'
WhUe !.:ODC C-etJie!letCal1brat1cn.St.at=!ADCl) l;
/• J-:.ar': ioc1 c.!!l.:.N!:c~:;;1c!!. •t

"'"'1
AtiC Stll=tCe.Utlrllt:.cn (AOCl):
~ includah /• C!l'!!::k o;he t~d e:! ;.oc¡ cal1bn:t1= •/
m
~ •1·1 VI'IUe(ADC_~tCalibrat1o:¡St:atU5(A0Cl)) ~ 1/-..l•&:a.•l.d:r;·ñíé•t
1

Figura 4.33: ADC_Configuration

Primero se configura la estructura para el ADC1, luego se pasa a la configuración de los


canales regulares entre ellos Canal 8, Canal11, Canal14.
Habilitamos el ADC1, restablecemos el calibrado para ADC1y luego se le da comienzo a su
calibración para ya habilitar el software de conversión para ADC1.

void ADC_Configuration(void)
{
76

ADC_InitTypeDef ADC_InitStructure;

/* ADC1 configu ration ----------------------------------------------------- *1


ADC_InitStructure.ADC_Mode =ADC_Mode_lndependent;
ADC_InitStructure.ADC_ScanConvMode = ENABLE;
ADC_InitStructure.ADC_ContinuousConvMode = ENABLE;
ADC_InitStructure.ADC_ExternaiTrigConv = ADC_ExternaiTrigConv_None;
ADC_InitStructure.ADC_DataAiign = ADC_DataAiign_Right;
ADC_InitStructure.ADC_NbrOfChannel =3;
ADC_Init(ADC1, &ADC_InitStructure);
/* ADCl regular channels configuration *1
ADC_RegularChanneiConfig(ADCl, ADC_Channel_8, 1,
ADC_SampleTime_239Cycles5);
ADC_RegularChanneiConfig(ADCl, ADC_Channel_ll, 2,
ADC_SampleTime_239Cycles5);
ADC_RegularChanneiConfig(ADCl, ADC_Channel_14, 3,
ADC_SampleTime_239Cycles5);

6. Desarrollo de la función: NVIC_Configuration


Configuramos la tabla de vectores ubicación de la base (Figura 4.34).

'e e &1 ..,¡ • :;, e; 1 .., i 1 !' :,' ,' , '< 1 U' U' lll!I<I ;!!
~ w a~ :....1\ ,~·: \ Slt.rnf11)M1{> -~-ti;.\ 11:-1 •..., ~\
'i>;~d_ - . - - - - .•. • IJ- tr~--"ij-~!l;c;;l~ ~- ;.pp:e ' 1] jN,::cOñtlr¡,i•-- 1j $lmUtlll>.lt.lrtllp.t lj cortum3 rn~uM ¡_] dO\Yil,.41TOW2.c • •J UP ~IICW2.t' \J. IIP ,mowJ,(
- 'O:lb-~attup ..::JI 2S5j•!:~;r.J=· : ::~ne _ _, - - -. -

~ ~=::.,
E~~.spp.c
J- ~~~ l:.;~~~---······!.~;;:
259 71d
........................................................,
N'IIC_Cont1qtu:at1cn!vo1d)

6 ._} h«.ccl'lf~.c UVl:C_InitTypeOet NV'IC_Init;.Sta,ucture;


Wopp,dg.h 262
.J ccr~cml.h 263 INIC_.Sn.VectorTI!Ible(NVI'C_Vc::t.Tab_FU.SH, OxO~I:

_J ""''
_) cpu_d~.h
_}ctyp<h "'
"' INlC l.:l..ie!tt~c:cur~.rmc Ii:Qeha:mcl .. lF.Al Ch.an."1~11 IRQ!l~
HVIC- Init:Strtu;tuze.RVIC-Ii:QCharu:JelPze~a:¡;tio.,P"r1orJ.Cy • O;
.J fsmc.u6m.h
_JGULh
"' IWIC-InitS::ruc:ture.ltvlC-IJ:I;QChannelSubPncr.ity • O;
WIIC-In.!tSeruce~are.lNIC-IP.QC:ha.o::lelCrd • L!lABI.!:1
.J GULConfOdauiU.h NVTC:Ime (¡~C_In1t5u~ceure):
U GUI)C.h
'...) GUlC<mf.h "'
213 1

j ~~::~·
J tw._ccnt¡g.h
¡;:¡~a:~
~;:
:::t;::::: CCn!i~ra~~c~
~~Oc~!~i,;::~~:~ 11 ;,
•f

_) i!i93..'0.h 2e0 G.PIO-CO:It.iqur~:~eion LCD T!TI);


. U indudeUI 1 2e1 USART Con.t1qu¡-aeioñ1 O/
~.!1-, 1 •!•\ ~~~ ?'::-~(;=-::qUntion!~;
~Qroc'l Otun<\L O..tcm~::o..: 'c'<c-:----c----=-c,-:--;-o--~--,--=-------,--------,=----=---=-------c~
'"s"Unt~Oiltllllt- - o. D

Figura 4.34: NVIC_Configuration

Se da la configuración par el NVIC que es un controlador de interrupciones teniendo en


cuenta el DMA1 y el Canall y luego se habilita.

void NVIC_Configuration(void)
{
NVIC_InitTypeDef NVIC_InitStructure;

NVIC_SetVectorTable(NVIC_VectTab_FLASH, OxOO);
77

NVIC_PriorityGroupConfig(NVIC_PriorityGroup_O);

NVIC_InitStructure .NVIC_IRQChannel = DMAl_Channell_IRQn;


NVIC_InitStructure.NVIC_IRQChanneiPreemptionPriority =O;
NVIC_InitStructure.NVIC_IRQChanneiSubPriority =O;
NVIC_InitStructure.NVIC_IRQChanneiCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);

7. Desarrollo de la función: void HW_Init(void)


llamado de todas las funciones (Figura 4.35).

_flif ~dll Vltw PIGJ«t fla,ll Drlluo Pertphtrals fogh SVCS IN!ndow Htlp

li.S¡;j(<;t[~·.;.,~¡"') [·· [!'C.\:1·'.[¡~1J'Ul/!,¡[[!)


é: (:1 Ci ~~JI~-~ i STMJ2t103VET& ;...: lfo.IIJ ..:.~ • ...., -€11 .
.-~;j(d-- - ~ -- -~·-·-- - -- O tí'' --~j~~~~~"Z"rm:~N~C~-o ~ipp.(~::1]-'ii~(añfl~-· 1.J ~t1113<ttllo_!i"anuiM- :]" (l)~~~üo·1" '·,J ~_anow2< ' 1J up_.,,o..z.c
r:-:D$tmup

::U~er
U certuml_maa~
Ll """"'"-"'"""·'
J
~ m
:nz
273
m
27s
llf'/IC'_IM.c(t!N1C'_In1cScrucc~Ue);

~o=:.!-!'o:C-::~,.ry~~r
mLJ app.1: 2'76¡;]{
B LJ h.,_OJnf•p: 27'7 /• S\•-''=""" Cleck" Cc::¡fi<r.>ra::ien •/
~ ~pp_dliJ.h
tJ ccre_cmLh
,. !tCC CC:lt'1-;".12:liUC:l.();
GPI:0_Cc;~::!<¡Ul'ac.1enl);
2BO GPIO Ccnt1;-'.12:~Cl.Cm LC'O Tn{);
U3Ari Ce.:lt1qy.rac1oii1 O 7
Ll
iJ "'"'
cpu.dd.h ,., DMA cOntiquratton() r
o ctypc.h "'
ADC-Ccntiqure.ctonO;
uvtC_cep.tJ.qutacion{):
~kmc'__Pam.h
~ GUth
'"
29"5
!'eue.'l. Ccl!.!iQ'I);
C] GUI_Conftlthults.h ZS7 RCC A.\i!m~n~h.Clcc:to::d(ii.CC A!U!i'u.lp!J. FSUC, DlJUIU:):
~ GUI.X.h 2:63 FSM'C_LCO_Init{); - -
2a9 Tintr OS();
!J GUICOtlf.h T~r-!(l;
[J GUIToudlÚ!nf.h 291 l'1Jr.er:2!);
~ GUITypM 292
C) GUIVen¡on.h

t) lwt.conf•g.h
;:! ll
295 CPtJ 1NT320 BSP_CfU_ClkYreq {V01d)
~ iJi9JlO.h 2<.16¡{ -
LJ includoes.h 297 RCC Cl.ocb'!ypeOet' t:cc clacll::s:
_.!1.__, 1 ~!•! 29S RCC:GerClccbFreq{,rcc::::clQclt.!}:

-~G~'""~~ or"'"" O...k:-r'•, é-'--:--c::---:--=--c:---::-=---:-=----::----:---:-:c::---:--::o----c---::--:::--:--:-----:--:--:--::-::-:-=.__J


~B~iid(iu!¡l~ -- __ • a_
Figura 4.35: void HW_Init(void)

8. Desarrollo de la función: void Timer_OS(void)


Configura el TIM4 (Figura 4.36).

:::J.J.~j@¡¡.,
·-~-i!j éi_-~ ~~~_L··"l_STMJZF~o~m ___ _:_~ ~l ~ :·:_~-:.?-~: _.
~'('rt z DI::i:::.-__•J~ ; ~;o_mcr,:::_c:~::::~:::~:·~~-"•~1 Q ''"'"'~-'""";,-
FD~ ;~: l
l•: LJ •pp.c ~268~..;;~~:i-:i'!TI"íif.l
9 LJ hw_corilg-t 327
_) ~pp_dg.h ::128 ':'IM BO'IRinitTypeOc! TIM4 SDTII.InitStr.lctu~;
_} CCO"~cm3.h ;;~ RCC=AP31PerlphClcc:tcl!:dUiéc:_APS1Penpb_'IIH4, E!IABli.):

.J cpu.h 331 TlM De!JU~ ¡:tiMt):


I..Jq::u_clrf.h /• iu:.CtU::i:: Oucpuc em~ble, BrQI'Il:, d.-~~d ::lD'.'!: and 1~11: C·::lnfio¡u_c.a::it.ln"/
Jctype..h
_) f$lr\(_~.m.h
,,.
"' TIHt BD'l'RlnicScruc:cure.TIH OSSRStl!lce • TIH OSSRState Enable;
'IIHt -eDTRL"liCSUuc:ture.·riH-OSSIStGte .. liM-OSSIS;;Gte-!:ll.al:Jle;
'tUtt-BD11tln1~truc:ture. TDS-I.<X:iCLevel. • TIM¡,oc¡:¡,ev<!tl-1:
.JGIJI.h
.J GU!_ConfDd~uftr...h
"'
336 'IlHt-~D'nt.lnitStructure.'tlH-Oe1CII~ .. Ox75; -

:J GUI,XJ1
;) GUIConf.h
337
33e
339
1 l1Hi=BDl'Rinic!ltruecure.TIH=Sc11ak- TIM_aroeal:_E:wble;
TlMt BOTRinit!ltructuce.TlH Scee.kllola.rit~· • Tnf Bt:ea.kPclatitV !Uq!:u
1'1H.. =SOTR!nitStructure.T!H:Autcl!'.a.t:icOutpue ""TÜ!:_Au::01114ticOut'put_Ena.ble;

.JGUITaudoCord.h ;:~ TIH BOTRCont1q{TIM<i,.¡Tnf4 80TRin1tStruetu.t~J;


_) GIJfT'ypt.h 342 =
TIH O::d (TD!.t, E!iABt:t) ; -
J GUI\'mion.h 343
~INr_ccnfig.h 344
l
Sts ~void T~r_'J (void.J ( ,
Lli!i9320.h .J'I-6
:J include..h 3'17 'rlH_'I.11r.e3al!lelnit!yp~D-et l'IM_I~:Ianse=u.re:
.!1.__, __ 1 •1•1 ::~: :~::~I!:I~tTypd>e:. TI~-~~~Struc:e_u;e;
-~Gtl<h.b 11 tu11<l1.. ll.k!:'•-"'-- L'c..,--..,..-o-'-,-"Ó-..,..-_o-=-_--,c._:-c.-=--o-c-.-~,---ccc----,-c,--,=c-,.--=-..,..--,c-c-.,..--,----=,----~=--c-=-,c.__J
·ni,;IUO""'ISI. ··o: ll

Figura 4.36: void Timer_OS(void)


En este caso configuramos la Salida automática que va a permitir la rotura, tiempo muerto
y la configuración de bloqueo, luego de configurar la estructura del TIM4 lo habilitamos.
78

9. Desarrollo de la función: void Timer_3(void)


Configura el TIM3 (Figura 4.37).

r·,_8 fa ..,1 ,, ·o "'1"' .. 1 . 1~ ~-- ·' -1 :< ,, 1/• '"1 ~


$0L:ñ~:fi'i;jm&mtaro:r4 ~lf;I~~·"'Jitl
·~-~-
E 8

6
5UI1~:P
C).,.,~,....~,
~ ; _mnUftOt_stmup~
J ,.,
9-EJ
~
iTLOGo_W:CJMu.O.ic- -i]
3-IS Stto1d ':'1"'-n_llv<>:idt{

~::
TIM
iii."t.-"),J-tMi"~ ··_] Ul!l~lll<.~ Q fottn..,.(NO~.I

Tl~~:<:Bl!l:dnltTyp;eDet
"TlM-OCin1t1>"Ft~l:
Tn-1 !i=Ba~eSt:ruetrue;
Tll'l OCinit"Str..letllJ:II/
/• "i'>.OU!I>a"e c:nhqur,.t"H:a •/
J ~anv.vU. .J up_am,w!.' _} U¡t..Jlf11Wl.t' >j tle<l.c • X
""'"=-=--'---'--=--''---=--'----"-~--~-'--~'---:-J

.J
'ti '"P·' 3~ct Tl."'_tl.a!!I.!I!II!Struet:ure.TIM_P'!t1.:ltl • 2:)0J; //lCOQ~;
a ..l m._C«llig.c 351 TIM_Tt~B.!I!'tS:ru.::t:ure.tiM_Pt~ealer • 1: //1439:
TlM_T~Ba ... eStx=tu.re.:rili_ClcekDivislcn

d:;_~b ~~!
• O;

;~:g~~:;~:~~:::~:=~=~~~~c:n!~;-~~~~cc!e_trp;
c.)cpu.h n~to TlH_T1~~:eBalleD"lit (I:IH!, 'l"lM_Tir::e!lui!.Structure) 1
:J q::v_dofh
_) O).pe.h /• &.rt!!!C ~.:Cci'!! ::l'.!l"'..C:1Cil ~/
~ ~ll'>UI'4 1M !i; ;:HTi;l:~::~t::~~!~~e!yno, IIH_TR~Source_tiPdao;eJ;
~ ijUJ.h 360 nM_Cllldttnn, E:!Wit.rJ;
..J G.UI_CcnfDoi'•u!H..h !161 /" l"..!lner Cc:>~Q".,lr~:;1cn 1n PQ'.t !!ode •!
~ GUI)U¡ 3U '!DI:_OCI:r.U.5tru!:'CUr..'!Ilf_OO'lo.de ""OIH_OC't~_Fl.."';

.J GUICord.h 363 ~::~~~!~~~:!:!!:~~:~:~~;~~ 2=v!to~epueStet~_t~l•u


J GUITouchCenf.h 365 ID-l_OCWt.Struceure.rm_ocPolorley • Tnt_OCI<'olar1ty_tev;
¡j GlJIType.h !ltiti TUl OC1In1t(TIH3, U'IH OCinltSt:ruct:tln);
.J Ci\JIIf~.h 367 /• P..~~~;"r; C.::nl:ig".rc:a;lcii in Fil!'.i t;c<).e •/

_) hw.conf.gh .su ~==~~:~~~=~~;::~:::::~s:a!;;~~=;uu_!!nabh;


_j !li!ll&h 370 Tn!_OCin.i.tS~rt~.c~ure.TJ.M_Pllbe • CCR2_Va1_11
_) indudes.h !171 TDI OCin.l.tSt:ru-e:un.Tnl OCFolarity • T:t!'! OCPolar:l.t\' I.ow:
..!.1._, ! •1•1 372 Tnr:ocunu:t!IMl, '-!IM_OcinitStruct:ure);- -

~G~>o~h !Jr,,,f,_ u.,rc.,:;i-> ... _L:,--=c-,--:--:--:-=77.,-,,..----c=-~---=c--~--,--=-:-:--c--:-7"".,.-,=c:-:-----,c=:--,----o--'---::'


~~o...í~-- ~~-

Figura 4.37: void Timer_3 (void)


Aquí se configura en el PWM2

10. Desarrollo de fa función: void Timer_2


Configura el TIM2 (Figura 4.38).

Fote Ecllt \~r.w PfcJtd Rarh Otbvg Ptt!phnafs loclt SVCS IVm~ Hrr;~

_íiG!dti:1f.l~ __::~~~.q,..¡_ \?L :.'•··,j~~mlf,cj~


$ l.:1 í:il ~ .. J\ '.'-->t 1 mtnf10Mt6 :..... Ji.:.\ ~'f.: + ~ ~'-
rp;:¡;¡tct" - -- ---~" "--- o-J!i-~ toGO.uf:étit-;;;:;~.J tpp"c·•,¡]-~fi ....:Z~:ii:C·~ •J stml2r;D;_rt~¡u LJ cort(m(II"",J.Í:rcs ''J d~.uroWÍ.l. 'J up_arr~W<.2.t' J -up_.-rrc,.,!c ~ fltdr'"' lC,
- - ~ D st!rtvp

ZDv-.e1
'...l
'...l
CCIIt=nJ_nuo:ro.s
nm!lfll)r_na:tup..s
J
.:J u---=-..,,¡;¡s-t'-"--.:.C.:-'"-"-'--"'"""=''="=''-='---'---"----'"-''-"-..:.:...:.;.c:_=.:_c__c;_...:....:.....=_::;_...:....:.....=...::.::.:_c..:_-"'...:....;--;:-
Vo111 tJ.~c_r_!~IVCic!.)l

TIH Ti-ceB4!1t':lnit.TypeD-et TIH Tia.>e.Ba.seStwct=e;


TlH-OCin1e1"y¡¡eDet TIM OC!Dít"Structure;
ltiU tpp.c: f• TJ.II'~ ~:le confi¡¡ura"~icn •/
1--'!Ühw".ccnfí9.c TIH_T:!z.eBase.Srru-::tul"e.:riM_Pericd. • 23él3: //10000:
D app_dg.h 'IIM :U~teBaaeStru=urfi'.'IDf Pre5c4l.er • t; //1139;
TIM-lil:t'!I!c!leStrucrure.'I::f-ClecltD.1Vl:~1c~:~ - o;
lJ c~cm3.h
Ll-
"'
'" 'IIH-Till:e!!"IU!eS:ruc<:ttl"e.~nCcc-~terHod~ • T.IM cou.nrerModl! Upr
TIH-!=~s.a:~estl""UI:"t.Ure. TIH-~potttt:Lonc.:lanter-.. O¡r;.'J; -
!J cpu_d~.h 'IlM='I1:c:eB.ll!!elnit.ITIM2, ,iiM_Ti.<l:.eBa5eStwetu~l;
'.Jctype.h
/• Y--.!15;er ~cde :lelec:icn -1
!J fsmc_~am.h
'"
lJ
LJ
GU!.h
GUI.Ccr.fDtfauiU.h
"'
,,,
'"
TD!_Selecr0Ut:pur."!r1oo¡¡er (1"!1'!2,

/•Tll!e~leeoun;oer•/
~lM_TRGOSource _ U'pd.atel ;

LJ (iU!_.X.h m l"IM_c:cd.!-:"IM2, !:~IA3!L):

L) GIJIConl.h
f• Y.as::er Ccn!i-¡ura-:.t..:on
l..n ~ Y.cd~ •t
:J GUlTcuchConl.h
i..) GtiiType.h ,.
'" Tnt OCirutsr.:cuc~;.U~.TIH oa~e .. T!H OCMode Pi'M2;
TIM-OC:tnieSrruerute. I"IM-Chlt¡n.ll:Srare : :rn-1 o-:ieputSu.te !.o4bleJ
Tnt-OCln1tStrw:t:Ur'!t.!IM-fulse. • CCR2 Val 2; -
iJ GUIVErrion.h 307
=:
lJ hw_confog.ll
"' Tn(OCin1eScructu.r.,. TIM OCPoloriey ...- tn(OCFolori::y_LcwJ

_.!..!___,
lJili9l10.h
'.) indudes.h
! ~! ... ¡
... TIH_OC"J.Inlt lfiMl, ¡.T.m_ociru.cStruccure):

/· 1'"..!!5=~r Cenf1o¡¡urat.lc:> 1.n p-,.111 t'..cd~ •/

-~(¡}~,<"t> {1 fun<ti.... U,.r, . . ., ..._, <,'==-:--,-,=-:-"7:""":::-c~---=-,...··--:-·-::--:--:.•:-..-::·--..,·:-o.=--::o-,,---,c;-:-=-=:-:-=-:---===c-:----::--::-==---=,-::-:--'


·, D

Figura 4.38: void Timer_2


79

11. Desarrollo de la función: void USART_Configurationl(void)


Configuramos el USARTl (Figura 4.39).

Fnt !<Jft VIl"' Plajoct Flall\ O.b1.1g Pcr!Qf>t~.,, 'looll S\ICS Wlt!do-w l'lolp

!.]-t:) fa '11 ¡;_ ·.l ~~ "J • ~-- • 1f'- ~- ~) ' •1 ~E -:;2 Ji~ 11;-~ [!l 1.": [,l..-¡ ir~ & ~llf!_·~:r-~,

~~--~- r,p¡ r_J-j -,~ ~~~ 7a ~.f-~~[l-:4~ iiip.c · t_r ~~~ ~~"~c.J ~!!tlO...<lortui• ~ •:.1· tort•
1
... ..,l_...;(,•• - ~ -eowo.an""'U • '..J up_enow%.c ' j up~l-~ ~ ~~<%.< 1• x1
F.~ rt.rtup ~ :HS va1<1 I:ISASll"_CO::t.:t:1q-.ua~1=1CvoJ.d)

d=~_sto~.s J.· =~:~ Us.All.l'_tn11:I~oeo.r


1

r m,.:;;;~;~;;;;;~~;:;;:;~;~~:;:~;~;;;;y;;~;;; _____________ .,
ti'!!IJJlT_ln..a..Scruccu;.n.:

E~ ::.:.m., 1

j :~~~-"
...l ~pu.h
! ~~! ili:~:~~~=:~;~::::r~:E~a;c~~~~!~:~ouable;
S::I:S /• Cca.f1qu~e ;he tls.JI.tn1. ":¡n:obrc<>CWJ paraa11:er.:1 •/
~ cpu_tle'l'.h S2'1 ~_Clocun.n.coSJJll'2, ¡1JSAJlT_Cleekin1~tru=u~¡;
~ct:rPd' S2S
U l<me..uam.JI S.2ó ~=:i:~~~~.::;:::g====~~= !~~~~1'-llr:>r<l:.enQ"t:h_~br
U GUI.h t15llT_IMtStructui<,..03.AJI.I_Scopl!1t" • U3ll'f_!l~apB1t.!l_l;
•.J GUI.CcnfOeb<IIU.h USAI'IT_InUStr\>C:tU~<!'.O!IAAT_Po~tot:lty"" trSART.. I'li.Uty_zto ;
u GUI..X.h
m
tlmlil'I_In1tS.:ructu~e.OliAA'I_Rar$1a~eFlc...Cont"<:l1 .. tiSAii'I_Ra~dwar•'l'lowC<InC=1_Non•u

.J GlJlCcnt.h
SS2 ll's:.5l.T InltSc=tu:e.USUII Hade '" USART t(Od~ P.X 1 0$Mt'I KOd<! IX¡
~ GV!TovchConf..k Sl3 /• .cci.u.qur~ 'J":!Zo.ll.'It U<l..!11:-on<1 _,.,..,..,:h,._,;.,u,. ~<t.l"a&:""'" •7 -
...]GIJ!r~ SS4 DSJJrr_IIU" fti,!J.ltT2, 'OURT_In:.dt=c~>JC'") 1
._lGlXfl!rsiaM s:ss t· r:n,.bl<t tlSAill"l ·¡
USAB.1"_0!:<1105AP.l"2, onBt.l);
.J"'"'.ccnfog.h
;..li1.9ll'J.h

·~ ~ l •!•J ~;?1 ='~::;;~;:~;::••:·~;:~~·•u••.•••:·~~~oouo·•.~··~·~·~··~•••••••.••·~~~:~··--:~~--~·


~(i)'"'"'"' IJF"""''~
:eu.rdo\llput ·-- --·--
f4r.-r.,V'<>-·o.;<~=-c~--o"-=cc,----c~--=,----=---,,--,--c--=-o-,--o-----:-c--c=..,.-,,-,--~-=--o-------'--:::
·· · lli.C

Figura 4.39: void USART_Configurationl (void)

Void USART_Configurationl (void)


{
USART_JnitTypeDef USART_lnitStructure;
USART_CiocklnitTypeDef USART_CiocklnitStructure;

/* USARTl configuration ------------------------------------------------------*1


USART_CiocklnitStructure.USART_Ciock = USART_Ciock_Disable;
USART_CiocklnitStructure.USART_CPOL = USART_CPOL_Low;
USART_CiocklnitStructure.USART_CPHA = USART_CPHA_2Edge;
USART_Clockl nitStructure.USART_LastBit =USART_LastBit_Disable;
/* Configure the USARTl synchronous paramters *1
USART_Ciocklnit(USART2, &USART_CiocklnitStructure);

USART_lnitStructure.USART_BaudRate = 9600;
USART_JnitStructure.USART_ Wordlength = USART_Wordlength_8b;
USART_lnitStructure.USART_Stop Bits = USART_StopBits_l;
USART_InitStructure.USART_Parity = USART_Parity_No;
USART_lnitStructu re.USART_HardwareFiowControl =
USART_HardwareFiowControi_None;

USART_InitStructure.USART_Mode = USART_Mode_Rx 1 USART_Mode_Tx;


/* Configure USARTl basic and asynchronous paramters *1
USART_Jnit(USART2, &USART_lnitStructure);
/* Enable USARTl */
USART_Cmd(USART2, ENABLE);
}
80

App.c

1. Declaración de librerías y variables (Figura 4.40).


Son las mismas de Hw_config.c

Fil~ fdll: Vltw Ptcjut flalll Dttlug Prripl'ltrall T.oo/1 SVC:S Wlndow Help

-~l_l3_1d_..,L'·-··c.Jl.J.."::~ 11" ' '· :>1 '":e 1r 1r,¡ r.i-·


dJ i!.i i!t.i ~ -11 '"¡' j STUllftOW06 - ~~. -¡~ ~-~\ ·~~- - -~--
;PI~"rt - --- -IJ ti ---j -l(Y-.:C,~E~CTJtOI;;Q:it~XQ..!~.'jj~~~~·~·~J- .t.-ll11C...Itatt~- {J· CQ,h.,.,i_i.soo.i" l_j -d~-~~2.t -íj ·up_sn~w2.< J U¡l_urowic ' J --;~a.c ¡;. X"
2 Ll""""'

S D
5~a:~:.:~~
~
j·. ¡r::::::::::::::::::::::::::::::::::::::::::::~~~:~~~~:::::::::::::::::::::::::::::::::::::::::::::::
--'.1.

S . ;!~~!~: ::e~':~~~~~
~J ~ .1!pp.C 6 h.DdiW.'! al.J.i9320,h"
8 Q IM_<OJ\1~ 7 tu:cl'-'C.'! ":rt.::.32Z10x lllli.O.ll"

J 1pp,cf9.h S :~~~~~= :::;~~~~==~::~:


::J Wri!.,Cm3.h ••ncluo., •.nmS2tl0>!-aclc.h"
~ cp.1.h 11 hr..:lud" -.,.~2J:lO:w:-u:ra~:t.h"
D q~u_ckl'.h 12 hm::l~:m. •r=_llr"-1:!.:-!:1"
:jcr¡pe.h
Pl!':t,lUO<! ~t.h.h"
~ bnc_v.vn.h
J GULh
J GVI_Cor4Defaults.h
"[''"•···········~·········································································-~·-··············
1? • I.OC.:.:. m::rnrts
J GUI_X.h 1S
19
••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••·•·••••••••••·•••••/
Jtr:el~r: • •• \GV'I!.-"l.c:\GUI.h"
:J GVIC0<1f.h
2il tu:-.;:lu-.i~ • •• \GU'Il.!:.c\rRA:"iniiU.~·
J GUITGUchCcflf.h. 21 fln=l!-'de • •• \GUI!.:::c:\!l:nTCrl.l:"
iJ GUITypdl 2.< tJ.r:.elud.e " •• \uCGl.JI·Taslc\GO'IOtMO.l::"
'.J GUIVI!ISion.h
:::..lhw.ronf<q.h
"218/················-······················-··················-·························-····················
\J.ili9l!O.h ;; L: ..........................................~.:~:::.~~~~:: ..................................................,
.J indudah :!1 ~e.eic 03 SU: App Ta~k3t.ut3tli:{API' !ASK START SrR: SI!Z:l;
_.il.__, 1 •H :! , ~~~~~~:e ?~=~ ~!u~,:~~:::~!A:~~:A!I~~u=~-!:-:-~K_Sil!:J;
~(¡BV<ll<~ llhul\l<-.,14;~pl.l...' <,
rsuudo..rtp~----------

Figura 4.40: Declaración de librerías y variables

2. Función main():
Punto de partida de la programación después de haber inicializado las variables (Figura
4.41).

f"~ l!dll VI~ Frojtd fLIIII Od>u') l'l!rlpl!ti~S Teo!' SVCS WlndGW Hdp

'Ü id (¡ll ~:A~~.:.. "11'- <'..,-, -,¡ iJI! U! 1" 1/,il [!) :;7 ¿¡,.¡ il!J O. &-:~f[~,'l '\;
- ~·Ba~·_,]-'r1j.~u_;fllBV~6 . ·~#IIJ~\<0..;*'¡ -- - _., ,
:-~~~-~ - ---=-·~·- _--=~~~.~--o-·~~~.-~- ~~~.~~_,f~ign¡u.c '7l]"nt·~_,¡,c,:·u 4ft5"'z3.c • j tOGO_mcmowoo¡ · [) .2- Cl hwpd!IJ.c -~
LJ rtntlli'IO:r_ru.tup..s ~.' 66 ·······················~·--·~··········~---~~--·······················································•••/

J :; sj:"' ~"'
8Dusrr

~: d=~o!"o< 70 ¡vo«) O.'!


Cf'l1 1lfl":l~tJ r:rr;

~~ d:.:::~:~ ~~ ~~~~~~~~!!() :- /• In1~1:-.l1Ef! "uC/OS-U, The Real-'!11Jln Kernel". •t


O ow2 73 Hlf ~t. O • J• I"nitial1o:e Hl' tuncucn.'!. •/

: LJ ::::J"CWO):
[f¡ .J LOGO.EUCTRONlCAl.c
;~
76
oD=err .. ~~~.'!tcreu'!!:((void ('")
(VIIid. •¡ O,
(vo1!1 ")) :.p¡:¡_Ta,kSt:I!IJ:"t,

1+~ [j B1~n!t_white2.c 17 (OS sn: •) Uf;p TadStaJ:tSUc(APf TASK S"IAA"f Sr.t SIZ!: • l.),
1>' Ü Yel!cw_urcw2.o;; ~~ UiiBU) APP_TASi_SUJI."I_PRIO): - - - -

LJ >-
;:; 3
!}J Vellow... rro..d.c
::~G~!_~I2.c
80 11 f 105 ':A3P: !lAME sue- 11)
¡

1
;; h,~~~lc!I~Sec(iPP_TASK_START_P<IIO, (CPcr_IUI"090 •) "Start I"allk'", ;I;Oll_err);

LJ~ 1
:: O.SI.l~See(O)¡
(i:' B3
8of

~~ 2:"?::~
1
~!:='~::, · · 1• ~-'-•"@l~f§"JIK!.~o>Ellio'-'-~mcz,¡s;w~ ·1

U ri9tn:...a,.ow1.c ea ~
al :······-·-·································;;;,·;::~;::;:~;·····················-····•· . ···················
:+J 11

m~ betu :; 1
[., LJ confiv.c 91 • - 1

;.il.__,
l•llJ dir«.c
1 •l•!'
1 !12
=~ •
• Oellcr1pe1on : '!he llt;l!lr-t.up ~al!lll:. '!he. uC/OS-II t.1clter ~h!:-uld cnl.y be 1nie1nl1U! .:once tcv.l:.1t5llkill'il" !!":41'"10!1.
~=.e:::~r;: p_a~ J:.rqu!llen: pa~lled -::e •;.p;:._"I~lt.So::al't()' by 'O:!I'l"a!:lkCl'ear;e!)'.
•\
1

-~O¡¡~~' Orunn•~ O...llm,~ .' -~---------·----·-~---------·--~----------·-·-------~----·-------'-J


-~d"Out¡M_=--~- ------------------ ___ -_ - - - -- ---- ---- -- - -- .u. ti

Figura 4.41: Función main

Se inicializa el Micro uC/OS-11, The Real-Time Kernel, para empezar sus multitareas, es
decir darle el control al Micro uC/OS-11.
81

3. Función App_TaskStart()
Es una tarea de inicio. Después de inicializar la multitarea se inicializa el ticker UC del OS-
Il. (Figura 4.42).

~---.;;.-¡

ru ü ve~~aw_.movrl.c
.·¡
¡.;l..) d«l.c whUe. (1)
mUiogo_l•~ita!_regrc....,tz.c m 1
I.E:O u:ot oon r
I•JU~d:.c
t~JlJ l~oiii'QI.'Vl.C
"'
'" oST'ino.eoiYñH.SKco. :J, :1, 10:1),
1

__j
t!lO rigJ¡~,mnwl.c U:O L!.Dt OrP'I);
lt: Ll kft._lrrowlc "'
117 OST'imeDl'YHHSH!O. O, O, l>IO):
11JÜrigllt..•rre~W3.c
ltlOba.c "'
11il )

!w.L-.: G:::·' 1 ~1·1


i;; ¡~··················-·························;;;·;::~:::::~;·············································
123 .. -
~~E~~~-~~~~u-:.l~~~_:_!o~':'..o-c··-:c··,-'·~·~-"."'..c'.cc'-c=-
... " : -··- - .... · · · ,.·,..·~_.co.""==·,-,----ce-="'
~Bu!l(!Output_
--~- ~~ ~- ~-o DI

Figura 4.42: App_TaskStart ()

4. Función App_TaskCreate()
Aquí se crean las tareas de la aplicación. (Figura 4.43).

.. ··-- ---.~.1

'1
1

Figura 4.43: App_TaskCreate


82

5. Función AppTaskUseriF()
Esta es la tarea para la interfaz del usuario (Figura 4.44).
Esta tarea actualiza la pantalla LCD basado en mensajes que se le pasan por AppTaskKbd ( )

• <

"------- ~---J
otl

Figura 4.44: AppTaskUseriF

6. Función AppTaskKbd()
Área teclado de respuesta (Figura 4.45).
Esta tarea supervisa el estado de los pulsadores y pasa mensajes a la tarea de interfaz de
usuario AppTaskUseriF ()
~'""• Edlt Vltw Pri)Jnf l'lllih Oiooo hrlpl'l~an toc11 sva Wll'ldow tldP

r_1-i3 1 - 1~ ''' ~. :,. 1'" ,. rr.


w fll_:: .. ll:ll·-- <" 11.; 1~ t•: cl .. l '<lll o
-~-l!J i:!l"' ':,'1 ~'11 :=:''"'"' --" ~1 ,-~ • .., ~: -

J '" ¡,:. . . . . . .;. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .


·ProJnt "'IJ --:S -:d.:~;:-~-~~~~~"Qton~C,.( • ~ iifitta_.f.¡·-cr~.J.c- .J loco_mrua~~tcat ··:] ap¡l.(

'...) rt..-J2fltlvta1tup.J ~ ,¡
sDUle.
199 "
200.
otr:\"BO~ ~.!!ro:1s!: n.s::. !
Ll hw_conf.g..c
,..LJappt
1"'
201 • ~~::rip:icn : Thi=> :;a,í;: ~U::'I.i!Ocrll ~~ ,.;a;e cf ':.ho:. p-..!!1!:1 b".J:::::=' 1:md pe."~" :o r.e'""'"'"'' ~!'a,ll::;'serr71) j
~~:~:::~:
~~~ ~~~~::" ~o~:" 1" :t." ::u:~n': pa!:!l~ -::~ ·~pS"::a~:~o· b';,· 'OSTe.!kCt:~a=n·.
20t. ....................................................................... ,. ........................................................................................ ,

G'~up_-tc ;g~~;uuo ='• AppToo.,... ,.,,. •p_o<ol


!J lOGO_fiECTRONlCA3 e
r• 207 1/ uS ':l.clc-0;
I•Ji.JBI&nk_vrhi!rl.< 108 (vcid)p an¡;
.2:09 -
m [j Ytl!ow_ancnwZ.c
210 whil.!!{l)
I•:W v~--·uc...l.c 211 ~ 1
I<,L.)t!ed.c 212 OSimeDlylD'..sHto,o.:J,40);
(!) lJ logo~hospital_•~gil)h.l:l2.c 213 GUI TOOCH 2x~ 1);
2U - -
!+1 L.l joyW(kc.(
215
1>1 L)lcft_IITOW2..C
2Ui J
L•! L.J right_ar~owl.<
:,~ ~ 18t,anowl.c
1<1 iJ right_anow3.c
il'U~c
'"'~config.c
11;~ cfir«.c

.JJ__r:ñ;'==::-:!--..-:--=-''lc:¡•l
·~(}rC.ool'-5 i 0f~rm1L, 14t•·~~u.:
'Bi;il4~
- - - - - - - - - - - - - - - - - · . , _________________ , . -.. - · - - - - - - - · · · ---------------~- --~----------------·~------ - · - - _j
., ..,.i
Figura 4.45: AppTaskKbd
83

7. Función AppTaskAdc()
En esta tarea primero hacemos uso del Conversor Analógico Digital ADC para el voltaje
analógico a un número (Figura 4.46).
Luego calculamos el valor medio de corriente AVG.
Si al leer los bits de entrada de datos pertenecen al puerto D y al Pin 3, entonces
colocamos la palanca en 1.
m, Ed•t \M, Pro)td Fl-.h o.tt.ug PnJp..'nnll roo1~ sva 'Mnda. ~tp

'1 w ¡¡¡ llll ,, -. .ni.,__ , i 1' .:. ·. ~ ·'· 1:< "'¡., !1; 1~
~~l!.ll:.!l~.JI'-"l'(SYMlmOJm& i~:fi::[ir~·~~~
•Pro,lut - a·-:s-d~~:;--~-:~~~~(,!;lo~Q,c ~j-fiU!'!a~-4.¿'·¡] altnoí:3.c_.-,j toGo.[.u;:ÓRorW.U:-:-1]-~~- ~ r\w.(cl.ftJ.C
¡
.O • X'

f:-1
~ ~10.~.1
~ DtpP.c
lli [J bw.confrg.c
1<1~ dcofm...a.row2.c
J
..:J Z2:S

~H
221
'-•~-~~·••••••••••••••••••••U••••••••••u•••••••••••••••••U•••••••••••••••••••••••••u•o•u••••••••••••••/
¡J7:Q~i=~:: :.~•••kM<: [vo1d •p_axq)
'Im_cx:Inl"aJPt~~t 'tllt3_0C:In1t:lt=eturou
~

l.:U l.nc 1 • 'J, J • e, 11; • :l; 1


10: L.l down.mOil."l.c :¡zg lll.Iltl.fi_t c~e:142Ul • I'J,:ll;
1, iJ 11p_atrewl.c l:SO w.ntl.IS_10 val.or0[20],valcrl.I:O),val.ct2[20]:

wL)up.~rr.swl.c
'•J J
~~! :::~:-~ ~~~;:¡~~~:::~~;~g~t::~~;::~~~; ·
")U
lOGO_EUCTRONlCA.J.;;
et.<1"-orh..tc2.c
233
2.H
- ('."01dJi: 4':!JI
-
- -

;tl~ 'iell'O.o'.""""'"'"
¡,¡l.) Ydlow.4no•d.<::
1!:Ü t!W.c 1
.!;~!cgoJ•ospiUI.•~'ll.c.
r...:Jj~Lc !
f:f
1
ll ~•rm.w2.c 242 valcr0[1]• AOC: 0\lD.lConvertedValueTab[l•:iJ:
1>] Ll ri¡¡llt,.arrow2.c 243 v.alo:t1(1J• AOC-Dl:lalCcnvertedValuel'ab{3•i+lJ¡
I<J Q ltf'l._lrrowlc 2•H valod[l)• JU:C-Du.alConvertedValuaTab[3•1•2l; 1
l>J D riii!Larro..M .245 l - ¡
~:~ fc~.l~r;[~;.'~ ~.. ~~=~otrtedVAlu<!TIIb[3•j•<S01:
1
r.; [j bll.e.c 1
\~! ll cotrfig.c 1U valcrt[j]• ADC-DualCc:w•rtedValuelab[3•j+<Sl];
!•' lJ ditK.c .2411 valc:tS[jJ• ADC-DUalCcnvl!rtel!ValueTab[3"1•6~11 1
-~o6~'-' ü~=~-u.~,..:~~}
- - - ---
:~idoutP~--_:-·---
..:-~~~:---~~-~----~·--~~-~~~--
---- --- ---· ·
___________________________ ~------------------ __ ) ~¡
_-- ·.- - - - - - - - -- ·--- ~ ~ ---~----=~-- -~-~--- ~:-_··-_o·~-

Figura 4.46: AppTaskAdc


Luego programamos el PWM,
esta funcionalidad se utiliza para controlar una forma de onda de salida o indicar cuando
ha transcurrido un perfodo de tiempo.

Primero se especifica modo de temporizador TIM_OCMode, se especifica la salida del


temporizador comparado con el estado TIM_OutputState, se Especifica el valor del pulso
que se va a cargar en el CCR TIM_Pulse, luego se especifica la polaridad de salida del
temporizador TIM_OCPolarity. (Figura 4.47).

fdlt VlftO' Projfd flalh Dd>ug Prriphtrlll Jo(lls SVCS \'Jitld- Hdp

..., ora"' 1" .:, .:~¡ ·· 1 11" :, :" <•1 ~~ ue 111 t" 1;¿)
él C:l i:'l,;. _:-, 1~,,, 1~...,;,~o3Vm :~: ii<l ll ~' + "'J> .1'91 .

:
:·!;·~.TM·;=]~:.-.. j::f~:~.~~::~.:~:::·=~~-~i~:
ewst~rtup
:_j ccTt""
;
. :~.::~:~~.:~~::::~.~:~:::::~=~~::.~~-~-=~~:~'.:~••••••••••••••••••••
/ ••••••••••••••••-•••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••·
~~=
11~···········••···•••••••••············••····•· m~ ····················••····•·•········· .. ••••••••••••

.J Wn3l • 416 TIK!_CCin1t:Sc~o:tun.TIH_OCMc<1e., !"IK_CO'.ode_~2; //P\:!'J,a."':!


sD um- l'IH3 OCTni.;;S;:rueo:w:~.'l'IM 01.\t-put.!ltiiCE • TIK O'.JCV.l~t:ate Et\Mle1 //Éd 1 ~6•

ffl LJ app.c ' ~~=~i~!~~~:~~~~::~:=;;;!:;a:1~~-~;!-~Fclllt1tV ~-..: l(t ''I-~t.~±t


; G~: ' '121 TIN_Oc:U:-a1C criM3. UIHJ_0cin1tSn·ue1:ure) r- -

:; d:::;;
¡1 '1:1;! ~-~:;~~::~~~~=:~-~:;~~,;a!~:~d~=!~eate Enab(s,.~lF1olv;;~l!.o.uO•
TUt3-0Cln.H:!!t.tUcture.TIH-i'ul.se • CCR2 Val 1: - 1/t t "0oct.6t.t
m:J up.= 1: TlH3-OCirlit.!lt~.:.c:t.UJ"e.TlH-OCPclaritY --liM-OCPola.rity !.oll;
l<J '-.) LOGO. ' 'IIK_Oc.2Inl.r.('I:l'..S, niM3_0cr:ut!lr.rYcture)l- -
\+.~&ank,.
Ü Y~!o.-.
f.!l
.,.
.,
1<1 Ll Yei1Dft
130 1• 1-'..::~~::e:r Cc::~r:1q-Jro:.tcn lll. Piw.l ~"-:!~ •/
l•llJtiKZ.• '13:!. l'lM3_0Cln.1tStr-.l~t':.l.:te.l:IH_OOlcde • l:IH_OO<.cde:_PWlU;
m O loqoJ 'I.IH3 CICZ:ú~S~r'Q~t>U"o:.l"nf OU~pu~State - 1"1H Ou~put5~ate Eoa.t>l•;

~J joystK
"'
m ,.IH3-0Clnle5tructure.l"IH-Puhe • CClU Val '21 -
l"lH3:0Cln.t&St~~:.ur"'Rtii:~i:'.~lMI:ül--TIH:oc~~~r.l.~:y_Lcw;
ru{J ld1_u
~.u ri'}ht_;.
"'
m TIH_OC:3I:::.1t (!IH:!, •TIHS_OCI:::.t~:S~:ructure);

,.;~ ldt_lt /• V.a!l"";.er Co:lt:.1qur,.t1on in i"'<'X1 I"..N!.e •f

....... , ,,............................................................................................................
43! TIH3 OC!n~::Strnetw:e.l'IH OCMode • l'IM OCHode Pml1;
mL) ~''t.i
f•tUt:.rte.c
m =
':"IHJ-=OCin1::St:z:1letu:e:. Tn(::_O'.J.tput!ltate tlli _o--:lt~:~:.n:Sta.te:_Oleble:
TitU_OClnJ.tStruc,;u:e.l'!H_Pu1'e '"COtól_Val_J:
¡o¡~ccnfig TIM3 OCln:l.tStt"-le1:UJ:'It.TIH OCPolar.1tY • 'In( OCfolarl.t:V Low;

.-'.L 1
a :..1 lfilec.t
•H,
: TL'l_Ociln:l.t (:!'D'-2, •l'lM3_0ci.n1t!ltructure);- -

, ............... ··········· ................ .,...,,.,.,. .,. ,., ............... ~....


. ............................................. .
ii:IP~J<Ja" nr. 14t.. i , "
Figura 4.47: modo de temporizador
84

LOGO ELECTRONICA.C

1. Definición de variables

F~ Edlt \1N Ptc~d I'IMII Dc1N9 Pf~r~JI Taclt Wl:S Wlnaaw Htlll

,,-c:;rij "'1 ~ :;.,-<:!!.1 --- i · · 1!' -_, :> e>,l·:!rll'm llil~ •_,-_~•~lí!J._Io _:_&_.~iliii.J'0

-~:~~--~-~ ~ -·r~~~~:;~¿;¿;_~~~}~~~~~~~~:~ ne~a_4.t ~jt~~:¿v ] lOOO.~ ~-t~;.t: j

..<:~~:'u:,..,'fj ~ u .........
¡¡ [:;·--·---··---........................................................
.02 hnelud:: <lltdl.1t>.h:>
.,
i
1

s:D me
"
24
2~
hncll.l:<!" •GfJl.h"

U "1ti..!..."l.<!!.':f GOl COOST S'tOlU.Cit


.: J :_: 1 27 tct,r•nr a;;:'r_co!fir_s-ro~! con!lt
21 fe.r.d~.t"
fil ..J do-An. 2SI
') .J do-m 30 ~]/· <'.ale: te
:!l J "'P.'" , 31 1 "Ibe t"!:lllc:l11>'2 are :he ent.r:l.e~ ct' -;he pale:-::e tat.le.
;,¡ .J vp_on l2l[.very en:z::y 1'11 a 3¡-~1: value 1-::t lóhl.el1 2<\ bl.t~ az::ot .. :::ua.ll;• u!lelU
33 :he lever 8 bi.~" re;oz::e!l~n; ;:t¡., ¡:!!<f o;arpo-ne:te,
·.; .J LOGO. 3"1 -::he mldctle s b.1es repre.nn: 1:.21e Gn:~ ~e:~:,
c•l L.) Blank,_ -'~ ~= b.iQhe:!lt B bi;, (of the 2~ bitll llill~) z:: .. pre!lene th" Blu':! =:tp<:m•:~;
Lil ~ Vtnou. 36 e:o t'o.UO'.;,: DdiBGGll.J\
...::~ Yt!loolo ~! •/
~,.. ~ clooc:2.< 39- 3-U.Uc G'JI CO:IS! STOR:.Gt G'Dt COt.O:il. Cclo:::~LOGO E:U:C'TROY'IC.U(J • 1
ffi _) logo} 1' ":!x!"Z~~~,,o:~~~:J:J:J!I(),OIC!CiOn:,th~:~~os:n -
~¡!) jooptif ~1 , O:K\li;,~i~,O>lSCOiOl, Oxi90i01, Ox9i9003

(tl Ll ldt_ar :; :~:~:::~!:~:!:~:~::~::::!!!:~=~~~:~~


rfl :_) ri~l H ,liX.:~2~:ZS,'Jx;s7J.,7S,Oli.D7D~D7,DxiCD200
~ _} ltft_.,. ,:ix36!!l:!IS,Ox:!I~;;-;:H, 01C7BB~iA, :-"Dlf"!H"A
e~_] ~~ t6 ,OXC~CSC?,Oxl:9!"ArA,Oxin::Bl!:<!ó,Ox::IOOO(lD

,o; W bm.c !! :~::~~~:~:::~~~;:~:!~!!~~:~:::~;~:


''' iJ canf19 '\51 ,:lx~t.D~:ls,;,.x~n:n::t,Dx:lill~Dl,Ox!Ci]lg

~eL u~ .. U:~-·!~--·!:
:tJ ~ lf<~'et.( ~o • :ix:ZBl~:!rl, !lxlOS1716, o"r::.u.ta,:Jx672A2i

_·~~::~;~=:;:~~~!~_~:~~~:~=~~- ____ --------·-------- '


.!
:
- · · · - - - - - - - - - - - - _j

Figura 4.48: Definición de variables

2.luego se da la Gama de colores GUI_CONST_STORAGE GUI_COLOR


ColorslOGO_ELECTRONICA3[] = {
(Figura 4.49).

td•l Vitw Pr<>jld fllllh Ol!bug 1'-enphelal! Too!$ SVCS Wlndow Hf!p

- -~ ..3 fd iili .: -: l.llaj -- - j j ~-::t. _•,1 ~~ =~ 11 lld·~-

1
0!,

·,¡, El C.'i., ~;1 ·--; 1~,,;.,;,.,.,, :-: ¡;.¡, '!· • ~ •:

;:·:~~~ª~J~·--AJr::~:i~ffim]ill~[¡;~i~¡i~j¡::~~=~:a~,:~o.nm~·~'" ·.o ~-"~''


LJ~ i:l ,Ox1H!9illli. 1 0J<65t196S,::>.J0351'!.AIH,Ox~7l:S!:"'
s D u-.er , 4<1 ,Ox2€.oe.. s,ox1:ó'l'A75,0"D70007,:JxiCD2D:J
,.1 ~ ...,-p.c 45 ,Oz:36'3935,0x3S:I7'3i,0.~~:7n'!l:!7:.,o:d:!H'<!I1":.

\•J ~ bw_Cll :~ :;:~!~!~:~~~~~;~:~=:~;~:.:~=~~~~~~


l*' ~ do..m. '8 00;c.AEFSYS,Ox90F:lf:F,OxAT:.llA7,:Jx132213
,~ :J
doo.m. ,0"2!l:l6'0S,Oxi5~"'Z.E:,Ox:l7D600,1lx:JC'of33:!!
r;1 L..) up_ur ,1 so ,Oo:.:!E:!nB,t>x:61716,0x!"SV.E!!,r;x&7:u.:t9

lól .LJ
up_ur l·
51
:~¿,!~!~:6~~~~~=:~:;:;~~;:~=~~i~~
1>1 ~ LOGO. 53 ,Ox.372!27,:lx!ISfi'\~3,DxC:SBSE6,0XZ:S9757
:•• .J St.nk,. 51 , OltUD71H, Oxi72927, ~x!3o'!:!!l6~,:lxl51.716
lt' .J Ydlt"A 55 ,OxiU:20C,O'x37&303,0x'lS[.1r.i,Oxt!l':322
56
\+1 :J Y~o. :~::~~=~::~:!~~~::~~~~:~:~:::~;~!
1+1 !J el"-c2..< ,OxS!!oiBiS,O>t761>761,:!:o:FS9i9.¡,o>a.670S7S
lfl L) logoJ , Ox2!100D, OxD787n, Oli223S~!, OXC'75H97
l'!: LJ jo¡."Stic , oxe.18'!7!:, Crx'1.717Hi, :lxC!I86~f:i,;j-xD3CBC!I

~~ LJ tdt,_ar : ~~~~~~~:6:~~~:~~: ~=~:~~;~:~=~~~~


l<;; iJ light._¡ ,C"'1C3E34,0x2'l59S'7,0xl!B7~'7B,Ox!IS969S
r•J \) ldt_• 6i ,Ox3D<>~•~,Ox3l!l~~n.oxOYI.!II.7,0x433:!.34
!'I'J L) rignl_c 6S 1 0xS:1S6'~l!:,Ox61Hi6SE,'Jx2:l:ZUI!:,Ox1HD.:t

<f: !J ~e 67 ;~=~~~:;:~~~:;~:~;~:::~:~=~~;~
l;¡j Ll C1mf'.g 6!! , Oxi7!<~90,0x9.:'lo:l,i', Jxl6UO[I1 tlx:;tC~i13
ftl Ll din:c.c , Ox7<!óS!!Sll,.)Jl23A6AS,"•lf!4Dil3, .)x!ls::.;.ss

~ltJo~_. n_r-:~L·! -~--~~--·-~=:~:_~~=~~:~:::~~~-~::~~=~ ·- _ _ -·- --·---~-----·-·--,--·-- ----~----·--- _____________ _


Figura 4.49: Gama de colores
85

3. Se da los datos de los pixeles (Figura 4.50).


LJ C."\lhvs\R~~\\OI'OI'ks~cr,_kd_tfl.f\~~U.""PfOj-jNISion CJ X
Fll'f E<l<t Vlrw Projtd Fb!.l\ Dt!P.rg Ptri_clhtrals 'tl:.l~ WCS V..'lndow H~lp

";]isra r:;f,. ·L:C~I ;·.1 ·· .:·1 ?' '' '·' :•.1" :r rr' H;ie!!
-"~- i.tJ i:J ~ w! '''ij STW2~10MT6 - ="' ,t::;_j tfJ- ';\.. ~ ~:
D --~·~j~-!~~ ~-, ·.s·t~~~l,( f:.}'EE.:.~ñ'i'iit:ii~&TJ •J .f..J[.á!f.._~"a.t1> !J LOGO_EW:n:ON~ 'J hw.co..r,~.~
l
ProjKt O. fi!chJ.·h

g -1$ Prcjectom)rk:$piC]
3iiJ s.TM3lf103VE .
l"
110 >; 'Cclct"ll::.oGO_I.U:C"!RO'.fiCA3 {~1
. ~ I..:J ~artup 111

[_) tcTta ' i~~ ¡;]lit~~~~. G~!;~~::t~!~~~O~~~. ~:~~~e~..~~~r ,j=~~;;~c;:~~~;, •;¡!oo, 011:00, OxJO, :i~tOO, lbOO, OxO(), Ox:JO, OICClO, Oxao, OxOO, O~tOO, tb:OO, :lli!O

'
E:D\JS<J
liJ Bppc ~-
lJ

~
115
116 ~----~------~-----~---
0.:00, OXOO, OxOO, 01t:lO,
'JXOO, Oa:lO, OxOO, OxO~,
OxOO, OxOO,
OxOO, OlCOO,
OxOO, :JxO:J, OxOO,
O>tOO, Ox~O, OXOO,
OxOO, Qx;JO,
01tOJ, OxOO,
Ox'lO, OxOO, OxOO, OxOO,
OxO::>, 01:::10, 01:00, OxOO,
OxOO,
OJ<OO,
OxOO, :JxOO, OxOO, ihcOO, 0>:00,
0~:00, Ox.OO, OaO:l, OxOO, OxOO,
OxO
OxO

!•: W ~N_w
1>) ..J d~.
llS
:1.3.9
oxoa, ~=;~: ~=;~: ~;~~: ~=;~: ~=;~: ~:;;: ~=;~; ~=~~; ~=~;: ~=~;; ~=;~: ~~~;: ~;;;: ~=;~: ;;;;; ;;;;;
Ox:l:l, 0J<0:1, Ox:l''J, O:otO:J, Ox;J:l', OxOO, Ux:1::l', Ox'J'J, Ox:J:_!, Ox'JO, :J"~:;JO, 0:~~;0::1, OxO:l, Ox0'J 0 OxO:l, OxOO, o.,.u:¡, 0,;;0:1, o,..oo, Ox:;::t, QxO::t, 'JXO
~=;~; ~=~;: ~=~~: ~:~: ~=~;: ;;;
: f\1 L.] dawn. 120 Oi!O:l:l, OxOO, Ox0() 1 :)xOO, .:lA:lO, Oxoo, Ox37, :J':,.;B!, OAOD, Ox:lO, 'J¡¡cQQ, :lxOO, GxOO, OxOO, 0-JtfiJ,, Ox31, Ox56, O:><S6, Oll31, OxSl, ()d'1', Oxf

;: ~ ~:: : 123 úH:lO, Ox:'IO,


~=~;: ~=~~: ~=;~: ~;~~: ~=~~: 6~;;: ~=~;; ~:;;: ~=~;; ~=;~: ~:~;; 6:~~: ~=;~:
OxOO, Ox.;l:t, 0>~:'1-', Ox:l:l, ;)J<Jl, :ix:lO, Oxoo, oxaa, OxO,, 'JxJ.:i, Ox~J, Ox:JJ,
;:;;; ;:;~: ;:~~:
Oa:l:l, O"x)J, :l&JO,
~=;~: ;~~: ;:;~: ;:;~: ;:~~: ;:~
CxJ:l, 3x:lo, JliOO, OxJO, OxO"J, o... o
:•~ :J LOGO. 124 CxJJ, :lxOO, JxOC, ~K:):l, JJtCJ, OxO:l, JxOCt, OxOO, :lxC:J, OllOJ, OxOO, Q,.J:J, ::>xJO, CxOO, :h:O:I, Jx:l:l, OxC:l, JK:lJ, Jl(~, Ox:l-0, Cx:lO,OxO
r:o.; cJ e~nk. OxOO, OxOO, Ox:lO, ox:J1, Oxoo, :lx4D, ox:c:o, Oxls, oxaa, :JxO.:i, OxO::I, OJ<:JO, oxoo, Oxoo, :JxJD, oxoe, oxoe, Ox:lS, :lxoa, 0"01., Ox:la,OxO
fll ¡j Vdlou. 126 :>A:>:>, OxO:>, OAOO, ;tAO:l, OXOO, OxOO, :lx:JO, OxOO, OxJJ, Ox:J:l, OxOO, Ox:JJ, JJ!.::IO, 0:><00, :lx:l::l, 0:1!.00, OxOO, OxC\0, OxOO, OxO~;>, Ox()J,Oli:O
l;i7 .:ix:OO, 0Jt!JO, Ox:J:J, éi~t:l:l, OxOO, OxJJ, OxJO, !JxOO, :JxOJ, :Jx:IJ, :Jt:OO, JX)J, O'XlO, Ox:JJ, CIJ<,), JxOJ, OxJ:J, OlC)'), :lxJ;), :lx;:n, OltOO, J>::l
.•. uveno... 128 Ox'JJ, O:~;JJ, JxOJ, Ox:lJ, J:r;J:J, OltJ:l, OxJ:>, Jx'JC, :lltJO, l.'XOO, J~r.JJ, Ox:tJ, :lx:l:l, :>x-JO, Ox:JJ, OxOJ, 'J~r.JO, OxO:>, O:cJO, ~x:JO, OxOO, O~JJ, OXO
•1 .J t!ecl.t OaO:J, Ox:J::t, 01lO'J 1 OxOJ, OxJO, OxOO, 'lxJ':l, OxOO, Oa'l!l, 'laJO, 'Jx:JO, OlC'JO, OXO:J, 'Q¡r;:J:J, :l'x'l'l, CxO:J, OxOO, Q,;OJ, O.rt:JO, OX!lJ, OxOJ, 'J.rtO
:tJ [J lego) OxéiO, O~tOJ, Ox03, Olt'lO, DxOO, Ooc99 1 Ox33, Ox:<Ei, :lY.O~, ClJtOéi, Ox.:iO, a:r.aJ, (!¡tJ;), Olt.:iO, JxB6, OliDS, ~xO~, Jx·l2 0 Ox~2, {1,;5!:, 0:~;-tB, J:~;D

···l.J-,
:•:.JI~ar
OJCJO,
OxOO,
O:EOO, OxOO,
Ox'JO, O~tJO,
!)XO:l, Ox:JO, OxOO,
OxOO, Ox00 1 OxJO,
0J:00 1
OxJO,
OxOO, OxJO, 011~"•
OxOO, 0>()0, O~tOO,
OJ<OO,
:J-¡r;0-0 1
OxOO,
OxJO,
0~:00, 011.00,
01100, OxOO,
Or.OO,
0.1100,
OxO:J, OxOO,
OKJO, '01<-0:l,
OxOJ,
OxOO,
Oll'OO, (.lxOO,
O~r.O:J, :lKOO,
OxOO,
OxOO,
0:~;0
'JxO
1~3 Ox~l:), OxOJ, OxO:'I, OxOO, JxOO, OxOO, :l.i<OO, O>e:lO, OxOO, :JxC)O, O'xOO, OxOO, OxOO, .:;xOO, OxOól, OxOJ, OliJO, OltOO, :lt:OO, OrtOO, OxOO, OxOO, JxQ
:•cJñgnt_, 13-5 O~r.OO, OxOO, 0>~00, QJ:OO, OxOO, JxOJ, OxJJ, OxOO, Ox03, O~r.'J:J, é\x:JO, :lxO:l, OxOO, O~r.OO, ~OJ, OxOO, 01:00, OxOO, il>~OJ, Oxt':J, Ox:lO, OllO
~~ :J J¿t_ar :!.35 OxOO, Ox'lO, OxJ!i, 'l:~tOJ, CxOO, Ox37, OxJ9, Olt2J, Ox-t;.,, :JxJO, ;);,t;:l-J, O:tOO. ~ltJO, OxO!I, OxLD, Ox"'S, Ox!ID, Ox':l:l, OxOO, Oxo;J, Ox()O, Oxf::
ClxOO, O:r::JO, OxOO, ;)11:00, OXOO, :lxOO, O~~:O:l, OXOO, !lJ<O:J, OzOO, Ox:J:l, OxOa, :J:t::OO, OXOO, OxOO, Oz:OO, OxOO, Ox(ll>, OXOO, OXO!J, OXO:l, OltO
ifJUri9ht.t
·~·~ b.sac
"'
l.3e
Ox;OO,
'lz::'l::t, Jz:')O,
OJ:OO, Oli;QO,
Ox!IO, OxOO,
JltOO, OxOO, JXO;J,
':txO:J, OxOO, OxJJ,
OJ<O:J,
OxOO,
Oz:OO, OxOO, OXOO,
:iaOO, 0:.<0;), ?aOO,
OXOO,
Ox:lO,
0:.:00,
OxOJ,
JxJO, OxOO,
Oz'JO, O¡tJO,
OxOO,
OxO::O,
OxOO, OxOO,
OJ<'JO, 0A00 1
?XOO,
'JJ<OJ,
OXO'", 0>:;)0,
Ox'JO, 'ClxOO,
OxOO,
:lrt::JO,
axo
OxO
t•:~config 109 OzOO, OxOJ, OxOO, axOO, 0>~0:1, Ox:J'l, OxO:l, OxOO, OxOO, Ox00 1 O:r.:OO, 07.:'0, QxOO, OaOO, JxJ:l, OxO:J, :JxOO, OxJO, ;)~r,QO, OxO'J, 0:><00, OxO
:lx".S7, OxOO, Oli:JO, Q:c;)O, OJ<O!i, Ox-!D, 01120, OxS3, :JxSD, OxOO, OxOO, OxOO, ;)xOO, OxO.:i, OxO!!, Oxoa, Od-'D, OxOO, 0~~;00, OJ<OO, OxO!), 0,;7•

~~~:· ~~~~· ~~~~· ~~~~· ~~~~· ~~~~· ~~~;· ~~~~· =~~;· ~~~:· ~~~~· ;~~=· ;~~~· :~~:· ~~~:· :~::· ~~~~· :~~~· =~=~· :~=~· ~~:~· ;~; .;

Figura 4.50: datos de los pixeles

4. Por ultimo en la función GUI_CONST_STORAGE GUI_BITMAP


bmLOGO_ELECTRONICA3 ={
Se da el formato de mapa de bits colocando sus tamaños y ubicando los punteros, se
dan los bytes y pixel es que se utilizaran por líneas (Figura 4.51).

''-"'¡;¡·,;,~1~-·~L:C~I ··1 l!' -~ , :•.l;~;;t"'""ll!l


~ (,fJ t=.ll fJl: 'Ji;·;¡ STM!;~~vm; --~- il-~ :~ +;, -~ -
'l'loJ«t - - 4 Q ~;:o~- ~~.(. '_) ~~a_c fJé~~~liJI ..J -t!~d'li.-'c fJ l!!ti'tCrL'C'f J LOGIUU~ !..,)-'tu.._c~trl'lg.t:

g"~;j;.~--:,-;;;] ""
0"00, Ort'JO, ~x:JO, OXOO, 1}:~;00, ":lKllO, Q~~:'JQ, 0~<:10, OzO:l, Ox'J:l, ;)x:JO, OxOii, Ox:lO, QxOO, 01100, OaúO, Q¡o;Q;J 0 OxOO, Ox'J:J, 01:00, OxOrP, OxOO, OxO "' 1
OxO:>, 0"00, OxOO, OxOO, OxOO, Ox0J 1 O>eOO, OxOO, :lxO:l, JxOO, :l1100; O>eOO, Ox00 0 O~tOO, OxOO, Oxoo, OxO:J, :lx~J, :I>CJ:l, OKO:l, 0A00, 0110
81....) §lvtup lll!iS 0A00, 0:~;00, Ox92, Jx€A, O:t~7, Ox99, OxiO, Ox03, OxD!., OliO:!, OxE€, 0)(56, OxO>., Oxo;.,, :lxO.:., JxiJA, OliOO., OlC60, OxOA, OJO:O;.., OAO;., JxO.
:J CO!ta 1166 ClxOO, OxOO, '.lxO:l, OxO:l, O~r.CO, JxJ,, ~IJo:O:l, OxOO, ()x":J:l, OKO:l, '.)x'J:l, OxOO, 'Ja'JO, OxO::., OxOJ, :lllDO, OxOO, OxOO, Ox'JO, :lxOO, OxOJ, 0&0
OxOO, Ox!lll, 0110'), Ox,:l, Ox:lO, OxO:J, Ox:J:l, O:o:OO, Q¡r)"'), O:x:l'J, C,lC:lO, OA'Jl, O.x:JO, OllC;;), OxúO, Ox:JO, 0:~~00, OxJJ, ilxOO, 0~0, Ox'JO, O~r.O
:Jrtrnl2 'JA·)O, ::neJO, 0~0:>, OxOO, ()XJO, OxJa, JxJO, :lxOJ, :lxOO, OxJO, Ox:JJ, O:z:;)O, J:c?O, ,)lt:l:l, OXOO, 'JxJO, OxOJ, Olt'JO, Oxaa, OxOa, ~X::IO, :JxJ:I, :litO
2:.3~er _..:xO::I, OJ:OO, OltO'::I. ;)X:IJ, .:JX:l:l, t'x,:lO, O:r.:JJ, OxOO, ::>J<O:l, 'Jlt.;IO, Ox'JO, OXOO, »X>'O, ~x:l:J, OxJO, OxOO, OXOO, OX::OO, O.XO:l, :>xOO, Olt'JCl, Ox:l
•.:J•¡:p.c oxao, oxao, oxoo, O:~tJO, ~xoo, oxao, oxoo, oxoo, O:¡¡:O'J, oxoo, Oltil:i, oxJo, :;¡x~3, Ox'3J, oxsl, oxcc, Ok!IO, oxte, Oxo'J, oxsJ, o;~~;al, :Jxll
~,;;)J, OxOO, JxOO, )x:J'J, :lx:);), :JxOO, :l1<00, OxOO, Ox'JO, ':llt:l'J, .:i;tOO, Jx'l::l, ti>t'JO, OxOO, Ox:lt>, OxJ3 1 Jx00 1 OxO'J, Ox'JO, O¡cOO, ()x:lO, JxO
oi:..litw_cc
OXO:l, Oz:JJ, Ox:,IO, :JxO:l, :lxOO, Ox:lO, JxOJ, C!x'J:l, OxO:J, OliOO, t'xOO, O>~OJ, JX;)O, OxOO, JxO:l, O~r.'J:l, :lxOO, :lx:t:l, 0>:00, Ox:l:J, OxOO, Ox:l
r.-Ucto..r,_ OliOC., Ox'JO, OxJ:J, OxOO, OX:l:l, Oa'JO, ::tx:lO, ()xOO, OKO:J, QxJO, DxOJ, ':;xrl:l, OxO'J, oxoo, OA:J:J, OxOO, QJt::lO, OXOO, OxOJ, :l>tOO, OxJO, OxO:l, OKO
'IJ Ü dcwn. ' ll7i :lxOQ, OxOO, ;)110:1, Olll'lO, Ox:l:i, OxOO, OrtOJ, OxOO, ~r.OO, Clx.:i:J, Ox::J::t, C7x:J;), Ox:la, .:ixO:J, a.xOO, Ox3:J, :ix:JO, Q¡o;;¡;), :JxO::>, GlCOO, (',l!cOO, OK'J.

~~ 3:::: 1, ~~~:
OK:JO,
Ox;)'J,
OxOO,
OxOO,
OxOO,
OlCOO,
OxOO,
Ox;)J,
CxOO,
OxOO, OxOO, :lxOO,
oxOJ, OxOO, 01<:l:J,
Ox'JJ, OrtOO, Ox03,
a~~;OO, 0~~;00, Oxól!J,
-'xJ,, J:~;OG, Ox.OO,
OliO:l, O:o:OO, OxOJ.,
OxOO,
OxOO,
Oll:lJ,
OxOO, OxOO,
OxO:l, GxOO,
OzO:J, :l>eOJ,
oxOO,
GxJO,
O'f~JO.
OxOO, OxOO,
OxO-', OxOO,
OxOO, OxOO,
010:00,
O~t~O,
OxOO,
OxOO, OxOO, OxO:J, OxfHl, OxOO,
OxOO, 0Jt30, 'JXGO, :JxOO, OxOO,
Ox:lO, Cx:l:J, Ox::IO, O,;GO, OxCil,
OxO
OXO
0~~;3
a Ü LOGO. Ox:lO, OxJ:l, OxOO, Olt:lO, QxJJ, Oz.CO, Cx:J:l, OxJO, OltOO, OxOJ, 'Jxí:l::t, OitO:l, :lltOQ, ox':lJ, OxOQ, Ox:J:l, Ol::lól, O:r;O;), 'lxJ:I, OXOJ, ·:lXJO, Ox:lO, il'xO
l•l:J!ltanlo;, 1179 OxOJ, 'lJ.OO, Qx:l:l, Ox'J), OJ:OO, OJ<O:J, OXO:l, o:txOO, OltOJ, OX:l), OX.DO, OxOJ, :1100, OxO~, Ox:lO, Ox:lO, OxOO, OxJO, OxOO, OxOO, ?xOO, OxO
,..,L.JYc~ u eo GXOO, OlC<!'O, llxOO, oxa:l, QxO:J, ilX'J:l, Jx.OO, lls:J:l, OltO:l, 3XOO, DJ:OO, OxOO, OXJO, OXOO, OXOO, Ox00 1 Ox.OO, Ox00 1 Ox00 1 axJO, O:w:OO, OJz:Q
l1et :Jx'JJ, Qx;)Q, ~xOO, OxJO, Oz.G;), ~xJO, Ox.JO, OxOJ, :lx00 0 Ox:J;) 1 Oz.JC, OxO;), OxOO, OxOO, Ox:lJ, Ox:l:J, 0:~<.00, O:><J:l, OxJ:l, 0:~~.00, Ox3:J, OliO
Hl~ Velktw.
0KJJ 1 Ox:JO, OJ~OO, OxOO, OxOO, OxJ:l, OKOJ, ~'K~O, Jx.OO, -'>tOO, OXOO, 3110~, OxJ:l, OxO:>, OxJO, JxOO, OxOO, O>~OJ, il,;:l0 0 OxOJ, Ox::lO, :lxO
..J
!•, ~ec2.·
m 'cJ ro¡o)
~~~~E¡Jco;- ~~-~~:~/GlJI_BI!MAP b=I.OGO_!:l!CTP.O~ICA3., {
l.at,0 /• tSl.z~
!tl ._} ¡oywc 1
r«L.lldt..••
11!17 •/
~~"9~· 1us ....J:., ;- :~1t~F-at~- ..
·~; :._] !llft,M 1!89 !!, /• !3l':lli'~rF1x~1 "/
¡¡;~ right._( 1lSt' 6e::.OGO_tLtC1'i.O'.liCA"J, !• i':::l.n~er ce pl..;:ure d.ll:a l1ndl.eell} •/
1191 'Pali.CGO !:t.tctM!UC'AJ /" E'cl.nter -:= ;:~le~:e "/
it;...) bate.c ~
¡.: J ccnr19 ~~!~ L); -
r>¡..J~·
.. ¡
> i
Figura 4.51: mapa de bits
86

V. DESARROLLO DEL PROVECTO

5.1. INTRODUCCION

En este capítulo se describe los requerimientos previos, diseños y construcción de las etapas de una silla
eléctrica motorizada para discapacitados.
A continuación se muestra un diagrama general, dándonos ideas de los diferentes sistemas que
componen a nuestro proyecto, así como también señalando la relación que existe entre ellos. (Figura 5.1).

Fuentes de ener¡ía Bateria

~---~H~_M_c_K--AR_r._l~H
T'JKeil uVisicn4

App Inventor Smartphone

Figura 5.1: diagrama general

Donde:
Color negro: etapa de potencia
Color gris: etapa de control
Color verde: fuentes de alimentación/activación
Color naranja: software
Color amarillo: hardware del microcontrolador
87

5.2. DISEÑO Y CONSTRUCCION DEL HARDWARE

Dentro de esta sección se describirá detalladamente todas las mejoras que hemos creído conveniente.

5.2.1. BATERIAS

Este tipo de sillas motorizadas, utilizan 2 baterías de 12 voltios cada una, las cuales se conectan en
serie; lo que significa que todo el sistema es alimentado por 24 voltios (fig. 5.2).

1
¡ -- --- - - - _......_ ___ ·--~---__J(~

Fig. 5.2. Baterías de la silla eléctrica

5.2.2. MOTORES

Utiliza 2 motores del tipo A9Y1X00272 de la marca fortress scientific, de 24 voltios DC, con una
corriente de 15 A, y una revolución de 172 RPM (fig.S.3).
88

Fig.5.3. Motores tipo A9Y1X00272

#_.,' •l,()O,Jf)
~··n ~- • ~-a --.-. re
HA.~ J -~; <:-•t M r .j U4

Fig.5.4. especificaciones técnicas del motor


89

5.2.3. ETAPA DE POTENCIA

Es la etapa encargada de controlar todos los movimientos de los motores, en nuestro caso hemos
utilizado adaptación de voltajes, también el uso de puentes (puente H), asimismo se utilizaron
fuentes de diferentes voltajes para alimentar los diferentes circuitos que explicaremos luego.

Para el presente proyecto se optó por utilizar el software proteus para diseñar y simular las

siguientes etapas:

PUENTE H

Esta parte es la encargada de realizar y controlar los giros de los motores, sea en sentido horario

como anti horario.

Un puente H es un circuito electrónico que permite a un motor eléctrico DC girar en ambos sentidos,

avance y retroceso. Son ampliamente usados en robótica y como convertidores de potencia. Están

disponibles como circuitos integrados, pero también pueden construirse a partir de componentes

discretos. En nuestro caso, los encargados son los MOSFET IRFPlSON.

ETAPA DE POTENCIA DE MOTOR DERECHO

Básicamente su función, es la de arrancar y detener a los motores (en este caso el motor derecho),

en nuestro proyecto hemos utilizado el transistor MOSFET IRFPlSON (puente H), el cual trabaja como

24 V., con una activación de entrada de 3.3V., el cual recibe las órdenes del microcontrolador hacia

los motores a través del MOSFET IR2112 (adaptación de voltajes).

Donde IRl_H e IRl_L son las salidas altas y bajas, respectivamente de los IR2112, con un voltaje

aproximado de 15 v., con una frecuencia de 18khz. (Fig.S.S).

ETAPA DE POTENCIA MOTOR DERECHO

09

IR1_H
02
FR101

IR1_L

IR2_H

04

lR2_L

Fig.S.S. etapa de potencia de motor derecho, donde IR_ H e IR_L son las salidas de los IR2112
90

ETAPA DE POTENCIA DE MOTOR IZQUIERDO

ETAPA DE POTENCIA MOTOR IZQUIERDO

013

IR3_H

05 07
FR107 FR107

IR3_L
68
015

IR4_H
68
016
08
FR107

IR4_L

Fig.5.6. etapa de potencia de motor izquierdo, donde IR_ H e IR_L son las salidas de los IR2112

Fig.5.7. vista lateral de los MOSFET IRFPlSON


91

Fig.5.8. vista superior de los MOSFET IRFPlSON

ADAPTACION DE VOLTAJES

Esta parte es la encargada de adecuar los voltajes tanto para los IRFPlSON (24V.), como para el

microcontrolador STM32H103 (3.3v- Sv).

En esta etapa se utilizaron los transistores MOSFET IR2112, debido a su gran robustez y facilidad de

trabajo, asf como facilidad para encontrarlo en cualquier electrónica local. (Fig.5.9).
92

15V

PWM1_H
C2 ADAPTACION DE VOLTAJES
1uF
PWM1_L PUENTE DERECHO 1

15V
-;-

PWM2_H
C4 ADAPTACION DE VOLTAJES
1uF
PWM2_L PUENTE IZQUIERDO 1

15V
-;-

PWM3_H
C6 ADAPTACION DE VOLTAJES
1uF
PWM3_L PUENTE DERECHO 2

15V
-;-

PWM4_H
CB ADAPTACION DE VOLTAJES
1uF
PWM4_L PUENTE IZQUIERDO 2

Fig.5.9. adaptación de voltajes

FUENTES DE VOLTAJE DE 15 V.; S V. Y 3.3 V

Fuente de voltaje de lSV. : La finalidad de esta fuente de voltaje, es la de alimentar a los

transistores MOSFET IR2112 (adaptación de voltajes).

Fuente de voltaje de SV. : La función de esta fuente de voltaje, es la de alimentar al

microcontrolador STM32H103.

Fuente de voltaje de 3.3V. : La función de esta fuente de voltaje, es para activar la entrada de los

transistores MOSFET IRFP150N. (Que son los encargados de controlar los movimientos de los

motores). (Fig.5.10).
93

FUENTE DE VOLTAJE DE 15V

01

FUENTE DE VOLTAJE DE 3.3V


SAUDA15v
C3 R1
1uf 111.

U3
07 L.N1117
os SAUDA3.3V
"'"

FUENTE DE VOLTAJE DE SV
es
'"'
"'"
09
04
'"""
U2
""'
C4 R2 SALIDA 5v
1uF 1k

oa
""

Fig.S.lO. diseño de las fuentes de voltajes

Fig.5.11. fuente de voltaje de SV. y 3.3V.

FUENTES DE VOLTAJES DE 12V. Y DE SV.

Estas fuentes de voltaje son exclusivas del audio de nuestra silla.

Fuente de voltaje de 12V. : La función de esta fuente de voltaje, es la de alimentar el altavoz, donde
utilizamos el regulador de voltaje LM317.

Fuente de voltaje de SV. : La función de esta fuente de voltaje, es la de alimentar el circuito de la


bocina (LM 555). (Fig.S.12).
94

FUENTE DE VOLTAJE 12v

02

U1
SAUDA12v

03 R3

C3
"
''F
D4

FUENTE DE VOLTAJE DE Sv

U2
SALIOA5v

R4
C5

07

Fig.5.12.diseño de fuentes de voltaje de 12V. y SV.

fig.5.13.fuentes de voltaje
95

Circuito de la bocina

Circuito de bocina o claxon, utilizado básicamente para uso voluntario del usuario, formado
principalmente por el integrado 555, un transistor BD135 (fig.5.14 y fig.5.15).

CIRCUITO BOCINA

5v 12v

co U1
4 3
RESET R ü
ü a
> 7
oc
5
cv

I1nF C2
TR
o
z(!) 1H
6

555 C1

I'"'
-.
-

Fig.5.14.diseño del circuito de bocina


96

Fig.S.lS.circuito de bocina

Fig.S.16.vista superior de toda la etapa de potencia


97

5.2.4. ETAPA DE CONTROL

Es la etapa que interactúa con el usuario, aunque también se encuentra en esta parte el
microcontrolador STM32H103.

Microcontrolador (STM32H103)

El microcontrolador STM32H103, es el encargado de realizar y dirigir, la comunicación con las


diferentes etapas de la silla eléctrica motorizada para discapacitados .

. ) Microcontrolador STM32H103-adaptacion de voltajes: la comunicación es digital, por pulsos


PWM.

En este caso utilizamos PWM H y PWM L (altos y bajos respectivamente).

PWM L: el PWM bajo, son básicamente señales de activación para los IR2112.

PWM H: el PWM alto, es en si el encargado de llevar la información a través de pulsos, en nuestro


caso a una frecuencia de 18khz.

Los IR2112, cumplen la función principal de elevar el voltaje proveniente del microcontrolador (3.3v.)
a 15v., en nuestro caso.

Su rango es de 3-25v., a su vez, las salidas de los IR2112 (IR-H e IR-L), sirven para el funcionamiento
de los IRFPlSON, con un rango de 0-24v .

.)Microcontrolador STM32H103-joystick: en este caso nuestro joystick, es del modelo thumbs, y es


analógico, por lo tanto, su comunicación en nuestro caso es netamente analógica, a 3.3v. DC., unidos
por 2 conexiones analógicas .

. ) Microcontrolador STM32H103-pantalla LCD: la comunicación es analógica (3.3v.), a través de bus


de datos, en nuestro caso la pantalla táctil, cuenta con 16 pines, 4 pines para controles, 4 pines para
pantalla táctil, 2 pines para alimentación y 2 pines para tierra.

Pantalla táctil (ILI 9325)

Es un módulo practico con pantalla LCD TFT de 2.4 pulgadas con membrana sensible al tacto y
controladores, para ambos incluidos en el módulo.

Este módulo permite conectar fácilmente una· pantalla LCD a color a cualquier desarrollo con
microcontroladores. El panel tiene integrado un controlador ILI9325 y un control táctil ADS7843.

El modulo dispone también de una ranura de conexión para una tarjeta SO. El LCD se controla
mediante un bus paralelo de 16 bits, por lo que se recomienda su uso con microcontroladores con
buen número de pines de 1/0. (Fig.5.17).
98

Características:

• Controlador de pantalla táctil: ILI9325 y ADS7843.


• Controlador de pantalla con buffer de video incluido.
• Resolución de pantalla 240 *320.
• Regulador de 3.3V. Incluido.
• Nivel lógico de los pines de 10: 3.3V.
• Dimensiones del módulo con conectores incluidos: 7S(Iongitud)*SS(ancho)*14mm (alto).

Fig.5.17.pantalla táctillll9325
99

Fig.5.18.pantalla táctil y joystick

Joystick

Un joystick viene a ser una palanca de control que permite desplazarse manualmente, y con gran
rapidez, el cursor en una pantalla de computadora o videojuego; se usa especialmente en programas
informáticos de juego.

En nuestro proyecto hemos utilizado un joystick modelo thumbs, el cual es analógico, funciona con
3.3v., en su estructura interna cuenta con 2 potenciómetros unidos entre sí, de tal forma que pueda
hacer giros rápidos y precisos. Se conecta al microcontrolador por medio de 2 salidas analógicas.

Decidimos utilizar este modelo de joystick por su alta sensibilidad y fácil conexión, en comparación
con otros modelos. (Fig.5.19}.

Fig.5.19.vista superior del joystick


100

Fig.5.20.vista lateral del joystick

Bluetooth (HC06)

El modulo Bluetooth (HC06) es un dispositivo muy fácil de obtener, económico y sencillo de utilizar.
(Fig.S.21).

Ventajas principales

Además de su pequeño tamaño y sus buenas características de transmisión y recepción que le


brindan un alcance muy amplio, tiene bajo consumo de corriente, tanto en funcionamiento como en
modo espera.

Cuando realiza un enlace con otro dispositivo es capaz de recordarlo en su memoria y no solicita
validación alguna.

Su alimentación es de 3.3V. Y es de bajo consumo (8mA).tiene un rango aproximadamente de 15


metros.

La comunicación es por medio del protocolo RS232 (puertos USART), su transmisión es de 8 bits, a
una velocidad de 115200 kb/s.

Trabaja a una frecuencia de 2.4 GHZ, banda ISM Y modulación GFSK.


101

Fig.5.21.bluetooth HC06

Fig.5.22.vista posterior del bluetooth HC06


102

Configuración del módulo bluetooth HC-06 usando comandos AT

En esta parte vamos a explicar cómo configuramos nuestro módulo HC-06, cambiar la velocidad de
transmisión, el nombre y código de vinculación de nuestro hc-06 entre otras cosas. (Figura 5.23).

EL modulo Bluetooth HC-06 viene configurado de fábrica como Esclavo y no se lo puede cambiar,
pero otras características si las podemos configurar usando comandos AT, estas caracterizas vienen
por defecto con valores predeterminados que se muestran a continuación:

- Nombre por defeco: "linvor" o "HC-06"

- Código de emparejamiento por defecto: 1234

-La velocidad por defecto (baud rate): 9600

EL Modulo HC-06 tiene dos estados los cuales es importante conocer:

• Modo AT (Desconectado)
• Modo Conectado

Hacemos la comunicación entre fa PC y el módulo de forma Directa usando un conversor USB-Serial.


(Figura 5.24).

.;

·.- 1

Figura 5.23: Configuración del módulo bluetooth HC-06 usando comandos AT

Las conexiones serían las siguientes:

HC-06

Figura 5.24: conversor USB-Serial


103

En nuestro caso usamos un conversor USB serial PL2303 que se ha instalado como puerto
serial COM5. (Figura 5.25).

Una vez hecho las conexiones correspondientes, abrimos el Monitor serial:

Figura 5.25: puerto serial COM5

En la parte inferior debemos escoger "No hay fin de línea" y la velocidad.

Hecho esto Podemos empezar a enviar los comandos ATa nuestro Bluetooth

Test de comunicación

Lo primero es comprobar si nuestro bluetooth responde a los comandos AT

Enviar: AT

Recibe: OK

Si recibimos como respuesta un OK entonces podemos continuar, sino verificar las conexiones.

Cambiamos nombre de nuestro módulo HC-06

En nuestro caso, nuestro módulo bluetooth se llama *silla*.

Enviar: AT+NAME<silla>

Respuesta: OKsetname

Configuramos la velocidad de comunicación

La velocidad por defecto es de 9600 baudios, en nuestro caso será de 115200. (Figura 5.26).
104

Enviar: AT+BAUD<8>

Respuesta: OK<l15200>

Numero---baudrate

1 ---------1200

2 ---------2400

3 ---------4800

4 ---------9600

S ---------19200

6 ---------38400

7 ---------57600

8 ---------115200

'ti@ . -· . -·· . -. - ::". . ., liiL~J


' o_,..,!,_..,.~,~·--- 0.- -!:,--~·"'·- ..__"' '--• "'-'--·--O""' • ~N-=~ ......'~·-H-~ _ _,_ ..... _. __ ,__-_..,.., ~

OKC?",..,e-cnu.eO?"..!e'tPlllOY.9 600CKl.invcrV1. e

¡;¡] Desplazamiento outomáti<o

Figura 5.26: Configuramos la velocidad de comunicación

Existen más comandos, pero en nuestro caso, solo hemos modificado los mencionados. De esta
manera quedaría habilitado nuestro bluetooth, listo para usarse.
105

Menús de la pantalla

El menú, es muy sencillo y fácil de operar, por lo que el usuario se va a familiarizar con mucha
rapidez a él, a la hora de diseñar, se tuvo en cuenta ese aspecto, por el tipo de usuarios que
mayormente utiliza este tipo de sillas, asegurándonos de que cuenten con la máxima comodidad
posible.

Menú Principal:

En el menú principal se encuentran 4 opciones, como son: modo manual (joystick), modo digital
(pantalla táctil), porcentaje de carga de batería y la opción de herramientas (configuraciones).
(fig.5.27).

Fig.5.27 .menu principal

Seleccionando el modo de control: existen 2 modos, tanto manual (joystick), como digital (pantalla
táctil)

• Modo manual: los movimientos se controlan por medio del joystick. (fig.5.28).
106

Fig.S.28.modo manual

• Modo Digital: los movimientos son controlados por medio de los controles que encuentran en la
pantalla táctil. (Fig.S.29).

. l·-1: . ·•.
-

Fig.5.29.modo digital
107

Configurando la velocidad: en este caso, hemos creído conveniente controlar la velocidad por
rangos (porcentajes), debido a que no se sabe exactamente el estado de salud del usuario, por lo que
la velocidad no sería la misma. Y quedaría a elección del mismo usuario, teniendo en cuenta que la
velocidad de nuestra silla es aproximadamente de 7 km/h. (Fig.5.30).

Ejm.

Vl (desde 0% hasta 20%)

V2 (desde 20% hasta 40%) y así sucesivamente.

En nuestro menú ingresamos a configuraciones, y nos aparecerá la siguiente pantalla.

¡
: 1-;.t ~}
___ . L. . ,_

Fig.5.30.menu de velocidades

Porcentaje de la carga de la batería

Con esta opción podemos visualizar el nivel de carga de la batería, ya que es de mucha importancia
para el usuario, para que de esta manera pueda tomar las previsiones pertinentes (fig.5.31).
108

Fig.5.31.indicador de carga de la batería

Activando la comunicación inalámbrica: ingresamos en el botón de configuraciones, y activamos el


bluetooth. De este modo quedaría lista la silla para la comunicación inalámbrica vía bluetooth por
medio del Smartphone. (Figura 5.32).

Bluetoot activado (enable)

Bluetoot desactivado (disable)

Figura 5.32: Bluetoot activado


109

Esquema general de los diferentes menús

Es un resumen de todas las opciones que tiene el usuario a su disposición, para el uso que crea
pertinente (fig.S. 33).

Fig.5.33. diagrama general de los diferentes menús


110

VI. RECUPERACIÓN DE LA INVERSIÓN

Para determinar y demostrar la factibilidad del proyecto de optimización se podría recuperar en un

corto tiempo la inversión ya que lo que se tendría es un diseño de control para cualquier modelo de

silla de ruedas eléctrica.

Tomando en cuenta el costo de reparación por cuenta de la marca de la silla en cuestión estamos

hablando de casi el SO % del costo total de la silla. Por lo consiguiente solamente tomando como
ejemplo:

Costo de silla eléctrica estándar: en promedio s/12000.00

Reparación del sistema de control: en promedio s/6000.00

Por lo antes expuesto considerando solamente una silla a optimizar se recuperaría la inversión

realizada en este proyecto.

6.1. Gastos totales del proyecto

COSTO TOTAL DEL PROVECTO

CANTIDAD
DESCRIPCIÓN

Microcontrolador arm cortés m3 S/ 800.00

Maqueta de presentación S/ 700.00

Silla eléctrica S/ 750.00

Libros, revistas, folletos, etc. S/ 250.00

Impresiones, Internet u otros S/ 250.00

Entrevistas a especialistas (viajes, llamadas, etc.) S/ 250.00

COSTO TOTAL S/ 3000.00


111

VIl. CONCLUSIONES

•!• Se logró diseñar un sistema de control y monitoreo, de tal forma, que se


mejoró las etapas de un modelo de silla de ruedas motorizada para
discapacitados.

•!• Se logró plantear un diseño para el sistema de control de una silla eléctrica,
de forma general sin importar la marca y/o procedencia de ésta.

•!• Se puso en marcha la ejecución de un modelo final, obteniéndose muy


buenos resultados.

•!• Se realizó la selección idónea de componentes, tales como motores,


microcontrolador, etc. los cuales hicieron posible el buen desempeño de

nuestra silla eléctrica.


•!• Se logró construir un sistema de control usando elementos de bajo costo.
•!• Se recopiló información sobre conceptos y criterios teóricos necesarios
para el diseño y construcción del sistema de control.

•!• Despierta el interés docente en utilizar nuevas estrategias para controlar


una silla eléctrica.
•!• Las funcionalidades que ofrece el prototipo de sistema de control de silla
de ruedas eléctrica es tan competitivo como otras marcas en el mercado

comercial.
112

VIII. RECOMENDACIONES

•:• Una mejora que se podría realizar en la parte de control, sería la comunicación por
reconocimiento de voz, el cual le daría una interacción más completa a nuestra silla de ruedas
con los usuarios.
•:• Se·podría, incorporar una cámara a nuestra silla; para que de esta forma, pudiéramos hacer

una monitorización más completa a distancia.

•:• El radio de cobertura para el control vía bluetooth es de 15 metros, es una distancia bastante
amplia, sin embargo, si se deseara mayor cobertura, podría utilizarse bluetooths más

potentes.
•:• Cambiar cada cierto tiempo la batería del equipo.

•:• Evitar derramar líquidos sobre el chasis que aloja al sistema de control.

•:• El control por joystick es súper sensible, por lo que se recomienda su manipulación con

cuidado.
113

IX. REFERENCIAS BIBLIOGRAFICAS

BIBLIOGRAFÍA

•!• ALCOR MARTIN, Enrique. Estudio y desarrollo de interfaces hombre- máquina basados en

sensores inalámbricos. España: Escuela Técnica Superior de Ingeniería, 2008.

•:• CHUNG LEE, Johnny. Projector-Based Location Discovery and Tracking. Estados Unidos:

Carnegie Mellon University, 2008.

•!• CONDE RAMOS, David. Control accesible de videojuegos para personas con discapacidad.

España: Universitat Politécnica de Catalunya, 2013.

•!• AXELSON, Jan. USB Mass Storage: Designing and Programming Devices and Embedded Hosts.

Estados Unidos: Lakeview Research LLC, 2006.

•!• Molina, Rafael. Movimiento rígido de planos en el espacio. Proyección en el plano de la

imagen. Depto. Ciencias de la Computación e I.A.

•!• Device Class Definition for Human Interface Devices (HID). 2001.
114

GLOSARIO

» ACTUADOR: Es el mecanismo que ejecuta la acción calculada por el controlador y que

modifica las variables de control.

» CONTROLADOR: Utiliza los valores determinados por los sensores, calcula la acción

que debe aplicarse para modificar las variables de control en base a cierta estrategia.

» CONTROL PROPORCIONAL: Acción de un dispositivo de control que modifica la

actuación del elemento regulador proporcionalmente a la desviación entre la

magnitud medida y el punto de consigna.

» OFFSET: También llamada desviación de cero, es el valor de la variable de salida

cuando la variable de entrada es nula.

» SETPOINT: Set Point es cualquier punto de ajuste de alguna variable de un sistema de

control automático. Puede ser: Nivel; presión, temperatura; desplazamiento; rotación;

etc.

» SENSOR: Permite conocer los valores de las variables medidas del sistema.

Вам также может понравиться