martes, 10 de febrero de 2026

SEGUIDOR DE LINEAS EN ARDUINO

 

INVESTIGACION PREVIA:

  • Que es una variable en arduino?
  • Que es una constante en arduino?
  • Para que sirve la estructura de control IF en arduino?
  • Que es un diagrama de flujo en arduino?
  • Que se necesita par armar un carro seguidor de lineas?
  • Investigue acerca del sensor TCRT5000 en arduino


QUE NECESITAMOS PARA ARMAR UN CARRO EN ARDUINO (EVASOR DE OBSTACULOS / SEGUIDOR DE LINEAS)

1. Conceptos Básicos de Electrónica

Antes de conectar cables, el estudiante debe entender cómo fluye la energía:

  • Voltaje, Corriente y Polaridad: Diferenciar entre el polo positivo (+) y negativo (-) para evitar quemar componentes.

  • Uso de la Protoboard (Placa de pruebas): Entender cómo están conectadas las filas y columnas internamente para hacer puentes.

  • Identificación de Componentes: Saber qué es un LED, una resistencia, un motor DC y, lo más importante, el Sensor Ultrasónico (HC-SR04) y el Puente H (L298N o L293D) que controla los motores.

2. Programación en Arduino (Nivel Principiante)

No es necesario que escriba código desde cero de memoria, pero debe entender la lógica de lo que está copiando o modificando:

  • Estructura del Código: Diferencia entre void setup() (configuración inicial) y void loop() (instrucciones que se repiten).

  • Variables y Tipos de Datos: Saber que se pueden guardar números (como la distancia medida por el sensor) en variables.

  • Condicionales (Lógica IF/ELSE): Este es el "cerebro" del robot: "SI la distancia es menor a 20 cm, ENTONCES detente y gira; SI NO, sigue adelante".

  • Lectura de Sensores: Entender cómo el sensor ultrasónico envía un pulso y mide el tiempo que tarda en regresar para calcular la distancia.

3. Manejo de Componentes Específicos

  • El Sensor Ultrasónico (HC-SR04): Entender que funciona como el oído de un murciélago (emite sonido y recibe el eco).

  • Control de Motores (Puente H): Saber que los motores no se conectan directo al Arduino (porque lo quemarían), sino a través de un controlador que regula la potencia y dirección.

  • Servomotor (Opcional): Si el robot mueve el sensor de lado a lado para "mirar" antes de girar, el niño debe saber cómo posicionar un servo en grados (de 0° a 180°).

4. Habilidades de Montaje y Mecánica

  • Conexionado (Jumpers): Saber conectar cables macho-macho y macho-hembra siguiendo un diagrama de circuito.

  • Alimentación: Entender que los motores necesitan su propia fuente de energía (pilas 18650 o una batería de 9V) separada o compartida con el Arduino pero con suficiente amperaje.

  • Uso de Herramientas: Manejo básico de destornilladores, pinzas y, en algunos casos, saber que existe la soldadura (aunque a los 12 años se recomienda usar cables con conectores listos).

5. Pensamiento Computacional

  • Diagramas de Flujo: Ser capaz de dibujar en papel qué pasos debe seguir el robot antes de programar.

  • Resolución de Problemas (Debugging): Aprender que si el robot gira en círculos, probablemente un cable de motor está invertido; o si no detecta nada, puede ser un error en los pines del sensor.



SENSOR TCRT5000 - SEGUIR DE LINEA - ¿Qué necesitamos?


1. El Nuevo Componente: Sensor Infrarrojo (IR)

Es el componente clave. El estudiante debe entender cómo funciona:

  • Módulo Seguidor de Línea (TCRT5000): Saber que tiene un LED que emite luz infrarroja (invisible al ojo humano) y un receptor que mide cuánta luz rebota.

  • Reflexión de la luz: Concepto básico de física: el color blanco refleja la luz y el negro la absorbe. El sensor "sabe" que está sobre la línea negra porque no recibe rebote de luz.

  • Calibración (Potenciómetro): Muchos sensores tienen un pequeño tornillo (potenciómetro) que regula la sensibilidad. El estudiante debe aprender a ajustarlo para que detecte la línea según la iluminación del lugar.

2. Diferencia en la Lógica de Programación

A diferencia del evasor, que solo reacciona cuando algo está "cerca", el seguidor de línea requiere una lógica de corrección constante:

  • Lectura Digital (0 y 1): Entender que el sensor enviará un "1" si ve blanco y un "0" si ve negro (o viceversa, según el modelo).

  • Lógica de dos sensores:

    • Si ambos ven blanco: Avanzar.

    • Si el derecho ve negro: Girar a la derecha para recuperar la línea.

    • Si el izquierdo ve negro: Girar a la izquierda.

    • Si ambos ven negro: Detenerse o avanzar (según el diseño del circuito).

3. Conceptos de Señales Digitales vs. Analógicas

  • Aunque se pueden usar lecturas analógicas para mayor precisión, a los 12 años se suele empezar con lecturas digitales (digitalRead). El estudiante debe entender que el sensor solo tiene dos estados: "estoy en la línea" o "no estoy en la línea".

4. Mecánica Específica (Altura de los sensores)

  • Distancia al suelo: A diferencia del sensor ultrasónico que "mira" a lo lejos, los sensores IR deben estar muy cerca del suelo (entre 5mm y 1cm). El estudiante debe saber ajustar físicamente los sensores para que no choquen con el piso pero que logren leer la línea.

5. Comparativa: ¿Qué cambia respecto al evasor?

CaracterísticaEvasor de ObstáculosSeguidor de Línea
Sensor principalUltrasónico (HC-SR04)Infrarrojo (TCRT5000 o KY-033)
Tipo de señalTiempo de eco (distancia)Reflexión de luz (color)
UbicaciónAl frente, mirando hacia adelanteDebajo, mirando hacia el suelo
ObjetivoEvitar el contactoMantener el contacto con la línea

Resumen de materiales adicionales:

  • 2 o 3 Módulos de sensores infrarrojos.

  • Cinta aislante negra: Para crear el circuito o camino en un piso claro.

  • Cables jumper hembra-macho: Para conectar los sensores directamente a la placa o protoboard.

jueves, 5 de febrero de 2026

EJERCICIOS BASICOS ESTRUCTURAS DE CONTROL


https://www.youtube.com/watch?v=k_M-j1lHzFE


TAREA EN CLASE - LEA LAS SIGUIENTES INSTRUCCIONES ANTES DE INICIAR

Desarrolla los siguientes ejercicios en la plataforma de codificación que se indica a continuación siguiendo las instrucciones con las que se te evalaura:

1. Guardar en su USB de manera individual cada ejercicio (archivos independientes con la extension .py)

2. Analizar como funciona cada ejericio, puede pedirle explicaciones a la AI acerca de como funciona el ejercicio que esté tranbajando, de eso se le preguntara durante la clase.

3. Ejecutar cada ejercicio, y atender las explicaciones ofrecidas por el profesor de como funciona cada ejercicio.

COPIAR ESTE LINK EN SU CUADERNO Y ABRA UNA VENTANA CON EL EN EL NAVEGADOR O HACER CLIC SOBRE EL.

https://www.programiz.com/python-programming/online-compiler/


DESARROLLE LOS SIGUIENTES EJERCICIOS SEGUN LAS ANTERIORES INDICACIONES EN LA PLATAFORMA DEL ANTERIOR LINK

1. Condicionales (ifelifelse)

Ejercicio A: El Sistema de Calificaciones Americano

Planteamiento: Crea un programa que pida una nota numérica (0-100) y devuelva la letra correspondiente:

  • 90 o más: A

  • 80-89: B

  • 70-79: C

  • Menos de 70: F (Reprobado)

Lógica a aplicar: Uso de elif para evaluar rangos de números de forma ordenada y manejo de errores básicos (notas mayores a 100 o menores a 0).

Solución documentada:

# Entrada de datos: convertimos a entero
nota = int(input("Introduce la nota del examen (0-100): "))

# Lógica de decisión
if nota < 0 or nota > 100:
    print("Error: La nota debe estar entre 0 y 100.")
elif nota >= 90:
    print("Tu calificación es: A")
elif nota >= 80:
    print("Tu calificación es: B")
elif nota >= 70:
    print("Tu calificación es: C")
else:
    print("Tu calificación es: F (Reprobado)")

Ejercicio B: Calculadora de Descuentos Múltiples

Planteamiento: Una tienda ofrece descuentos según el monto de la compra:

  • Si compras más de $1000, tienes un 20% de descuento.

  • Si compras entre $500 y $1000, tienes un 10%.

  • Si compras menos de $500, no hay descuento.

Lógica a aplicar: Calcular porcentajes matemáticamente dentro de la estructura condicional.

Solución documentada:

monto = float(input("¿Cuál es el total de tu compra?: "))

if monto > 1000:
    descuento = monto * 0.20
    print(f"¡Descuento del 20%! Pagas: ${monto - descuento}")
elif monto >= 500:
    descuento = monto * 0.10
    print(f"¡Descuento del 10%! Pagas: ${monto - descuento}")
else:
    print(f"No hay descuento. Pagas: ${monto}")

2. Bucle for (Repetición controlada)

Ejercicio A: La Tabla de Multiplicar Personalizada

Planteamiento: Pide al usuario un número y muestra su tabla de multiplicar del 1 al 10, pero con un formato elegante.

Lógica a aplicar: Usar la variable del bucle i para realizar la operación matemática en cada vuelta.

Solución documentada:

Python
numero = int(input("¿De qué número quieres la tabla?: "))

print(f"--- Tabla del {numero} ---")
# El range va de 1 a 11 para incluir el 10
for i in range(1, 11):
    resultado = numero * i
    print(f"{numero} x {i} = {resultado}")

Ejercicio B: Sumatoria de Números Pares

Planteamiento: Sumar todos los números pares que existen entre el 1 y un número límite que el usuario decida.

Lógica a aplicar: Usar el tercer parámetro de range(inicio, fin, salto) para ir de 2 en 2 o usar un if con el operador residuo %.

Solución documentada:

Python
limite = int(input("Sumar pares hasta el número: "))
suma = 0 # Variable acumuladora

# Empezamos en 2, hasta limite + 1, saltando de 2 en 2
for i in range(2, limite + 1, 2):
    suma = suma + i

print(f"La suma de todos los pares hasta {limite} es: {suma}")

3. Bucle while (Repetición por condición)

Ejercicio A: El Cajero Automático (Retiro Seguro)

Planteamiento: Tienes un saldo inicial de $500. El programa debe pedir cuánto quieres retirar. Si intentas retirar más de lo que tienes, debe decir "Saldo insuficiente" y volver a preguntar hasta que retires una cantidad válida o decidas salir.

Lógica a aplicar: El bucle se repite mientras el intento de retiro sea mayor al saldo.

Solución documentada:

Python
saldo = 500
retiro = 0

print(f"Tu saldo actual es de ${saldo}")

# Mientras el retiro sea mayor al saldo o menor/igual a 0
while retiro <= 0 or retiro > saldo:
    retiro = float(input("¿Cuánto deseas retirar?: "))
    
    if retiro > saldo:
        print("Saldo insuficiente. Intenta una cantidad menor.")
    elif retiro <= 0:
        print("Cantidad inválida.")

nuevo_saldo = saldo - retiro
print(f"Retiro exitoso. Tu nuevo saldo es: ${nuevo_saldo}")

Ejercicio B: Contador de Intentos (Validar Contraseña)

Planteamiento: Crea un sistema donde la contraseña es "python123". El usuario tiene máximo 3 intentos. Si falla los 3, el programa se bloquea.

Lógica a aplicar: Usar un contador que aumente en cada fallo y una condición doble en el while.

Solución documentada:

clave_real = "python123"
intento = ""
contador = 0

# El bucle sigue mientras la clave sea mal y no pase de 3 intentos
while intento != clave_real and contador < 3:
    intento = input("Escribe la contraseña: ")
    contador = contador + 1
    
    if intento != clave_real:
        print(f"Error. Te quedan {3 - contador} intentos.")

if intento == clave_real:
    print("¡Acceso concedido!")
else:
    print("Sistema bloqueado por seguridad.")

💡 Tips :

  1. La "Cajita": En el for, explícales que la variable i (o numero) es como una cajita que cambia de valor en cada vuelta.

  2. El Acumulador: En el ejercicio de suma, enséñales que suma = suma + i es como ir metiendo monedas en una alcancía.

  3. El Freno: En el while, siempre revisen que la condición en algún momento se vuelva falsa para evitar el bucle infinito.

SEGUIDOR DE LINEAS EN ARDUINO

  INVESTIGACION PREVIA: Que es una variable en arduino? Que es una constante en arduino? Para que sirve la estructura de control IF en ardui...