lunes, 1 de junio de 2026

MI PRIMERA APP EN PYTHON CON FLASK

 

Mini Proyecto: “Muro de Mensajes del Curso”

Los estudiantes crean una pequeña App de red social tipo página web donde cualquier usuario puede escribir un mensaje y este aparece publicado en pantalla.

Estructura del proyecto

mini_flask/

── venv/ Entorno virtual (se crea automáticamente), espere instrucciones…

── app.py Programa principal Flask, es el programa servidor

── requirements.txt Dependencias del proyecto

── static/ Archivos estáticos

└── estilos.css

── templates/ Plantillas HTML

└── index.html ←paginas clientes que se conectan al servidor de Flask (app.py)

└── README.md ← (Opcional) descripción del proyecto

 

1.      EN SU USB CREE UNA CARPETA CON EL NOMBRE DE: mini_flask

2.      HAGA CLIC DERECHO SOBRE DICHA CARPETA Y HAGA CLIC EN: Abrir con Code

3.      ACTIVE LA TERMINAL DE VSCODE – Atentos a las explicaciones del profesor

4.      CREACION Y ACTIVACION DEL ENTORNO VIRTUAL – Siga las indicaciones del profesor

A.      Crear el entorno virtual con alguno de los siguientes comandos: py -3.8 -m venv venv   /  python -m venv venv

B.      Activacion del entorno:  venv\Scripts\activate

C.      Debe aparecerle en la terminal algo parecido a: (venv) C:\mini_flask>

5.      Instalar Flask

En la terminal escriba y haga ENTER: pip install Flask

Verifique que ha quedado instalado: pip show Flask

6.      INSTALANDO LAS PLANTILLAS JINJA2

En la terminal escribo y hago ENTER: pip install Jinja2==3.1.6

Verifico que han quedado instaladas: pip show Jinja2

7.      CONSULTANDO QUE LIBRERIAS TENGO INSTALADAS ESCRIBES: pip list  Presionas ENTER

 

CODIFICACION Y CREACION DE ARCHIVOS

Atentos a las explicaciones del profesor…

1.      CREANDO EL SERVIDOR

Código principal (app.py) programa servidor

EN EL DIRECTORIO PRINCIPAL (mini_flask) PROCEDA A CREAR EL ARCHIVO: app.py COPIE Y PEGUE EN ESE ARCHIVO EL SIGUIENTE CODIGO, Atentos a las explicaciones

from flask import Flask, render_template, request, redirect

app = Flask(__name__)

mensajes = []

@app.route("/", methods=["GET", "POST"])
def inicio():

    if request.method == "POST":
        texto = request.form["mensaje"]

        if texto != "":
            mensajes.append(texto)

        return redirect("/")

    return render_template("index.html", mensajes=mensajes)

if __name__ == "__main__":
    app.run(debug=True)

 

TAREA EN CLASE

INVESTIGAR LOS METODOS POST Y GET EN HTML Y EN FLASK

 

2.      CREANDO LA HOJA DE ESTILO (CSS)

EN LA RUTA “static” CREAMOS EL ARCHIVO: estilos.css  COPIAMOS EL SIGUIENTE CODIGO EN DICHO ARCHIVO

body {
    font-family: Arial, sans-serif;
    width: 80%;
    margin: auto;
}

h1 {
    color: navy;
}

input {
    padding: 8px;
}

button {
    padding: 8px;
    cursor: pointer;
}

.mensaje {
    background-color: #f0f0f0;
    padding: 10px;
    margin-top: 5px;
    border-radius: 5px;
}

 

3.      CREANDO EL CLIENTE

EN LA CARPETA “templates” CREAMOS EL ARCHIVO: index.html COPIAMOS DENTRO DE ESE ARCHIVO EL SIGUIENTE CODIGO:

<!DOCTYPE html>
<html>
<head>
<title>Chat del Salón</title>

<link rel="stylesheet"
href="{{ url_for('static', filename='estilos.css') }}">
</head>
<body>

    <h1>Muro del Curso</h1>

    <form method="POST">

        <input type="text" name="mensaje" placeholder="Escribe algo">

        <button type="submit">
            Enviar
        </button>

    </form>

    <hr>

    <h2>Mensajes:</h2>

    {% for mensaje in mensajes %}

        <p>- {{ mensaje }}</p>

    {% endfor %}

</body>
</html>

 

4.      EJECUCION DEL APP

PARA EJECUTAR LA APP DEBE IR A LA TERMINAL Y ESCRIBIR: python app.py PRESIONE ENTER, APARECERA UNA DIRECCION IP POR DEFECTO, LA DE SU COMPUTADOR: http://127.0.0.1:5000  DEBE PROCEDER DE LA SIGUIENTE FORMA: MANTENGA PERSIONADA LA TECLA : CTRL (LA DEL LADO IZQUIERDO DEL TECLADO), Y SIN SOLTAR ESA TECLA ENTONCES HAGA CLIC SOBRE LA DIRECCON IP (http://127.0.0.1:5000).
 
SE ABRIRA SU NAVEGADOR CON LA APP DESPLEGADA.
 
 
INVESTIGAR LOS SIGUIENTES CONCEPTOS:

·         QUE ES UN DECORADOR EN PYTHON (FLASK)

·         QUE ES FRONTED

·         QUE ES BACKEND

·         PARA QUE SIRVE: redirect("/") EN FLASK

·         QUE HACE render_template("index.html") EN FLASK

·         PARA QUE SIRVE: app.run(host="0.0.0.0") EN FLASK

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.

 


MI PRIMERA APP EN PYTHON CON FLASK

  Mini Proyecto: “Muro de Mensajes del Curso” Los estudiantes crean una pequeña App de red social tipo página web donde cualquier usuario ...