🇨🇷 Sexto Grado · Tecnología & Programación

¡Bienvenido al Lab del Profe Luis!

Tablas de verdad, funciones, computación física y prototipos. Aprende creando, jugando y resolviendo retos reales. 🔧💡

🧮 Lógica & Tablas de Verdad
📦 Procedimientos & Funciones
⚡ Computación Física
🔩 Prototipos
🧮
Módulo 01

Lógica de Programación: Tablas de Verdad

Aprende a razonar como una computadora usando operadores AND, OR y NOT para evaluar condiciones en algoritmos.

📖 Historia: El portón inteligente del Profe Luis

El Profe Luis instaló un portón automático en su casa. El portón se abre solo si detecta la tarjeta de acceso Y no hay nadie bloqueando el camino. Si solo se cumple UNA de las dos condiciones, el portón no abre. Esa regla es exactamente una tabla de verdad con el operador AND. La computadora del portón evalúa dos proposiciones y decide. 🚪🤖

📐 Proposiciones y Valores de Verdad

Definición: Proposición lógica

Una proposición es una afirmación que solo puede ser VERDADERA (V / 1) o FALSA (F / 0). En programación, cada condición que el algoritmo evalúa es una proposición. Son la base de la toma de decisiones.

ProposiciónValorRazón
"10 > 5"VERDADERO10 es mayor que 5 ✅
"Costa Rica tiene 3 océanos"FALSOTiene acceso a 2 océanos ❌
"temperatura >= 30"DEPENDESegún el valor de la variable
"¿Cuánto mide el puente?"NO ES PROP.Es pregunta, no afirmación
"5 == 5"VERDADEROComparación verdadera ✅
💡 En código

En programación, las proposiciones son las condiciones que ponemos en los if, while y for. Cada vez que el programa llega a una condición, evalúa si es V o F para decidir qué hacer.

¿Verdadero o Falso? Evalúa cada proposición:

Los conectivos lógicos combinan proposiciones para crear condiciones más complejas:

⚙️
AND (Y / &&)
Ambas deben ser verdaderas. "Tengo dinero AND el item está en stock → comprar"
V AND V = V
V AND F = F
F AND F = F
🔀
OR (O / ||)
Al menos una verdadera. "Llueve OR hace frío → abrigo"
V OR V = V
V OR F = V
F OR F = F
🔄
NOT (NO / !)
Invierte el valor. "NOT llueve → salgo"
NOT V = F
NOT F = V

📊 Tablas de Verdad — AND y OR

Definición: Tabla de Verdad

Una tabla de verdad muestra todos los posibles valores de una expresión lógica según los valores de sus variables. Cada fila es un caso posible. Son la herramienta fundamental para verificar condiciones en algoritmos.

Conjunción (AND / &&): Solo da VERDADERO cuando AMBAS proposiciones son verdaderas. Es la más estricta.

PQP AND QEjemplo real
VV✅ VTarjeta válida Y camino libre → 🚪 ABRE
VF❌ FTarjeta válida Y camino bloqueado → 🔒 NO ABRE
FV❌ FTarjeta inválida Y camino libre → 🔒 NO ABRE
FF❌ FTarjeta inválida Y camino bloqueado → 🔒 NO ABRE
ejemplo_and.py
# AND: el portón solo abre si AMBAS condiciones son verdaderas
tarjeta_valida = True
camino_libre = True

if tarjeta_valida and camino_libre:
print("🚪 Portón abierto")
else:
print("🔒 Acceso denegado")

Disyunción (OR / ||): Da VERDADERO cuando AL MENOS UNA proposición es verdadera. Es más flexible que AND.

PQP OR QEjemplo real
VV✅ VLlueve OR hace frío → 🧥 Me abrigo (y llueve y hace frío)
VF✅ VLlueve OR no hace frío → 🧥 Me abrigo (al menos llueve)
FV✅ VNo llueve OR hace frío → 🧥 Me abrigo (al menos hace frío)
FF❌ FNo llueve OR no hace frío → 👕 No me abrigo
ejemplo_or.py
# OR: la alarma suena si AL MENOS UN sensor detecta algo
sensor_movimiento = False
sensor_temperatura = True # ¡temperatura muy alta!

if sensor_movimiento or sensor_temperatura:
print("🚨 ¡Alarma activada!")
else:
print("✅ Todo tranquilo")

🎮 Evaluador interactivo: Activa o desactiva P y Q y observa el resultado de AND y OR:

P = FALSO
Q = FALSO
P AND Q = ❌ FALSO
P OR Q = ❌ FALSO
NOT P = ✅ VERDADERO
💡 P = si tiene internet; Q = si tiene luz. AND = trabaja solo si tiene ambos.

🔧 Reto: Completa la tabla de verdad. ¿Cuántos resultados puedes adivinar?

QUIZ 01 Lógica & Tablas de Verdad
📦
Módulo 02

Procedimientos y Funciones

Organiza tu código en bloques reutilizables. Aprende a declarar, invocar y pasar parámetros a tus funciones.

📖 Historia: La receta del Profe Luis

El Profe Luis tiene una receta para hacer arroz con leche que usa siempre. En vez de escribir todos los pasos cada vez que cocina, los escribió en una hoja y la llamó "hacerArrozConLeche(personas)". Ahora solo dice el nombre de la receta y cuántas personas son. Eso es una función: instrucciones con nombre, listas para usar cuando las necesites, con los datos que necesiten. 🍚📋

📦 Anatomía de una Función

Definición: Función / Procedimiento

Una función es un bloque de código con nombre que realiza una tarea específica. Se escribe una vez (declaración) y se usa muchas veces (invocación). Puede recibir datos de entrada (parámetros) y devolver un resultado (retorno).

Una función tiene 4 partes esenciales:

1️⃣
DECLARACIÓN
Donde defines la función — le das un nombre y escribes qué hace. Solo se hace una vez.
2️⃣
PARÁMETROS
Variables que la función recibe como "datos de entrada". Son como los ingredientes de la receta.
3️⃣
INVOCACIÓN
Cuando llamas a la función para que ejecute su código. Se puede invocar muchas veces.
4️⃣
ARGUMENTOS
Los valores concretos que le pasas cuando la invocas. Son los "valores reales" de los parámetros.
anatomia_funcion.py
# ① DECLARACIÓN de la función
def saludar(nombre, grado): # ② PARÁMETROS: nombre, grado
print(f"¡Hola {nombre}! Bienvenido a {grado}°")

# ③ INVOCACIÓN — usamos la función
saludar("Luis", 6) # ④ ARGUMENTOS: "Luis" y 6
saludar("Sofía", 6) # ¡Misma función, distintos argumentos!

# Salida:
# ¡Hola Luis! Bienvenido a 6°
# ¡Hola Sofía! Bienvenido a 6°

Los parámetros son como "huecos" que la función espera que llenes. Los argumentos son los valores reales que pones en esos huecos.

🍕 Analogía: La pizza

Parámetros = ingredientes que pide la receta (tamaño, sabor)
Argumentos = lo que tú eliges cuando pides (grande, hawaiana)

parametros.py
# calcularArea recibe DOS parámetros: base y altura
def calcularArea(base, altura):
area = base * altura
print(f"Área = {area} cm²")

# Invocamos con argumentos distintos cada vez
calcularArea(5, 3) # base=5, altura=3 → Área = 15 cm²
calcularArea(10, 4) # base=10, altura=4 → Área = 40 cm²
calcularArea(7, 7) # ¡Cuadrado! → Área = 49 cm²

Las funciones con retorno (return) devuelven un valor que puedes usar en otras partes del programa. Son las más poderosas.

retorno.py
# Sin retorno: solo muestra
def mostrarCuadrado(n):
print(n * n)

# Con retorno: devuelve el valor para usarlo
def calcularCuadrado(n):
return n * n # ← devuelve el resultado

# Puedo guardar el resultado en una variable
resultado = calcularCuadrado(8) # resultado = 64
# O usar el resultado dentro de otra operación
total = calcularCuadrado(3) + calcularCuadrado(4) # 9 + 16 = 25
TipoTiene returnCuándo usar
Procedimiento❌ NoSolo hacer acciones: mostrar, mover, encender
Función✅ SíCalcular y devolver un resultado para usar

🎮 Simulador de funciones: Crea una función, ingresa argumentos y ve el resultado:

// El resultado aparecerá aquí...
QUIZ 02 Procedimientos & Funciones
Módulo 03

Computación Física: Soluciones Automatizadas

Conecta el código con el mundo real. Diseña sistemas que detectan, procesan y actúan de forma automática.

📖 Historia: El jardín inteligente del Profe Luis

El Profe Luis viajó a Limón por una semana y se preocupó por sus plantas. Entonces creó un sistema de computación física: un sensor de humedad conectado a un Arduino. Si la humedad del suelo baja de 30%, entonces activa una bomba de agua por 5 segundos. El jardín se regó solo toda la semana. ¡Eso es resolver una necesidad real con tecnología! 🌱💧🤖

🏗️ Sistema de Computación Física

Definición: Computación Física

La computación física es la integración de software (programas) con hardware (componentes electrónicos) para crear sistemas que perciben el entorno mediante sensores y actúan sobre él mediante actuadores, respondiendo a necesidades reales de forma automática.

Todo sistema de computación física sigue el mismo ciclo:

👁️
PERCIBIR
Sensor lee el ambiente
🧠
PROCESAR
Microcontrolador decide
💪
ACTUAR
Actuador hace algo
🔄
REPETIR
El ciclo se repite
🌍 Aplicaciones en Costa Rica

Sistemas de riego automático en fincas de café, sensores de temperatura en hospitales, semáforos inteligentes en San José, detección de lluvia en estaciones meteorológicas del IMN. ¡La computación física está por todas partes! 🇨🇷

Los sensores son los "sentidos" del sistema. Convierten fenómenos físicos en señales eléctricas que el microcontrolador puede leer:

🌡️
Temperatura
DHT11, LM35. Lee temperatura ambiente en °C. Usado en termostatos y estaciones meteorológicas.
💧
Humedad del suelo
YL-69. Mide la humedad en tierra. Activa sistemas de riego automático.
☀️
Luz (LDR)
Fotoresistencia. Más luz = menos resistencia. Para encender luces automáticamente de noche.
🏃
Movimiento (PIR)
Detecta calor de personas en movimiento. Alarmas y luces automáticas.
📏
Distancia (Ultrasónico)
HC-SR04. Mide distancia con ultrasonido. Detecta obstáculos para robots y autos.
🔊
Sonido
KY-037. Detecta nivel de ruido. Abre puertas con palmadas, activa dispositivos con voz.

Los actuadores son los "músculos" del sistema. Reciben órdenes del microcontrolador y producen efectos físicos:

ActuadorQué haceAplicación
💡 LEDEmite luzIndicadores, señalización, iluminación
🔊 BuzzerEmite sonidoAlarmas, notificaciones, melodías
⚙️ Motor DCGira continuamenteVentiladores, bombas de agua, robots
🦾 ServoGira a ángulos exactosPortones, brazos robóticos, cámaras
📺 Pantalla LCDMuestra texto/datosDisplays de información, menús
🔌 ReléControla circuitos grandesEncender electrodomésticos desde Arduino

🎮 Simulador: Sistema de jardín automático. Ajusta los sensores y observa cómo responde el sistema:

25 °C
50 %
400 lux
💧 Bomba de agua: APAGADA
⚙️ Ventilador: APAGADO
Luz LED: APAGADA
jardin_automatico.py — Lógica del sistema
if humedad_suelo < 30: # Suelo muy seco
bomba_agua.encender()
if temperatura > 35: # Mucho calor
ventilador.encender()
if luz_ambiente < 200: # Está oscuro
led.encender()
QUIZ 03 Computación Física
🔩
Módulo 04

Prototipos de Sistemas Automatizados

Del problema al prototipo: diseña, planifica y construye soluciones reales con computación física.

📖 Historia: El proyecto de la clase del Profe Luis

La clase de 6° decidió mejorar la entrada de la escuela. Primero identificaron el problema: la puerta quedaba abierta y dejaba entrar insectos. Luego diseñaron una solución: sensor de presencia + servo para cerrar automáticamente. Hicieron un prototipo con cartón y Arduino para probar la idea antes de hacerlo en real. ¡Ganaron el primer lugar en la feria de ciencias! 🏆🚪🤖

🔩 ¿Qué es un Prototipo?

Definición: Prototipo

Un prototipo es un modelo preliminar y funcional de un sistema que sirve para probar, validar y mejorar una idea antes de crear la versión final. Es barato de hacer, permite detectar errores y se puede modificar fácilmente. En tecnología, los prototipos salvan tiempo y dinero.

El proceso de diseño de un prototipo sigue pasos lógicos:

1️⃣
Identificar el problema: ¿Qué necesidad del entorno quiero resolver? Debe ser concreta y real.
2️⃣
Investigar y planificar: ¿Qué sensores y actuadores necesito? ¿Cuál es la lógica del sistema?
3️⃣
Diseñar el esquema: Dibujar cómo se conectan los componentes y escribir el pseudocódigo o diagrama de flujo.
4️⃣
Construir y programar: Ensamblar el hardware y escribir el código. Usar funciones para organizar el programa.
5️⃣
Probar y mejorar: ¿Funciona según lo esperado? Documentar errores y hacer mejoras iterativas.
🔄 Iterar es clave

Los mejores prototipos se hacen con varias mejoras. La primera versión siempre tiene errores. Fallar rápido y mejorar es la filosofía de los mejores ingenieros del mundo.

Prototipos de sistemas automatizados para resolver necesidades reales en Costa Rica 🇨🇷:

🌊
Monitor de inundaciones
Sensor de nivel de agua en ríos que envía alerta cuando sube peligrosamente. Útil en zonas lluviosas de CR.
Sensor aguaBuzzerSMS/WiFi
🌿
Invernadero inteligente
Control automático de temperatura, humedad y luz para cultivos hidropónicos en proyectos escolares.
Temp sensorServoLED
🚶
Contador de personas
Sensor infrarrojo cuenta personas que entran a un aula. Si supera el límite, enciende una alerta.
IR sensorLED rojoDisplay
🐶
Dispensador de comida
Servo gira a hora programada para soltar comida para mascotas. Con pantalla que muestra siguiente hora.
RTCServoLCD

🎮 Diseñador de prototipos: Elige un problema y ve cómo se construiría el sistema:

Prototipo completo de puerta automática usando funciones y computación física:

puerta_automatica.py — Prototipo completo con funciones
# ============================================
# PROTOTIPO: Puerta automática con sensor PIR
# Sensores: PIR (movimiento), botón interno
# Actuadores: Servo (puerta), LED, Buzzer
# ============================================

# --- DECLARACIÓN DE FUNCIONES ---
def abrirPuerta(servo, angulo):
"""Gira el servo al ángulo indicado para abrir"""
servo.write(angulo)
led_verde.encender()

def cerrarPuerta(servo):
"""Cierra la puerta volviendo a 0 grados"""
servo.write(0)
led_verde.apagar()

def evaluarAcceso(pir, boton):
"""Evalúa si se debe abrir: usa OR (movimiento O botón)"""
return pir or boton # ← tabla de verdad OR

# --- BUCLE PRINCIPAL ---
while True:
movimiento = pir_sensor.leer()
boton_presionado = boton.leer()

if evaluarAcceso(movimiento, boton_presionado):
abrirPuerta(mi_servo, 90)
esperar(3) # espera 3 segundos
cerrarPuerta(mi_servo)
💡 Nota el uso de funciones + lógica

Este prototipo usa funciones (abrirPuerta, cerrarPuerta) y una tabla de verdad OR (evaluarAcceso) — todo lo aprendido en los módulos anteriores se usa aquí. ¡Así funciona la programación real!

QUIZ 04 Prototipos
🏆

¡Misión Completada, Inventor!

Dominaste las tablas de verdad, las funciones, la computación física y el diseño de prototipos. ¡Eres un tecnólogo de 6°! Continúa aprendiendo en profe-luis.com