martes, 17 de febrero de 2026

ANALISIS DEL CODIGO DE LA TABLA DE MULTIPLICAR

 RESPONDER EN SUS CUADERNOS LAS SIGUIENTES PREGUNTAS Y ENTREGAR ANTES DE SALIR

Al ejecutar el programa:

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}")


Dá como resultado:

¿De qué número quieres la tabla?: 4

--- Tabla del 4 ---

4 x 1 = 4

4 x 2 = 8

4 x 3 = 12

4 x 4 = 16

4 x 5 = 20

4 x 6 = 24

4 x 7 = 28

4 x 8 = 32

4 x 9 = 36

4 x 10 = 40


Cuestionario de Análisis de Código: Tablas de Multiplicar

1. Sobre la entrada de datos (Input):

  • ¿Para qué sirve la función int() que envuelve al input()?

  • ¿Qué pasaría con el programa si el usuario ingresa una letra en lugar de un número?

2. Sobre la lógica del bucle (For Loop):

  • En la instrucción range(1, 12), ¿cuál es el número de inicio y cuál es el número de parada (límite superior)?

  • Si queremos que la tabla muestre los resultados multiplicando del 1 al 11, ¿por qué no podemos poner range(1, 11)? Explica la característica "excluyente" del segundo parámetro.

3. Sobre el funcionamiento de las variables:

  • ¿Qué función cumple la variable i dentro del bucle? ¿Qué valores va tomando en cada repetición (iteración)?

  • ¿Cuál es el propósito de la variable resultado y por qué debe estar identada (con espacio a la izquierda) dentro del for?

4. Sobre el formato de salida (F-strings):

  • En la línea print(f"{numero} x {i} = {resultado}"), ¿qué significa la letra f antes de las comillas?

  • ¿Qué sucede con las palabras escritas entre llaves {} al momento de mostrarse en la pantalla?

5. Ejercicio de lógica:

  • Si el usuario ingresa el número 5, ¿cuál será exactamente la última línea que imprimirá el programa y por qué?


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.

ANALISIS DEL CODIGO DE LA TABLA DE MULTIPLICAR

 RESPONDER EN SUS CUADERNOS LAS SIGUIENTES PREGUNTAS Y ENTREGAR ANTES DE SALIR Al ejecutar el programa: numero = int(input("¿De qué núm...