Detección De Anomalías En Un Ventilador Mediante Machine Learning

by juliooorh in Circuits > Arduino

225 Views, 0 Favorites, 0 Comments

Detección De Anomalías En Un Ventilador Mediante Machine Learning

fotish.jpg

En este tutorial, aprenderemos cómo utilizar Edge Impulse para crear un modelo de Machine Learning capaz de detectar anomalías en un ventilador. Utilizaremos un ventilador de 12 Voltios, un Arduino Nano, Arduino IDE y el software de Edge Impulse para calcular, entrenar e implementar nuestro modelo.

Supplies

  1. Ventilador de 12 Voltios
  2. Arduino Nano
  3. Cableado y componentes necesarios para conectar el ventilador al Arduino Nano
  4. Computadora con conexión a Internet

Instalación De Arduino IDE

ARDUINO IDE INSTALACION CIRCULADO.png

Para instalar el Arduino IDE nos dirigimos a la página de Arduino, dentro de ella buscamos la parte de "Software" y hacemos clic en el enlace "Arduino IDE" o "Software" para acceder a la página de descargas del IDE.

En la página de descargas, encontramos diferentes opciones según el sistema operativo que estemos utilizando (Windows, macOS, Linux). Hacemos clic en el enlace de descarga correspondiente a nuestro sistema operativo. Esto iniciará la descarga del archivo de instalación del Arduino IDE.

Una vez que se complete la descarga, abrimos el archivo de instalación y Seguimos las instrucciones del asistente de instalación para completar el proceso de instalación del Arduino IDE. Es importante asegurarnos de leer y aceptar los términos de licencia cuando se nos solicite.

Habiendo completado el proceso, podemos ejecutar el Arduino IDE desde el menú de inicio (en Windows) o desde la carpeta de aplicaciones (en macOS).

Instalación De Arduino Nano

ARDUINO NANO INSTALACION CIRCULADO.png

Primero, abrimos el Arduino IDE en nuestras computadoras. Luego, nos dirigimos a la barra de menú superior y seleccionamos "Herramientas". Desplegamos el menú y dentro de él buscamos la opción "Placas". Al hacerlo, aparece un submenú desplegable en el cual seleccionamos "Gestor de tarjetas". Una vez realizado esto, se abre una ventana llamada "Gestor de tarjetas" donde encontramos una lista de todas las tarjetas de desarrollo compatibles. Utilizando el campo de búsqueda ubicado en la parte superior de la ventana, podemos ingresar el nombre de la tarjeta que deseamos instalar o buscar, en este caso "Arduino nano". Luego, revisamos la lista y seleccionamos "Arduino Mbed OS Nano Boards". Para instalarla, simplemente hacemos clic en el botón "Instalar" o "Actualizar" junto a su nombre. El Arduino IDE comenzará a descargar e instalar los controladores y archivos necesarios para esa tarjeta en particular. Una vez que se completa la instalación, podemos seleccionar la tarjeta desde el menú "Herramientas" > "Placas" y utilizarla en nuestros proyectos. Es importante tener en cuenta que los pasos pueden variar ligeramente dependiendo de la versión específica del Arduino IDE que estemos utilizando, pero estos son los pasos generales que se aplican en la mayoría de los casos.

Instalación De Librerías En Arduino

ARDUINO primera libr INSTALACION circulada.png
ARDUINO segunda libr INSTALACION circulada.png
GITHUB circulado.png
ZIP circulado.png
librerias circulado.png

Dentro del Arduino IDE nos dirigimos a la barra de menú superior y seleccionamos "Herramientas". Desplegamos el menú y dentro de él buscamos la opción "Gesto de bibliotecas". Al seleccionarla, se abrirá una ventana que nos permite buscar y administrar las bibliotecas disponibles para su uso en nuestros proyectos de Arduino. En el campo de búsqueda, podemos ingresar el nombre de una biblioteca específica que deseamos encontrar, en nuestro caso los siguientes:

  1. LSM9DS1
  2. Harvard Tiny

Una vez que encontramos la biblioteca que deseamos, hacemos clic en el botón "Instalar" para agregarla a nuestro Arduino IDE. El IDE comenzará a descargar e instalar la biblioteca seleccionada en nuestro sistema. Una vez que la instalación esté completa, la biblioteca estará lista para ser utilizada en nuestros programas.

Para la última librería nos dirigimos a GitHub, dentro de la página nos dirigimos al apartado de "Code" (botón verde) y hacemos clic en "Download ZIP". Al terminar la descarga, dentro de Arduino IDE nos dirigimos a la barra de menú superior y seleccionamos "Boceto". Desplegamos el menú y dentro de él buscamos la opción "Incluir biblioteca", volvemos a desplegar el menú y seleccionamos "Añadir Librería .ZIP", dentro del buscador de archivos seleccionamos la librería descargada desde GitHub.

Para verficar que nuestras instalaciones estén bien hechas, dentro del Arduino IDE nos dirigimos a la barra de menú superior y seleccionamos "Archivo", dentro del menú desplegado seleccionamos "Ejemplos" y deberían salir los nombres de las tres librerías instaladas anteriormente.

Soporte Del Arduino Nano

INVENTOR.jpg
TODO.jpg

Para asegurar que el Arduino Nano esté firmemente unido al ventilador, es necesario contar con una base sólida y sin ningún juego. En nuestro caso, decidimos diseñar y fabricar nuestra propia base utilizando el software Autodesk Inventor y una impresora 3D. Creamos un diseño personalizado que se ajustara a nuestras necesidades y dimensiones específicas. Utilizamos materiales reciclados, en particular, las patas fueron palos de bombón y una base de MDF que teníamos sobrante de proyectos anteriores. Al fabricar nuestra propia base, logramos un montaje seguro y estable para el Arduino Nano, asegurando que no haya movimientos no deseados durante el funcionamiento del ventilador. Es importante tener en cuenta que cada proyecto puede requerir soluciones diferentes, por lo que es fundamental adaptar el diseño y los materiales a las necesidades y recursos disponibles.

Instalación De Visual Studio

VIsual.png
visual 2 .png

Antes de instalar Edge Impulse, es necesario asegurarse de tener instalado Visual Studio. En caso de no tenerlo, se puede descargar desde el su página dando clic a la opción de "Descargar". Una vez que se haya completado la descarga, se debe ejecutar el archivo descargado. En la pantalla de descargas, se selecciona la opción correspondiente para descargar e instalar Visual Studio. Es importante seguir las instrucciones del asistente de instalación para completar el proceso correctamente. Al tener Visual Studio instalado, estaremos listos para proceder con la instalación de Edge Impulse y continuar con nuestro proyecto.

Instalación De Edge Impulse

edge 1.png
edge 2.png
edge 3.png

Una vez que se cuenta con Visual Studio instalado, se puede proceder a seguir las instrucciones para instalar Edge Impulse. Para ello, es necesario dirigirse al instructivo. En esta página se encuentran las instrucciones para diferentes sistemas operativos. Es importante seguir las instrucciones designadas para tu sistema operativo.

El primer paso consiste en crear una cuenta en Edge Impulse. Para ello, se debe seguir el enlace proporcionado en las instrucciones y completar el proceso de registro. Una vez que hemos creado nuestra cuenta en Edge Impulse, procedemos a dar vida a nuestro proyecto. Para ello, seguimos los pasos necesarios para crear un nuevo proyecto. En primer lugar, iniciamos sesión en nuestra cuenta y accedemos al panel principal. Luego, buscamos y hacemos clic en el botón "Create New Project". Se nos solicitará asignar un nombre a nuestro proyecto, por lo que elegimos un nombre que sea descriptivo y represente su propósito. Una vez que hemos ingresado el nombre deseado, hacemos clic nuevamente en el botón "Create Project" para finalizar la creación.

Instalación De Python

python 1.png
python 2.png
python 3.png

Una vez que hemos creado nuestro proyecto en Edge Impulse, continuamos con la instalación de la última versión de Python. Para hacer esto, seguimos las instrucciones proporcionadas en la página de instalación. En el paso 2, hacemos clic en la opción que nos redirige a la página de descargas de Python. En esta página, encontramos el cuadro de descarga y seleccionamos la opción que muestra la última versión disponible. Después de hacer clic en esta opción, se iniciará la descarga del archivo de instalación de Python. Una vez que la descarga se haya completado, procedemos a ejecutar el archivo de instalación. Durante el proceso de instalación, se nos presentarán varias opciones y configuraciones. En este caso, seleccionamos la opción de "Install Now" para comenzar la instalación de Python con la configuración predeterminada.

Instalación De Node.js

node 1.png
node 2.png
node 3.png
node 4.png

Una vez que tenemos Python instalado, regresamos a la página de Edge Impulse y procedemos con el siguiente paso, que es descargar Node.js. Al seleccionar esta opción, se nos redirige a la página de descargas de Node.js. Una vez finalizada la descarga, ejecutamos el archivo descargado, lo cual abrirá una pantalla de instalación.

Una vez completados todos estos pasos, en el buscador de nuestra computadora, buscamos la aplicación llamada "Node.js Command Prompt". Esta aplicación debe ejecutarse como administrador. En esta ventana, debemos ejecutar el comando que aparece en el paso 4 de las instrucciones en la página de Edge Impulse. Para ello, copiamos el comando y lo pegamos en la ventana del "Node.js Command Prompt". Luego, presionamos la tecla "Enter" para ejecutar el comando.

Al terminar este proceso debe salir en pantalla algo parecido a lo mostrado en la última foto.

Instalación De Arduino CLI

cli 1.png
cli 2.png
cli 3.png
cli 4.png
cli 5.png

Una vez completados los pasos anteriores, podemos continuar con la instalación de Arduino CLI. Para ello, seguiremos un tutorial.

Después de completar la instalación de Arduino CLI, nos dirigimos a EdgeImpulse, en esta página, avanzamos hasta el paso 2, donde se nos indica que debemos presionar la parte mencionada y esperar a que la descarga se complete.

La descarga resultará en un archivo .zip que debemos extraer en una nueva carpeta, ya que necesitaremos utilizar los archivos contenidos en ella. Una vez que tenemos esta carpeta, hacemos clic derecho sobre ella y seleccionamos la opción "Abrir en terminal".

En la terminal, ejecutamos el siguiente comando teniendo el Nano BLE 33 conectado a nuestra computadora: “.\flash_windows.bat”.

Aparecerá una pantalla en la que debemos esperar a que el proceso llegue al 100%. Una vez que haya finalizado, abrimos el administrador de dispositivos y buscamos en qué puerto está conectado el Arduino Nano.

Regreso a Node.js

u 1.png
u 2.png
u 3.png
u 4.png

Una vez que conocemos en qué puerto está conectado el Arduino Nano, volvemos a la aplicación "Node.js Command Prompt". Aquí debemos copiar el siguiente comando: “edge-impulse-daemon”.

Después de ejecutar este comando, se nos solicitará el nombre de usuario y contraseña que utilizamos para acceder a Edge Impulse. También se nos pedirá seleccionar el puerto al que está conectado el Arduino, utilizando las flechas para desplazarnos y presionando "Enter" en el puerto correspondiente.

A continuación, se nos presentará la opción de seleccionar el proyecto al que queremos asociar el Arduino. Buscamos el proyecto deseado y presionamos "Enter". Si el proyecto aún no tiene un nombre, se nos solicitará proporcionar uno. En este caso, se utilizó el nombre "métodos".

Una vez que se complete la ejecución, podemos verificar que la tarjeta esté conectada correctamente al proyecto. Para hacer esto, regresamos al sitio web de Edge Impulse, ingresamos al proyecto que creamos anteriormente y seleccionamos la opción de "Dispositivos". Aquí debería aparecer la tarjeta correctamente.

Con todos estos pasos realizados, estamos listos para continuar con la toma de datos en el siguiente paso de nuestro proyecto.

Toma De Datos:

toma 1.png

Una vez completados todos los pasos anteriores seleccionamos el apartado de ‘Data acquisition’. Para este proyecto seleccionaremos un ‘Sample length’ de 5000 ms y utilizaremos el sensor inercial para la toma de datos. Ahora le damos a ‘Start sampling’ e iniciaremos la toma de datos. Para este proyecto se estarán tomando 100 datos con el ventilador apagado, 100 datos con el ventilador encendido y 100 datos con el ventilador encendido con alguna anomalía (tal como una gota de silicón en una de las hélices), utilizando un ‘Label’ diferente para cada uno de estos.

Separación De Datos

separación.png

Para el entrenamiento apropiado de nuestro modelo necesitamos un 70% de los datos tomados para el entrenamiento y el otro 30% para la prueba. Para ello seleccionaremos manualmente en los tres puntos al lado del dato capturado y seleccionaremos la opción de ‘Move to test set’ hasta tener 30 datos en el set de testeo. 

Creación Del Modelo

modelo 1.png
modelo 2.png
modelo 3.png
modelo 4.png
modelo 5.png
modelo 6.png

En el apartado de ‘Create impulse’ crearemos el modelo que se muestra en la primera imagen.

Continuando, la sección de ‘Spectral features’seleccionaremos las siguientes opciones y guardamos los parámetros.

En la misma sección, seleccionamos ‘Generate features’ y procedemos a generar las características de nuestro modelo. Si se realizó una toma de datos exitosa se deberá de ver un grupo de datos visiblemente distinto, como se observa en la imagen a continuación. 

En el apartado de ‘Classifier’ ajustaremos el ‘Number of training cycles’ a 30 y el ‘Learning rate’ a 0.0005, y posteriormente seleccionamos ‘Start training’. Al finalizar este paso deberíamos de ver algo similar en el ‘Data explorer’.

Finalmente, en ‘Anomaly detection’seleccionaremos todos los ejes sugeridos e iniciaremos el entrenamiento. Al finalizar se debería de ver un diagrama similar al que se encuentra en la sección de ‘Anomaly explorer’. 

Exportación Como Librería De Arduino

arduin lib 1.png
arduino lib 2.png

Para la exportación de nuestro modelo como librería de Arduino nos iremos al apartado de ‘Deployment’, donde buscaremos la opción de librería de Arduino y luego seleccionaremos la opción de ‘Quantized’ y procederemos a crear la librería. Al finalizar, se nos debería de descargar una carpeta .zip conteniendo nuestro modelo. 

Adición De Librería a Arduino IDE

ultimo 1.png
nano bie.png

Una vez tengamos nuestra librería en la forma de un archivo .zip podremos agregarla nuestro IDE de Arduino. En el apartado de ‘Sketch’ seleccionamos la opción de Agregar librería, Agregar librería ZIP, donde buscaremos el documento .zip que acabamos de crear. 

Para probar nuestro modelo podemos ir a la sección de ‘Archivo’, ‘Ejemplos’, buscamos el nombre de nuestro modelo y buscaremos el ejemplo de "nano_bie33_sense_accelerometer_continous"

Vídeo De Demostración

Detección de Anomalías en un Ventilador Mediante Machine Learning

Se muestra un vídeo de demostración para el funcionamiento del proyecto.

Link Al Proyecto En Edge Impulse

Al hacer clic en siguiente enlace se puede visitar el proyecto dentro de Edge Impulse:

Grupo 7 - anomaly_detection - Dashboard - Edge Impulse

¡Gracias por tu interés!