Академический Документы
Профессиональный Документы
Культура Документы
G')
"PEDRO RUIZ GALLO"
)>
, ,
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
TESIS
PARA OPTAR EL TÍTULO PROFESIONAL DE:
INGENIERO ELECTRÓNICO
PRESENTADO POR:
ASESOR
ING. VICTOR .JARA SANDOVAL
LAMBAYEQUE- PERÚ
2016
2
UNIVERSIDAD NACIONAL
PEDRO RUIZ GALLO
TESIS
PARA OPTAR EL TÍTULO PROFESIONAL DE:
INGENIERO ELECTRÓNICO
SUSTENTADA POR:
MANRI~BIA, AUTOR
ROGER DENNIS
APROBADA POR:
¡?-(¿e'-~~
lng. Hugo JaviffChic/ayo Padilla
~· DIRECTOR ESCUELA PROF. DE
INGENIERIA ELECTftONICA
3
DEDICATORIA
Roger Dennis
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
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.
Los autores
S
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.
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.
Gracias.
Los Autores
6
RESUMEN
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.
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.
IN DICE
~~;~',~~Sii'ZJ}i;':fé~
Dedicatoria .......................................................................................................................................................3
Dedicatoria .........................................................·.............................................................................................4
Agradecimientos .............................................................................................................................................4
Abstrae ..............................................................................................................................................................7
1.3:2. Hipótesis............................................................................................................................. 15
3.2.4. Microcontrolador............................................................................................................... 35
3.2.8. Librerías............................................................................................................................. 39
4.S.Programa .......................................................................................................................................... 70
10
5.2.1. BATERIAS..................................................................................................................................87
5.2.2. MOTORES.................................................................................................................................87
VII.CONCLUSIONES .........................................................................................................................................111
BIBLIOGRAFÍA................................................................................................................................................. 113
GLOSARIO....................................................................................................................................................... 114
11
INDICE DE FIGURAS
3.5. Placa de evaluación empleada, con todos los periféricos que la componen .............................. 33
4.19. H-Fiasher.................................................................;.............................................................................60
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.23. Configuración del módulo bluetooth HC-06 usando comandos AT ............................ 102
l. ASPECTOS GENERALES
complejidad de la Región Lambayeque, tanto que constituye un Hospital con nivel 111-1, es
especializado, la gran mayorfa para personas con discapacidad motora. Estas sillas de ruedas
respecto al diseño inicial de dichas instalaciones, así como una nueva programación
AvAugusro 8
. Leguia
J
JtJda AvAugu.
USAT Sin a/
Par/nas
~...... 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
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
o de fábrica para dichas sillas motorizadas; esto da como consecuencia que dichas sillas
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
¿E( diseño de un sistema de control y monitoreo mejorará las etapas de un modelo de silla
1.3.2. Hipótesis
1.3.3. Objetivos
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.
l. MARCO TEORICO
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
' 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.
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
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
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.
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
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,
Los controladores proporcionales nos dan la opción de decirle que tan "sensible" deseamos que el
Entonces aquí, nosotros programamos al controlador para cualquier nivel de agresividad del
parámetro programable.
Kp = 1/PB PB =1/Kp
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.
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.
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,
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
haya un error de medición menor a 1 mm. En la mayoría de los casos este exceso de
Sin embargo, la precisión no puede ser de un valor inferior a la resolución, pues no puede
Potenciómetro Analógica
Posición lineal o
Encoder Digital
angular
Sensor Hall Digital
Magnetorresistivos Analógica
LVDT Analógica
Encoder Digital
RVDT Analógica
Giróscopo
Acelerómetro Analógico
Aceleración
Servo-acelerómetr,os
Membranas Analógica
Turbina Analógica
Caudal
Magnético Analógica
RTD Analógica
Inductivos 1/0
Procesa.
Cámaras de vídeo
Digital
Visión artificial
Procesamient
Cámaras CCD o CMOS
o digital
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
• Electrónicos
• Hidráulicos
\ .·
• Neumáticos
• Eléctricos
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.
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
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.
potencia, todos los cuales derivan del diodo o el transistor. Entre estos se encuentran los
siguientes:
24
• Triac
• Transistor IGBT
• Tiristor IGCT
• MCT
Un paso imprescindible para que se produjera esta revolución fue el desarrollo de dispositivos
2.5.2.1. Aplicaciones
Las principales aplicaciones de los convertidores electrónicos de potencia son las
siguientes:
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
111. HADWARE
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
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.
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.
(SUARTPHONEJ
~L-·--lmE--cR-FR--~~L--C-Cm_R_O_~_OO_R
JOSTiCK OlGITAL
(PA~TALLA T.4CTILI
28
• Bus 12C
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.
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
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
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,
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
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,
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
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
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.
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
flujo de datos de 32 bits, así como banco de registros e interface de memoria. Tiene
31
r- --- -.--· ~
¡ ll',"fli~& l
1 Thllmf.-Z d~,.~rr..d~ 1
!__ . ··-· ··--- ---··:
observar una imagen real de la placa de evaluación empleada, con todos los periféricos que
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,
• Conector USB.
• Botón de usuario.
• Botón RESET.
• LEO de estado.
• Sola fuente de alimentación: toma energía del puerto USB o la extensión de pines
del conector.
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
componen.
34
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
3.2.4. Microcontrolador
La placa de evaluación STM32-H103 utiliza un microcontrolador STM32F103RBT6
• 128KB FLASH .
• 20KB RAM .
• Canales x7 DMA .
• RTC.
• WDT .
• Xl CAN (multiplexado con USB, por lo tanto no se puede utilizar en el mismo tiempo).
Memory mapping
The memory map is shown in Figure 7.
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
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
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
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
En cualquier caso, gran parte de los aspectos relacionados con la arquitectura quedan
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
~~
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
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.
Apphc.atlon ende
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
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
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
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
•!• lnc.: Contiene los ficheros de cabecera de los drivers de periféricos, contiene un
•!• Src: Contiene los ficheros fuente de los drivers de periféricos. Contiene un fichero
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
• 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
res e
USBUb
demc!i
Audic_Speaker
Cmtom_HID
Oe.vice_Firmware_Upgrade
JcySticklv1cu!:e
Ma,;_Storage
Virtuai_COM_Pcrt
libra~¡
in e
• lnc.: Contiene los ficheros de cabecera de los drivers de periféricos. Contiene un fichero
• Src: Contiene los ficheros fuente de los drivers de periféricos. Contiene un fichero
• Demos: Esta carpeta contiene ejemplos de código para aprender a usar dicha librería.
librería
../ lnc: Contiene los ficheros de cabecera de los drivers de USB. Contiene un fichero
../ Src: Contiene los ficheros fuente de los drivers de USB. Contiene un fichero
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.
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
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
que usa JTAG como mecanismo de transporte permite al programador acceder al módulo de
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).
TMS
e::>-
TCK
D
~
~
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
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,
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
puerto JTAG del sistema de destino tal como se muestra en la figura 3.15.
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
Dentro de los programas a mencionar se encuentran Keil uVision4 que es utilizado para editar y
calidad que junto con algunas otras más se ha convertido en un estándar para el desarrollo de
~KE-Il:
ILJ Tools by ARM
.~ ¡JVision®4
lntegt·ated Oe>.relopment Envimnmetit
Las herramientas desarrolladas por Keil apoyan los microcontroladores más populares y son
• PK166: Kit de desarrollo profesional de keil, para dispositivos C166, XE166 y XC2000.
• 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
fácil. Integra todas las herramientas necesarias para desarrollar aplicaciones incluyendo el
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.(
·;:_-__-_...::...-·.::.-_-.
proporcionando lo siguiente:
• Utilidad make integrado para ensamblar, compilar y vincular sus aplicaciones embebidas.
• Verdadero depurador a nivel de fuente y nivel ensamblador integrado con CPU de alta
ROM.
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
~~t'~:.l.~~ ~ ,~=-
/if
·--~"''" ..
~ 1~~:-~,~~,~-~-
-~~· . . , -_,;-. :-.:-;:-,- -_-_-_-_-_-. ,_
-;;:;."" -.-...:!:::·E~·\
. •:J-·
.....
• '1•~,_ •.,......
...
n
""'·'"'"""'-.... '""'
• ..'.! .. -.-·~-·
•JJ~~"'"'•'
..
-· : ~~~:;:;,:::.:,
. 'l'"'··-~·
. ·}-·"·
lli ., ..... =
I_~':_NTAN_A_DE_s~~~~~~-=-LA-_c_o_N_s-r::::_Ru-cc-~,.-·~.....,!
Con el área de la ventana de edición, nosotros somos capaz de cambiar el código fuente, ver
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
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
,. 11
!
/':
r--- ¡---------------------------------------------------:
j i
.2:! i
flL&:...;~,:.;.¡.- ,,J¿,{j:l_~ ~-
contexto del modo. La barra de herramientas de archivo está activa en todos los modos,
solamente en sus respectivos modos. Botones, iconos y menús son activados si son relevantes
opciones generales y editar archivos de código fuente, pero esos cambios solo se harán
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
. .: ,,¡A!
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
Templates: plantillas de bloques de texto de uso frecuente. Doble click en la definición para
¡.,;~,;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., ..,'",,,, ..
asistentes de configuración.
Típicamente, esta área contiene el editor de texto con los archivos de código fuente, la
j
-- ---- - _.r:
Figura 4.7: Ventana de edición
53
;.··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).
Configuratícn
---- - '
-~--- -· --- - --- -- - --- -- -- -··-- --~-- .- !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 ¡:
Por defecto, las ventanas de salida se muestran en la parte inferior de la pantalla de uVisión e
incluyen:
• La ventana de Búsqueda de Archivos nos permite hacer doble die en un resultado para
de variables que les gustaría investigar. Objetos, estructuras, uniones, y arreglos pueden
principal ayuda del sistema es disponible desde el Menú Help (figura 4.9).
;
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 • ~~
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.
4.3. H-JTAG
proyecto, ha sido usado como una solución de programación. El software usado es H-JTAG Vl.O
4.3.1. Configuración
de destino. Se verifica que la interfaz JTAG del microcontrolador esté habilitada y aplicamos
,. : ! \'/í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
CORTEX·M3
Solo en el caso de que haya un error, nos vamos a LPT JTAG Setting del menú Settings para
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
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
,¡
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·<: ~
4.14 donde se tiene que seleccionar la dirección del archivo TOOL.INI de uVision.
coñfig ; Exit
.,_.,_
Too!Conf
·,......·
'1
.-------0-K--.1 1'
Figura 4.15: Mensaje de configuración de uVision4
H-JTAG CORTEX-M3 esté seleccionado y que las opciones Load Application at Star- tup () y
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
OK
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
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!
vamos al menú Flash y die en Download. Se debe recordar que antes de depurar el
programa se tiene que descargar el programa.
.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
H-Fiasher- ¡:ipp.hf·:
·-i; .F103XE
: ¡· .!2 Fla>h S~le.:tio-n . - . - ; 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
Una vez que todo ha sido configurado, die en el botón Program para descargar el código hex 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
""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·~~?.: - .)·
Cuando cerramos la ventana del hyperterminal nos mostrará primero una ventana de
H;rp.:rTermina!
H'j'perTerminal
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.
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
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 [~=-=
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):
botonS ...................v1
boton6 ...................v2
66
boton7 ................... v3
boton8 ................... v4
boton9 ................... v5
.. -~ " . :: -
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
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;
porcentaje = 40;
pwm_const = 12;
porcentaje = 60;
pwm_const = 18;
porcentaje = 80;
pwm_const = 24;
{
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
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.
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.
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
#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
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
void RCC_Configuration(void)
{
ErrorStatus HSEStartUpStatus;
/* RCC system reset(for debug purpose) */
RCC_Delnit();
/* Enable HSE */
RCC_HSEConfig( RCC_HSE_ ON);
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_Setlatency(FLASH_Latency_2);
/* Enable Prefetch Buffer */
FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);
/* Enable PLL */
RCC_PLLCmd(ENABLE);
'
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~
~
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
//LEDl
GPIO_InitStructure.GPIO_Mode =GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_SOMHz;
GPIO_Init(GPIOD, &GPIO_InitStructure);
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
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);
-""'""""'
.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:;
"'"'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
void ADC_Configuration(void)
{
76
ADC_InitTypeDef ADC_InitStructure;
'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)
_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
void NVIC_Configuration(void)
{
NVIC_InitTypeDef NVIC_InitStructure;
NVIC_SetVectorTable(NVIC_VectTab_FLASH, OxOO);
77
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_O);
_flif ~dll Vltw PIGJ«t fla,ll Drlluo Pertphtrals fogh SVCS IN!ndow Htlp
::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.!}:
:::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 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;
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.."';
Fote Ecllt \~r.w PfcJtd Rarh Otbvg Ptt!phnafs loclt SVCS IVm~ Hrr;~
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
/•Tll!e~leeoun;oer•/
~lM_TRGOSource _ U'pd.atel ;
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):
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)
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
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;
App.c
Fil~ fdll: Vltw Ptcjut flalll Dttlug Prripl'ltrall T.oo/1 SVC:S Wlndow Help
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"
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
: 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
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 )
4. Función App_TaskCreate()
Aquí se crean las tareas de la aplicación. (Figura 4.43).
.. ··-- ---.~.1
'1
1
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
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
'...) 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. ....................................................................... ,. ........................................................................................ ,
.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
~
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·~-
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~ ····················••····•·•········· .. ••••••••••••
:; 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);
....... , ,,............................................................................................................
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);- -
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
..<:~~:'u:,..,'fj ~ u .........
¡¡ [:;·--·---··---........................................................
.02 hnelud:: <lltdl.1t>.h:>
.,
i
1
s:D me
"
24
2~
hncll.l:<!" •GfJl.h"
~eL u~ .. U:~-·!~--·!:
:tJ ~ lf<~'et.( ~o • :ix:ZBl~:!rl, !lxlOS1716, o"r::.u.ta,:Jx672A2i
td•l Vitw Pr<>jld fllllh Ol!bug 1'-enphelal! Too!$ SVCS Wlndow Hf!p
1
0!,
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
<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
";]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
···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•
~~~:· ~~~~· ~~~~· ~~~~· ~~~~· ~~~~· ~~~;· ~~~~· =~~;· ~~~:· ~~~~· ;~~=· ;~~~· :~~:· ~~~:· :~::· ~~~~· :~~~· =~=~· :~=~· ~~:~· ;~; .;
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
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).
~---~H~_M_c_K--AR_r._l~H
T'JKeil uVisicn4
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
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(~
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
#_.,' •l,()O,Jf)
~··n ~- • ~-a --.-. re
HA.~ J -~; <:-•t M r .j U4
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
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
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
Donde IRl_H e IRl_L son las salidas altas y bajas, respectivamente de los IR2112, con un voltaje
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
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
ADAPTACION DE VOLTAJES
Esta parte es la encargada de adecuar los voltajes tanto para los IRFPlSON (24V.), como para el
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
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
01
U3
07 L.N1117
os SAUDA3.3V
"'"
FUENTE DE VOLTAJE DE SV
es
'"'
"'"
09
04
'"""
U2
""'
C4 R2 SALIDA 5v
1uF 1k
oa
""
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.
02
U1
SAUDA12v
03 R3
C3
"
''F
D4
FUENTE DE VOLTAJE DE Sv
U2
SALIOA5v
R4
C5
07
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.S.lS.circuito de bocina
Es la etapa que interactúa con el usuario, aunque también se encuentra en esta parte el
microcontrolador STM32H103.
Microcontrolador (STM32H103)
PWM L: el PWM bajo, son básicamente señales de activación para los IR2112.
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 .
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:
Fig.5.17.pantalla táctillll9325
99
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}.
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
Cuando realiza un enlace con otro dispositivo es capaz de recordarlo en su memoria y no solicita
validación alguna.
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.
Fig.5.21.bluetooth HC06
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:
• Modo AT (Desconectado)
• Modo Conectado
.;
·.- 1
HC-06
En nuestro caso usamos un conversor USB serial PL2303 que se ha instalado como puerto
serial COM5. (Figura 5.25).
Hecho esto Podemos empezar a enviar los comandos ATa nuestro Bluetooth
Test de comunicación
Enviar: AT
Recibe: OK
Si recibimos como respuesta un OK entonces podemos continuar, sino verificar las conexiones.
Enviar: AT+NAME<silla>
Respuesta: OKsetname
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
OKC?",..,e-cnu.eO?"..!e'tPlllOY.9 600CKl.invcrV1. e
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).
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.
¡
: 1-;.t ~}
___ . L. . ,_
Fig.5.30.menu de velocidades
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
Es un resumen de todas las opciones que tiene el usuario a su disposición, para el uso que crea
pertinente (fig.S. 33).
corto tiempo la inversión ya que lo que se tendría es un diseño de control para cualquier modelo de
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:
Por lo antes expuesto considerando solamente una silla a optimizar se recuperaría la inversión
CANTIDAD
DESCRIPCIÓN
VIl. CONCLUSIONES
•!• 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.
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
•:• 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
BIBLIOGRAFÍA
•!• ALCOR MARTIN, Enrique. Estudio y desarrollo de interfaces hombre- máquina basados en
•:• CHUNG LEE, Johnny. Projector-Based Location Discovery and Tracking. Estados Unidos:
•!• CONDE RAMOS, David. Control accesible de videojuegos para personas con discapacidad.
•!• AXELSON, Jan. USB Mass Storage: Designing and Programming Devices and Embedded Hosts.
•!• Device Class Definition for Human Interface Devices (HID). 2001.
114
GLOSARIO
» 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.
etc.
» SENSOR: Permite conocer los valores de las variables medidas del sistema.