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 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.
// Inicia la comunicación con el XN(01)
Wire.beginTransmission(1);
// Selecciona el registro de las entradas
Wire.write( 0x01 );
// Finaliza la comunicación con el nodo
Wire.endTransmission();
// Lee 1 byte con la información de las entradas
Wire.requestFrom( 1, 1);
uint8_t inputs = Wire.read();
// Mostrar el estado en formato binario (omite
// 0's a la izquierda)
Serial.print( "XN01A=" );
Serial.println( inputs, BIN );
delay( 1000 );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
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.
// 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
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.
// 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
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*
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
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.
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.
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.
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?
¡ ADVERTENCIA, RIESGO DE ELECTROCUCIÓN!: El trabajo con componentes eléctricos alimentados con 110-220 VAC (Corriente Alterna) presenta un riesgo severo de posible descarga eléctricas, que puede ser fatal. Antes de manipular componentes alimentados con corriente alterna verifique que estos se encuentran desconectados de la toma de corriente. NUNCA manipule la tarjeta mientras se encuentra alimentado con corriente alterna incluso si el interruptor se encuentra en la posición de apagado.
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
Última actualización
¿Te fue útil?




















