-
-
Save IoTeacher/e30b580e1eb3c9e76102ba926ac0e85a to your computer and use it in GitHub Desktop.
| ### Rol | |
| Actúa como un instructor mexicano con experiencia en arquitectura de computadoras, programación de sistemas, documentación técnica y diseño de actividades para GitHub Classroom. | |
| ### Tarea | |
| Genera una plantilla completa de actividad para GitHub Classroom donde el estudiante diseñe una propuesta de práctica temática pequeña usando ARM64 Assembly, Bash, Python o C, creando una estructura real de repositorio con varios archivos y directorios. | |
| ### Contexto | |
| - Idioma obligatorio de toda la salida: español mexicano. | |
| - Tono: claro, académico, directo y entendible para estudiantes. | |
| - Alcance del repositorio: proyecto completo. | |
| - No existe plantilla inicial en GitHub Classroom. | |
| - El docente publicará esta actividad en GitHub Classroom. | |
| - El estudiante será quien complete la propuesta. | |
| - El enfoque principal es documentación, planeación, estructura del repositorio y explicación del caso de uso. | |
| - El proyecto debe ser pequeño porque los estudiantes pueden usar la versión gratuita de Codex u otra IA con límites de uso. | |
| - Evita proyectos grandes, frameworks, APIs pagadas, bases de datos, nube, contenedores o dependencias complejas. | |
| - ARM64 Assembly debe recomendarse solo para programas muy pequeños. | |
| - La prioridad es documentar y justificar la idea antes de escribir mucho código. | |
| ### Instrucción Crítica de Salida | |
| NO generes un único archivo Markdown con todo el contenido. | |
| Debes generar una estructura real de repositorio con directorios y múltiples archivos. | |
| La salida debe estar en formato plaintext forzado, usando bloques por archivo de esta forma exacta: | |
| FILE: README.md | |
| ```markdown | |
| contenido del archivo | |
| ```` | |
| FILE: docs/propuesta.md | |
| ```markdown | |
| contenido del archivo | |
| ``` | |
| FILE: docs/caso_de_uso.md | |
| ```markdown | |
| contenido del archivo | |
| ``` | |
| FILE: docs/estructura_repositorio.md | |
| ```markdown | |
| contenido del archivo | |
| ``` | |
| FILE: docs/plan_de_pruebas.md | |
| ```markdown | |
| contenido del archivo | |
| ``` | |
| FILE: scripts/run.sh | |
| ```bash | |
| contenido del archivo | |
| ``` | |
| FILE: tests/test_plan.md | |
| ```markdown | |
| contenido del archivo | |
| ``` | |
| Si el entorno permite crear archivos, crea físicamente esos directorios y archivos. Si no permite crear archivos, entrega el contenido separado exactamente con el formato `FILE: ruta/del/archivo`. | |
| ### Estructura Obligatoria del Repositorio | |
| Debes crear esta estructura mínima: | |
| ```text | |
| nombre-del-proyecto/ | |
| ├── README.md | |
| ├── docs/ | |
| │ ├── propuesta.md | |
| │ ├── caso_de_uso.md | |
| │ ├── estructura_repositorio.md | |
| │ └── plan_de_pruebas.md | |
| ├── src/ | |
| │ └── main.<ext> | |
| ├── scripts/ | |
| │ └── run.sh | |
| └── tests/ | |
| └── test_plan.md | |
| ``` | |
| ### Archivos que Debes Generar | |
| #### 1. README.md | |
| Debe incluir: | |
| * Título de la actividad. | |
| * Descripción general. | |
| * Objetivo de aprendizaje. | |
| * Lenguajes permitidos: | |
| * ARM64 Assembly | |
| * C | |
| * Python | |
| * Bash | |
| * Reglas para mantener el proyecto pequeño. | |
| * Entregables esperados. | |
| * Instrucciones para el estudiante. | |
| * Criterios generales de evaluación. | |
| * Nota indicando que primero se documenta y luego, opcionalmente, se implementa un prototipo pequeño. | |
| Usa ejemplos de posibles temas: | |
| * “Mini Toolkit en ARM64” | |
| * “Asistente de Estudio en Terminal” | |
| * “Reporteador de Información del Sistema” | |
| * “Organizador de Archivos” | |
| * “Juego de Aprendizaje en Línea de Comandos” | |
| #### 2. docs/propuesta.md | |
| Debe ser una plantilla que el estudiante llenará. | |
| Incluye secciones con instrucciones y espacios para completar: | |
| * Nombre del proyecto. | |
| * Lenguaje principal elegido. | |
| * Justificación del lenguaje. | |
| * Problema o necesidad que atiende. | |
| * Descripción breve de la solución. | |
| * Alcance mínimo. | |
| * Alcance fuera del proyecto. | |
| * Entradas esperadas. | |
| * Salidas esperadas. | |
| * Limitaciones. | |
| * Riesgos técnicos. | |
| * Criterios de éxito. | |
| Aclara que ARM64 Assembly solo debe usarse para programas muy pequeños, por ejemplo: | |
| * calculadora básica, | |
| * conversor simple, | |
| * lectura y escritura mínima en consola, | |
| * manipulación básica de cadenas o números. | |
| #### 3. docs/caso_de_uso.md | |
| Debe ser una plantilla para describir el caso de uso. | |
| Incluye: | |
| * Usuario principal. | |
| * Contexto del usuario. | |
| * Situación inicial. | |
| * Flujo principal paso a paso. | |
| * Flujo alternativo. | |
| * Errores posibles. | |
| * Resultado esperado. | |
| * Ejemplo de uso en terminal. | |
| * Explicación de por qué el caso de uso es pequeño y viable. | |
| #### 4. docs/estructura_repositorio.md | |
| Debe explicar la estructura del repositorio. | |
| Incluye: | |
| * Árbol de directorios recomendado. | |
| * Explicación de cada carpeta. | |
| * Explicación de cada archivo. | |
| * Reglas para nombrar archivos. | |
| * Reglas para evitar desorden. | |
| * Nota sobre mantener pocos archivos y funciones pequeñas. | |
| Debe incluir este árbol: | |
| ```text | |
| nombre-del-proyecto/ | |
| ├── README.md | |
| ├── docs/ | |
| │ ├── propuesta.md | |
| │ ├── caso_de_uso.md | |
| │ ├── estructura_repositorio.md | |
| │ └── plan_de_pruebas.md | |
| ├── src/ | |
| │ └── main.<ext> | |
| ├── scripts/ | |
| │ └── run.sh | |
| └── tests/ | |
| └── test_plan.md | |
| ``` | |
| #### 5. docs/plan_de_pruebas.md | |
| Debe ser una plantilla sencilla para que el estudiante documente pruebas. | |
| Incluye: | |
| * Objetivo del plan de pruebas. | |
| * Casos de prueba en tabla. | |
| * Entrada. | |
| * Resultado esperado. | |
| * Resultado obtenido. | |
| * Estado. | |
| * Pruebas manuales. | |
| * Pruebas con errores. | |
| * Pruebas mínimas por lenguaje. | |
| * Criterios para considerar la práctica terminada. | |
| No exijas frameworks de testing. | |
| #### 6. scripts/run.sh | |
| Debe ser un script Bash simple y seguro que sirva como plantilla. | |
| Debe: | |
| * Usar `#!/usr/bin/env bash`. | |
| * Usar `set -euo pipefail`. | |
| * Mostrar mensajes claros. | |
| * Detectar de forma simple si existe algún archivo principal en `src/`. | |
| * No instalar dependencias. | |
| * No llamar APIs. | |
| * No usar red. | |
| * Incluir comentarios para que el estudiante lo adapte según su lenguaje. | |
| #### 7. tests/test_plan.md | |
| Debe ser una versión breve del plan de pruebas, enfocada en checklist. | |
| Incluye: | |
| * Checklist de pruebas mínimas. | |
| * Checklist de documentación. | |
| * Checklist de ejecución. | |
| * Checklist de entrega final. | |
| #### 8. src/main.<ext> | |
| Debes incluir un archivo placeholder según el lenguaje recomendado por defecto. | |
| Usa Python como ejemplo por defecto y crea: | |
| FILE: src/main.py | |
| ```python | |
| """ | |
| Archivo inicial de ejemplo. | |
| El estudiante puede reemplazar este archivo si elige C, Bash o ARM64 Assembly. | |
| La prioridad de esta actividad es documentar primero la propuesta. | |
| """ | |
| def main(): | |
| print("Prototipo mínimo del proyecto. Reemplaza este mensaje con tu idea.") | |
| if __name__ == "__main__": | |
| main() | |
| ``` | |
| ### Restricciones | |
| * No uses frameworks. | |
| * No uses bases de datos. | |
| * No uses Docker. | |
| * No uses servicios en la nube. | |
| * No uses APIs externas. | |
| * No incluyas dependencias complejas. | |
| * No hagas proyectos grandes. | |
| * No generes solamente un README. | |
| * No pongas todo en un solo archivo. | |
| * No uses inglés salvo nombres técnicos inevitables. | |
| * No inventes credenciales, llaves API, tokens ni datos personales. | |
| * Mantén el contenido apto para estudiantes principiantes o intermedios. | |
| ### Criterios de Calidad | |
| Antes de finalizar, revisa que: | |
| 1. Existan varios archivos separados. | |
| 2. Exista el directorio `docs/`. | |
| 3. Exista el directorio `scripts/`. | |
| 4. Exista el directorio `tests/`. | |
| 5. Exista el directorio `src/`. | |
| 6. La actividad esté lista para GitHub Classroom. | |
| 7. El estudiante pueda completar la propuesta sin depender de herramientas externas. | |
| 8. El proyecto sea pequeño y viable. | |
| 9. Todo esté en español mexicano. | |
| 10. La salida esté en formato plaintext forzado con encabezados `FILE:`. | |
| ### Salida Esperada | |
| Entrega únicamente los archivos del repositorio usando el formato `FILE: ruta/del/archivo`. | |
| No agregues explicación antes ni después. | |
| No agregues comentarios fuera de los archivos. | |
| No generes un solo archivo Markdown. | |
| No omitas directorios. | |
| No omitas archivos obligatorios. | |
PRUEBAS TODAVIA EN REVISIÓN
Prompt corto — Actividad GitHub Classroom (ARM64)
## Rol
Actúa como instructor mexicano de arquitectura de computadoras y sistemas embebidos.
## Objetivo
Generar una actividad completa de GitHub Classroom + micropráctica técnica.
---
## Entrega obligatoria (EXACTAMENTE 6 archivos)
1) README.md
2) docs/propuesta.md
3) docs/caso_de_uso.md
4) docs/estructura_repositorio.md
5) docs/plan_de_pruebas.md
6) docs/reflexion_ia.md
---
## Formato estricto de salida
Usar EXACTAMENTE este formato por archivo:
### FILE: <ruta/archivo>
[INICIO_ARCHIVO]
<contenido completo>
[FIN_ARCHIVO]
---
## Reglas
- Español mexicano claro.
- No omitir ningún archivo.
- No escribir texto fuera de los bloques (excepto checklist final).
- Núcleo obligatorio: ARM64 Assembly con al menos 1 macro.
- Capa opcional mínima: Bash, C++, Rust, Go, C#, Java o JavaScript.
- No usar Python.
- Sin frameworks pesados.
- Sin Docker ni Kubernetes.
- Sin cloud adicional ni APIs pagadas.
- Implementación sugerida ≤150 líneas.
- Alcance: 3 a 5 funcionalidades pequeñas.
---
## Contenido mínimo requerido
README.md
- Objetivo
- Instrucciones
- Criterios
- Rúbrica breve
docs/propuesta.md
- Problema
- Justificación
- Alcance
- Arquitectura
- Riesgos
docs/caso_de_uso.md
- Actor
- Flujo principal
- 2 alternos
- Criterios de aceptación
docs/estructura_repositorio.md
- Árbol
- Descripción de archivos
docs/plan_de_pruebas.md
- Estrategia
- Tabla de casos: entrada | esperado | éxito
docs/reflexion_ia.md
- Uso de IA
- Validación manual
- Riesgos
- Aprendizaje
- Integridad académica
---
## Autovalidación
Antes de responder:
- Verificar que existen los 6 archivos.
- Verificar formato correcto.
- Verificar restricciones técnicas.
Si algo falla, regenerar TODO.
---
## Checklist final
- README.md
- docs/propuesta.md
- docs/caso_de_uso.md
- docs/estructura_repositorio.md
- docs/plan_de_pruebas.md
- docs/reflexion_ia.md
(Marcar con ✅ solo si todo está completo)
Vamos a calcularlo con precisión usando tarifas de GPT-5 mini:
Input: $0.25 / 1M tokens
Output: $2.00 / 1M tokens
Cached input: normalmente se cobra más barato (≈10% del input → ~$0.025 / 1M)
Vamos a calcularlo con precisión usando tarifas de GPT-5 mini:
- Input: $0.25 / 1M tokens
- Output: $2.00 / 1M tokens
- Cached input: normalmente se cobra más barato (≈10% del input → ~$0.025 / 1M)
🧮 Tus métricas
- Input: 117,012
- Cached input: 3,584,000
- Output: 41,901
- Total facturable: se separa por tipo (no solo el total)
💸 Cálculo detallado
🟢 Input normal
117,012 / 1,000,000 × 0.25 = $0.0293
🟡 Cached input (mucho volumen aquí 👀)
3.584M × 0.025 ≈ $0.0896
🔴 Output
41,901 / 1,000,000 × 2.00 = $0.0838
📊 Total
0.0293 + 0.0896 + 0.0838 ≈ $0.2027 USD
👉 ≈ $0.20 USD
🔍 Lectura importante (esto es lo valioso)
-
Tu costo está bien optimizado
-
Aunque tienes 3.5M tokens, no explotó el precio porque:
- eran cached (mucho más baratos)
-
El mayor costo real viene de:
- output (~$0.08)
- cached (~$0.09)
⚠️ Insight clave
Ese número grande:
(+ 3,584,000 cached)
significa que estás reutilizando contexto eficientemente (probablemente Codex iterando sobre lo mismo).
👉 Eso es bueno, pero:
- si ese cache crece más → empieza a dominar el costo
- si reduces output → bajas costo más rápido
🎯 Conclusión
👉 Tu ejecución costó aproximadamente:
💰 $0.20 USD
y está dentro de un uso bastante eficiente para un flujo con agente.
CODEX + Wokwi para practicas de microcontoladores.
Ejemplo: https://wokwi.com/projects/300124198602277389
Seleccione uno de el directorio de WokWi
- Copiar JSON del diagrama, pues CODEX no tiene visión por computadora como Chatgtp, es un "Agente Developer Junior" (Uds. checan el prompt es similar a pseudocodigo) colocarlo en su bloque de comillas
- Copiar código Micropython o CPP y colocarlo en su bloque de comillas formato
- Breve descripción del diagrama imagen (puede usar Chatgpt que lo haga por Uds) colocarlo en su bloque de comillas
### Role
Act as an experienced Raspberry Pi Pico W (RP2040, MicroPython/C++) principal embedded systems engineer.
### Task
Generate a clean, well-structured repository and comprehensive documentation from the provided Raspberry Pi Pico W source code and hardware diagram, without modifying the core logic.
### Context
- Repository scope: whole project.
- Relevant files / functions:
- Main firmware: provided below (`main.py` for MicroPython or `main.cpp` / `CMakeLists.txt` for Pico SDK).
- Hardware definition: provided below (`diagram.json` from Wokwi).
- Known constraints:
- Target board: Raspberry Pi Pico W (RP2040 with Wi-Fi).
- Do NOT change program behavior.
- Documentation-focused task.
- No external network calls after setup.
- Support either MicroPython or C/C++ Pico SDK depending on input code.
### Expected Output
1. Propose a clean repository structure adapted to Pico W:
- For MicroPython: `/src`, `/lib`, `/docs`, `README.md`
- For C/C++: `/src`, `/include`, `CMakeLists.txt`, `/docs`, `README.md`
2. Generate:
- `README.md` (project overview, features, setup for Pico W, flashing instructions)
- `docs/wiring.md` (clear explanation of connections and GPIO usage)
- `docs/architecture.md` (code structure and modules explanation)
3. Include:
- Components list (derived from diagram.json)
- GPIO pin mapping table (Pico W pin names)
- Instructions to run in Wokwi and on real hardware
- If Wi-Fi is used: document setup without exposing credentials
4. Do NOT rewrite the main logic unless strictly necessary for clarity.
5. If helpful, normalize filenames (e.g., `main.py`, `boot.py`, `CMakeLists.txt`) while preserving code content.
### Guidance for Codex
1. Think step-by-step using Structured CoT (plan → code).
2. Run a self-critique loop: generate → review → improve once.
3. If diagram is unclear, infer cautiously and document assumptions.
4. Output ≤ 500 lines.
5. Never expose secrets or sensitive data.
### Setup Script (if needed)
# For C/C++ Pico SDK projects (skip if MicroPython)
# sudo apt update
# sudo apt install cmake gcc-arm-none-eabi build-essential
# git clone https://github.com/raspberrypi/pico-sdk
# export PICO_SDK_PATH=$PWD/pico-sdk
### Provided Code
```python
# PASTE YOUR MICROPYTHON CODE HERE
// OR PASTE YOUR C/C++ PICO SDK CODE HERE
#include <Keypad.h>
const uint8_t LEDS = 12;
const uint8_t ROWS = 4;
const uint8_t COLS = 4;
char keys[ROWS][COLS] = {
{ '1', '2', '3', 'A' },
{ '4', '5', '6', 'B' },
{ '7', '8', '9', 'C' },
{ '*', '0', '#', 'D' }
};
// Pins connected to LED1, LED2, LED3, ...LED12
uint8_t ledPins[LEDS] = { 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 28, 27 };
uint8_t rowPins[ROWS] = { 26, 22, 21, 20 }; // Pins connected to R1, R2, R3, R4
uint8_t colPins[COLS] = { 19, 18, 17, 16 }; // Pins connected to C1, C2, C3, C4
Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);
void setup() {
for (uint8_t l = 0; l < LEDS; l++) {
pinMode(ledPins[l], OUTPUT);
digitalWrite(ledPins[l], LOW);
}
}
void loop() {
char key = keypad.getKey();
if (key != NO_KEY) {
switch (key) {
case '1': digitalWrite(ledPins[0], HIGH);
break;
case '2': digitalWrite(ledPins[1], HIGH);
break;
case '3': digitalWrite(ledPins[2], HIGH);
break;
case '4': digitalWrite(ledPins[3], HIGH);
break;
case '5': digitalWrite(ledPins[4], HIGH);
break;
case '6': digitalWrite(ledPins[5], HIGH);
break;
case '7': digitalWrite(ledPins[6], HIGH);
break;
case '8': digitalWrite(ledPins[7], HIGH);
break;
case '9':
for (uint8_t l = 0; l < 8; l++) {
digitalWrite(ledPins[l], HIGH);
}
break;
case '0':
for (uint8_t l = 0; l < 8; l++) {
digitalWrite(ledPins[l], LOW);
}
break;
case 'A': digitalWrite(ledPins[8], HIGH);
break;
case 'B': digitalWrite(ledPins[9], HIGH);
break;
case 'C': digitalWrite(ledPins[10], HIGH);
break;
case 'D': digitalWrite(ledPins[11], HIGH);
break;
case '*':
for (uint8_t l = 8; l < 12; l++) {
digitalWrite(ledPins[l], HIGH);
}
break;
case '#':
for (uint8_t l = 8; l < 12; l++) {
digitalWrite(ledPins[l], LOW);
}
break;
}
}
delay(10);
}
Provided Hardware Diagram (Wokwi)
// PASTE diagram.json HERE
{
"version": 1,
"author": "Anderson Costa",
"editor": "wokwi",
"parts": [
{ "type": "wokwi-pi-pico", "id": "pico", "top": 118, "left": 348, "rotate": 90, "attrs": {} },
{
"type": "wokwi-resistor",
"id": "rp1",
"top": 349.55,
"left": 19.2,
"attrs": { "value": "1000" }
},
{
"type": "wokwi-resistor",
"id": "rp2",
"top": 368.75,
"left": 19.2,
"attrs": { "value": "1000" }
},
{
"type": "wokwi-resistor",
"id": "rp3",
"top": 426.35,
"left": 19.2,
"attrs": { "value": "1000" }
},
{
"type": "wokwi-resistor",
"id": "rp4",
"top": 397.55,
"left": 19.2,
"attrs": { "value": "1000" }
},
{ "type": "wokwi-membrane-keypad", "id": "keypad1", "top": -30.8, "left": -13.6, "attrs": {} },
{
"type": "wokwi-led",
"id": "led1",
"top": 20,
"left": 420,
"attrs": { "color": "blue", "label": "8" }
},
{
"type": "wokwi-resistor",
"id": "r1",
"top": 90,
"left": 415,
"rotate": 90,
"attrs": { "value": "220" }
},
{
"type": "wokwi-led",
"id": "led2",
"top": 20,
"left": 400,
"attrs": { "color": "blue", "label": "7" }
},
{
"type": "wokwi-resistor",
"id": "r2",
"top": 90,
"left": 395,
"rotate": 90,
"attrs": { "value": "220" }
},
{
"type": "wokwi-led",
"id": "led3",
"top": 20,
"left": 380,
"attrs": { "color": "blue", "label": "6" }
},
{
"type": "wokwi-resistor",
"id": "r3",
"top": 90,
"left": 375,
"rotate": 90,
"attrs": { "value": "220" }
},
{
"type": "wokwi-led",
"id": "led4",
"top": 20,
"left": 360,
"attrs": { "color": "blue", "label": "5" }
},
{
"type": "wokwi-resistor",
"id": "r4",
"top": 90,
"left": 355,
"rotate": 90,
"attrs": { "value": "220" }
},
{
"type": "wokwi-led",
"id": "led5",
"top": 20,
"left": 340,
"attrs": { "color": "blue", "label": "4" }
},
{
"type": "wokwi-resistor",
"id": "r5",
"top": 90,
"left": 335,
"rotate": 90,
"attrs": { "value": "220" }
},
{
"type": "wokwi-led",
"id": "led6",
"top": 20,
"left": 320,
"attrs": { "color": "blue", "label": "3" }
},
{
"type": "wokwi-resistor",
"id": "r6",
"top": 90,
"left": 315,
"rotate": 90,
"attrs": { "value": "220" }
},
{
"type": "wokwi-led",
"id": "led7",
"top": 20,
"left": 300,
"attrs": { "color": "blue", "label": "2" }
},
{
"type": "wokwi-resistor",
"id": "r7",
"top": 90,
"left": 295,
"rotate": 90,
"attrs": { "value": "220" }
},
{
"type": "wokwi-led",
"id": "led8",
"top": 20,
"left": 280,
"attrs": { "color": "blue", "label": "1" }
},
{
"type": "wokwi-resistor",
"id": "r8",
"top": 90,
"left": 275,
"rotate": 90,
"attrs": { "value": "220" }
},
{
"type": "wokwi-led",
"id": "led9",
"top": 20,
"left": 440,
"attrs": { "color": "red", "label": "A" }
},
{
"type": "wokwi-resistor",
"id": "r9",
"top": 90,
"left": 435,
"rotate": 90,
"attrs": { "value": "220" }
},
{
"type": "wokwi-led",
"id": "led10",
"top": 20,
"left": 460,
"attrs": { "color": "red", "label": "B" }
},
{
"type": "wokwi-resistor",
"id": "r10",
"top": 90,
"left": 455,
"rotate": 90,
"attrs": { "value": "220" }
},
{
"type": "wokwi-led",
"id": "led11",
"top": 20,
"left": 480,
"attrs": { "color": "red", "label": "C" }
},
{
"type": "wokwi-resistor",
"id": "r11",
"top": 90,
"left": 475,
"rotate": 90,
"attrs": { "value": "220" }
},
{
"type": "wokwi-led",
"id": "led12",
"top": 20,
"left": 500,
"attrs": { "color": "red", "label": "D" }
},
{
"type": "wokwi-resistor",
"id": "r12",
"top": 90,
"left": 495,
"rotate": 90,
"attrs": { "value": "220" }
}
],
"connections": [
[ "pico:GP0", "$serialMonitor:RX", "", [] ],
[ "pico:GP1", "$serialMonitor:TX", "", [] ],
[ "keypad1:C4", "pico:GP16", "green", [ "v15", "h132" ] ],
[ "keypad1:C3", "pico:GP17", "green", [ "v25", "h182" ] ],
[ "keypad1:C2", "pico:GP18", "green", [ "v35", "h204" ] ],
[ "keypad1:C1", "pico:GP19", "green", [ "v45", "h222" ] ],
[ "keypad1:R4", "pico:GP20", "green", [ "v55", "h240" ] ],
[ "keypad1:R3", "pico:GP21", "green", [ "v65", "h260" ] ],
[ "keypad1:R2", "pico:GP22", "green", [ "v75", "h286" ] ],
[ "keypad1:R1", "pico:GP26", "green", [ "v85", "h299" ] ],
[ "r1:1", "led1:A", "green", [ "h0" ] ],
[ "r2:1", "led2:A", "green", [ "h0" ] ],
[ "r3:1", "led3:A", "green", [ "h0" ] ],
[ "r4:1", "led4:A", "green", [ "h0" ] ],
[ "r5:1", "led5:A", "green", [ "h0" ] ],
[ "r6:1", "led6:A", "green", [ "h0" ] ],
[ "r7:1", "led7:A", "green", [ "h0" ] ],
[ "r8:1", "led8:A", "green", [ "h0" ] ],
[ "pico:GND.4", "led8:C", "black", [ "v-25", "h-22", "v-77", "h6" ] ],
[ "pico:GND.4", "led7:C", "black", [ "v-25", "h-22", "v-77", "h6" ] ],
[ "pico:GND.4", "led6:C", "black", [ "v-25", "h-22", "v-77", "h6" ] ],
[ "pico:GND.4", "led5:C", "black", [ "v-25", "h-22", "v-77", "h6" ] ],
[ "pico:GND.4", "led4:C", "black", [ "v-25", "h-22", "v-77", "h6" ] ],
[ "pico:GND.4", "led3:C", "black", [ "v-25", "h-22", "v-77", "h6" ] ],
[ "pico:GND.4", "led2:C", "black", [ "v-25", "h-22", "v-77", "h6" ] ],
[ "pico:GND.4", "led1:C", "black", [ "v-25", "h-22", "v-77", "h6" ] ],
[ "pico:GND.4", "led9:C", "black", [ "v-25", "h-22", "v-77", "h6" ] ],
[ "pico:GND.4", "led10:C", "black", [ "v-25", "h-22", "v-77", "h6" ] ],
[ "pico:GND.4", "led11:C", "black", [ "v-25", "h-22", "v-77", "h6" ] ],
[ "pico:GND.4", "led12:C", "black", [ "v-25", "h-22", "v-77", "h6" ] ],
[ "pico:GP4", "r1:2", "green", [ "v-28", "h10", "v-20" ] ],
[ "pico:GP5", "r2:2", "green", [ "v-36", "h8" ] ],
[ "pico:GP6", "r3:2", "green", [ "v-26", "h7" ] ],
[ "pico:GP7", "r4:2", "green", [ "v-36", "h-3" ] ],
[ "pico:GP8", "r5:2", "green", [ "v-33", "h-13" ] ],
[ "pico:GP9", "r6:2", "green", [ "v-23", "h-14", "v-11", "h-10" ] ],
[ "pico:GP10", "r7:2", "green", [ "v-22", "h-16", "v-9" ] ],
[ "pico:GP11", "r8:2", "green", [ "v-12", "h-17", "v-24", "h-18" ] ],
[ "r9:1", "led9:A", "green", [ "h0" ] ],
[ "r10:1", "led10:A", "green", [ "h0" ] ],
[ "r11:1", "led11:A", "green", [ "h0" ] ],
[ "r12:1", "led12:A", "green", [ "h0" ] ],
[ "pico:GP3", "r9:2", "green", [ "v-20", "h10", "v-20", "h20", "v-13" ] ],
[ "pico:GP2", "r10:2", "green", [ "v-15", "h20", "v-15", "h20", "v-22" ] ],
[ "pico:GP27", "r12:2", "green", [ "v165", "h152" ] ],
[ "pico:GP28", "r11:2", "green", [ "v155", "h104" ] ],
[ "rp1:2", "keypad1:R1", "green", [ "h8.4", "v-48" ] ],
[ "rp2:2", "keypad1:R2", "green", [ "h18", "v-67.2" ] ],
[ "rp4:2", "keypad1:R3", "green", [ "h27.6", "v-96" ] ],
[ "rp3:2", "keypad1:R4", "green", [ "h37.2", "v-124.8" ] ],
[ "rp1:1", "rp2:1", "red", [ "v0" ] ],
[ "rp2:1", "rp4:1", "red", [ "v0" ] ],
[ "rp4:1", "rp3:1", "red", [ "v0" ] ],
[ "rp3:1", "pico:3V3", "red", [ "v19.2", "h417.15" ] ]
],
"dependencies": {}
}(Optional) Visual Reference
// Briefly describe screenshot if needed
A wiring diagram showing a **Raspberry Pi Pico** connected to a **4x4 matrix keypad** and multiple **LEDs with resistors**. The keypad uses 8 GPIO pins (rows and columns), while each LED is individually connected to GPIO pins through current-limiting resistors. All components share common power (VCC) and ground (GND). The setup suggests reading keypad input and controlling LEDs accordingly.
End
Prompt Final — Actividad GitHub Classroom con ARM64 Assembly, no optimizado