Programación Python
Programación Python
Unidad V
Alumnos:
Chayan Omar Cruz Vidaure
Eduardo Yair Martinez Montoya
Jose Manuel Briceño Resendiz
Brandon Alexis Gonzalez Ramirez
Jose Manuel Estrada Mendoza
Grupo: 9 IMC-G3
2. Definición de Funciones
def palm_centroid(coordinates_list):
coordinates = np.array(coordinates_list)
centroid = np.mean(coordinates, axis=0)
centroid = int(centroid[0]), int(centroid[1])
return centroid
Esta función calcula el centroide de la palma. Toma una lista de coordenadas (puntos de la
palma) y devuelve su promedio, que representa el centro.
Aquí se inicia la comunicación en serie por el puerto COM4 a una velocidad de 9600
baudios. Se espera 2 segundos para permitir que la conexión se establezca.
Define los índices de los puntos de interés en la mano, como el pulgar, los dedos y la palma.
Se abre un contexto para usar el modelo de manos y se inicia un bucle infinito para
procesar cada cuadro del video.
Si se detectan manos, se extraen las coordenadas de los puntos de interés (pulgar, palma, y
extremos de los dedos) en listas.
Se determina qué dedos están levantados comparando las distancias desde el centro de la
palma a las puntas y bases de los dedos. Luego se cuenta cuántos dedos están levantados.
mp_drawing.draw_landmarks(...)
Libera el objeto de captura de video, cierra todas las ventanas de OpenCV y finaliza la
conexión serie.
Descripción de sensores y actuadores
Un servomotor es un tipo de motor eléctrico diseñado para ofrecer un control preciso de la
posición, la velocidad y el torque. Se utiliza comúnmente en aplicaciones que requieren
movimientos controlados y precisos, como en robótica, sistemas de automatización,
aeronáutica y en el control de sistemas mecánicos.
Diagrama de conexión
Pruebas de funcionamiento
reflexión
A medida que hemos trabajado en el desarrollo de este sistema de reconocimiento de
gestos de mano, hemos adquirido valiosos conocimientos y habilidades que sin duda serán
útiles en futuros proyectos.
En primer lugar, hemos profundizado nuestro entendimiento de la visión por computadora y
el procesamiento de imágenes en tiempo real. Trabajar con las bibliotecas MediaPipe y
OpenCV nos permitió familiarizarnos con técnicas avanzadas de detección y seguimiento de
objetos, lo cual es fundamental para lograr un reconocimiento preciso de los movimientos
de la mano.
Además, aprendimos a integrar diferentes tecnologías de manera efectiva, combinando el
análisis de imágenes con la comunicación serial. Esto nos ha brindado una perspectiva más
amplia sobre cómo diseñar sistemas que puedan interactuar con dispositivos externos,
abriendo nuevas posibilidades para el control de interfaces y la automatización.
Quizás lo más destacado ha sido comprender la importancia de la interacción natural entre
humanos y máquinas. Al explorar el reconocimiento de gestos de mano, hemos adquirido
una apreciación más profunda de cómo las interfaces basadas en movimientos corporales
pueden mejorar la experiencia de usuario y facilitar tareas complejas.
En términos de la importancia de este mini proyecto, consideramos que ha sido una
oportunidad valiosa para poner en práctica nuestras habilidades de programación,
resolución de problemas y pensamiento creativo. Al enfrentarnos a desafíos técnicos y de
diseño, desarrollamos una mayor capacidad para abordar proyectos complejos de manera
sistemática y efectiva.