Está en la página 1de 6

Manejo de Comunicación i2c

Juan David Angulo Castellanos,


est.juand.angulo@unimilitar.edu.co.
David Santiago Sánchez Garcı́a,
est.davids.sanchezg@unimilitar.edu.co,
Israel Santiago Tinjacá Rincón,
est.israel.tinjaca@unimilitar.edu.co,
Universidad Militar Nueva Granada, Colombia
2023

Abstract—In the present practice the MPU6050 sensor was • Manejo apropiado del módulo de conversión análoga
used to show the number of squats performed by a person and the digital por múltiple canal usando el módulo ADC - DMA.
MAX30102 was used as a pulse oximeter, that is to say to measure • Fortalecer las competencias en el uso del módulo I2C.
the number of beats per minute and the oxygen saturation. All
this was implemented with the STM32 microprocessor and the • Encontrar una librerı́a apropiada para el MAX30102 para
data was displayed on a 128x64 oled display. su correcto funcionamiento.
Keywords: Pulse oximeter, inertial sensor, STM32, oled display.
III. M ARCO T EORICO
Resumen—En la presente práctica se usó el sensor MPU6050 En el presente apartado daremos a conocer unas consi-
para mostrar la cantidad de sentadillas realizadas por una deraciones teoricas en las que sustentamos este preinforme
persona y se utilizó el MAX30102 como pulsioximetro, es decir de laboratorio, aclarando el funcionamiento de los sensores
para medir la cantidad de latidos por minuto y la saturación de
oxigeno. Todo esto se implemento con el microprocesador STM32
MPU6050 y el MAX30102, además del oled y sus conexiones
y se mostraron los datos en una pantalla oled de 128x64. con el microcontrolador stm32.
Palabras clave: Pulsioximetro, Sensor inercial, STM32, panta-
lla oled. A. STMCUBEMX:
Es una herramienta gráfica y software ST el cual nos ayuda
I. I NTRODUCCI ÓN en la generacion del codigo de proyecto para el IDE (keil)
La tercera practica de laboratorio busca que el estudiante en que lo vamos a desarrollar, además, nos permite una
haga un manejo apropiado del módulo de conversión análoga configuración sencilla de microcontroladores y microprocesa-
digital por múltiple canal usando el módulo ADC - DMA, dores ’STM32’. Proporciona herramientas como la inclusión
algo que ya se ha venido realizando en practicas anteriores; de librerı́as ( GPIO, HAL etc), asignación de roles a los pines
el objetivo de esta práctica es implementar un sistema que del micro, configuración de relojes, etc. El software posee
permita la medición de diferentes variables como la posición caracteristicas y ventajas tales como:
angular de la rodilla, latidos por minuto, porcentaje de oxı́geno • Selección intuitiva de microcontrolador y microprocesa-
(en estos dos ultimos se debe de hacer uso del pulsioximetro dor STM32.
MAX30102) durante una actividad fı́sica determinada, los • Generación de proyecto de código C de inicialización,
valores optenidos por los sensores deben tener una respectiva compatible con MDK-ARM y STM32CubeIDE (compi-
gráfica en una OLED128X64F. ladores GCC).
Finalmente, el objetivo primordial de la practica es el
fortalecer las competencias en el uso del módulo I2C.
Los módulos I2C suelen incluir caracterı́sticas como cambio
de nivel de voltaje, resistencias pull-up y opciones de direccio-
namiento para facilitar la comunicación entre dispositivos en
un bus I2C. También pueden tener funcionalidades adicionales
como la extensión del reloj, que permite que los dispositivos
ralenticen el proceso de comunicación para acomodar dispo-
sitivos más lentos.
Figura 1. Microcontrolador STM32.
II. O BJETIVOS
Los objetivos de la presente practica vienen condensados en
la introducción previa, pero mas especificos son los siguientes: B. Sensor MPU6050:
• Implementar un sistema que permita la medición de dife- El MPU6050 es un sensor de movimiento de 6 ejes que
rentes variables durante una actividad fı́sica determinada. combina un acelerómetro de tres ejes y un giroscopio de tres
ejes. A continuación se presentan algunas de las caracterı́sticas
más importantes del sensor MPU6050:
Alta precisión: El MPU6050 tiene una alta precisión en la
medición de la aceleración y la velocidad angular en los tres
ejes. La resolución de la aceleración es de hasta 16 bits y la
resolución del giroscopio es de hasta 16.4 LSB/°/s.
Integración de 6 ejes: La combinación del acelerómetro y
el giroscopio en un solo sensor permite una medición más
precisa del movimiento y la orientación de un objeto.
Filtro digital de paso bajo: El MPU6050 cuenta con un Figura 3. Max30102
filtro digital de paso bajo que reduce el ruido en la señal del
giroscopio y mejora la precisión de la medición.
Comunicación de alta velocidad: El sensor se comunica con
un microcontrolador a través de un bus I2C de alta velocidad,
lo que permite una transmisión de datos rápida y eficiente.

Figura 4. Pines en STMCUBEMX.

Figura 2. MPU6050
teniendo en cuenta la posición de los ejes en X, Y y Z. Este
sensor se conectó como se muestra en la figura 5.
C. Sensor MAX30102:
El MAX30102 es un sensor óptico de frecuencia cardı́aca
y oximetrı́a de pulso que se utiliza para medir la frecuencia
cardı́aca y la saturación de oxı́geno en la sangre de una perso-
na. A continuación se presentan algunas de las caracterı́sticas
más importantes del sensor MAX30102:
Alta sensibilidad: El MAX30102 tiene una alta sensibilidad
para la detección de señales ópticas, lo que lo hace adecuado
para la medición de la frecuencia cardı́aca y la oximetrı́a de
pulso.
Detección de movimiento y artefactos: El sensor cuenta
con una función de detección de movimiento y artefactos que
ayuda a eliminar las señales de interferencia de la actividad
fı́sica y el movimiento del usuario.
Filtro de paso bajo: El MAX30102 tiene un filtro de paso
bajo que ayuda a eliminar las señales de interferencia de alta Figura 5. Esquematico MPU.
frecuencia, lo que mejora la calidad de la señal.
Comunicación de alta velocidad: El sensor se comunica con
un microcontrolador a través de un bus I2C de alta velocidad,
lo que permite una transmisión de datos rápida y eficiente.
IV. P ROCEDIMIENTO
En primer lugar se realizó la programación de los pines que
reciben los datos enviados por los sensores en el programa
STMCUBEMX, como se muestra en la figura 4.
Una vez se configuraron la salida de los pines, se dividió
el trabajo en 2, en primero lugar para hacer las sentadillas
con el MPU6050, el cual se programó para contar sentadillas
La ejecución del programa permite contar la cantidad de
sentadillas que hace una persona. Y en segundo lugar se
intentó, por medio de un arduino, hacer un pulsioximetro con
el MAX30102 conectandolo como se muestra en la figura 6,
aunque lo ideal era conectarlo a la stm32, no se encontraron
librerias para realizar el codigo de forma correcta.

Figura 8. Plano.

V. C ÓDIGO
A. Sentadillas STM - Keil
Para este laboratorio es necesario programar un codigo que
permita compilar los datos que brindan el MPU6050 y que
estos datos se puedan leer en la OLED, como cantidad de
sentadillas, para ello, se ideo el siguiente código:

Figura 6. Esquematico pulsioximetro.

Además de esto, se realizó el diseño de la vaquela que


contiene los componente electronicos sin necesidad de usar
la protoboard y hacer un mejor uso del mismo, este proceso
se realizo en la aplicación Kicad y se asumió que hubo un
resultado exitoso de la conexion entre el sensor MX30102 y
la stm32, el resultado se muestra en la figura 7 y 8.

Figura 9. Librerias ultilizadas

Figura 7. Vista 3D.


Figura 10. Librerias ultilizadas para el MPU6050

Figura 12. Primer While

Figura 11. Variables

B.

Figura 13. Primer While

Figura 14. Interrupción externa


C. Oximetro y Oled Arduino
En Arduino es igual que en Keil, se deben llamar las librias
necesarias para controlar el MAX30102 y la OLED.

Figura 18. Codigo

Figura 15. Librerias necesarias para el MAX30102 y la OLED

Figura 16. Codigo

Figura 19. Codigo

Figura 17. Codigo

Figura 20. Codigo


Figura 21. Codigo

VI. A N ÁLISIS DE R ESULTADOS


Se logró hacer un uso correcto del sensor MPU6050, la
pantalla oled mostro la cantidad de sentadillas realizadas
experimentalmente a pesar de que el proceso de lectura de
datos fuera un poco lento y fisicamente fuera bastante dificil
realizar las sentadillas al ritmo de la lectura.
Por otro lado, el trabajo realizado con el pulsioximetro no
fue igual de exitoso, debido a que no se encontraron librerias
para programar el código en keil, y como segunda opción se
utilizó un arduino, qu e apesar de leer los datos y mostrarlos
en el computador, no se mostraron los datos en el oled por
errores de compatibilidad.
VII. C ONCLUSIONES
• Se ejecutó correctamente el programa que permite ver
cuantas sentadillas esta haciendo una persona
• No se ejecutó de ninguna forma el pulsioximetro a pesar
a utilizar diferentes metodos.
• La lectura de datos del sensor MPU es mucho mas
efectiva y acertada que la del sensor MAX.
• Se cumplieron la mitad de los objetivos que se tenian
para este laboratorio.
VIII. B IBLIOGRAF ÍA
[1]https://www.st.com/en/development-
tools/stm32cubemx.html
[2] https://www2.keil.com/mdk5/uvision/
[3] https://hetpro-store.com/TUTORIALES/matriz-leds-
atmega

También podría gustarte