martes, 21 de abril de 2026

REGLAS BASICAS EN COMPETENCIAS DE CARROS ROBOTICOS

 REGLAS BASICAS EN COMPETENCIAS DE CARROS ROBOTICOS

TRANSCRIBA EN SU CUADERNO

1. Mini Sumo (o Sumo)

El objetivo es sacar al oponente de un ring circular llamado Dohyo.

  • Dimensiones y Peso: El robot debe medir máximo 10x10 cm (en categoría Mini Sumo) y pesar no más de 500g. Una vez iniciada la ronda, el robot puede desplegarse y expandir sus dimensiones.

  • Tiempo de Inicio (Regla de los 5 segundos): Tras pulsar el botón de inicio, el robot debe permanecer totalmente inmóvil durante 5 segundos antes de comenzar a moverse. Esto es por seguridad y para dar tiempo a los jueces de retirarse.

  • Prohibición de Daño Directo: No se permite el uso de armas que arrojen proyectiles, pegamentos para fijarse al suelo, ni dispositivos que busquen destruir o quemar la electrónica del rival.

2. Carrera con Obstáculos

El robot debe completar un circuito sorteando elementos físicos en el menor tiempo posible.

  • Autonomía Total: El robot debe ser capaz de detectar y esquivar obstáculos (túneles, rampas, bloques) sin intervención humana. Si el operador toca el robot, suele haber una penalización de tiempo.

  • Límites de Salida: Si el robot se sale completamente de la pista delimitada al intentar esquivar un obstáculo, debe regresar al último punto de control (checkpoint) superado.

  • Dimensiones Máximas: El robot debe cumplir con medidas específicas (ej. 20x20 cm) para asegurar que físicamente puede pasar por los puentes o túneles diseñados en el circuito.

3. Seguidor de Línea (Clásico)

Consiste en seguir una línea negra sobre un fondo blanco (o viceversa) en un circuito con curvas.

  • Pérdida de Trayectoria: Si el robot pierde la línea por completo y no es capaz de recuperarla en un corto tramo o tiempo (generalmente 3-5 segundos), queda descalificado o debe reiniciar desde el principio.

  • No succión: En la categoría estándar, está prohibido el uso de turbinas o ventiladores de succión para aumentar el agarre (esto es exclusivo de la categoría "Velocistas").

  • Inicio por Sensor o Botón: El robot debe activarse mediante un botón de inicio o un sensor de luz. No puede ser empujado para darle velocidad inicial.

4. Velocistas (Pro)

Es una evolución del seguidor de línea, pero en pistas con curvas suaves diseñadas para altas velocidades.

  • Uso de Turbinas: A diferencia del seguidor clásico, aquí se permite (y es casi obligatorio) el uso de motores con turbinas de succión para generar "efecto suelo" y evitar que el robot salga disparado en las curvas.

  • Cronometraje Electrónico: Los robots deben tener una estructura que permita el corte de un haz de luz infrarroja en la meta para registrar tiempos de forma precisa (sensores de telemetría).

  • Ancho de la Pista: El robot no puede exceder el ancho de la pista (usualmente 25-30 cm) para evitar que sus componentes dañen los laterales o los sensores de cronometraje de la organización.

5. Soccer (Fútbol Robótico)

Dos equipos de robots compiten por meter una pelota en la portería contraria.

  • Captura de la Pelota: Un robot no puede "rodear" o "encerrar" la pelota de tal manera que sea invisible o inalcanzable para otros. Solo puede tener contacto con una fracción de la circunferencia del balón (regla del 20%).

  • Sensores de la Pelota: La pelota suele emitir luz infrarroja. Los robots deben ser autónomos y usar sensores IR para localizarla; no está permitido el control remoto (a menos que sea una categoría específica de teleoperados).

  • Zonas de Portería: Generalmente, se prohíbe que el robot "portero" permanezca inmóvil bloqueando toda la portería; debe haber una dinámica de juego que permita el paso del balón.


Nota adicional: En todas las categorías, una regla universal es que el robot debe llevar una placa de desarrollo (como Arduino) y una fuente de alimentación propia (baterías LiPo suelen ser las más comunes).

lunes, 13 de abril de 2026

EJERCICOS RESUELTOS DE LISTAS TUPLAS Y MATRICES

1. LISTAS – Promedio de materias

Objetivo:

Calcular el promedio de una lista de notas y determinar si el estudiante aprueba o reprueba.

Código:

notas = [3.5, 4.0, 2.8, 3.2, 4.5]

# Calcular promedio
promedio = sum(notas) / len(notas)

print("Promedio:", promedio)

# Verificar si aprueba
if promedio >= 3.5:
print("El estudiante aprueba")
else:
print("El estudiante reprueba")

Explicación:

  • Se crea una lista llamada notas con cinco calificaciones.
  • La función sum(notas) suma todas las notas.
  • La función len(notas) cuenta cuántas notas hay.
  • El promedio se obtiene dividiendo la suma entre la cantidad de notas.
  • Luego se usa una condición para verificar si el promedio es mayor o igual a 3.5.

Resultado esperado:

Promedio: 3.6
El estudiante aprueba

2. TUPLAS Y LISTAS – Registro de estudiantes

Objetivo:

Guardar estudiantes y sus notas usando tuplas dentro de una lista, y determinar quién aprueba o reprueba.

Código:

estudiantes = [
("Ana", 3.5),
("Luis", 2.8),
("Carlos", 4.2)
]

for estudiante in estudiantes:
nombre = estudiante[0]
nota = estudiante[1]

print("Estudiante:", nombre)

if nota >= 3.5:
print("Aprueba")
else:
print("Reprueba")

print()

Explicación:

  • Se crea una lista llamada estudiantes.
  • Cada estudiante se guarda como una tupla con:
    • el nombre
    • la nota
  • Con un ciclo for, se recorre cada estudiante.
  • estudiante[0] obtiene el nombre.
  • estudiante[1] obtiene la nota.
  • Se evalúa si la nota es mayor o igual a 3.5.

Resultado esperado:

Estudiante: Ana
Aprueba

Estudiante: Luis
Reprueba

Estudiante: Carlos
Aprueba

3. MATRICES – Promedio por estudiante

Objetivo:

Calcular el promedio de varios estudiantes usando una matriz, donde cada fila representa las notas de un estudiante.

Código:

notas = [
[3.0, 4.0, 3.5],
[2.5, 3.0, 2.8],
[4.5, 4.0, 4.8]
]

# Recorrer cada estudiante
for i in range(len(notas)):
suma = sum(notas[i])
promedio = suma / len(notas[i])

print("Estudiante", i + 1)
print("Promedio:", promedio)

if promedio >= 3.0:
print("Aprueba")
else:
print("Reprueba")

print()

Explicación:

  • Se crea una matriz, donde cada fila contiene las notas de un estudiante.
  • notas[i] representa las notas del estudiante actual.
  • Se calcula la suma y el promedio de cada fila.
  • Luego se verifica si el promedio es mayor o igual a 3.0.
  • i + 1 se usa para mostrar el número del estudiante comenzando desde 1.

Resultado esperado:

Estudiante 1
Promedio: 3.5
Aprueba

Estudiante 2
Promedio: 2.7666666666666666
Reprueba

Estudiante 3
Promedio: 4.433333333333334
Aprueba

Conclusión

Estos ejercicios permiten comprender cómo usar:

  • Listas para almacenar conjuntos de datos.
  • Tuplas para guardar información fija como nombre y nota.
  • Matrices para manejar múltiples registros de notas.

Además, se refuerzan conceptos como:

  • sum()
  • len()
  • ciclos for
  • estructuras condicionales if

miércoles, 25 de marzo de 2026

LISTAS - TUPLAS - VECTORES - MATRICES

 

LISTAS - TUPLAS - VECTORES - MATRICES


1. Las Listas (list)

Las listas son colecciones de elementos ordenadas y mutables (modificables). Son como una caja donde puedes guardar objetos, quitarlos, cambiarlos o añadir nuevos en cualquier momento. Se definen utilizando corchetes [].

  • Características: Pueden contener diferentes tipos de datos (números, textos, otras listas) y su tamaño puede variar durante la ejecución del programa.

Ejemplo:

frutas = ["manzana", "pera", "plátano"]
frutas.append("naranja")  # Añade un elemento
frutas[0] = "fresa"       # Cambia el primer elemento
print(frutas)             # Resultado: ['fresa', 'pera', 'plátano', 'naranja']

2. Las Tuplas (tuple)

Las tuplas son colecciones ordenadas e inmutables. Una vez que creas una tupla, no puedes cambiar sus elementos, ni añadir ni eliminar nada. Se definen utilizando paréntesis ().

  • Características: Son más rápidas que las listas y se usan para proteger datos que no deben cambiar (como coordenadas geográficas o fechas).

Ejemplo:

punto_gps = (10.5, -45.2)
# punto_gps[0] = 12.0  <-- Esto daría error porque no se pueden cambiar
print(punto_gps[0])    # Resultado: 10.5

3. Vectores y Matrices (Listas anidadas)

En Python "puro" (sin librerías externas), los vectores se representan como listas simples, y las matrices se representan como listas de listas.

  • Vector: Una lista de números (ej. [1, 2, 3]).

  • Matriz: Una estructura de filas y columnas. Para acceder a un dato, necesitas dos índices: el de la fila y el de la columna.

Ejemplo de Matriz (2x2):

matriz = [
    [1, 2],  # Fila 0
    [3, 4]   # Fila 1
]
# Para acceder al número 4:
print(matriz[1][1]) # Fila 1, Columna 1

Ejercicios Sencillos

Aquí tienes un ejercicio básico para cada concepto:

Ejercicio de Listas

Crea una lista llamada colores con tres colores. Luego, cambia el segundo color por "amarillo" e imprime la lista completa.

Ejercicio de Tuplas

Crea una tupla llamada persona que contenga un nombre (string) y una edad (número). Imprime solo la edad accediendo a su posición.

Ejercicio de Matrices (Vectores)

Crea una matriz de 2x2 con los números que quieras. Imprime el primer número de la segunda fila.


Soluciones (para que verifiques):

# Lista
colores = ["rojo", "azul", "verde"]
colores[1] = "amarillo"
print(colores)

# Tupla
persona = ("Juan", 25)
print(persona[1])

# Matriz
m = [[10, 20], [30, 40]]
print(m[1][0])

martes, 24 de marzo de 2026

DIFERENTES TIPOS DE CARROS ROBOTICOS EN ARDUINO

 

DIFERENTES TIPOS DE CARROS 

ROBOTICOS EN ARDUINO


1. Robot Seguidor de Línea (Line Follower)

Es el proyecto base de la robótica móvil. El robot debe seguir un camino marcado (generalmente una línea negra sobre fondo blanco) de forma autónoma.

  • Componentes clave: Sensores infrarrojos (TCRT5000 o arreglos QTR), chasis diferencial, driver de motores (L298N o TB6612FNG).

  • Preguntas para argumentar:

    1. Lógica de Control: ¿Qué ventajas ofrece un algoritmo de Control PID (Proporcional, Integral, Derivativo) frente a una lógica simple de "si/entonces" (encendido/apagado) en las curvas?

    2. Disposición de Sensores: ¿Cómo influye la distancia entre los sensores y el eje de las ruedas en la estabilidad del robot? Argumenta si es mejor tener los sensores muy adelante o cerca del centro.

    3. Contraste: ¿Por qué se utilizan sensores infrarrojos para esta tarea y qué problemas de lectura podrían surgir si la competencia se realiza bajo luz solar directa o focos potentes?

2. Robot Evasor de Obstáculos (Obstacle Avoidance)

Un robot diseñado para navegar en entornos desconocidos detectando y rodeando objetos sin chocar.

  • Componentes clave: Sensor de ultrasonido (HC-SR04), servomotor (para girar el sensor), chasis.

  • Preguntas para argumentar:

    1. Tipo de Sensor: Compara el sensor de ultrasonido con uno de infrarrojos (Sharp). ¿En qué escenarios (materiales del obstáculo, distancias) es superior uno sobre el otro?

    2. Estrategia de Giro: Si el robot detecta un obstáculo de frente, ¿cuál es la lógica más eficiente para decidir si girar a la derecha o a la izquierda? Argumenta tu respuesta basándote en la optimización del tiempo.

    3. Limitaciones: ¿Cómo afecta la velocidad del robot a la precisión del sensor de ultrasonido? Explica qué sucedería si el robot se mueve más rápido de lo que el sonido tarda en rebotar y ser procesado.

3. Robot Sumo (Autónomo o RC)

El objetivo es sacar al oponente de un ring circular (Dohyo). Combina fuerza, detección de bordes y detección del oponente.

  • Componentes clave: Sensores de distancia (infrarrojos de largo alcance), sensores de línea (para no salirse), motores de alto torque, peso adicional.

  • Preguntas para argumentar:

    1. Diseño Mecánico: ¿Por qué la mayoría de los robots Sumo tienen una "pala" o rampa frontal que llega hasta el suelo? Argumenta la importancia del centro de gravedad y la fricción en este diseño.

    2. Estrategia de Ataque: ¿Es mejor que el robot busque al oponente moviéndose en círculos o que se quede quieto esperando a detectar algo? Justifica tu táctica defensiva vs. ofensiva.

    3. Tracción: Argumenta por qué en esta categoría se prefieren llantas de goma blanda o silicona de alto agarre sobre llantas de plástico duro, y cómo influye el peso total del robot en la victoria.

4. Robot Velocista (Speedster)

Es una evolución del seguidor de línea, pero diseñado para recorrer un circuito en el menor tiempo posible.

  • Componentes clave: Motores de altas RPM, micro-motores con piñonería metálica, turbinas de succión (opcionales para mayor agarre), baterías LiPo de alta descarga.

  • Preguntas para argumentar:

    1. Aerodinámica y Peso: ¿De qué manera el peso total del robot afecta la inercia en las curvas a alta velocidad? Argumenta por qué los velocistas suelen ser mucho más pequeños y bajos que otros robots.

    2. Adherencia: En competiciones profesionales se usan "turbinas" para succionar aire debajo del chasis. Explica el principio físico detrás de esto y por qué permite tomar curvas más rápido.

    3. Programación de Curvas: ¿Cómo debería cambiar el comportamiento de los motores al detectar una línea recta larga frente a una curva cerrada? Argumenta el uso de perfiles de velocidad en el código.

5. Robot Soccer (Fútbol Robótico)

Dos o más robots compiten por llevar una pelota al arco contrario.[2] Suele ser controlado por Bluetooth o ser autónomo.

  • Componentes clave: Módulo Bluetooth (HC-05), chasis omnidireccional (opcional), mecanismo de "disparo" o solenoide.

  • Preguntas para argumentar:

    1. Tracción Omnidireccional: ¿Qué ventajas tácticas ofrece un robot con ruedas Mecanum o ruedas omni frente a uno de tracción diferencial para jugar fútbol?

    2. Mecanismo de Disparo: Argumenta cuál es el método más efectivo para golpear la pelota (un brazo giratorio, un pistón, o simplemente la inercia del robot). ¿Cuál ofrece mayor control y cuál mayor potencia?

    3. Comunicación: En una modalidad controlada por smartphone, ¿cómo afecta el "lag" o retraso de la señal Bluetooth al desempeño del jugador? Sugiere una forma de programar el robot para que sea más "suave" en sus movimientos.

REGLAS BASICAS EN COMPETENCIAS DE CARROS ROBOTICOS

 REGLAS BASICAS EN COMPETENCIAS DE CARROS ROBOTICOS TRANSCRIBA EN SU CUADERNO 1. Mini Sumo (o Sumo) El objetivo es sacar al oponente de un r...