/* AmbiSensor - Sensor Ambiental (simulación) - IoT (Internet of Things)
Julio César Sandria Reynoso - Mayo 2026
Este programa genera aleatoriamente datos ambientales de
Temperatura, Humedad, CO2 e Iluminación, y los envía a
un servidor en la nube para poder ver los datos en tiempo
real desde cualquier dispositivo
Hardware: Arduino UNO, Módulo WiFi Esp8266, Fuente de poder para protoboard,
protoboard, 2 resistencias de 1K, cables dupont.
*/
// Incluimos la librería WiFiEspAT que es más reciente que WiFiEsp
#include <WiFiEspAT.h>
// Si usamos Arduino Mega o Leonardo USAR_MEGA = true
// Si usamos Arduino Uno o Nano USAR_MEGA = false
// const bool USAR_MEGA = true; // true = Arduino Mega | false = Arduino Uno
// Configuración dinámica de puertos Serial según la placa
// usando directivas del precompilador
#if defined(ARDUINO_AVR_MEGA2560) || defined(__AVR_ATmega2560__)
// Si Arduino IDE detecta un Arduino Mega o Leonardo
// Conecta pin 18 (TX1) a pin RX del Esp, con divisor de voltaje a 3.3V
// Conecta pin 19 (RX1) a pin TX del Esp
#define EspSerial Serial1
#else
#include <SoftwareSerial.h>
// En Arduino Uno o Nano:
// Conecta pin 2 (RX) a pin TX del Esp
// Conecta pin 3 (TX) a pin RX del Esp, con divisor de voltaje a 3.3V
SoftwareSerial softSerial(2, 3);
#define EspSerial softSerial
#endif
// Credenciales Wi-Fi
const char* ssid = "nombre-red-wifi";
const char* password = "clave-red-wifi";
// Configuración del servidor ThingsBoard
const char* server = "thingsboard.cloud";
const int port = 80;
const char* token = "TOKEN";
// Variables de ambiente
float temp = 25; // En grados Celcius
float humedad = 62; // En porcentaje (%)
int co2 = 450; // En ppm (partes por millón)
int luz = 780; // En luxes o valor analógico (0-1023)
void setup() {
Serial.begin(9600);
Serial.println("Iniciando programa AmbiSensor - Sensor Ambiental...");
// Inicializar la comunicación serial con el módulo WiFi Esp8266
EspSerial.begin(9600); // Velocidades preferentes 115200 (Mega) o 9600 (Uno)
Serial.println("Inicializando modulo Wi-Fi...");
WiFi.init(&EspSerial);
if (WiFi.status() == WL_NO_MODULE) {
Serial.println("No se encontró el módulo Wi-Fi AT");
while (true); // Detener el programa si no hay módulo
}
// Conectar a la red Wi-Fi
Serial.print("Conectando a Wi-Fi: ");
Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("\n¡Conectado a la red!");
}
void loop() {
// Asegurar que seguimos conectados antes de enviar datos
if (WiFi.status() == WL_CONNECTED) {
WiFiClient client;
// Abrir conexión TCP con el servidor
if (client.connect(server, port)) {
Serial.println("Conectado al servidor de ThingsBoard");
// *** AQUÍ SE DEBEN TOMAR LECTURAS DE LOS SENSORES REALES ***
// Para este ejemplo, vamos simulando lecturas aleatorias
temp += 2-random(5); // En grados Celcius
humedad += 2-random(5); // En porcentaje (%)
co2 += 7-random(15); // En ppm (partes por millón)
luz += 7-random(15); // En luxes o valor analógico (0-1023)
// 2. Preparar un JSON con múltiples variables
// El formato final será:
// {"temperature":24.5,"humidity":62.5,"co2":450,"light":780}
String sDatos = "{";
sDatos += "\"temperature\":" + String(temp) + ",";
sDatos += "\"humidity\":" + String(humedad) + ",";
sDatos += "\"co2\":" + String(co2) + ",";
sDatos += "\"light\":" + String(luz);
sDatos += "}";
// 3. Enviar la petición HTTP POST
client.print("POST /api/v1/");
client.print(token);
client.println("/telemetry HTTP/1.1");
// Encabezados
client.print("Host: ");
client.println(server);
client.println("Content-Type: application/json");
client.print("Content-Length: ");
client.println(sDatos.length());
client.println("Connection: close"); // Buena práctica para liberar memoria en el servidor
// Línea en blanco obligatoria
client.println();
// Cuerpo de los datos (sDatos)
client.print(sDatos);
client.println();
Serial.println("Datos enviados: " + sDatos);
// 4. Leer la respuesta del servidor (para asegurarnos
// del 200 OK, que significa datos recibidos correctamente)
unsigned long timeout = millis();
while (client.available() == 0) {
if (millis() - timeout > 5000) {
Serial.println(">>> ¡Timeout!");
client.stop();
return;
}
}
// Imprimir solo la primera línea (donde viene el código 200)
// para no saturar el monitor
if (client.available()) {
String status_line = client.readStringUntil('\r');
Serial.println("Status: " + status_line);
}
// Cerrar la conexión
client.stop();
} else {
Serial.println("Error: No se pudo conectar al servidor");
}
} else {
Serial.println("Wi-Fi desconectado. Intentando reconectar...");
}
// Esperar 10 segundos antes del siguiente envío
delay(10000);
}
Instalación de ROS 2 y Webots en Ubuntu 22.04 LTS
Por Julio César Sandria Reynoso
30 de abril de 2026
En este artículo se describe la instalación de ROS 2 y Webots en Ubuntu 22.04 LTS en una computadora con arranque dual (dual boot) que ya tiene Windows 11 instalado. El Dual Boot es la opción más robusta para simulaciones pesadas porque permite que Ubuntu acceda al 100% del hardware (CPU, RAM y, sobre todo, la GPU) sin las capas de abstracción de una máquina virtual.
A continuación se muestra la hoja de ruta para instalar Ubuntu 22.04 LTS junto a Windows 11 de forma segura:
1. Preparación en Windows 11 (Crítico)
Antes de tocar cualquier partición, se debe preparar el terreno para evitar bloqueos del sistema.
- Desactivar «Inicio Rápido» (Fast Boot): Windows bloquea el disco duro al apagarse si esto está activo, impidiendo que Ubuntu escriba en él.
- Panel de Control > Hardware y sonido > Opciones de energía > Elegir el comportamiento de los botones de inicio.
- Desactivar BitLocker: Si Windows 11 tiene el cifrado de disco BitLocker activado, se debe desactivar o tener a mano la clave de recuperación de 48 dígitos. De lo contrario, no se podrá redimensionar la partición.
- Hacer espacio: Hacer clic derecho en el botón de Inicio > Administración de discos. Reducir el volumen de la unidad
C:para dejar al menos 60-100 GB de «Espacio no asignado» para Ubuntu, ROS 2 y simulaciones de Webots.
2. Crear el medio de instalación
- Descargar el archivo ISO oficial de Ubuntu 22.04.x LTS.
- Usar una herramienta como Rufus o BalenaEtcher para «quemar» el ISO en una memoria USB de al menos 8 GB.
3. Configuración de la BIOS/UEFI
Reiniciar la computadora y entrar al BIOS (usualmente presionando F2, F12, Del o Esc al arrancar).
- Secure Boot: En la mayoría de las computadoras desktop o laptops modernas, se puede dejarlo activado, pero si se tienen problemas para arrancar el USB, probar desactivarlo.
- SATA Mode: Asegurarse de que esté en AHCI (si está en RAID, Ubuntu podría no ver el disco duro o SSD). Cuidado: cambiar esto puede requerir configurar Windows para arrancar en AHCI primero.
4. El proceso de instalación de Ubuntu
Arrancar la computadora desde la USB (Boot Menu) y selecciona «Install Ubuntu». Siguiendo estos pasos clave:
- Red y Actualizaciones: Conectar a Wi-Fi y marca la casilla «Instalar programas de terceros para hardware de gráficos y Wi-Fi». Esto es vital para que los drivers de NVIDIA (si los hay) funcionen con Webots.
- Tipo de instalación: Aquí viene lo más importante. Seleccionar «Instalar Ubuntu junto a Windows Boot Manager».
- Si no aparece esta opción, elegir «Más opciones» para asignar manualmente el espacio no asignado creado en el paso 1.
- Particionado (si se elige Manual): Crear una partición
root(punto de montaje/) con el resto del espacio (mínimo 50 GB). Formato: ext4. - Finalizar: Seguir las instrucciones de ubicación y usuario.
5. Post-Instalación: El menú GRUB
Al reiniciar la computadora, se deberá ver una pantalla negra con letras blancas (el GRUB) que permite elegir entre Ubuntu y Windows Boot Manager.
6. Configuración para ROS 2 + Webots
Una vez en Ubuntu, lo primero que se debe hacer es optimizar el sistema para la simulación:
- Drivers de Video: Ir a «Software y actualizaciones» > «Más controladores» y asegurarse de usar el driver NVIDIA (Proprietary, tested). Sin esto, Webots irá muy lento.
7. Instalación de ROS 2 Humble
A continuación se detalla los comandos para que, una vez que se inicie sesión en Ubuntu 22.04, se deje listo para realizar simulaciones con ROS 2.
Abrir una terminal (Ctrl + Alt + T) y ejecutar estos bloques de comandos:
7.1. Configurar los Repositorios y las Claves
Primero, autorizar a Ubuntu para que confíe en los servidores de ROS 2.
$ sudo apt update
$ sudo apt install curl gnupg2 lsb-release -y
$ sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg
$ echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(source /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
7.2. Instalar ROS 2 Humble (Desktop)
Instalar la versión completa que incluye Rviz2.
$ sudo apt update
$ sudo apt install ros-humble-desktop ros-dev-tools -y
7.3. Instalar Webots y el Driver de ROS 2
Cyberbotics mantiene un repositorio propio, pero la forma más estable de integrarlo con ROS 2 es instalando el paquete oficial del puente:
$ sudo apt install ros-humble-webots-ros2 -y
Nota: Este comando instalará automáticamente una versión compatible de Webots si no se tiene.
7.4. Configurar el Entorno (Automático)
Para no tener que escribir source /opt/ros/humble/setup.bash cada vez que se abre una terminal, se añade a la configuración personal:
$ echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc
$ source ~/.bashrc
7.5. Verificación de Seguridad
Para confirmar que todo está en orden, intentar correr el ejemplo oficial de un robot móvil en un entorno simulado:
$ ros2 launch webots_ros2_universal_robot multirobot_launch.py
Matriz de 11×2 LEDs controlada con Arduino para un R2D2
Autor: Julio César Sandria Reynoso
Fecha: 9 de noviembre de 2024

En este artículo se presenta un proyecto de creación de una matriz de 11×2 LEDs que se controlan con Arduino para colocarlos en una ranura de un robot similar al R2D2 de las películas Star Wars.
Semanas atrás, uno de los alumnos del Instituto de Robótica de Xalapa (iRoX) llevó su robot R2D2 para hacerle algunas mejoras. Una de esas mejoras consiste en ponerle LEDs en algunas de las ranuras de la cabeza.
Una de esas ranuras es rectangular de 9 cm X 1.2 cm, donde se puede colocar una matriz de 11×2 LEDs por dentro de la cabeza para que se pueda ver su encendido desde el exterior.
La idea de poner varios LEDs fue para emular un tanto la forma en que trabaja el robot de las películas, encendiendo de diversas formas los LEDs de esa ranura.
Algunos de los alumnos participaron en el diseño de la sección rectangular para la colocación de los LEDs, inicialmente se consideró una tabla de MDF de 3mm cortada en láser para colocar allí los LEDs, pero se descartó porque con una placa fenólica perforada fue suficiente.
La disposición de los 22 LEDs, con resistencias, transistores y conexiones a Arduino se diseñó en Tinkercad. De hecho, en esta plataforma se hizo también la programación inicial y simulación de su funcionamiento, lo cual se muestra en el artículo Arreglo de 22 LEDS (11×2) con encendido aleatorio con Arduino en Tinkercad.

Después del diseño del circuito en Tinkercad, se procedió a soldar los componentes en la placa fenólica. El material usado es el siguiente:
- Placa fenólica perforada
- 22 LEDs de diferentes colores
- 11 resistencias de 220 Ohms
- 2 transistores 2N2222
- 2 resistencias de 1 KOhm
- Cable UTP
- Tira de pines macho 90° (14 conectores)
Una vez soldados todos los componentes como se ve en la imagen «Componentes soldados a la placa fenólica», se conectaron cables Dupont hembra-macho del circuito al Arduino UNO de la siguiente forma:
- Los primeros 11 cables de izquierda a derecha se conectan a los pines digitales 10 a 0 de Arduino respectivamente.
- El antepenúltimo cable (amarillo) se conecta al pin analógico A0.
- El penúltimo cable (naranja) se conecta al pin analógico A1.
- El último cable (rojo) se conecta a GND.
Una vez conectado todo, se cargó el siguiente programa C++ desde Arduino IDE al Arduino UNO.
// Programa C++ para Arduino
// Autor: Julio César Sandria Reynoso
// Fecha: Noviembre 2024
// Arreglo de LEDs de 11 columnas X 2 filas,
// enciende LEDs de forma aleatoria o con ciertos patrones
#define columnas 11
#define filas 2
int Columnas[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int Filas[] = {A0, A1};
int ledColumna[columnas];
int ledFila[columnas];
void setup() {
for (int col = 0; col < columnas; col++)
pinMode(Columnas[col], OUTPUT);
for (int fila = 0; fila < filas; fila++)
pinMode(Filas[fila], OUTPUT);
}
void loop() {
// Enciende un led iniciando en la primera fila de
// izquierda a derecha y terminando en la segunda
// fila a la izquierda
for(int t=100; t>=40; t=t-20)
ledPorFila(t,0);
// Enciende de 1 a 5 leds de forma aleatoria durante un tiempo
// de 100 + i*50 ms y apagándolos 0 ms
for(int i=1; i<6; i++)
ledsAleatorios(i,100+i*50,0);
// Enciende 6 leds de forma aleatoria durante 50 iteraciones
for(int i=0; i<50; i++)
ledsAleatorios(6,350,0);
}
void ledPorFila(int tEncendido, int tApagado) {
for(int i=columnas-1; i>=0; i--) {
digitalWrite(Filas[0], HIGH);
digitalWrite(Columnas[i], HIGH);
delay(tEncendido);
digitalWrite(Filas[0], LOW);
digitalWrite(Columnas[i], LOW);
delay(tApagado);
}
for(int i=0; i<columnas; i++) {
digitalWrite(Filas[1], HIGH);
digitalWrite(Columnas[i], HIGH);
delay(tEncendido);
digitalWrite(Filas[1], LOW);
digitalWrite(Columnas[i], LOW);
delay(tApagado);
}
}
void ledsAleatorios(int nLeds, int tEncendido, int tApagado) {
// Los arreglos ledFila[] y ledColumna[] tienen <columnas> elementos,
// de los cuales solo se usan <nLeds> elementos en esta función.
// Es posible que de forma aleatoria se repita un led a encender,
// pero es imperceptible o poco notorio durante la ejecución.
// Encendemos los nLeds indicados, durante <tEcendido> milisegundos
for(int i=0; i<nLeds; i++) {
ledFila[i] = random(0, filas);
ledColumna[i] = random(0, columnas);
digitalWrite(Columnas[ledColumna[i]], HIGH);
digitalWrite(Filas[ledFila[i]], HIGH);
}
delay(tEncendido);
// Apagamos todos los leds encendidos
for(int i=0; i<nLeds; i++) {
digitalWrite(Columnas[ledColumna[i]], LOW);
digitalWrite(Filas[ledFila[i]], LOW);
}
delay(tApagado);
}
Las siguientes fotografías son del circuito funcionando.
Al probar el programa se detectó que algunos LEDs no encendían, por lo que se hizo una revisión exhaustiva, encontrando algunos errores de soldadura, que se fueron resolviendo.
Con este tipo de proyectos, donde los alumnos practican los temas que se van viendo en el iRoX, los alumnos se sienten motivados a aprender aún mucho más.
Si te interesa aprender más sobre programación en C++, Arduino, robótica u otros lenguajes de programación, visita el sitio web del Instituto de Robótica de Xalapa (www.irox.mx) y contáctanos. Si estás en una región cercana a Xalapa, como Veracruz, Boca del Río, Córdoba, Martínez de la Torre, etc., puedes visitar las instalaciones del iRoX entre semana o un sábado y hablar con nuestros profesores sobre proyectos de robótica o tecnología.
Agradecemos a los alumnos que están participando en este proyecto: David, Germán, Fernando, Carlo y Max.
Arreglo de 22 LEDS (11×2) con encendido aleatorio con Arduino en Tinkercad
Autor: Julio César Sandria Reynoso
Fecha: 19 de octubre de 2024
En este artículo se presenta un proyecto en Tinkercad (www.tinkercad.com) haciendo un circuito para conectar 22 LEDs en un arreglo de 11 columnas y 2 filas, con encendido aleatorio de los LEDs.
Lo interesante de este proyecto es mostrar cómo, teniendo únicamente 20 pines de entrada/salida en Arduino UNO (14 digitales y 6 analógicos), podemos conectar 22, 30 ó 45 LEDs y controlarlos fácilmente mediante programación C++ en Arduino.

En la imagen se puede ver que en forma de columna, se conectan dos LEDs a cada uno de los pines digitales 0 a 10 de Arduino. Por ejemplo, viendo los LEDs de derecha a izquierda, en los primeros dos LEDs los ánodos (+) se conectan entre si, después a una resistencia de 220 Ohms y la resistencia se conecta al pin 0 de Arduino. Y así sucesivamente se conectan los demás LEDs.
En la primera fila de 11 LEDs (los de arriba), se conectan entre si sus cátodos (-), y todos ellos se conectan a la patilla C (colector) del transistor NPN de la derecha. La patilla E (emisor) se conecta a tierra (GND de Arduino) y la patilla B (base) se conecta a una resistencia de 1 KOhm y ésta al pin analógico A0 de Arduino.
De forma similar, la segunda fila de 11 LEDs se conectan sus cátodos (-) al transistor NPN de la izquierda y la patilla B (base) se conecta con una resistencia de 1 Ohm de por medio, al pin A1 de Arduino.
Para encender los primeros dos LEDs de la derecha, se activa el pin 0 de Arduino con digitalWrite(0,HIGH), pero esto por si solo no enciende ninguno de los dos LEDs. Para encender el primer LED de la derecha-arriba, se debe activar el pin A0 de Arduino con digitalWrite(A0,HIGH). Con esto, se envía el voltaje necesario a la base del transistor de la derecha, lo que cierra el circuito entre el colector y emisor de dicho transistor, permitiendo el flujo de corriente desde el pin 0 de Arduino, pasando por el LED (derecha-arriba), el transistor derecho, hasta el GND de Arduino.
El programa siguiente implementa el encendido de forma aleatoria de un LED durante 15 veces y después el encendido de dos LEDs de forma aleatoria durante 20 veces. Esto se repite mientras se ejecute la simulación en Tinkercad.
// Programa C++ para Arduino
// Arreglo de LEDs de 11 columnas X 2 filas,
// enciende un LED de forma aleatoria y
// después enciende dos LEDs de forma aleatoria
int Columnas[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int Filas[] = {A0, A1};
int columnas = 11;
int filas = 2;
void setup() {
for (int col = 0; col < columnas; col++)
pinMode(Columnas[col], OUTPUT);
for (int fila = 0; fila < filas; fila++)
pinMode(Filas[fila], OUTPUT);
}
void loop() {
// 15 veces encendemos un led de forma aleatoria
ledAleatorio(15);
// 20 veces encendemos dos leds de forma aleatoria
ledAleatorio2(20);
}
void ledAleatorio(int n) {
int aFila;
int aColumna;
for(int i=0; i<n; i++) {
aFila = random(0, filas);
aColumna = random(0, columnas);
digitalWrite(Filas[aFila], HIGH);
digitalWrite(Columnas[aColumna], HIGH);
delay(300);
digitalWrite(Filas[aFila], LOW);
digitalWrite(Columnas[aColumna], LOW);
delay(200);
}
}
void ledAleatorio2(int n) {
int aFila;
int aColumna;
int a2Fila;
int a2Columna;
for(int i=0; i<n; i++) {
aFila = random(0, filas);
aColumna = random(0, columnas);
a2Fila = random(0, filas);
a2Columna = random(0, columnas);
digitalWrite(Filas[aFila], HIGH);
digitalWrite(Columnas[aColumna], HIGH);
digitalWrite(Filas[a2Fila], HIGH);
digitalWrite(Columnas[a2Columna], HIGH);
delay(300);
digitalWrite(Filas[aFila], LOW);
digitalWrite(Columnas[aColumna], LOW);
digitalWrite(Filas[a2Fila], LOW);
digitalWrite(Columnas[a2Columna], LOW);
delay(200);
}
}
Si te interesa aprender más sobre programación en C++, Arduino, robótica u otros lenguajes de programación, visita el sitio web del Instituto de Robótica de Xalapa (www.irox.mx) y contáctanos. Si estás en una región cercana a Xalapa, como Veracruz, Boca del Río, Córdoba, Martínez de la Torre, etc., puedes visitar las instalaciones del iRoX entre semana o un sábado y hablar con nuestros profesores sobre proyectos de robótica o tecnología.
Simulador de robots móviles Webots
Webots es un simulador de robots móviles 3D de código abierto. Es una plataforma de simulación robótica diseñada para un uso profesional y ha sido ampliamente utilizada en la industria, la educación y la investigación.
Originalmente se desarrolló como una herramienta para investigar varios algoritmos de control en robótica móvil. Desde diciembre de 2018, Webots se liberó como un software de código abierto bajo la licencia Apache 2.0.
El sitio web de Webots es https://cyberbotics.com/ y la guía de uso está en https://cyberbotics.com/doc/guide/index.
Webots tiene una interfaz gráfica de usuario (GUI) con una ventana 3D para interactuar con la simulación 3D así como un editor de texto para editar el código fuente, entre otros elementos.

Aplicación de base de datos con Delphi CE
En esta entrada se ve cómo crear una aplicación de base de datos con Delphi 10.2.
Delphi CE: Primeros pasos con aplicaciones de base de datos.
Entrada y Salida en Python
En general, los programas de computadora reciben una entrada de datos que procesan de alguna forma y el resultado es una salida de datos. La entrada de datos en Python puede ser desde el teclado, lo que por omisión es la entrada estándar. La salida de datos puede ser en la pantalla de la computadora o terminal que se está usando para conectarse a la computadora que ejecuta Python, y a esta se le llama salida estándar.
El siguiente programa es un simple ejemplo de entrada y salida en Python:
nombre = input("Como te llamas? ")
print("Hola " + nombre)
La primera línea usa la función input para recibir entrada de datos desde la entrada estándar (el teclado por omisión) y la segunda línea imprime el dato en la salida estándar (la pantalla por omisión). Si el programa se llama hola.py y se ejecuta en una ventana de símbolo de sistema se vería lo siguiente:
D:\Python>python hola.py Como te llamas? Julio Hola Julio D:\Python>
En la primera línea se hace la llamada al intérprete Python pasándole como argumento el programa hola.py de nuestro ejemplo. En la segunda línea, se muestra la ejecución de la función input, que muestra el texto Como te llamas? y espera a que el usuario escriba un nombre y oprima la tecla Intro. Después de esto se ejecuta la función print mostrando el texto Hola junto con el nombre escrito por el usuario.
Introducción a la programación con Python
En Robótica Sandria presentamos este breve tutorial Introducción a la programación con Python, para las personas interesadas en aprender este poderoso lenguaje de programación. Está basado en parte en The Python Tutorial de la versión 3.7.1, disponible en noviembre de 2018.
Python es un lenguaje de programación poderoso y fácil de aprender. Tiene eficientes estructuras de datos de alto nivel y un simple pero efectivo enfoque de programación orientada a objetos.
Python tiene un intérprete, esto quiere decir que cada instrucción que se escribe en modo interactivo o se lee de un archivo de programa, es convertida a lenguaje máquina y ejecutada.
Kit de Robótica Educativa RoboMaster 3
Kit de Robótica Educativa RoboMaster 3 (actualización 2 a 3)
Julio César Sandria Reynoso
Instituto de Robótica de Xalapa, A.C.
Agosto 2018
Introducción
La Robótica Educativa es un conjunto de actividades pedagógicas que apoyan y fortalecen áreas específicas del conocimiento en robótica, permitiendo así desarrollar habilidades y competencias en el alumno a través de procesos de concepción, creación, ensamble, programación y puesta en funcionamiento de robots.
En México, con la Reforma Educativa de 2012, se presenta la oportunidad de ofrecer formalmente Clubes de Robótica a nuestros niños y jóvenes. Por esto, en este artículo de Robótica Sandria, se presenta el Kit de Robótica Educativa RoboMaster 3 (actualización de 2 a 3), de la Serie Intermedios de Robo-Ed, para jóvenes que empiezan en el mundo de la robótica.
¿Qué es el Kit RoboMaster 3?
RoboMaster 3 (RoboSeries – Ingelligent Robot School 3, upgrade 2-3) es un complemento o actualización del kit coreano de Robótica Educativa RoboMaster 1 y RoboMaster 2, recomendado para jóvenes de educación Secundaria y Preparatoria del Sistema Educativo Mexicano.
Para Universidades también es muy útil, ya que el Kit 1 complementado con las actualizaciones 2 a 6, puede contar con una gran diversidad de piezas que permiten armar modelos avanzados de robots.
El Kit RoboMaster 3 tiene piezas adicionales que complementan al Kit RoboMaster 1 y RoboMaster 2, con lo que es posible hacer nuevos modelos de robots con programas más complejos.
Kit Intermedio RoboMaster 3
El Kit de la Serie Intermedios RoboMaster 3 de Robo-Ed es el tercero de seis kits de robótica. El libro en papel o PDF tiene una serie de lecciones para la creación de robots con el que los estudiantes pueden aprender la teoría para la comprensión general de robots.

Contenido educativo del Kit RoboMaster 3
A continuación se muestran las 12 lecciones o partes en las que está dividido el libro del Kit RoboMaster 3.
A continuación se muestran las 12 lecciones o partes en las que está dividido el libro del Kit RoboMaster 2.
![]() |
1. SoccerBot Robot futbolista Ensamblado – Usando motores CD a alta velocidad – Operación – ¿Qué aprendiste? |
![]() |
2. FanBot Ventilador Ensamblado – If Else – Operación – ¿Qué aprendiste? |
![]() |
3. DiceBot Módulo sensor de sonido Ensamblado – Configurando servo motor – If Else – Operación – ¿Qué aprendiste? |
![]() |
4. FormulaBot Auto de carreras Ensamblado – Configurando el servo motor – Operación – ¿Qué aprendiste? |
![]() |
5. FlagBot Señales con banderas Ensamblado – Configurando el servo motor – Operación – ¿Qué aprendiste? |
![]() |
6. SweepBot Robot limpiador Ensamblado – Usando cuatro motores DC – Operación – ¿Qué aprendiste? |
![]() |
7. BugBot Robot que camina Ensamblado – Freno – Operación – ¿Qué aprendiste? |
![]() |
8. BoxingBot Principio de equilibrio Ensamblado – Configurando el servo motor – Operación – ¿Qué aprendiste? |
![]() |
9. ParrotBot Módulo de voz Ensamblado – Configurando el servo motor – Voz – Operación – ¿Qué aprendiste? |
![]() |
10. DogBot Robot mascota Ensamblado – Configurando el servo motor – Operación – ¿Qué aprendiste? |
![]() |
11. SpaceBot Robot para exploración espacial Ensamblado – Configurando el servo motor – Operación – ¿Qué aprendiste? |
![]() |
12. BattleBot Robot de batalla ¿Qué aprendiste? |
Lista de partes

Los kits de robótica RoboMaster los puedes adquirir en RobotSA, distribuidor autorizado de Robótica Educativa de México, S.A. de C.V. (Robo-Ed), importador de RoboMaster en la República Mexicana.
Enlaces relacionados
- Robótica Educativa en RobotSA
- Kit de Robótica Educativa RoboKids UARO 1 (Infantil)
- Kit de Robótica Educativa RoboKids 1 (Infantil)
- Kit de Robótica Educativa Robo-Ed JR1 (Principiantes)
- Kit de Robótica Educativa RoboMaster 1, RoboMaster 2, RoboMaster 3 (Intermedios)
Kit de Robótica Educativa RoboMaster 2
Kit de Robótica Educativa RoboMaster 2 (actualización 1 a 2)
Julio César Sandria Reynoso
Instituto de Robótica de Xalapa, A.C.
Agosto 2018
Introducción
La Robótica Educativa es un conjunto de actividades pedagógicas que apoyan y fortalecen áreas específicas del conocimiento en robótica, permitiendo así desarrollar habilidades y competencias en el alumno a través de procesos de concepción, creación, ensamble, programación y puesta en funcionamiento de robots.
En México, con la Reforma Educativa de 2012, se presenta la oportunidad de ofrecer formalmente Clubes de Robótica a nuestros niños y jóvenes. Por esto, en este artículo de Robótica Sandria, se presenta el Kit de Robótica Educativa RoboMaster 2 (actualización de 1 a 2), de la Serie Intermedios de Robo-Ed, para jóvenes que empiezan en el mundo de la robótica.
¿Qué es el Kit RoboMaster 2?
RoboMaster 2 (RoboSeries – Ingelligent Robot School 2, upgrade 1-2) es un complemento o actualización del kit coreano de Robótica Educativa RoboMaster 1, recomendado para jóvenes de educación Secundaria y Preparatoria del Sistema Educativo Mexicano.
Para Universidades también es muy útil, ya que el Kit 1 complementado con las actualizaciones 2 a 6, puede contar con una gran diversidad de piezas que permiten armar modelos avanzados de robots.
El Kit RoboMaster 2 tiene piezas adicionales que complementan al Kit RoboMaster 1, con lo que es posible hacer nuevos modelos de robots más complejos.

Kit Intermedio RoboMaster 2
El Kit de la Serie Intermedios RoboMaster 2 de Robo-Ed es el segundo de seis kits de robótica. El libro en papel o PDF tiene una serie de lecciones para la creación de robots con el que los estudiantes pueden aprender la teoría para la comprensión general de robots.

Contenido educativo del Kit RoboMaster 2
A continuación se muestran las 12 lecciones o partes en las que está dividido el libro del Kit RoboMaster 2.
![]() |
1. CaterpillarBot Caterpillar Ensamblado – Chip de control remoto – Operación – ¿Qué aprendiste? |
![]() |
2. KartBot Control remoto inalámbrico Ensamblado – Cómo operar – Método usando duplicación de chip R/C – Operación – ¿Qué aprendiste? |
![]() |
3. TurtleBot Seguidor de línea Ensamblado – Principio del seguidor de línea – Operación – ¿Qué aprendiste? |
![]() |
4. ServoBot Servo motor Ensamblado – Estableciendo el punto cero del servo motor – Chip de servo motor – Configurando el servo motor – Operación – ¿Qué aprendiste? |
![]() |
5. MotorcicleBot Historia de la motocicleta Ensamblado – Configurando el servo motor – Operación – ¿Qué aprendiste? |
![]() |
6. AvoidBot Batería Ensamblado – Cómo operar – Evitando el obstáculo – Operación – ¿Qué aprendiste? |
![]() |
7. FortressBot Catapulta Ensamblado – Configurando el servo motor – Operación – ¿Qué aprendiste? |
![]() |
8. FishingBot Robot pez Ensamblado – Configurando el servo motor – Operación – ¿Qué aprendiste? |
![]() |
9. AxeBot Humanoide Ensamblado – Configurando el servo motor – Operación – ¿Qué aprendiste? |
![]() |
10. GrabBot Mano robot Ensamblado – Configurando el servo motor – Operación – ¿Qué aprendiste? |
![]() |
11. WheelchairBot Productos de alta tecnología para adultos mayores y discapacitados Ensamblado – Configurando el servo motor – Operación – ¿Qué aprendiste? |
![]() |
12. BattleBot Robot de batalla ¿Qué aprendiste? |
Lista de partes
- 1 Transmisor
- 1 Receptor
- 1 Sensor IR
- 1 Servomotor
- 1 Guía para motor
- 2 Rueda para oruga
- 80 Piezas para oruga
- 4 Rueda guía para oruga
- 2 Eje 150mm
- 4 Cojinete
- 1 Porta pilas
- Armazones: 2 principal, 4 mediano, 4 de 8 agujeros, 2 de 5 agujeros, 4 de 4 agujeros, 6 de 3 agujeros
- Soportes: 4 de 1mm, 2 de 20mm, 5 de 35mm y 4 de 40mm
- Tornillos: 2 de 2.6×10, 50 de 3×6, 5 de 3×10
- 50 Tuercas
- 1 Tuerca con capa
- 6 Armazón L para motor
- 4 Armazón L2x1, 4 armazón L2x2, 4 armazón L2x6

Los kits de robótica RoboMaster los puedes adquirir en RobotSA, distribuidor autorizado de Robótica Educativa de México, S.A. de C.V. (Robo-Ed), importador de RoboMaster en la República Mexicana.
Enlaces relacionados
- Robótica Educativa en RobotSA
- Kit de Robótica Educativa RoboKids UARO 1 (Infantil)
- Kit de Robótica Educativa RoboKids 1 (Infantil)
- Kit de Robótica Educativa Robo-Ed JR1 (Principiantes)
- Kit de Robótica Educativa RoboMaster 1, RoboMaster 2, RoboMaster 3 (Intermedios)






























