La evolución de la familia Arduino Nano

La familia de placas Nano de la marca Arduino se ha visto ampliada en los últimos años con nuevos modelos que integran características por demás interesantes. Desde procesadores de 8 bits hasta potentes núcleos ARM de 32 bits y una variedad de sensores que incluyen acelerómetros, giróscopos o micrófonos entre otros, conectividad Bluetooth y Wifi y la posibilidad de adentrarnos en el mundo del Machine Learning son las opciones que nos ofrecen los nuevos Arduino Nano. En este artículo haré un resumen de las principales características de estas placas, haciendo hincapié en las mas nuevas.

Introducción

Dentro del ecosistema Arduino, la historia de la familia Nano se remonta a los primeros tiempos de estas placas nacidas en la península itálica. El Arduino Nano clásico fue una de los primeros modelos disponibles y es muy similar al UNO, sólo que en otro formato.

Fig. 1. Arduino Nano clásico (Fuente: arduino.cc)

Contiene el mismo chip ATMega328 que el Arduino UNO, con una velocidad de 16 MHz, 32 KB de memoria para el programa, una RAM de 2 KB para los datos y 1 KB de EEPROM. Para conectarse al mundo real cuenta con 22 pines de  entradas/salidas digitales (6 de los cuales pueden simular salidas  analógicas) y 8 entradas analógicas.

En lugar del conector USB de otras placas de mayor tamaño, cuenta con  uno tipo Mini USB y tampoco incluye el jack de alimentación.

Esta placa ya ha sido superada tecnológicamente tanto por modelos mas modernos de Arduino como de otros fabricantes, así que no me extenderé en mas detalles, dando lugar a los nuevos integrantes de la familia Nano.

Nuevos integrantes

En el año 2019 se presentaron 4 nuevos integrantes de la familia Nano, que tienen el mismo formato de 45 x 18 mm apto para protoboards, pero distintos procesadores, cantidad de memoria y periféricos:

Nano Every: Es una placa de usos múltiples como el Nano clásico, pero con tecnología mas moderna, equipado con el procesador ATMega4809 de 8 bits a una velocidad de 20 MHz, 48KB de memoria Flash y 6KB de RAM.

Nano 33 IoT: Incluye un procesador SAMD21 a 48 MHz (un ARM Cortex-M0 de 32-bits), 256 KB de memoria RAM y 1 MB de Flash. Pensado para ser utilizado en aplicaciones de Internet de las cosas (IoT) incluye además un módulo de conectividad WiFi  y Bluetooth.

Nano 33 BLE: Equipado con un potente SoC (system on Chip) nRF52840 de Nordic que incluye una CPU ARM Cortex-M4F, 1 MB de Flash, 256 KB de RAM y Bluetooth 5.

Nano 33 BLE Sense: Es equivalente al anterior con el agregado de múltiples sensores para medir y detectar colores, proximidad, movimiento, temperatura, humedad y sonidos entre otros. Permite el desarrollo de aplicaciones de Machine Learning gracias a soporte de Tensor-Flow Lite.

A posteriori, en al año 2021 se completó la familia con un nuevo integrante:

Nano RP2040 Connect: Incluye el RP2040, el microcontrolador de Raspberry, distintos sensores y conectividad Wifi y BT gracias a la inclusión del módulo U-blox Nina W102.

Como se puede ver, cinco placas con características muy disimiles, distintas aplicaciones y herramientas de desarrollo y programación.

Veamos ahora sus características sobresalientes.

Nano Every

Es una actualización del Nano clásico, manteniendo la misma distribución de pines que su predecesor, lo que permite su reemplazo de manera directa. El procesador se actualizó al ATMega 4809 de 8 bits corriendo a una velocidad de 20 MHz.

Aunque en principio se presenta también como compatible a nivel de software, algunas diferencias en los registros internos pueden producir inconvenientes con algunas librerías.

A diferencia del Nano clásico ( y otras placas) no incluye un chip que haga de puente entre la UART y el puerto USB, como los conocidos CH340 y CP2102. En cambio, cuenta con un procesador independiente, un ATSAMD11D14A (ARM Cortex M0+) para esta función (de hecho es mas potente que el ATMega 4809) que contiene el programa cargador (bootloader) para grabar programas en el 4809, que no soporta la conexión USB de manera nativa.

Fig. 2. Nano Every

Siguiendo la comparación con el Nano Clásico, la memoria Flash ha sido aumentada en un 50% (48 KB) la RAM en un 200% (6 KB) aunque la cantidad de EEPROM se ha reducido a sólo 256 bytes.

En la siguiente imagen podemos apreciar la distribución de pines y la función de cada uno de ellos.

Fig. 3. Pinout Nano Every (fuente: arduino.cc)

En lo que respecta al programación, podemos emplear el Arduino IDE, tanto en su versión Desktop como Web.

El Nano Every tiene un conjunto de características mas bien modestas para los tiempos que corren, y un precio superior a otras placas mucho mas potentes. Evidentemente el mayor argumento a su favor es que nos permite actualizar algunos antiguos proyectos basados en el Nano clásico gracias a su compatibilidad.

Nano 33 IoT

Esta placa ha sido diseñada para aplicaciones que requieran de conectividad para enviar o recibir información empleando Internet, una red inalámbrica o un teléfono celular, por ejemplo.

Estas aplicaciones de IoT (Internet de las cosas) son posibles porque el Nano 33 IoT integra un SoC (system on chip) Nina W102 que es básicamente otra versión de un ESP32 que le provee de Wifi en 2.4 GHz y Bluetooth 4 más un ATECC608A, o “crypto chip”, un coprocesador criptográfico que puede almacenar de manera segura claves o certificados para realizar comunicaciones seguras a través de la red.

Fig. 4. Nano 33 IoT

En lo que respecta a procesamiento, cuenta con un micro SAMD21G18A de Microchip, que es un chip ARM Cortex de tipo M0+ y 32 bits. (En este artículo resumo las características de los distintos modelos Cortex). El micro corre a 48 MHz e integra 256 KB de memoria Flash y 32 KB de SRAM (sin EEPROM).

Pines

Los pines funcionan con 3.3 Voltios (de allí el 33 en el nombre de la placa) y NO toleran tensiones de 5V.

La siguiente imagen muestra la distribución de pines y la función asignada a cada uno.

Fig. 5. Pines del Arduino Nano 33 IoT (fuente: arduino.cc)

En lo que refiere a tensiones de alimentación, la placa puede alimentarse desde el conector micro USB con una tensión entre 5 y 18V.

Adicionalmente, la placa cuenta con una IMU (Inertial Measurement Unit) de 6 ejes, un chip LSM6DSL que combina un acelerómetro de 3 ejes y un giróscopo también de 3 ejes. Esta IMU permite desarrollar aplicaciones como detección de movimientos y gestos, podómetros para contar pasos, navegación en interiores, detección de vibraciones, etc.

Para programar el Nano 33 IoT podemos emplear las distintas versiones del Arduino IDE y es compatible con la Arduino IoT Cloud, para crear aplicaciones basadas en la nube. También podemos programarlo en Circuit Python, pero con algunas limitaciones debido a la poca cantidad de RAM.

Nano 33 BLE

Esta versión de Nano es particularmente útil en aplicaciones portables o wearables debido a su consumo reducido, la inclusión de una IMU de 9 ejes y conectividad Bluetooth 5.

Fig. 6. Nano 33 BLE

Está construida alrededor del módulo Nina B306, un SoC nRF52840 de Nordic que incluye una potente CPU ARM Cortex-M4 con FPU (unidad de punto flotante) e instrucciones para procesamiento de señales (DSP).

Este potente SoC, además de integrar 1 MB de memoria Flash y 256 KB de RAM provee conectividad Wifi en 2.4 GHz, Bluetooth 5 (BLE) y NFC (Near Field Communications) y una amplia variedad de periféricos como GPIO, PWM, DMA, RTC, ADC, Comparador analógico, UART, USB, I2C, SPI, I2S (Inter-IC Sound), varios modos de bajo consumo, una interfaz SWD (Serial wire debug) para la programación y depuración y un acelerador criptográfico en hardware.

Pines

Los pines funcionan con 3.3 Voltios (de allí el 33 en el nombre de la placa) y NO toleran tensiones de 5V.

La siguiente imagen muestra la distribución de pines y la función de cada uno:

Fig. 7. Pines del Arduino Nano 33 BLE (fuente: arduino.cc)

El Nano 33 BLE puede ser programado en el Arduino IDE instalando además el core de Mbed OS, una plataforma de desarrollo para micros ARM. También se puede utilizar Circuit Python y la adaptación de Micropython de la empresa OpenMV.

Nano 33 BLE Sense

El BLE Sense es básicamente un Nano 33 BLE con el agregado de una serie de sensores que le permiten realizar distintas mediciones sobre el ambiente. Estos sensores son:

  • LSM9DS1 (IMU de 9 ejes)
  • LPS22HB (Sensor de temperatura y presión)
  • HTS221 (Sensor de humedad)
  • APDS-9960 (Sensor de proximidad, luz ambiente, color y gestos)
  • MP34DT05 (Micrófono digital)
Fig. 8. Nano 33 BLE Sense

También incluye un ATECC608A, un chip criptográfico para almacenar de manera segura claves o certificados.

Pines

Los pines funcionan con 3.3 Voltios (de allí el 33 en el nombre de la placa) y NO toleran tensiones de 5V.

En la siguiente imagen se puede ver el pinout de la placa y la función de cada uno de sus pines:

Fig. 9. Pines del Arduino Nano 33 BLE (fuente: arduino.cc)

El Nano 33 BLE Sense puede utilizar las mismas herramientas de programación del Nano 33 BLE. Además, soporta el uso de la librería Tensor Flow Lite que permite realizar aplicaciones de Machine Learning.

Nano RP2040 Connect

El integrante mas nuevo de la familia Nano (por ahora) es el RP2040 Connect, que incluye el microcontrolador RP2040 de Raspberry.

Fig. 10. Nano RP2040 Connect

El RP2040 es un procesador de 32 bits ARM Cortex M0 de dos núcleos corriendo a una velocidad de 133 MHz. Incluye 264 KB de RAM y se le ha conectado un chip de 16 MBytes de Flash. (Puedes ver algunas características del RP2040 en este otro artículo).

Para dotarlo de conectividad, se le ha agregado un módulo Nina W102, que provee de Wifi en 2.4 GHz y Bluetooth 4.

Como periféricos, la placa incluye un LSM6DSOXTR (IMU de 6 ejes), un MP34DT06JTR (micrófono), un ATECC608A (cripto) y un led RGB.

Pines

Los pines funcionan con 3.3 Voltios (aunque esto no se refleje en el nombre de la placa) y NO toleran tensiones de 5V.

En la siguiente imagen podemos ver la distribución y función de cada pin:

Fig. 11. Pines del Arduino Nano RP2040 Connect (fuente: arduino.cc)

El RP2040 Connect puede programarse con las distintas versiones del Arduino IDE, Circuit Python y Micropython.

Conclusiones

Dimos un rápido pantallazo a las distintas placas que conforman la familia Arduino Nano. Como dije al principio, casi que comparten sólo el tamaño y formato, por lo demás son bastante disímiles. Sin embargo, esas diferencias permiten cubrir un amplio rango de aplicaciones con procesadores muy sencillos hasta otros muy potentes, la posibilidad de conectarlos a la red o entre sí con Wifi y Bluetooth, una gran variedad de periféricos y un sinnúmero de aplicaciones.

En futuros artículos iré profundizando en cada una de estas placas y sus aplicaciones.

Como siempre, cualquier consulta o sugerencia pueden dejarla en la sección delos comentarios, mas abajo. Hasta la próxima!

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Habilitar notificaciones OK No, gracias