Hackathon - Curso introductorio

Este curso introductorio te proporcionará los conocimientos fundamentales necesarios para el Hackathon - 2025. Aprenderás como utilizar la plataforma de XIDE con el entorno de desarrollo de Arduino®.

Tabla de contenido

I. Descripción del kit de hardware

1.- ¿Qué es un zócalo mikroBUS?

El estándar mikroBUS™ define el patillaje (pinout) de tarjetas de desarrollo y módulos de expansión, esta interfaz no requiere habilidades para soldar o para leer hojas de datos.

El estándar define 3 interfaces seriales de comunicación: SPI, I2C, UART, 3 señales digitales: Interrupción, Reset y PWM. 1 señal analógica. El patillaje de un zócalo mikroBUS™ se organiza como se muestra en la imagen.

La plataforma XIDE está basada en este estándar, lo que permite al diseñador integrar un sistema de hardware en poco tiempo y le permite centrarse en construir la lógica de funcionamiento.

2.- ¿Cómo ensamblar un sistema XIDE?

El ensamblaje de un sistema con XIDE solo requiere 3 pasos:

  1. Identificar los módulos que se requieren en el sistema y escoger una tarjeta de expansión.

  2. Colocar los módulos en una tarjeta de expansión con cuidado de insertarlos correctamente.

  3. Programar el controlador del sistema.

Nota: Se recomienda colocar el controlador del sistema (XC01 R5-I) en el zócalo 5 de la tarjeta de expansión XBI01 - IIoTrainer. Lea el apartado Conectores estándar mikroBUS™ en la sección 3.- ¿Cómo funciona el XBI01? para obtener más información.

3.- ¿Cómo funciona el XBI01?

La tarjeta de expansión X-BOARD IIoTrainer es ideal para el desarrollo de prototipos y proyectos electrónicos, su diseño permite su inserción en una caja estanca IP65 ideal para proteger el sistema contra agua y polvo.

  1. Conectores estándar mikroBUS™ (El zócalo 5 está conectado en paralelo con los otros 4 zócalos).

  2. Conectores JST compatibles con el estándar Qwiic®.

  3. Doble header para configuración de los pines de los conectores mikroBUS™ (En la parte superior se muestran los pines de los zócalos 1 al 4, mientras que en la parte inferior los pines que están conectados en paralelo al zócalo 5).

  4. Versión de hardware: R1.

  5. Orificios para conexiones por debajo de la tarjeta

  6. Conectores tipo clema de propósito general como expansor de señales para cables AWG de calibre 24 a 20.

  7. Modelo de X-BOARD.

Más información sobre

(1) Conectores estándar mikroBUS™

El XBI01 - IIoTrainer cuenta con 5 zócalos mikroBUS™. Las comunicaciones seriales de todos los zócalos se encuentran conectadas (SCK, MISO, MOSI, TX, RX, SDA, SCL), por lo que su uso no requiere configuraciones adicionales.

Las señales digitales y analógicas: ANx, RSTx, CSx, PWMx y INTx se encuentran desconectadas. En la mayoría de los módulos de XIDE el uso de estas señales es innecesario para el funcionamiento básico, pero en algunos nodos es requerido, como es el caso del XC03 - Red celular LTE y GNSS, donde el encendido se controla con el pin PK. Para unir estas señales el usuario debe configurar el doble header, donde el zócalo marcado con el número 5 dispone de la mayor capacidad de personalización, por lo que se recomienda insertar el controlador del sistema en este zócalo.

(2) Conectores JST compatibles con el estándar Qwiic®

El estándar Qwiic® permite interconectar tarjetas a través de un cable utilizando el protocolo I2C (SDA, SCL), los XNODE compatibles con este estándar incluyen dos conectores marcados con la leyenda "qwiic".

Sistema con cables extensores Qwiic®
(3) Doble header para configuración de los pines de los conectores mikroBUS™

El doble header en el XBI01 - IIoTrainer permite configurar y acceder las señales de los zócalos mikroBUS™.

Los pines superiores corresponden a las señales de los primeros cuatro zócalos (1-5). Agrupadas por el tipo de señal: INTx(1), RSTx(2), PWMx(3), ANx(4) y CSx(5), en cada uno de estos grupos (excluyendo CSx) se encuentra además una señal CSn que puede utilizarse para el protocolo SPI (MISO, MOSI, SCK).

Los pines inferiores corresponden a las señales: INT(6), RST(7), PWM(8), AN(9) y CS(5) del zócalo 5. Esta distribución de pines permite unir las señales de este zócalo con cualquier señal de los otros 4 zócalos. Además, en cada señal (excepto la señal AN5), se encuentran dos pines marcados como PD (pull-down) y PU (pull-up), que se encuentran debajo de GND y 3.3V respectivamente, estos pines tienen una resistencia de 10kOhm para definir el estado lógico de la señal.

Para conectar las señales de los pines superiores con los inferiores se recomienda utilizar un puente de 2.54mm (incluidos con el XBI01 - IIoTrainer) como se muestra en el siguiente gráfico.

(6) Conectores de propósito general como expansor de señales

Estos bloques de conectores tipo clema se encuentran aislados del resto de señales de el XBI01 - IIoTrainer, su propósito es permitir el cableado de señales externas.

La tarjeta cuenta con 5 nodos aislados entre ellos: A, B, C, D y E, las clemas dentro de cada nodo se encuentran conectadas al mismo punto por lo que permite hacer empalmes de cables. El nodo A y el nodo B cuentan con cuatro clemas cada uno, los nodos C, D y E cuentan con solo dos clemas cada uno.

II. Configuración del entorno de desarrollo (Arduino® IDE)

Para programar el controlador del sistema se requiere un entorno de desarrollo, el XC01 R5-I es compatible con:

  1. Espressif-IDE: Entorno oficial de desarrollo para sistemas de Espressif Systems.

  2. Arduino® IDE: Entorno simplificado para pruebas de concepto compatible con sistemas de Espressif Systems.

Para usuarios avanzados es posible utilizar el conjunto de herramientas del SDK (ESP-IDF) en el editor de código de su preferencia.

Este manual se centrará en la plataforma Arduino®.

1.- Preparación del XC01 R5-I Arduino® IDE

Pasos para configurar el XC01 R5-I en Arduino® IDE
  1. Descarga e instala Arduino® IDE.

https://www.arduino.cc/en/software

  1. Ejecuta Arduino® IDE y da clic en "Gestor de tarjetas".

  1. En el buscador ingresa: esp32. Selecciona la opción esp32 by Espressif Systems y presiona el botón instalar. Espera hasta que se finalice la instalación, este proceso puede demorar unos cuantos minutos dependiendo de su velocidad de descarga.

  1. Posteriormente da clic en "Herramientas" > "Placa" > "esp32" > "ESP32S3 Dev Module".

  1. Por último, configura la tarjeta como se muestra en la imagen, selecciona el puerto asignado por el módulo y estará listo para usarse.

2. Uso de los pines mikroBUS del XC01 R5-I en el Arduino® IDE

El XC01 R5-I cuenta con 12 pines expuestos, 7 reservados para comunicaciones seriales (SCK, MISO, MOSI, TX, RX, SDA, SCL) y 5 para uso de propósito general. Además, dispone de 6 pines internos adicionales para controlar el LED integrado, leer el estado del botón BOOT, utilizar el lector de tarjeta SD, administrar el cargador e indicador de batería.

*Nota: Los pines EN1, EN2 y CE permiten controlar el comportamiento del cargador de batería integrado. La siguiente tabla ilustra el estado de los pines requeridos para habilitar los diferentes modos de funcionamiento.

EN2
EN1
CE
Corriente del sistema
Descripción

0

0

0

100 mA

Modo de carga lenta, útil para cargar baterías de baja capacidad menores a 500mAh. En este modo no es posible utilizar la comunicación WiFi sin una batería conectada al sistema.

0

1

0

500 mA

Modo de carga normal, útil para cargar baterías menores a 2000mAh. En éste modo no se recomienda utilizar las comunicaciones WiFi sin una batería conectada al sistema.

1

0

0

1500 mA

Modo de carga rápida (por defecto), útil para cargar baterías de hasta 8000mAh.

1

1

0

Standby

Modo de reposo, el sistema se alimentará exclusivamente desde la batería.

x

x

1

Charge disabled

Modo de carga de la batería deshabilitado.

3. Plantilla de Arduino® IDE

Plantilla para usar el XC01 R5-I en Arduino® IDE

III. Uso del XN01 - Entradas digitales

El XN01 Digital Inputs es un expansor de salidas digitales que utiliza el protocolo I2C para leer el estado lógico de hasta 8 señales digitales. Incluye 8 interruptores de dos posiciones (ON/OFF), para realizar pruebas de escritorio puedes hacer uso de estos interruptores, sin embargo, para utilizar señales externas de botones o interruptores deberás configurar el interruptor en la posición OFF, conecta una de las terminales del botón/interruptor a GND, conecta la otra terminal a la señal del XN01.

El siguiente fragmento de código describe como utilizar el XN01 Digital Inputs en Arduino® IDE.

Para utilizar el XN01 Digital Inputs de forma programática se recomienda entender como manipular bits en el lenguaje C++.

Ejemplo de uso del XN01

Código de ejemplo con el XC01 R5-I

IV. Uso del XN02 - Salidas digitales

El XN02 Digital Outputs es un expansor de salidas digitales que utiliza el protocolo I2C (SDA, SCL) para controlar el estado lógico de hasta 8 señales digitales.

El siguiente fragmento de código describe como utilizar el XN02 Digital Outputs en Arduino® IDE.

Para utilizar el XN02 Digital Outputs de forma programática se recomienda entender como manipular bits en el lenguaje C++.

Ejemplo de uso del XN02

Código de ejemplo con el XC01 R5-I

V. Uso del XN04 - Sensores Temperatura/Humedad/Luminosidad

El XN04 Temp-Hum / Lum es un conjunto de sensores de variables ambientales, permite medir temperatura en °C, humedad relativa porcentual y luminosidad en luxes.

El siguiente fragmento de código describe como utilizar el XN04 Temp-Hum / Lum en Arduino® IDE.

Ejemplo de uso del XN04

Código de ejemplo con el XC01 R5-I

VI. Uso del XN11 - 2 x Relevadores

El XN11 2 x Relay es un módulo de dos relevadores para controlar cargas hasta 220VAC de hasta 5A*

Nota: Solo la revisión R2 puede controlar cargas de hasta 5A, la versión R1 solo permite conmutar cargas de hasta 0.5A.

El siguiente fragmento de código describe como utilizar el XN11 2 x Relay en Arduino® IDE.

Ejemplo de uso del XN11

Código de ejemplo con el XC01 R5-I

VII. Uso del XC03 - Red celular LTE y GNSS

El XC03 - Red celular LTE y GNSS es un módulo que permite establecer comunicación a internet u obtener posición global. Sin embargo, no puede hacer ambas cosas al mismo tiempo.

Este es un nodo considerablemente complejo, en Arduino® IDE se recomienda utilizar la librería TinyGSM para hacer el desarrollo más sencillo.

Nota: El XC03 - Red celular LTE y GNSS requiere el control de la señal PK para encenderse, en los ejemplos de código este pin se controla con la señal INT del XC01 R5-I. Asegúrese que está señal está conectada al pin PK del XC03 - Red celular LTE y GNSS para garantizar el funcionamiento del ejemplo.

Instalación de TinyGSM en Arduino® IDE
  1. Abrir el administrador de librerías de Arduino® IDE.

  1. En el buscador ingresa: TinyGSM. Selecciona la librería TinyGSM by Volodymyr Shymansky y presiona el botón instalar.

El siguiente fragmento de código es una plantilla para utilizar TinyGSM y explica cómo utilizar algunas de sus funciones.

Configuración inicial de TinyGSM y funciones básicas

Ejemplo para obtener la geolocalización con TinyGSM

Para que este ejemplo funcione correctamente se recomienda encarecidamente que la antena GNSS se encuentre a cielo abierto. Intentar obtener la posición dentro de edificios puede demorar mucho tiempo o no funcionar.

Código de ejemplo con el XC01 R5-I

Ejemplo de comunicación celular con TinyGSM y Blynk.Cloud

Este ejemplo explica como conectarse a una nube de internet para enviar y recibir información utilizando la red celular TinyGSM.

Es necesario instalar la librería de Blynk.

Instalación de Blynk en Arduino® IDE
  1. Abrir el administrador de librerías de Arduino® IDE.

  1. En el buscador ingresa: Blynk. Selecciona la librería Blynk by Volodymyr Shymansky y presiona el botón instalar.

También es necesario contar con una cuenta de Blynk.cloud y dar de alta un nuevo dispositivo para obtener un Template ID, Template Name y un Token de autorización. Es necesario reemplazar estos datos en el código de ejemplo.

Nota: Durante el Hackathon se te proporcionará una cuenta de Blynk, así como el Template ID, Template Name y el Token de autorización.

TinyGSM + Blynk.cloud con el XC01 R5-I

VIII. Demostración: Termómetro IoT sobre red celular LTE

Este ejemplo demuestra como combinar 3 nodos para crear un sistema IoT:

Apila los nodos como se muestra en la figura:

El sistema reporta el valor de temperatura cada 30 segundos, el usuario puede controlar un LED de manera remota y enviar valor que se comparará con la temperatura actual en el dispositivo, después mostrará en la terminal si el valor es mayor o menor.

Reemplaza los valores de Template ID, Template Name y un Token de autorización en el código y programa el XC01 R5-I.

TinyGSM + Blynk.cloud con el XC01 R5-I

IX. XN15 - Fuente de Alimentación 110-220V AC

El XN15 AC Power Supply es un módulo de alimentación con una entrada de 110 a 220 VAC, con una salida dual de 5V y 3.3V DC con una potencia de 5W (1 amperio a 5V). Este módulo incluye filtros para reducir el ruido eléctrico, lo que permite conectar sistemas basados en XIDE directamente a una toma de corriente incluso en entornos industriales.

¿Cómo usar el XN15?

Para conectar el XN15 a una toma de corriente se requiere un cable de alimentación AWG calibre 20 a 24 con clavija, se recomienda además utilizar un interruptor de encendido y un fusible de 0.5 A. El XN15 AC Power Supply tiene una terminal para las líneas de alimentación (L)inea y (N)eutro, con la clavija desconectada, inserte el cable blanco en la terminal N, si cuenta con un fusible y un interruptor conectelos en serie con el cable negro, después inserte el cable en la terminal L.

Inserta el XN15 AC Power Supply en el zócalo mikroBUS™, conecte la clavija en el tomacorriente, si cuenta con un interruptor, colóquelo en la posición de encendido.

X. Descargas

10KB
Abrir

Última actualización

¿Te fue útil?