Titulo: Aprendizaje automático sobre Arduino
Esta propuesta de módulo de taller consiste en introducir al estudiante en como implementar
modelos de aprendizaje automático en microcontroladores con memoria y recursos de cálculo
limitados. En concreto se dispone del Arduino Nano 33 BLE board [1] que contiene:
- Microcontroller nRF52840 a 32-bit ARM® Cortex®-M4 CPU ,64 MHz
- CPU Flash Memory 1MB
- SRAM 256KB
- IMU LSM9DS1
- Microphone MP34DT05
- Gesture, light, proximity APDS9960
- Barometric pressure LPS22HB
- Temperature, humidity HTS221
La tecnología Tiny Machine Learning (TinyML) [2][3] son técnicas de aprendizaje automático que
integran diferentes algoritmos para implementar aplicaciones en dispositivos reducidos de bajo
consumo de energía como microcontroladores. Dicho de otro modo Tiny Machine Learning es el
conjunto de técnicas que permiten llevar la inteligencia artificial a pequeños dispositivos de bajo
costo y bajo consumo para procesar información y tomar decisiones en el mismo lugar donde se
generan los datos.
Siguiendo esta linea, en este trabajo se propone realizar un sistema de identificación de fruta
(manzana, banana o naranja) mediante un modelo de red neuronal embebida en el Arduino Nano
BLE33 board.
Se aprenderá a manejar el IDE de Arduino y las librerías ArduinoBLE library y TensorFlow Lite
Micro Library, así como las herramientas de Edge Impulse [4] y Neuton [5]. También Jupyter
Notebook y Colab.
Se recomienda fuertemente leer las referencias [7] [8] y [9] por mayor información de los
conceptos que se aprenderán durante el desarrollo del módulo de taller y las tareas a realizar.
Como producto final se deberá entregar el código fuente, y la caracterización de la Accuracy,
Inference Time y Total memory footprint.
Contacto: Leonardo Barboni (lbarboni@fing.edu.uy)
Cantidad de créditos: 4
Se podrá trabajar de manera individual o en grupo.
Referencias:
[1] https://store-usa.arduino.cc/products/arduino-nano-33-ble-sense
[2] https://www.tinyml.org/
[3] Norah N. Alajlan and Dina M. Ibrahim "TinyML: Enabling of Inference Deep Learning Models on Ultra-Low-Power IoT Edge Devices for AI Applications" Micromachines 2022, 13(6), 851;
https://doi.org/10.3390/mi13060851
[4] https://docs.arduino.cc/tutorials/nano-33-ble-sense/edge-impulse
[5] https://neuton.ai/?utm_source=TowardsDataScience&utm_medium=Post&utm_campaign=UltraTinyML
[6] https://docs.arduino.cc/tutorials/nano-33-ble-sense/rgb-sensor
[7] https://iopscience.iop.org/article/10.1088/1757-899X/1084/1/012095/pdf
[8] https://blog.tensorflow.org/2019/11/fruit-identification-using-arduino-and-tensorflow.html
[9]https://community.element14.com/challenges-projects/project14/nano-rama/b/blog/posts/tinyml-on-arduino-nano-33-ble-sense---fruit-identification