domingo, 15 de junio de 2025

Programar Arduino para utilizar la cámara Sentry 2

STEAMakersBlocks dispone de nueve bloques para la configuración y el uso de la cámara Sentry 2. Estos bloques aparecen solamente si se inicia un proyecto con alguna placa ESP32 o Keyestudio KidsIoT. Estos bloques nos permiten:  

· Iniciar el dispositivo

· Establecer el algoritmo de visión (escogiendo uno de los 8 tipos disponibles)

· Establecer el número máximo de resultados esperados

· Establecer el zoom de la cámara (entre 1 y 5)

· Obtener el número de resultados

· Obtener, para cada resultado, sus valores (coordenadas, tamaños e identificación)

· Identificar la imagen obtenida en función del color, del tipo de tarjeta o del objeto

Configuración 


El bloque anterior permite identificar la cámara entre los elementos conectados en el puerto I2C. Podemos conectar a nuestra placa microcontroladora hasta 4 cámaras Sentry 2 y asignar a cada una, una de las cuatro direcciones posibles. Esta configuración también se ha de hacer en la cámara.

El segundo bloque a utilizar permite escoger el algoritmo de visión que queremos utilizar, de entre los 8 disponibles:

Este bloque se coloca siempre en la configuración, aunque podemos utilizarlo en cualquier otro lugar del programa si queremos cambiar el algoritmo de visión.

El tercer bloque nos permite configurar el máximo número de resultados, es decir de identificaciones, para el algoritmo que vamos a utilizar. Generalmente estableceremos este valor a 1, pero puede interesarnos, en algunos casos, obtener más resultados.

También podemos establecer el valor del zoom mediante el último bloque de la imagen anterior. Aumentar el zoom hará que el objeto sea mayor, pero el campo de visión será más pequeño y verá menos. Reducir el zoom hará que el objeto sea menor, pero el campo de visión será mayor y permitirá ver más. También se puede cambiar el zoom con el joystick de la cámara:

· Acercar → pulsa largo hacia arriba 

· Alejar → pulsa largo hacia abajo

Admite 5 niveles de ajuste.

Bloques específicos

A continuación comenzaremos a utilizar los bloques específicos para el resto de la programación que habitualmente colocamos en el Bucle. El primero nos permite confirmar si se han obtenido resultados al aplicar el algoritmo seleccionado, concretando su número.

Lo utilizaremos dentro de un bloque condicional para comprobar si existe algún resultado al aplicar el algoritmo de visión.

El siguiente bloque permite obtener los valores de los resultados del algoritmo. 

Cada algoritmo de visión devuelve 5 valores para cada resultado, que son (excepto para los algoritmos de reconocimiento de color y aprendizaje profundo):

. coordenada x

· coordenada Y

· ancho

· alto

· identificación de la etiqueta

El algoritmo de reconocimiento de color devuelve estos 4 valores para cada resultado:

· rojo (entre 0 y 255)
· verde (entre 0 y 255)
· azul (entre 0 y 255)
· identificación de la etiqueta (negro (1), blanco (2), rojo (3), verde (4), azul (5), amarillo (6), desconocido (0))

El algoritmo de aprendizaje profundo devuelve estos 5 valores para cada resultado:

· Fijo, 160
· Fijo, 120
· Fijo, 224
· Fijo, 224
· identificación de la etiqueta de la imagen aprendida

por lo que nosotros sólo utilizaremos uno, el que aparece como ID de etiqueta en el bloque, que es el número con el que se ha identificado la imagen al registrarla en la cámara en el algoritmo de aprendizaje profundo.

Etiqueta de color

Nos proporciona la identificación de la etiqueta del resultado obtenido al aplicar el algoritmo de reconocimiento de color o el algoritmo de reconocimiento de bloques de color:

Etiqueta de tarjeta


Nos proporciona la identificación de la etiqueta del resultado obtenido al aplicar el algoritmo de reconocimiento de tarjetas (tráfico, formas o números). De momento el fabricante sólo dispone de las tarjetas de tráfico.


Etiqueta del objeto

Nos proporciona la identificación de la etiqueta del resultado obtenido al aplicar el algoritmo de reconocimiento de objetos predeterminados:


A continuación se pueden ver las etiquetas de los diferentes objetos.

1 Avión
2 Bicicleta
3 Pájaro
4 Barco
5 Botella
6 Autobús
7 Coche
8 Gato
9 Silla
10 Vaca
11 Mesa de comedor
12 Perro
13 Caballo
14 Motocicleta
15 Persona
16 Planta en maceta
17 Oveja
18 Sofá
19 Tren
20 Monitor de televisión

Los algoritmos Colores, Bloques de color y Líneas se pueden abrir simultáneamente con el resto de algoritmos, mientras que el resto NO se pueden abrir a la vez entre sí, pero SÍ que se pueden abrir a la vez con los 3 citados. Por ejemplo, podríamos abrir simultáneamente Colores, Líneas y Caras, pero NO Colores, Tarjetas y Caras.

Color

A continuación se pueden ver algunos ejemplos de programas con el algoritmo de Color.

Contador

Cuando Sentry 2 detecta algo de color rojo, el número de detecciones se irá acumulando y se mostrará en la consola. Cuando enviemos por consola la letra A, el valor del contador se pondrá a cero.


Sistema de clasificación de caramelos por colores en una línea de producción

La Sentry 2 podría estar montada sobre la cinta transportadora y configurada para detectar distintas regiones de interés. El programa analizaría la salida del algoritmo de reconocimiento de color para cada región y, en base al color detectado, activaría un mecanismo (como un desviador neumático) para dirigir cada caramelo a su contenedor correspondiente. Por ejemplo, si se detecta el color rojo, el caramelo se dirige al contenedor de caramelos rojos.



















No hay comentarios:

Publicar un comentario