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:
Identificar los módulos que se requieren en el sistema y escoger una tarjeta de expansión.
Colocar los módulos en una tarjeta de expansión con cuidado de insertarlos correctamente.
Programar el controlador del sistema.

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.

Conectores estándar mikroBUS™ (El zócalo 5 está conectado en paralelo con los otros 4 zócalos).
Conectores JST compatibles con el estándar Qwiic®.
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).
Versión de hardware: R1.
Orificios para conexiones por debajo de la tarjeta
Conectores tipo clema de propósito general como expansor de señales para cables AWG de calibre 24 a 20.
Modelo de X-BOARD.
Más información sobre
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:
Espressif-IDE: Entorno oficial de desarrollo para sistemas de Espressif Systems.
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
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.
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
III. 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.
// Inicia la comunicación con el XN(02)
Wire.beginTransmission(2);
// Selecciona el registro de las salidas
Wire.write( 0x01 );
// Escribe 1 en las 8 salidas
Wire.write(0b11111111);
// Finaliza la comunicación con el nodo
Wire.endTransmission();
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
IV. 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.
// Inicia la comunicación con el XN(04)
Wire.beginTransmission(4);
// Selecciona el registro
// temperatura: 0x01
// humedad: 0x02
// luminosidad: 0x03
Wire.write(0b01);
Wire.endTransmission();
// Lee 2 bytes del XN04
Wire.requestFrom(0x04, 2);
// La temperatura y humedad deben dividirse entre 100.0f
// para obtener el valor en °C / %.
float temperatura = ( (Wire.read() << 8) | Wire.read() )/100.0f;
// La luminosidad no requiere esta operación y puede leerse como
// un entero de 16 bits (uint16_t)
// uint16_t luminosidad = ( (Wire.read() << 8) | Wire.read() );
Ejemplo de uso del XN04
V. 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*
El siguiente fragmento de código describe como utilizar el XN11 2 x Relay en Arduino® IDE.
// Inicia la comunicación con el XN(04)
Wire.beginTransmission(4);
// Selecciona el relevador
// 0x01 - relevador 1
// 0x02 - relevador 2
Wire.write( 0x01 );
// Enciende (1) o apaga(0) el relevador
Wire.write(0b01);
Wire.endTransmission();
Ejemplo de uso del XN11
VI. 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.
El siguiente fragmento de código es una plantilla para utilizar TinyGSM y explica cómo utilizar algunas de sus funciones.
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.
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.
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.
VII. 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.
VIII. Descargas
Última actualización
¿Te fue útil?