Categorías
Sin categoría

¡Que te lo haga tu tÍA!

Formación del IES Schamann del martes 14 de abril de 2026. Aquí tienes el enlace a la presentación.

Categorías
Filosof_IA

¡Eso lo hago yo con la ía!

Una vez fui a un partido de la UD Las Palmas (todos hemos tenido varias vidas antes de esta. En fin.)

El caso es que había sentado al lado con su padre un chavalín, 10 u 11 años, quizá menos.

En determinado momento, un jugador de Las Palmas marcó un gol de chilena. Acto seguido, el chaval exclamó: «¡Eso lo hago yo con el FIFA!!»

Recuerdo que pensé: «No, desgraciado. Le das a un botón en el mando».

A veces pienso que la IA es lo mismo. Vemos una acción interesante (prosa maravillosa, dibujos preciosos), y viene el desgraciado de turno y te dice: «¡Eso lo hago yo con la IA!!»

Categorías
Microcontroladores Micropython

Escenarios de uso de `async` en MicroPython

Resumen de [[https://github.com/peterhinch/micropython-async/blob/master/v3/docs/TUTORIAL.md]]

1. Gestión de múltiples tareas de E/S

  • Escenario: Leer datos de un sensor mientras se actualiza una pantalla LED o se responde a pulsaciones de botones.
  • ¿Por qué async?: Los microcontroladores suelen necesitar ejecutar tareas como esperar datos de sensores, escribir en pantallas o gestionar interacciones. async permite que estas tareas se ejecuten de forma cooperativa (cediendo el control cuando están inactivas) en lugar de bloquearse entre sí.
  • Ejemplo:

    async def leer_sensor():
        while True:
            datos = sensor.read()
            # ... procesar datos ...
            await asyncio.sleep(0.1)  # Ceder control a otras tareas
    
    async def actualizar_pantalla():
        while True:
            pantalla.mostrar(estado)
            await asyncio.sleep(1)

2. Retrasos no bloqueantes

  • Escenario: Realizar acciones con intervalos distintos (ej.: parpadear un LED cada 500 ms mientras se registran datos cada 2 segundos).
  • ¿Por qué async?: time.sleep() bloquea todo el programa. async lo reemplaza con await asyncio.sleep(), liberando el microcontrolador para otras tareas durante las esperas.

3. Gestión de protocolos de comunicación

  • Escenario: Comunicación por UART, I2C o Wi-Fi mientras se ejecuta otro código.
  • ¿Por qué async?: Las comunicaciones suelen requerir que se espere por las respuestas. async permite iniciar una solicitud, luego cambiar a otras tareas y finalmente reanudar la tarea previa al recibir datos.
  • Ejemplo:
    async def obtener_clima():
        while True:
            respuesta = await wifi.get('http://api.weather.com')
            # ... procesar respuesta ...

4. Tareas en segundo plano con recursos compartidos

  • Escenario: Registrar datos en una tarjeta SD mientras se controla un motor.
  • ¿Por qué async?: Usar “primitivas de sincronización”, por ejemplo Lock (de micropython-async) para compartir recursos de forma segura entre tareas.
  • Ejemplo:

    lock = asyncio.Lock()
    
    async def registrar_datos():
        async with lock:
            with open('log.txt', 'a') as f:
                f.write(datos)
    
    async def controlar_motor():
        async with lock:
            motor.ejecutar(velocidad)

Notas clave para async en MicroPython

  • Multitarea cooperativa: Las tareas deben usar await explícitamente para ceder el control (no hay multitarea preemptiva, es decir, no hay control central de tareas).
  • Ligero: Usa mucha menos memoria que los hilos, lo cual es crítico para microcontroladores.
  • Bucle de eventos: La librería asyncio gestiona la planificación de tareas (similar al bucle de eventos de JavaScript).

Para más detalles, consulta el tutorial de micropython-async.

Categorías
Sin categoría

Propuestas para un espacio de retroinformática como proyecto de patrimonio industrial

1. Documentación y Contextualización Histórica

Identificación de la evolución tecnológica de los dispositivos almacenados (ordenadores, videoconsolas, radiocassettes, televisores).

Relación de los dispositivos con cambios culturales y tecnológicos, destacando su impacto en la sociedad y en el entretenimiento.

Comparación entre generaciones de hardware, mostrando diferencias en diseño, componentes y funcionalidad.

2. Conservación y Restauración

Mantenimiento y reparación de dispositivos para que funcionen en su estado original.

Preservación de carcasas, circuitos y componentes electrónicos ante el deterioro por el tiempo y el almacenamiento.

Digitalización de software y archivos (ejemplo: ROMs de videojuegos, programas antiguos en disquetes o cassettes).

Estrategias de almacenamiento adecuadas para evitar humedad, polvo y corrosión en los dispositivos antiguos.

3. Exposición y Divulgación

Creación de una pequeña zona expositiva donde los visitantes puedan ver y conocer los dispositivos.

Exposición temática rotativa, enfocándose en la historia de marcas icónicas (Atari, Amstrad, Sony, Sega, Nintendo, etc.).

Presentación de modelos funcionales para que los visitantes puedan interactuar con ellos.

Recreación de espacios de uso originales, como un “rincón ochentero” con una TV CRT y una consola clásica conectada.

4. Interactividad y Educación

Talleres de desmontaje y reparación para enseñar cómo funcionan los dispositivos.

Charlas sobre la historia de la tecnología y su evolución en el mercado.

Experiencias prácticas donde los asistentes puedan probar sistemas antiguos (por ejemplo, escribir en un MS-DOS, programar en BASIC, jugar en un Amiga 500).

Creación de fichas técnicas para cada dispositivo, con información sobre su año de fabricación, características y curiosidades.

5. Relación con la Historia del Retro y la Comunidad

Vinculación con otros grupos retro y eventos (ferias, exposiciones, competiciones de juegos antiguos).

Rescate de tecnología obsoleta y su importancia en la informática y el entretenimiento moderno.

Colaboraciones con otros coleccionistas para intercambiar información y dispositivos.

Registro y catalogación de los dispositivos disponibles en el local, creando una base de datos accesible para la comunidad.

Categorías
Sin categoría

Una abuela supera a DeepSeek en el microcontrolador de su yogurtera

🥄 La primera IA en una yogurtera, creada por una abuela programadora, supera a DeepSeek esta semana

En un giro inesperado en el mundo de la inteligencia artificial, Doña Paquita, una entrañable señora de 74 años de Albacete, ha conseguido lo impensable: programar una IA en el microcontrolador de su yogurtera Flan-O-Matic 3000, logrando superar en rendimiento a DeepSeek y otras potentes redes neuronales.

🧠 La revolución del «TermoAprendizaje Profundo»

Según cuenta Doña Paquita, todo empezó cuando intentó arreglar la yogurtera tras un fallo eléctrico. «Le cambié el fusible, pero al abrirla vi que tenía un chip muy majo, y pensé: ‘¿Y si en vez de hacer yogures, le enseño a jugar al ajedrez?'». Así nació YogurtNet, una IA basada en «TermoAprendizaje Profundo», que utiliza la temperatura del yogur para optimizar su rendimiento computacional.

«Si el yogur cuaja bien, significa que la red neuronal está bien entrenada. Si sale líquido, hay que recalibrar los pesos sinápticos», explica con una lógica impecable.

🔥 Rompiendo récords sin consumir más de 12W

A pesar de correr en un humilde ATmega328P, el mismo chip que usa un Arduino, YogurtNet ha conseguido superar a DeepSeek en varias pruebas de generación de texto, traducción y composición de coplas manchegas. Según los expertos, su modelo es tan eficiente que realiza cálculos complejos en menos de 500ms, todo mientras calienta un litro de leche con fermentos lácticos.

La comunidad científica está asombrada: «Es un paradigma totalmente nuevo», comenta el Dr. Eugenio Quesada, experto en IA. «No solo ha creado un modelo más eficiente que los actuales, sino que ha reducido el consumo energético a niveles ridículos. Los centros de datos de Google gastan megavatios en entrenamiento, y ella lo hace con un cacharro enchufado en la cocina.»

🍶 El futuro: YogurtNet 2.0 y un chatbot de recetas

Ante el revuelo causado, Doña Paquita ya trabaja en la siguiente versión: YogurtNet 2.0, que incorporará un módulo de reconocimiento de voz para que la yogurtera pueda dar consejos de cocina y responder preguntas en tiempo real. «Si le pides la receta de unas natillas, no solo te la da, sino que te dice cómo hacerlas con lo que tienes en la nevera», presume la abuela programadora.

Mientras tanto, NVIDIA ha ofrecido un contrato millonario a Doña Paquita para que implemente su tecnología en sus próximas GPUs. Sin embargo, ella se lo piensa: «Primero quiero asegurarme de que siga haciendo yogures, que si no, a ver qué desayuna mi marido.»

🎭 Conclusión: Un paso adelante para la IA, un paso atrás para los yogures industriales

La IA de Doña Paquita ha dejado claro que la revolución tecnológica puede venir de los lugares más inesperados. Con YogurtNet, el mundo de la inteligencia artificial entra en una nueva era… una era más cremosa, con menos consumo energético y, probablemente, con mejor sabor.

¿Será este el futuro de la IA? Solo el tiempo y los yogures lo dirán.

Categorías
Tutoriales

Crear un servidor web en Python para la carpeta actual del explorador de archivos

Instrucciones para compartir una carpeta mediante un servidor web Python.

Esto me lo pidió un compañero. Voy a obviar el hecho de que he tardado más en decirle al ChatGPT que me lo escriba como yo quiero, que en haberlo escrito yo mismo desde el principio. Pero estos son los tiempos que nos ha tocado vivir.

1. Guardar el fichero .bat

  1. Abre Vscode o cualquier editor de texto.

  2. Copia y pega el siguiente contenido en el editor:

    @echo off
    REM Obtiene la dirección IP local del equipo
    for /f "tokens=2 delims=: " %%a in ('ipconfig ^| findstr "IPv4"') do set ip=%%a
    set ip=%ip: =%
    
    REM Muestra las instrucciones al usuario
    echo =========================================
    echo El servidor web está arrancando...
    echo Escribe en el navegador la siguiente URL:
    echo http://%ip%:8000
    echo =========================================
    
    REM Arranca el servidor web de Python
    python -m http.server 8000
  3. Guarda el fichero con el nombre start_server.bat.

  4. Coloca el fichero en el directorio C:\Windows.


2. Abrir el terminal en la carpeta a compartir

  1. Abre el Explorador de Archivos y navega a la carpeta que deseas compartir.
  2. Haz clic en el menú Archivo (esquina superior izquierda).
  3. Selecciona Abrir Windows PowerShell o Abrir Símbolo del sistema (según la versión de Windows).
  4. Asegúrate de que se abra en el directorio actual donde está la carpeta.

3. Ejecutar el fichero .bat

  1. En la terminal, escribe:
    start_server
  2. El terminal mostrará las instrucciones, por ejemplo:
    =========================================
    El servidor web está arrancando...
    Escribe en el navegador la siguiente URL:
    http://192.168.1.156:8000
    =========================================

4. Acceder al servidor web

  1. Abre un navegador en cualquier dispositivo conectado a la misma red local.
  2. Escribe la URL que aparece en el terminal, por ejemplo:
    http://192.168.1.156:8000
  3. Esto abrirá una página con el contenido de la carpeta compartida.
  4. Dado que tu router suele asignar siempre las mismas direcciones, de forma más o menos provisional puedes añadir un marcador a esta página que se te abra.

5. Detener el servidor web

  • Para detener el servidor web, vuelve a la terminal y presiona las teclas:
    Ctrl + C
Categorías
Filosof_IA

La IA y la caverna

La web se ha llenado de imágenes que parecen reales (pájaros, insectos…) pero que no son más que la representación ideal de esa especie, confeccionada por la inteligencia artificial.


En los buscadores, las fotos originales (es decir, las hechas por un fotógrafo) ni siquiera aparecen entre las primeras búsquedas.

Y, a la hora de buscar información, si uno no conocía bien la especie, ¿cómo distinguirlas?

Resulta más inquietante la pregunta porque, para poder transformar la información en conocimiento, es necesario que aquella sea fidedigna.

Ello quiere decir que el concepto de verdad ha cambiado, y que la construcción de verdades alternativas lo tiene muy fácil: vale tanto como decir que el mundo ha cambiado, y que «volver atrás» históricamente nunca ha funcionado.

Hay una idea que desarrollaremos más de una vez en este blog: del mismo modo que durante la Edad Media se intentó recuperar el conocimiento anterior, quedan «bolsas de conocimientos» que quedarán etiquetadas como «anterior a la IA».

Por tanto, una de las maneras de abordar este problema es crear «islas» o «monasterios» de conocimiento cribado (curated knowledge) que se mantengan fidedignas a un concepto de verdad anterior a la IA.

En este aspecto, archive.org mantiene muchos elementos escaneados anteriores a la web. Sin embargo, si llega una situación en que la civilización sufre un apagón digital, solamente el conocimiento que esté almacenado en formato físico será susceptible de copiarse.

Conviene recordar que en la Edad Media, los manuscritos sobrevivieron por sucesivas copias, de tal manera que los de siglos anteriores se fueron perdiendo. No es impensable que algo similar pueda volver a ocurrir. Lo que no sabemos es si, de la misma manera que en la ficción con el Hari Seldon y la psicohistoria de Asimov, podemos pretender acortar el proceso: la última Edad Media del mundo occidental duró unos mil años.

Pero no son más que reflexiones previas. Intentaremos desarrollar un pensamiento coherente en este blog en sucesivas entradas.