martes, 14 de julio de 2026

CARROS - SENSOR DE OBSTACULOS HC-SR504

 

Sensor Ultrasónico HC-SR04

El HC-SR04 es un sensor electrónico diseñado para medir distancias sin necesidad de contacto físico. Utiliza ondas ultrasónicas de alta frecuencia (aproximadamente 40 kHz), las cuales son inaudibles para el oído humano. Es uno de los sensores más utilizados en proyectos de robótica, automatización y sistemas de navegación debido a su bajo costo, facilidad de uso y buena precisión.




¿Cómo funciona?

El sensor posee dos transductores:

  • TRIG (Transmisor): Emite un pulso de ultrasonido.
  • ECHO (Receptor): Detecta el eco cuando las ondas rebotan en un objeto.

El proceso de medición ocurre de la siguiente manera:

  1. El Arduino envía un pulso de 10 microsegundos al pin TRIG.
  2. El HC-SR04 emite un tren de 8 pulsos ultrasónicos de 40 kHz.
  3. Las ondas viajan por el aire hasta encontrar un objeto.
  4. Las ondas rebotan y regresan al sensor.
  5. El pin ECHO permanece en nivel alto durante el tiempo que tarda el sonido en ir y regresar.
  6. El Arduino mide ese tiempo y calcula la distancia utilizando la velocidad del sonido.


Fórmula utilizada

La distancia se calcula mediante la siguiente expresión:

Distancia=Tiempo×Velocidad del sonido2\text{Distancia} = \frac{\text{Tiempo} \times \text{Velocidad del sonido}}{2}

Donde:

  • Velocidad del sonido ≈ 343 m/s (0.0343 cm/μs).
  • Se divide entre 2 porque el sonido realiza un viaje de ida y vuelta.

Aplicaciones

El HC-SR04 es ampliamente utilizado en:

  • Robots móviles para evitar obstáculos.
  • Vehículos autónomos.
  • Sistemas de estacionamiento asistido.
  • Medición del nivel de agua en tanques.
  • Automatización de puertas.
  • Alarmas y sistemas de seguridad.
  • Proyectos educativos de Arduino y electrónica.
  • Medición de distancia en laboratorios y prototipos.

Ventajas

  • Bajo costo.
  • Fácil integración con Arduino y otros microcontroladores.
  • Buena precisión para proyectos educativos.
  • No requiere contacto con el objeto.
  • Bajo consumo de energía.

Limitaciones

  • La superficie del objeto influye en la medición; materiales blandos o absorbentes pueden reflejar menos sonido.
  • El rango útil disminuye con objetos muy pequeños o inclinados.
  • La temperatura y la humedad pueden afectar ligeramente la velocidad del sonido y, por tanto, la precisión.
  • No funciona correctamente en el vacío, ya que el sonido necesita un medio (como el aire) para propagarse.

Conclusión

El HC-SR04 es un sensor de distancia basado en el principio del eco ultrasónico, similar al funcionamiento del sonar utilizado por murciélagos y submarinos. Su facilidad de programación, bajo costo y precisión lo convierten en una excelente opción para proyectos de robótica, automatización y aprendizaje de sistemas embebidos con Arduino.


CODIGO A EJECUTAR EN CLASE

SIGA LAS INSTRUCCIONES DEL PROFESOR

// ===============================

// Prueba Sensor Ultrasónico HC-SR04

// Arduino UNO / Nano / Mega

// ===============================


const int TRIG = 9;

const int ECHO = 10;


long duracion;

float distancia;


void setup() {

  Serial.begin(9600);


  pinMode(TRIG, OUTPUT);

  pinMode(ECHO, INPUT);


  digitalWrite(TRIG, LOW);


  Serial.println("=== PRUEBA HC-SR04 ===");

}


void loop() {


  // Generar pulso de disparo

  digitalWrite(TRIG, LOW);

  delayMicroseconds(2);


  digitalWrite(TRIG, HIGH);

  delayMicroseconds(10);


  digitalWrite(TRIG, LOW);


  // Leer el tiempo del eco

  duracion = pulseIn(ECHO, HIGH);


  // Calcular distancia en centímetros

  distancia = duracion * 0.0343 / 2;


  Serial.print("Distancia: ");

  Serial.print(distancia);

  Serial.println(" cm");


  delay(500);

}

martes, 9 de junio de 2026

PREGUNTAS 06-08

 PREGUNTAS 06-08


1. ¿POR QUÉ SE CONSIDERA QUE LAS COMPETENCIAS DE CARROS ROBOTS 

ARDUINO SON UNA VERSIÓN TEMPRANA DE LOS SISTEMAS AUTÓNOMOS DEL FUTURO? 

2. ¿QUÉ VENTAJAS OFRECE ARDUINO QUE PERMITEN A ESTUDIANTES Y COLEGIOS 

EXPERIMENTAR CON TECNOLOGÍAS AVANZADAS? 

3. ¿CUÁL ES EL OBJETIVO PRINCIPAL DE UN ROBOT SEGUIDOR DE LÍNEA (LINE 

FOLLOWER)? 

4. MENCIONA TRES TECNOLOGÍAS UTILIZADAS EN LOS ROBOTS SEGUIDORES DE LÍNEA. 

5. ¿EN QUÉ CONSISTE LA COMPETENCIA MINI SUMO ROBOT Y CUÁL ES SU OBJETIVO 

PRINCIPAL? 

6. ¿QUÉ TIPOS DE COMPORTAMIENTOS AUTÓNOMOS BÁSICOS PUEDEN OBSERVARSE EN LOS 

ROBOTS MINI SUMO? 

7. ¿CUÁL ES EL PROPÓSITO DE UN ROBOT MAZE SOLVER (LABERINTO)? 

8. ¿QUÉ ALGORITMOS SE UTILIZAN COMÚNMENTE EN LOS ROBOTS MAZE SOLVER PARA 

ENCONTRAR LA SALIDA DE UN LABERINTO?

9. ¿QUÉ FUNCIÓN CUMPLE EL MONITOR SERIAL EN ARDUINO Y PARA QUÉ SE UTILIZA 

DURANTE EL DESARROLLO DE PROGRAMAS?

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 LOS SIGUIENTES COMANDOS:

Escriba:
venv\Scripts\activate ENTER espere unos segundos a que aparezcan algunos msgs


Escriba:
python app.py 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.

 


CARROS - SENSOR DE OBSTACULOS HC-SR504

  Sensor Ultrasónico HC-SR04 El HC-SR04 es un sensor electrónico diseñado para medir distancias sin necesidad de contacto físico . Utiliza ...