Arduino ha sido la plataforma de desarrollo para prototipos rápidos y validación de ideas. Muchos de nosotros hubiéramos comenzado con la placa de desarrollo Arduino UNO , pero hoy a medida que avanzamos hacia el  Internet de las cosas , la visión por computadora , la inteligencia artificial , el aprendizaje automático y otras tecnologías futuristas, la humilde Arduino UNO ya no podía hacer frente a sus 8 Microcontrolador de bits. Esto requirió el lanzamiento de nuevas placas con procesadores más potentes que tienen Wi-Fi incorporado, Bluetooth, GSM y otras capacidades inalámbricas, como el popular MKR1000 o MKR GSM 1400 . En este contexto, Arduino ha lanzado recientemente una nueva versión de su Nano llamada Arduino Nano 33.

Hay totalmente dos tipos de placas Arduino Nano 33, a saber, Arduino Nano 33 IoT y Arduino Nano 33 BLE sense. La principal diferencia entre ambos módulos es que el módulo de detección Arduino Nano 33 BLE tiene algunos sensores integrados (entrará en detalles más adelante) mientras que el Arduino Nano 33 IoT no los tiene. En este artículo revisaremos la placa de detección Arduino Nano 33 BLE, le presentaremos sus características y funcionalidades y finalmente escribiremos un código de muestra para leer los valores del sensor y mostrarlos en el monitor en serie. ¡Así que vamos a aprender …!

Arduino Nano 33 BLE Sense

El nombre «Arduino Nano 33 BLE Sense» es bocado, pero el nombre en sí mismo brinda información importante. Se llama «Nano» porque las dimensiones, el pinout y el factor de forma son muy similares al clásico Arduino Nano , en realidad está planeado para usarse como reemplazo de Arduino Nano en sus proyectos existentes, pero el problema es que este nuevo módulo funciona en 3.3V mientras que el clásico Nano funciona con 5V. Así que creo que aquí es donde aparece el nombre «33», para indicar que la placa funciona con 3.3V. Entonces el nombre » BLE » indica que el módulo es compatible con Bluetooth Low Energy (BLE5 5.0)y el nombre «sentido» indica que tiene sensores integrados como acelerómetro, giroscopio, magnetómetro, sensor de temperatura y humedad, sensor de presión, sensor de proximidad, sensor de color, sensor de gestos e incluso un micrófono incorporado. Entraremos en los detalles de BLE y otros sensores más adelante, pero por ahora así es como una placa de detección Arduino Nano 33 BLE se ve directamente sin desempaquetar.

Descripción general del hardware Arduino Nano 33 BLE Sense

A primera vista de la placa, puedes encontrar muchos componentes apiñados en la parte superior, la mayoría de los cuales son sensores que dije antes. Pero el cerebro principal está oculto detrás de la carcasa de metal en el lado derecho. Esta carcasa contiene el procesador nórdico nRF52840 que contiene un potente Cortex M4F y el módulo NINA B306 para comunicación BLE y Bluetooth 5. Esto permite que la placa funcione con muy poca energía y se comunique usando Bluetooth 5, lo que la hace ideal para aplicaciones de red de malla de baja potencia en domótica y otros proyectos conectados. Además, dado que el procesador nRF es compatible con el sistema operativo ARM MbedTambién proporciona algunas mejoras de software que discutiremos más adelante. Los sensores, LED, botones y otras cosas importantes que debe saber en su placa están marcados en la imagen a continuación.

Como puede ver en la imagen de arriba, la placa está repleta de sensores que pueden ayudarlo a construir la derecha de la caja sin tener que conectar la placa a ningún sensor externo. La placa está diseñada para usarse en dispositivos portátiles y otros dispositivos portátiles inteligentes como bandas de fitness, monitoreo de glucosa, podómetros, reloj inteligente, estación meteorológica, seguridad del hogar, etc., donde utilizará la mayoría de estos sensores. Y, como siempre, todos estos sensores tienen bibliotecas preconstruidas para Arduino que puede usar fácilmente. Al final de este artículo, leeremos los valores de todos estos sensores y los mostraremos en el monitor en serie. Los detalles del sensor en la placa de detección Arduino Nano 33 BLE junto con sus bibliotecas requeridas se tabulan a continuación .

 Nombre del sensor Parámetros Enlaces
LSM9DSI – ST MicroelectronicsAcelerómetro, giroscopio,
magnetómetro
Hoja de datos de LSMDSIBiblioteca Arduino_LSM9DS1
LPS22HB – ST MicroelectronicsPresiónLPS22HB Hoja de datos Arduino_LPS22HB Biblioteca
HTS221 – Microelectrónica STTemperatura y humedadLPS22HB Hoja de datos Arduino_HTS221 Biblioteca
APDS9960 – Avago Tech.Proximidad, Luz, Color, GestoLPS22HB Hoja de datos Arduino_APDS9960 Biblioteca
MP34DT05 – ST MicroelectronicsMicrófonoMP34DT05 Hoja de datos Inbuilt-PDM Library

La mayoría de estos sensores son de ST Microelectronics y admiten operaciones de baja potencia, lo que los hace ideales para diseños con baterías. Pocas personas ya pueden estar familiarizadas con el sensor APDS9960 ya que ya está disponible como módulo de dispersión y también hemos utilizado el sensor APDS9960 con Arduino  . Para obtener más información sobre estos sensores, puede visitar la hoja de datos respectiva y también asegurarse de haber agregado toda la biblioteca provista a su IDE Arduino para comenzar a usarlos con su placa de detección Arduino Nano 33 BLE. Para agregar una biblioteca, puede usar el enlace dado para acceder a la página respectiva de GitHub y descargar el archivo ZIP, luego usar Sketch -> Incluir biblioteca -> Agregar biblioteca ZIP o también puede usar el administrador de la biblioteca en Arduino IDE y agregar estos bibliotecas.

Especificaciones técnicas de la placa Arduino Nano 33 BLE sense: 

Alimentado por el procesador nórdico nRF52840, la placa Arduino Nano 44 BLE tiene las siguientes especificaciones técnicas

  • Voltaje de operación: 3.3V
  • Voltaje de entrada USB: 5V
  • Voltaje de pin de entrada: 4.5V a 21V
  • Chip: NINA-B3 – RF52840
  • Reloj: 64 MHz
  • Flash: 1 MB
  • SRAM: 256 KB
  • Conectividad inalámbrica: Bluetooth 5.0 / BLE
  • Interfaces: USB, I2C, SPI, I2S, UART
  • Pines de E / S digital: 14
  • Pines PWM: 6 (resolución de 8 bits)
  • Pines analógicos: 8 (10 bits o 12 bits configurables)

Mejoras de software con Arduino Nano 33 BLE sense

Al igual que todas las placas Arduino, el sentido Arduino Nano 33 BLE se puede programar con el IDE Arduino. Pero debe usar el administrador de la junta y agregar los detalles de la junta a su IDE antes de comenzar. Como sabemos, el nRF 52840 se puede programar utilizando ARM Mbed OS, esto significa que nuestra placa Arduino Nano 33 es compatible con el sistema operativo en tiempo real (RTOS). Con la programación de Mbed OS podemos ejecutar múltiples hilos al mismo tiempo en el programa para realizar tareas múltiples. Además, el consumo de energía de la placa se reducirá considerablemente, cada vez que llamemos a la función de retraso, la placa entrará en modo cosquillasdurante el tiempo de retraso para ahorrar energía y volvería a funcionar una vez que el retraso haya terminado. Se informa que esta operación consumirá 4.5uA menos que una operación de retardo Arduino normal.

Dicho esto, la integración del sistema operativo Mbed con Arduino IDE es relativamente nueva y tomará algún tiempo antes de que podamos utilizar completamente el poder total del sistema operativo Mbed con Arduino IDE. Entonces, para un inicio rápido, escribiremos un programa para leer todos los valores del sensor y mostrarlo en los monitores seriales

Preparación de su Arduino IDE para Arduino Nano 33 BLE sense

Inicie su IDE Arduino y vaya a Herramientas -> Tableros -> Administrador de placa para iniciar su administrador de placa Arduino. Ahora busque «Mbed OS» e instale el paquete. La instalación debería demorar un tiempo.

Una vez que se realiza la instalación, cierre el cuadro de diálogo y conecte su placa Arduino 33 usando un cable micro USB con su computadora portátil. Tan pronto como conecte la placa, Windows comenzará a instalar automáticamente los controladores necesarios para la placa. Luego abra su IDE Arduino y seleccione Herramientas -> Tablero -> Arduino Nano 33. Luego también seleccione el puerto COM correcto marcando Herramientas -> Puerto, el mío está conectado al puerto COM3 pero el suyo puede variar. Después de seleccionar el puerto, la esquina inferior derecha de su IDE debería verse así

Ahora, para comprobar rápidamente si todo funciona, podemos usar un programa de ejemplo, intentemos con el que se proporciona en Archivo -> Ejemplos -> PDM -> PDMSerialPlotter. Este programa usará el micrófono incorporado para escuchar el audio y trazarlo en un trazador en serie. Puede cargar el programa y verificar si la placa y el IDE están funcionando.

Ahora, si experimentas una compilación ridículamente lenta, no estás solo, muchas personas, incluido yo, nos enfrentamos a este problema y, al momento de escribir este artículo, parece que no hay solución. Me lleva alrededor de 2-3 minutos compilar y cargar programas simples y cuando probé algunos programas BLE o intenté trabajar con Mbed OS, el tiempo de compilación aumentó a más de 10 minutos, lo que no me animó a intentar nada más. Esto se debe a la integración del sistema operativo Mbed con Arduino IDE , esperemos que alguien de la maravillosa comunidad Arduino encuentre una solución para esto.

Programa para leer datos del sensor y mostrarlos en el monitor serie

Si no utilizamos las funcionalidades BLE o Mbed OS centrales de la placa, el tiempo de compilación fue razonable. Así que escribí un boceto simple para leer todos los valores del sensor y mostrarlo en el monitor en serie como se muestra a continuación

Inicie el programa incluyendo todos los archivos de encabezado necesarios. Aquí usaremos los cuatro sensores, excepto el micrófono.

#include <Arduino_LSM9DS1.h> // Incluye la biblioteca para la IMU de 9 ejes
 #include <Arduino_LPS22HB.h> // Incluye biblioteca para leer Presión
 #include <Arduino_HTS221.h> // Incluye biblioteca para leer Temperatura y Humedad
 #include <Arduino_APDS9960.h> // Incluye biblioteca para color, proximidad y reconocimiento de gestos

Dentro de la función de configuración inicializamos el monitor en serie a 9600 baudios para mostrar todos los valores del sensor y también inicializar todas las bibliotecas requeridas. El código dentro de la configuración se muestra a continuación

configuración nula () {
  Serial.begin (9600); // Monitor en serie para mostrar todos los valores del sensor
  if (! IMU.begin ()) // Inicializa el sensor IMU
  {Serial.println ("¡Error al inicializar la IMU!"); mientras que (1);}
  if (! BARO.begin ()) // Inicializar sensor de presión
  {Serial.println ("¡Error al inicializar el sensor de presión!"); mientras que (1);}
  if (! HTS.begin ()) // Inicializa el sensor de temperatura y humedad
  {Serial.println ("¡Error al inicializar el sensor de temperatura y humedad!"); mientras que (1);}
  if (! APDS.begin ()) // Inicializa el sensor de color, proximidad y gesto
  {Serial.println ("¡Error al inicializar Color, Proximidad y Sensor de gestos!"); mientras que (1);}
 }

Dentro de la función de bucle, leemos los valores de sensor requeridos de la biblioteca y luego los imprimimos en el monitor en serie. La sintaxis se puede consultar en el programa de ejemplo de cada biblioteca, hemos leído los valores del sensor de acelerómetro, giroscopio, magnetómetro, presión, temperatura, humedad y proximidad y los hemos mostrado en el monitor en serie. El código para medir el valor del acelerómetro se muestra a continuación, del mismo modo, podemos medir para todos los sensores.

// valores del acelerómetro
  if (IMU.accelerationAvailable ()) {
    IMU.readAcceleration (accel_x, accel_y, accel_z);
    Serial.print ("Acelerómetro ="); Serial.print (accel_x); Serial.print (","); Serial.print (accel_y); Serial.print (","); Serial.println (accel_z);
  }
retraso (200);

Arduino Nano 33 BLE- Subiendo el código

Cargar el código a Nano 33 es similar a cualquier otra placa, pero tenga en cuenta que la placa tiene dos puertos COM. Cuando hace clic en el botón de carga, el IDE de Arduino compila el código y luego restablece la placa automáticamente mediante un comando de software, esto pondrá la placa en modo de cargador de arranque y cargará su código. Debido a esto, una vez que se realiza la carga, puede notar que el IDE de Arduino ha cambiado automáticamente su puerto COM a un número diferente y es posible que desee volver a cambiarlo antes de abrir su monitor en serie.

https://circuitdigest.com/

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *