Machine Learning con Arduino Uno R4 Minima

Roni Bandini
4 min readJun 26, 2023
Arduino UNO R4 Minima

Tuve ocasión de recibir una placa Arduino Uno R4 mínima antes del lanzamiento y tras una prueba de compatiblidad y ejecución de un script de ordenamiento por burbuja decidí llevar a cabo un proyecto un poco más interesante.

¿De qué se trata? Inteligencia Artificial en el Arduino UNO. ¿En qué forma? Predicción de resultados de partidos de futbol (Soccer) usando Machine Learning vía la plataforma Edge Impulse.

Para tal fin bajé una base de datos con los partidos históricos de la FIFA, generé IDs para los países, determiné los datos mínimos relevantes (equipo local, equipo visitante, ranking fifa local, ranking fifa visitante, ubicación neutral) y entrené el modelo de Machine Learning con un algoritmo de clasificación.

Luego programé el Arduino UNO R4 Minima para tomar los datos del partido a consultar y enviarlos al modelo para su inferencia. Debajo están los pasos completos. Obviamente que el mismo sistema puede ser utilizado para otros deportes.

Arduino UNO R4 minima con Shield LCD y Keypad

Paso 1

Conectar el DFRobot LCD Keypad Shield al Arduino Uno. Los pines no encastran hasta el final. Quedan unos 3mm afuera, pero aún así hacen contacto.

Paso 2

Placas adicionales en Arduino IDE

Indicar en el Arduino IDE una nueva dirección para encontrar placas. Inicialmente Arduino refirió el siguiente link para el UNO R4 http://downloads.arduino.cc/packages/package_renesas_index.json, pero reporté que el link estaba caído y me enviaron el link correcto.

Para configurarlo en el IDE ir a File, Preferences, Additional Boards y cargar https://downloads.arduino.cc/packages/package_UNOr4_earlyaccess_index.json

Agregado de la placa Arduino UNO R4 con procesador Renesas

Luego ir a Boards Manager y tipear R4 y bajar Renesas Boards. De paso bajar la librería para el Shield desde este link y agregarla via Sketch, Include Library, Add Zip.

El último paso es conectar la placa con un cable USB C a la computadora y seleccionar el Port correcto.

Selección de placa en el Arduino IDE

Paso 3

Bajar de https://github.com/ronibandini/soccerForecast soccer2.ino y el modelo entrenado https://github.com/ronibandini/soccerForecast/blob/main/ei-soccer-forecast-with-arduino-uno-r4-arduino-1.0.2.zip

Incorporar al Arduino IDE el Zip del modelo entrenado al igual que hicimos con la librería del Shield.

Ya está todo listo para subir el sketch al Arduino. En este punto deberíamos ver que se inicia el sistema de predicción.

Dorso del Arduino Uno R4 Minima

Utilización del sistema de predicción

Primero seleccionamos el equipo local, luego el visitante, luego se puede indicar si la ubicación es neutra, en cuyo caso tanto ya no importa la localía. Estos datos se envian al modelo de TinyML y se obtiene un porcentaje que indica la probabilidad de que gane el primer equipo ingresado. La inferencia directamente vuela, lo cual demuestra toda la potencia del nuevo Arduino UNO R4 Minima, incluso para Inteligencia Artificial.

El código tiene cargados unos pocos países, pero se pueden agregar más ya que el modelo fue entrenado con todos los países. Solo hace falta sacar el ID del país desde countries.csv que está en Github y cargar el Fifa Rank actual del país, que se puede obtener en https://www.fifa.com/fifa-world-ranking/men?dateId=id13974

int idCountries[] = {9, 42, 28, 215, 44, 77, 102, 136, 191, 214, 70};

String countries[] = {“Argentine”,”Chile”,”Brazil”, “USA”,”Colombia”,”Germany”,”Italy”,”Mexico”,”Spain”,”England”,”France”};

int fifaRank[] = {1, 31, 3, 13, 17, 14, 8, 15, 10, 5, 2};

Modelo de Machine Learning

Edge Impulse predicción de futbol con Machine Learning

El modelo de predicción de partidos de Fifa está en este link y puede ser clonado para experimentar.

Los ejes de ingreso son team local, team remoto, ranking Fifa del team local, ranking Fifa del team remoto y ubicación neutral, en cuyo caso no corre cual es local y cual remoto.

Algoritmo de clasificación en Edge Impulse

En la etapa de la clasificación, lo máximo que pude lograr con los datos que elegí fue un 69% de accuracy. Seguramente se puede mejorar agregando features relevantes.

Precios y fechas del Arduino UNO R4 Minima

Arduino Uno R4 minima

¿Cuánto sale el nuevo Arduino UNO R4 minima y desde cuándo se puede comprar?

El Arduino UNO R4 Minima sale u$18 y el Arduino UNO R4 WiFi sale u$25 Ambos se pueden comprar desde la página de Arduino

Video demostración

--

--

Roni Bandini

Contracultura maker 🛠️ Talleres, charlas, montaje de laboratorios y exposición de máquinas complejas como arte electrónico.