martes, 26 de mayo de 2026

LA FORMULA 1 ARDUINO

La Fórmula 1 de la Robótica Autónoma

Las competencias de carros robots con Arduino han evolucionado mucho más allá de simples “carritos evita-obstáculos”. Hoy pueden verse como una mezcla entre ingeniería mecánica, inteligencia artificial, automovilismo y deportes electrónicos físicos.

Una teoría interesante es que estas competencias representan una “versión temprana” de cómo las sociedades entrenarán sistemas autónomos reales del futuro: vehículos, drones, logística y ciudades inteligentes.

Teoría:

Así como la Formula One impulsó avances en aerodinámica, neumáticos y telemetría para los autos reales, las competencias de robots Arduino podrían convertirse en el laboratorio global de la autonomía accesible.

Arduino tiene una ventaja enorme:

  • bajo costo,
  • facilidad de programación,
  • comunidad mundial,
  • sensores baratos,
  • integración con IA y visión artificial.

Eso hace que estudiantes, colegios y makers puedan experimentar tecnologías que antes solo existían en universidades o empresas gigantes.


Categorías principales de competencias de carros robots

1. Robots seguidores de línea (Line Follower)

La categoría más famosa.

 

Objetivo

Seguir una línea negra o blanca a máxima velocidad sin salirse.

Tecnologías usadas

  • Sensores infrarrojos
  • Control PID
  • Motores DC
  • Encoders
  • Optimización de peso y tracción

Nivel profesional

Los robots más avanzados “memorizan” el circuito y ajustan velocidad en curvas como pilotos reales.


2. Mini Sumo Robot

Inspirado en el sumo japonés.

 

Objetivo

Empujar al rival fuera del ring.

Estrategias

  • Detectar bordes del dojo
  • Sensores ultrasónicos
  • Sensores IR de proximidad
  • Ataques rápidos
  • Diseño de centro de gravedad bajo

Teoría interesante

Aquí aparece algo parecido a “instintos robóticos”:

  • búsqueda,
  • ataque,
  • evasión,
  • posicionamiento.

Es casi una forma básica de comportamiento autónomo.


3. Maze Solver (Laberinto)

Competencia inspirada en el famoso Micromouse.


Objetivo

Encontrar la salida del laberinto en el menor tiempo posible.

Algoritmos usados

  • Flood Fill
  • DFS
  • BFS
  • Mapeo de memoria
  • Optimización de rutas

Importancia

Es una introducción real a:

  • navegación autónoma,
  • SLAM,
  • lógica de vehículos autónomos.

4. Carreras de velocidad autónoma

Una especie de NASCAR robótica.

 

Objetivo

Completar pistas complejas a máxima velocidad.

Tecnologías modernas

  • Cámaras
  • ESP32-CAM
  • IA básica
  • Visión computacional
  • Telemetría WiFi

Futuro

Esta categoría podría convertirse en el equivalente amateur de:

  • taxis autónomos,
  • carreras IA,
  • logística automatizada.

5. Todo Terreno / Rescue Robot

Robots de exploración y rescate.


Objetivo

Superar obstáculos y rescatar objetos o víctimas simuladas.

Desafíos

  • rampas,
  • arena,
  • túneles,
  • sensores térmicos,
  • cámaras,
  • comunicación inalámbrica.

Categorías avanzadas emergentes

IA + Arduino híbrido

Con:

  • OpenAI APIs,
  • visión artificial,
  • TinyML,
  • ESP32,
  • Raspberry Pi.

Los robots ahora pueden:

  • reconocer objetos,
  • tomar decisiones,
  • aprender patrones,
  • competir dinámicamente.

Competencias famosas en el mundo

RoboCup

Competencias de robótica autónoma con múltiples categorías.

Micromouse Competition

Histórica competencia de robots laberinto.

FIRST Robotics Competition

Una de las ligas educativas más grandes del mundo.

World Robot Olympiad

Muy popular en colegios y universidades.


Teoría futurista: ¿Por qué estas competencias son importantes?

Estas competencias podrían ser vistas como:

  • simuladores reducidos de ciudades inteligentes,
  • entrenamiento temprano de IA física,
  • incubadoras de ingenieros de automatización,
  • “videojuegos reales” donde el código tiene consecuencias físicas.

En 20–30 años:

  • autos autónomos,
  • drones repartidores,
  • robots industriales,
  • agricultura automática,
  • seguridad robótica,

podrían usar principios nacidos en pequeños robots Arduino escolares.


Categorías que probablemente dominarán el futuro

1. Swarm Racing

Muchos robots cooperando como enjambres.

2. IA Evolutiva

Robots que modifican su estrategia en tiempo real.

3. Vision-Based Racing

Sin sensores de línea: solo cámaras e IA.

4. Cyber-Physical eSports

Competencias transmitidas online donde el público modifica obstáculos en vivo.


Idea poderosa para colegios

Tu colegio podría organizar una liga con niveles:

Nivel

Categoría

Básico

Sigue líneas

Intermedio

Mini sumo

Avanzado

Laberinto

Experto

IA + visión

Profesional

Carrera autónoma completa

Con tus conocimientos de Flask, ESP8266 y servidores, incluso podrías crear:

  • ranking online,
  • telemetría en tiempo real,
  • streaming de sensores,
  • estadísticas por piloto IA,
  • replays de carreras,
  • campeonatos escolares conectados a internet.

 


martes, 12 de mayo de 2026

MONITOR SERIAL

 MONITOR SERIAL


INSTRUCCIONES:

1. ENCIENDA EL COMPUTADOR

2. ABRA EL IDE DE ARDUINO

3. NEW SKETCH (Nuevo Archivo)

4. COPIA Y PEGA EL SIGUIENTE CODIGO EN ESE NUEVO SKETCH

String textoRecibido = "";

void setup() {
 
  // Inicia la comunicación serial
  Serial.begin(9600);

  // Espera un momento
  delay(1000);

  Serial.println("=== SISTEMA INICIADO ===");
  Serial.println("Escribe un comando:");
  Serial.println("LED");
  Serial.println("HOLA");
  Serial.println("INFO");
  Serial.println();
}

void loop() {

  // Verifica si llegaron datos
  while (Serial.available() > 0) {

    // Lee un caracter
    char c = Serial.read();

    // Si presionan ENTER
    if (c == '\n') {

      textoRecibido.trim();

      Serial.print("Comando recibido: ");
      Serial.println(textoRecibido);

      // Comparaciones
      if (textoRecibido == "HOLA") {

        Serial.println("Hola humano :)");

      }
      else if (textoRecibido == "INFO") {

        Serial.println("Arduino Uno R3");
        Serial.println("Puerto serial funcionando correctamente");

      }
      else if (textoRecibido == "LED") {

        Serial.println("El LED interno parpadeara");

        for (int i = 0; i < 5; i++) {

          digitalWrite(LED_BUILTIN, HIGH);
          delay(200);

          digitalWrite(LED_BUILTIN, LOW);
          delay(200);
        }

        Serial.println("Fin del parpadeo");
      }
      else {

        Serial.println("Comando no reconocido");

      }

      Serial.println();
      textoRecibido = "";
    }
    else {

      // Guarda el caracter recibido
      textoRecibido += c;

    }
  }
}

5. ESPERA INSTRUCCIONES DEL PROFESOR

lunes, 11 de mayo de 2026

FRAMEWORKS EN PYTHON

 FRAMEWORK EN PYTHON

INVESTIGAR Y CONSIGNAR EN EL CUARDERNO - PREPARARSE PARA EVALAUCION TEORICA Y REVISION DE CUADERNO

 Concepto de Framework

  1. ¿Qué es un framework en programación?
  2. ¿Para qué sirve un framework?
  3. ¿Qué ventajas ofrece usar un framework en lugar de programar todo desde cero?
  4. ¿Qué diferencias existen entre un framework y una librería?
  5. Investiga al menos 3 frameworks populares de Python.
  6. ¿Qué tipos de aplicaciones pueden desarrollarse usando frameworks?

 Introducción a Flask

  1. ¿Qué es Flask?
  2. ¿Quién creó Flask?
  3. ¿Por qué Flask es considerado un microframework?
  4. ¿Qué características hacen popular a Flask?
  5. ¿Qué tipos de proyectos pueden desarrollarse con Flask?
  6. ¿Qué ventajas tiene Flask para estudiantes que están comenzando?
  7. ¿Qué diferencias existen entre Flask y Django?
  8. ¿Qué significa que Flask sea “minimalista”?
  9. ¿Qué necesita Flask para mostrar una página web?
  10. ¿Qué relación existe entre Flask, HTML y el navegador?

lunes, 4 de mayo de 2026

Comandos básicos en Arduino

 

Comandos básicos en Arduino

Arduino se programa en un lenguaje basado en C/C++. Sus instrucciones permiten controlar hardware como sensores, luces y motores. A continuación se describen algunos comandos fundamentales:


1. pinMode()

Este comando se usa para definir si un pin funciona como entrada o salida.

  • INPUT: recibe datos (ej: botón)
  • OUTPUT: envía datos (ej: LED)

Ejemplo:

pinMode(13, OUTPUT);

👉 Indica que el pin 13 será usado para controlar un dispositivo (como un LED).


2. digitalWrite()

Permite escribir un valor digital en un pin (encender o apagar).

  • HIGH: encendido (5V)
  • LOW: apagado (0V)

Ejemplo:

digitalWrite(13, HIGH);

👉 Enciende el LED conectado al pin 13.


3. digitalRead()

Lee el estado de un pin digital (botón, sensor, etc.).

Ejemplo:

int estado = digitalRead(2);

👉 Guarda si el pin está en HIGH o LOW.


4. analogRead()

Lee valores analógicos (de 0 a 1023), útil para sensores como potenciómetros.

Ejemplo:

int valor = analogRead(A0);

👉 Lee el valor del pin analógico A0.


5. analogWrite()

Envía una señal PWM (simula salida analógica), valores entre 0 y 255.

Ejemplo:

analogWrite(9, 128);

👉 Controla la intensidad de un LED (brillo medio).


6. delay()

Detiene el programa por un tiempo en milisegundos.

Ejemplo:

delay(1000);

👉 Espera 1 segundo.


7. Serial.begin()

Inicializa la comunicación serial (para enviar datos al computador).

Ejemplo:

Serial.begin(9600);

👉 Configura la velocidad de comunicación.


8. Serial.println()

Envía datos al monitor serial y hace un salto de línea.

Ejemplo:

Serial.println("Hola");

👉 Muestra texto en pantalla.


🧠 Conclusión

Estos comandos son la base para cualquier proyecto en Arduino. Permiten:

  • Controlar entradas y salidas
  • Leer sensores
  • Mostrar información
  • Manejar tiempos

miércoles, 29 de abril de 2026

INICIANDO CON ARDUINO UNO R3

 INICIANDO CON ARDUINO UNO R3

1. Conceptos básicos que deben aprender primero

Antes de programar el carro, deben entender estas ideas:

Entradas

Son los sensores que “leen” el entorno.

Ejemplo:

  • Sensor ultrasónico → mide distancia.
  • Sensor infrarrojo → detecta obstáculos.

digitalRead(pin);
analogRead(pin);


Salidas

Son los dispositivos que “actúan”.

Ejemplo:

  • Motores
  • Luces LED
  • Zumbador

digitalWrite(pin, HIGH);
digitalWrite(pin, LOW);
analogWrite(pin, velocidad);


Variables

Guardan datos.

int distancia = 0;


Condicionales

Permiten decidir.

if (distancia < 20) {
   detener();
}


Funciones

Sirven para organizar acciones.

void avanzar() {
   // código
}


2. Estructura básica de Arduino

Todo programa Arduino tiene dos partes:

void setup() {
   // Se ejecuta una sola vez
}

void loop() {
   // Se repite continuamente
}

Explicación sencilla para niños:

  • setup() = preparación inicial.
  • loop() = acciones repetidas del robot.

3. Primeros comandos esenciales


pinMode()

Define si un pin será entrada o salida.

pinMode(8, OUTPUT);
pinMode(7, INPUT);

Ejemplo:

  • Motor = salida
  • Sensor = entrada

digitalWrite()

Enciende o apaga un pin.

digitalWrite(8, HIGH); // encender
digitalWrite(8, LOW);  // apagar


analogWrite()

Controla velocidad en motores.

analogWrite(5, 150);

Valores:

  • 0 = apagado
  • 255 = máxima velocidad

delay()

Espera un tiempo.

delay(1000);

1000 = 1 segundo.

 


4. Funciones básicas del carro robot

Estas funciones son ideales para enseñar.


Avanzar

void avanzar() {
  digitalWrite(8, HIGH);
  digitalWrite(9, LOW);
  digitalWrite(10, HIGH);
  digitalWrite(11, LOW);
}


Detener

void detener() {
  digitalWrite(8, LOW);
  digitalWrite(9, LOW);
  digitalWrite(10, LOW);
  digitalWrite(11, LOW);
}


Girar

void girarDerecha() {
  digitalWrite(8, HIGH);
  digitalWrite(9, LOW);
  digitalWrite(10, LOW);
  digitalWrite(11, HIGH);
}


5. Primer programa simple del carro evasor

Este ejemplo enseña:

  • leer distancia
  • avanzar
  • detener
  • girar

int distancia = 0;

void setup() {
  pinMode(8, OUTPUT);
  pinMode(9, OUTPUT);
  pinMode(10, OUTPUT);
  pinMode(11, OUTPUT);
}

void loop() {

  distancia = 15; // ejemplo fijo

  if (distancia > 20) {
    avanzar();
  } else {
    detener();
    delay(500);
    girarDerecha();
    delay(500);
  }
}

void avanzar() {
  digitalWrite(8, HIGH);
  digitalWrite(9, LOW);
  digitalWrite(10, HIGH);
  digitalWrite(11, LOW);
}

void detener() {
  digitalWrite(8, LOW);
  digitalWrite(9, LOW);
  digitalWrite(10, LOW);
  digitalWrite(11, LOW);
}

void girarDerecha() {
  digitalWrite(8, HIGH);
  digitalWrite(9, LOW);
  digitalWrite(10, LOW);
  digitalWrite(11, HIGH);
}

 


LA FORMULA 1 ARDUINO

La Fórmula 1 de la Robótica Autónoma Las competencias de carros robots con Arduino han evolucionado mucho más allá de simples “carritos ev...