Unidad 8
Introducción 📜
¿Qué aprenderás y demostrarás en esta unidad? 💡
Actividad 01
Retomando la metodología de diseño Input-Process-Output para el proyecto final
👣 Pasos:
- Refresca tu memoria sobre I-P-O:
- Revisa tus notas de la Unidad 1 y el texto de Hübner.
- Reflexiona: ¿Cómo ha evolucionado tu comprensión de I-P-O ahora que has manejado múltiples inputs y outputs?
- I-P-O con Procesamiento en el Cliente:
- Inputs: identifica las fuentes de datos (Móvil vía Socket/Node, Micro:bit vía Serial, Computador local p5.js - teclado/mouse).
- Puente (Node.js): entiende su rol limitado, es decir, solo retransmitir mensajes entre el móvil y el cliente p5.js. No procesa ni almacena estado significativo.
- Process (Cliente p5.js): reconoce que aquí es donde combinarás los datos recibidos (del micro:bit directamente, del móvil vía Node.js, y locales), aplicarás tu lógica creativa y tomarás decisiones.
- Output (Cliente p5.js): la visualización que resulta de tu proceso local.
- La intención guía la integración: discute cómo el modelo I-P-O te ayuda a diseñar la lógica de integración que correrá en tu cliente p5.js, asegurando que la combinación de inputs sirva a un propósito o narrativa.
📝 Actividad pendiente por iniciar
El archivo student.md está vacío
Investigación y Diseño Conceptual 🔎
Actividad 02
Inspiración I-P-O - análisis aplicado de ejemplos
👣 Pasos:
- Selecciona 2 ejemplos: elige dos casos de estudio.
- Análisis I-P-O aplicado: para cada proyecto seleccionado, describe detalladamente:
- Input(s): ¿Qué datos específicos usa? ¿De qué fuentes (sensores físicos, datos web, interacción humana)? ¿Hay múltiples tipos de input integrados?
- Process: ¿Cuál parece ser la transformación clave? ¿Cómo se relacionan los inputs y cómo influyen en el resultado? Infiere la lógica o reglas. Intenta imaginar dónde podría estar ejecutándose esta lógica (¿En un servidor centralizado, en cada cliente, en el propio dispositivo físico?).
- Output(s): ¿Cómo se materializa el resultado? (visualización, sonido, objeto físico, etc.). ¿Es reactivo en tiempo real?
- Narrativa/Concepto: ¿Qué historia cuenta o qué idea explora el proyecto a través de esta estructura I-P-O?
- Reflexión para tu proyecto: ¿Cómo estos ejemplos te inspiran para tu proyecto final? ¿Qué ideas te dan sobre cómo manejar y combinar datos de diferentes fuentes dentro de p5.js? ¿Qué enfoques de
Outputs
visuales/interactivos te atraen?
📝 Actividad pendiente por iniciar
El archivo student.md está vacío
Actividad 03
Tu proyecto I-P-O - definición conceptual
👣 Pasos:
- Brainstorming integrador:
- Piensa en cómo tu sketch p5.js puede recibir datos del micro:bit (Serial) y del móvil (vía Node/Socket.IO) y combinarlos con inputs locales (teclado/mouse).
- Genera al menos 3 ideas conceptuales distintas que integren inputs de al menos dos fuentes externas (móvil, micro:bit), especificando cómo la lógica en p5.js los combinaría para una narrativa. Ej: “Un jardín zen digital donde las ondas (Output) son generadas por el movimiento suave del micro:bit (Input Serial), pero perturbadas por toques bruscos en el móvil (Input Socket)”.
- Selecciona y refina tu concepto final: elige la idea que te resulte más significativa, interesante y factible técnicamente para implementar la lógica en p5.js.
- Documenta tu Concepto I-P-O (Proceso en Cliente):
- Título provisional:
- Narrativa/Concepto central:
- Inputs específicos: (lista detallada de cada input, su dispositivo y justificación, incluyendo al menos micro:bit y móvil).
- Process (descripción conceptual - Lógica en p5.js): describe claramente cómo tu sketch p5.js recibirá, interpretará y combinará los diferentes inputs para transformar la información y tomar decisiones. ¿Qué variables de estado necesitará mantener? ¿Qué tipo de cálculos o reglas aplicará?
- Output deseado (Descripción/Boceto): describe la visualización/interacción resultante en la pantalla del computador (generada por p5.js). Incluye un boceto claro.
📝 Actividad pendiente por iniciar
El archivo student.md está vacío
Actividad 04
Diseño técnico - arquitectura, flujos y protocolos
👣 Pasos:
- Diagrama de arquitectura:
- Dibuja los componentes de la aplicación: Móvil, Micro:bit, Computador (Cliente p5.js - INCLUYE PROCESO Y OUTPUT), Computador (Servidor Node.js - SOLO PUENTE).
- Incluye Dev Tunnels si es necesario para conectar Móvil <-> Servidor Puente.
- Dibuja flechas claras:
- Micro:bit -> Cliente p5.js (Serial).
- Móvil -> Servidor Puente (Socket.IO).
- Servidor Puente -> Cliente p5.js (Socket.IO - reenviando datos del móvil).
- Computador Local -> Cliente p5.js (Eventos p5.js - teclado/ratón).
- Tecnologías de Comunicación:
- Micro:bit -> Cliente p5.js: Web Serial API.
- Móvil -> Servidor Puente: Socket.IO.
- Servidor Puente -> Cliente p5.js: Socket.IO.
- Protocolos de Datos Precisos: Define formatos exactos:
- Micro:bit -> Cliente p5.js (Serial): Formato ASCII o binario.
- Móvil -> Servidor Puente (Socket.IO): el evento (ej: touch) y el formato JSON (ej:
{ "touchX": ..., "touchY": ... }
). - Servidor Puente -> Cliente p5.js (Socket.IO): mismo JSON que recibió del móvil. (El servidor no lo modifica).
- Esquema Lógico del Servidor (¡Muy Simple!):
- Describe en pseudocódigo/diagrama cómo
server.js
:- Recibe evento del móvil.
- Inmediatamente, emite (
broadcast
oio.emit
) el evento. - (No almacena estado, no procesa datos).
- Describe en pseudocódigo/diagrama cómo
- Esquema Lógico del Cliente p5.js (Process + Output):
- Describe en pseudocódigo/diagrama cómo
desktop/sketch.js
:- Conecta y lee datos del Micro:bit (Web Serial), parsea.
- Conecta al Servidor Puente (Socket.IO).
- Escucha eventos del móvil, parsea JSON.
- Maneja inputs locales (teclado/ratón).
- Implementa la lógica del
Process
: almacena estado necesario, combina/interpreta datos de todas las fuentes (Serial, Socket, Local), aplica reglas/cálculos. - Usa los resultados del proceso para actualizar variables de dibujo/interacción.
- Genera el
Output
visual/interactivo endraw()
.
- Describe en pseudocódigo/diagrama cómo
📝 Actividad pendiente por iniciar
El archivo student.md está vacío
Aplicación e Implementación 🛠
Actividad 05
Inputs y el puente Node.js
👣 Pasos:
- Configura el Entorno:
- Estructura de carpetas para el proyecto. Puedes usar la misma estructura que en la unidad 7.
- Configura
server.js
básico (Express, HTTP, Socket.IO, static files).
- Implementa código de inputs:
- micro:bit: programa el envío de datos por serial según tu protocolo.
- cliente móvil: adapta/crea
public/mobile/sketch.js
. Código para conectar al servidor puente, captura inputs y envío.
- Implementa el servidor puente (Node.js):
- Prepara el Cliente p5.js (Receptor):
- En
public/desktop/sketch.js
:- Configura la conexión Socket.IO al servidor puente.
- Implementa la estructura básica para Web Serial (conectar, leer).
- Añade los listeners
socket.on('mobileInputForwarded', (data) => { ... });
y el código para parsear los datos seriales. - Usa
console.log
dentro de estos listeners y en la lectura serial para verificar que los datos crudos llegan al cliente p5.js.
- En
- Prueba y Depura Flujo de Datos Crudos:
- Verifica: ¿El Micro:bit envía datos? ¿El cliente p5.js los lee por Serial?
- Verifica: ¿El móvil envía datos al servidor puente? ¿El servidor los reenvía? ¿El cliente p5.js los recibe por Socket.IO?
- Enfócate SÓLO en que los datos lleguen correctamente al cliente p5.js. Aún no implementes el
Process
.
📝 Actividad pendiente por iniciar
El archivo student.md está vacío
Actividad 06
Proceso y Output en p5.js
👣 Pasos:
- Implementa el Process en Cliente p5.js:
- Maneja también inputs locales (teclado/ratón) si forman parte de tu concepto, actualizando variables de estado.
- Crea la lógica principal del
Process
: escribe funciones o código (puede ser dentro dedraw()
o en funciones separadas llamadas desdedraw()
) que lean las variables de estado (con los últimos datos de todas las fuentes), las combinen, apliquen tus reglas/cálculos definidos en el concepto I-P-O, y determinen los parámetros para el output (ej: tamaño, color, posición, sonido).
- Implementa el Output en Cliente p5.js:
- En la función
draw()
: usa los parámetros calculados por tu lógica deProcess
para dibujar en el canvas, modificar elementos visuales, controlar sonido, etc. - Asegúrate de que el output refleje visual o interactivamente la combinación de los inputs según tu narrativa.
- En la función
- Pruebas de Integración (End-to-End con proceso local):
- Ejecuta todo: servidor puente, móvil, conecta micro:bit, escritorio (p5.js).
- Interactúa con todos los inputs.
- Observa si el Output en p5.js reacciona como esperabas, reflejando la lógica de combinación y procesamiento que implementaste ahí mismo.
- Depura la lógica del
Process
dentro de p5.js usandoconsole.log
para ver valores intermedios y el resultado del procesamiento antes de dibujar.
- Refinamiento: ajusta la lógica del proceso, la estética del output, la sensibilidad a los inputs, etc., para lograr el efecto deseado y comunicar tu concepto eficazmente.
📝 Actividad pendiente por iniciar
El archivo student.md está vacío
Consolidación y Metacognición 🤔
Actividad 07
Documentación final
👣 Pasos:
- Estructura el Reporte Final (Arquitectura Corregida): Organiza un documento con:
- Título, resumen.
- Concepto I-P-O: narrativa, Inputs, Process (descripción de la lógica implementada en p5.js), Output.
- Diseño técnico: diagrama de arquitectura final. Tecnologías y protocolos detallados (actualiza si realizaste cambios).
- Implementación: descripción breve de componentes (Micro:bit, Móvil, servidor puente, Cliente p5.js: incluye recepción, proceso, output). Instrucciones claras y probadas para ejecutar (incluyendo iniciar el servidor puente y abrir el cliente p5.js).
- Resultados: el video.
- Reflexión crítica: decisiones de diseño (¿Por qué esta arquitectura?). Desafíos. Aprendizajes. Mejoras futuras.
- Redacta y revisa: completa cada sección asegurando claridad y coherencia con la implementación final. Verifica las instrucciones de ejecución.
📝 Actividad pendiente por iniciar
El archivo student.md está vacío
Actividad 08
Reflexión final del curso
👣 Pasos:
- Recorre el camino: revisa tus trabajos y notas de unidades anteriores.
- Reflexión:
- ¿Cómo tu proyecto final integró habilidades previas?
- ¿Cuál fue el mayor desafío: la comunicación entre dispositivos, la lógica del proceso, o la visualización del output?
- Evalúa tu transformación:
- Revisa el resultado de aprendizaje específico del curso. ¿Llegaste al resultado esperado? ¿Cómo lo sabes?
- Proyecta el Futuro:
- ¿Cómo aplicarás estas habilidades de diseño I-P-O, integración hardware-software mediante protocolos de comunicación en otros contextos? Describe 2 ideas.
- ¿Qué te gustaría explorar ahora que terminaste el curso?
- Metarreflexión:
- ¿Qué consejo le darías a un compañero que vea por primera vez el curso para aprovecharlo al máximo?
📝 Actividad pendiente por iniciar
El archivo student.md está vacío