PiCalc-Casio es un proyecto de ingeniería inversa, electrónica Maker y desarrollo de software que transforma la carcasa, la membrana de gomas y la estética de una calculadora científica estándar (como la Casio fx-82) en una supercalculadora avanzada de alta potencia.
El corazón del proyecto es una Raspberry Pi Pico (RP2040) ejecutando PiCalc OS, un sistema operativo a medida programado íntegramente en MicroPython. El firmware replica la experiencia de usuario y la fidelidad de interfaz de una Casio fx-991 ClassWiz, incorporando un motor algebraico avanzado propio.
© 2026. Todos los derechos reservados.
Este proyecto se publica bajo un modelo de Software Propietario de Uso Gratuito (Freeware).
- Permitido: Se autoriza a cualquier usuario a descargar el código fuente, compilarlo, instalarlo y utilizarlo de forma estrictamente personal y gratuita en su propio hardware.
- Prohibido: Queda totalmente prohibida la modificación, alteración, bifurcación (forking) con fines de distribución, copia total o parcial del motor matemático para otros proyectos, y la comercialización o reventa de este software o de dispositivos que lo incluyan sin la autorización expresa del autor original.
El objetivo central es actualizar las limitaciones de cómputo del hardware escolar tradicional mediante hardware de bajo coste. Al interceptar los pads del teclado y añadir una pantalla OLED de alta resolución camuflada bajo un plástico polarizado gris, el dispositivo mantiene un aspecto exterior idéntico al original mientras despliega un motor algebraico avanzado que prescinde totalmente de la función insegura eval().
Para cumplir con las normativas escolares y de exámenes, el sistema integra variables globales de control (interruptores booleanos) que modifican por completo el comportamiento del motor matemático:
- Modo Examen Activo (
True): Capa por completo las funciones de cálculo avanzado (sistemas de ecuaciones, cálculo matricial, derivadas, integrales y CAS), devolviendo únicamente resultados aritméticos tradicionales con decimales o enteros simples exigidos en el aula. - Modo Examen Desactivado (
False): Libera la potencia máxima del sistema (Cálculo analítico, complejos con cmath, simplificación de raíces, fracciones reducidas, etc.). - Indicador de Honestidad Visual: Cuando el Modo Examen está activo, la pantalla muestra una marca de agua o código fijo en la esquina superior (ej.
[MODO R-1]) para que el profesorado pueda verificar visualmente y a distancia que el alumno rinde bajo las reglas permitidas.
| Componente | Descripción | Notas de Integración |
|---|---|---|
| Cerebro | Placa compatible con Raspberry Pi Pico (RP2040). | 4MB de memoria Flash, puerto USB-C. Se usa sin los pines soldados para ahorrar espacio interno. |
| Pantalla | Módulo OLED de 1.3" I2C. | Controlador SH1106 o SSD1306 (128x64 píxeles). |
| Camuflaje Visual | Lámina de plástico polarizado gris o filtro difusor. | Colocada sobre el OLED para imitar el aspecto gris mate del LCD original apagado. |
| Cableado | Cable de cobre esmaltado ultra fino. | Reciclado del bobinado de un transformador de microondas para realizar conexiones internas sin obstruir las gomas del teclado. |
| Alimentación | Portapilas AAA original. | 2x pilas AAA en serie que entregan 3V directos conectados al pin 3V3 de la placa. |
Dado que las calculadoras modernas utilizan una lámina plástica flexible impresa que no tolera el calor del soldador, se interceptan las señales mediante Bypass en la Placa Rígida Original:
- Se desuelda o raspa la alimentación del procesador nativo de la calculadora (la "gota de resina negra") para dejarlo inactivo y evitar interferencias eléctricas.
- Los cables esmaltados ultra finos se sueldan directamente a las pistas de cobre expuestas de la placa rígida original (filas y columnas).
- El otro extremo se redirige a los pines GPIO correspondientes de la Raspberry Pi Pico para realizar el escaneo matricial digital directo por software.
El firmware ha evolucionado a través de dos grandes etapas: la etapa de Simulación Estructurada (Betas y v1.0) y la etapa de Motor de Tokens y Parsing Avanzado (v3.0 a v4.3).
- picalc_os_vBeta1 (El Concepto Base):
- Diseño troncal para la Raspberry Pi Pico con escáner matricial clásico utilizando resistencias Pull-Down.
- Integración del driver gráfico para la pantalla
sh1106.pymediante I2C. - Estrategia de energía: Timer de inactividad de 3 minutos que apaga los píxeles de la OLED y activa
machine.lightsleep()reduciendo el consumo de batería a 0.2mA.
- picalc_os_vBeta1.1 (Testeo Multiplataforma):
- Aislamiento de hardware mediante bloques
try-exceptcreando la Dualidad de Entorno: si detecta que corre en PC, deshabilita los pines físicos, simula la pantalla OLED dibujando un recuadro en la terminal y lee comandos desde el teclado de la computadora.
- Aislamiento de hardware mediante bloques
- picalc_os_vBeta1.2 (Seguridad y Memorias):
- Inclusión de un atajo de combinación por software (
SHIFT79al presionarIGUAL) para conmutar elMODO_EXAMEN. - Añadido sistema de almacenamiento en memoria rápida mediante variables asignables (
STO_A,STO_B,STO_X, etc.).
- Inclusión de un atajo de combinación por software (
- picalc_os_vBeta1.3 / picalc.py (El Techo del Motor Lineal):
- Incorporación de álgebra elemental y cálculo numérico: Solver de Newton-Raphson para buscar incógnitas, resolución de sistemas lineales por regla de Cramer, integrales por Regla de Simpson (100 intervalos) y descomposición en factores primos (
PRIMOS). - Implementación de algoritmos analíticos básicos: extracción de factores de raíces no exactas (ej: devuelve
2*v(3)en vez de3.46410) y redondeo por fracciones continuas de hasta 5 cifras de denominador en modo libre.
- Incorporación de álgebra elemental y cálculo numérico: Solver de Newton-Raphson para buscar incógnitas, resolución de sistemas lineales por regla de Cramer, integrales por Regla de Simpson (100 intervalos) y descomposición en factores primos (
- picalc_os_v1.0 (Producción Escolar):
- Consolidación de la lógica lineal. Firmware blindado para el aula con tablas comparativas estrictas de lo permitido en Modo Examen vs Modo Avanzado.
-
picalc_os_v3.0 / v3.0.1 (Adiós a Eval):
-
Reescritura completa desde cero: Se desecha
eval()por seguridad, estabilidad de memoria RAM y fidelidad. - Implementación del algoritmo de ordenación Shunting-Yard (de Dijkstra) para procesar texto infijo, convertirlo a Notación Polaca Inversa (RPN) y evaluarlo mediante pilas de forma analítica.
- Estructura basada en Tokens independientes: funciones como
SIN(,COS(,MAT1(se guardan como un único elemento. Al presionar la teclaDEL, se borra la estructura completa de un solo golpe (comportamiento idéntico a Casio). - Inclusión de un límite estricto de almacenamiento de listas estadísticas (
LIMITE_ESTADISTICA = 50) para prevenir desbordamientos de la memoria Heap del chip RP2040.
-
Reescritura completa desde cero: Se desecha
-
picalc_os_v3.1 (Protección Eléctrica del GPIO):
-
FIX CRÍTICO DE HARDWARE: Se rediseñó el método
escanear_teclado(). Ahora, todos los pines de las filas se configuran en estado de Alta Impedancia (Input) en reposo. Al escanear, se conmuta una sola fila a la vez aOutput HIGH. Esto previene cortocircuitos destructivos si el usuario presiona dos teclas de la misma columna simultáneamente. - Corrección del parser en el comando
SOLVE, aislando los bloqueslhs(izquierdo) yrhs(derecho) del signo=de manera segura sin romper los paréntesis internos.
-
FIX CRÍTICO DE HARDWARE: Se rediseñó el método
-
picalc_os_v3.2 (Comportamiento de Fidelidad Casio):
- Cambio de la sintaxis y separador de argumentos de punto y coma (
;) a coma (,) para adaptarse al layout de botones físico disponible en la carcasa (Fila 3, Columna 6). - Modificación lúdica al presionar
IGUAL: si el cálculo arroja unError Sintaxis, el buffer de tokens no se borra. La expresión inválida permanece en pantalla permitiendo al usuario corregir el error con el cursor, idéntico a las calculadoras comerciales.
- Cambio de la sintaxis y separador de argumentos de punto y coma (
-
picalc_os_v4.0 / v4.1 / v4.2 (Expansión Avanzada de Modos):
-
Módulo Complejo (CMPLX): Integración nativa del módulo
cmathde MicroPython cuando se activa el flag complejo. Entrada mediante el token de unidad imaginariai(mapeado a1j) y formateo estricto de salida sin paréntesis tipo Python (ej: muestra2+3i,-i,4-2i). -
Módulo de Matrices (MAT): Creación de almacenamiento persistente para
MatA,MatByMatC(hasta 4x4). Implementación de operaciones analíticas: multiplicación matricial con validación previa de dimensiones (Error Dimension), transposición, determinantes y matrices inversas. - Filtro Anticolgaduras en Tablas (TABLE): Se fijó un límite absoluto de 45 filas máximas en el modo tabla de valores. El sistema estima por software la cantidad de pasos calculados antes de iniciar las iteraciones matemáticas para evitar la congelación de la pantalla o el desborde de memoria RAM.
-
Módulo Complejo (CMPLX): Integración nativa del módulo
-
picalc_os_v4.3 (Interfaz Gráfica Dinámica):
-
Navegación por Cursor Real:
ENTRADA_TOKENSpasa de ser una lista estática a un buffer direccionable mediante un índice de cursor (CURSOR_POS). Las flechas de dirección mueven el cursor de forma fluida. Las inserciones de tokens y la acción de borrado (DELactuando como backspace) se realizan exactamente en la posición del cursor (|). - Scroll Horizontal Centrado: El método de renderizado gráfico calcula dinámicamente la posición del cursor en caracteres y centra la vista de la pantalla OLED alrededor del cursor en lugar de fijar el extremo derecho.
-
Menú MODE Fx-991 ClassWiz: Al presionar la tecla
MODE, la interfaz despliega el menú de cuadrícula icónico de la gama ClassWiz:Permite la selección rápida mediante flechas de navegación o por digitación directa del número de modo.1:COMP 2:CMPLX 3:STAT 4:BASE-N 5:EQN 6:MATRIX 7:TABLE 8:VECTOR
-
Navegación por Cursor Real:
-
picalc_os_v4.4 (Blindaje de Excepciones Críticas):
-
FIX CRÍTICO EN TOKENIZACIÓN: Se corrigió un fallo que aceptaba números con múltiples puntos decimales (ej:
1.2.3). El bucle de dígitos ahora cuenta los puntos estrictamente; un segundo punto dispara unValueError, protegiendo al motor RPN de colgarse. -
CONTROL DE DIVISIÓN POR CERO: El evaluador de pilas RPN ahora analiza si el denominador es menor a
1e-12antes de ejecutar una división (a/b). Si se detecta, lanza un error controlado de división por cero explícito en la pantalla en lugar de propagar la excepción nativa de Python. -
BLINDAJE ELÉCTRICO DEL MÓDULO SHIFT/2ND: Se protegió el método
escanear_teclado()contra ruido eléctrico o lecturas incompletas en la matriz física. El toggle de la segunda función (MODO_2ND) ahora solo se activa si el token es exactamente"2ND"y valida que las coordenadas de fila y columna existan dentro de la matriz. -
CORRECCIÓN EN MENÚ MODE: Se aisló la variable
_SELECCION_MENUde la variable de estadoMODO_CALC. Ahora las flechas IZQ/DER mueven la selección en pantalla de forma fluida sin pisar ni alterar el modo de cálculo actual hasta que el usuario presione efectivamenteIGUAL.
-
FIX CRÍTICO EN TOKENIZACIÓN: Se corrigió un fallo que aceptaba números con múltiples puntos decimales (ej:
-
picalc_os_v4.5 (Persistencia en Flash y Configuración Setup):
-
NUEVO MÓDULO DE PERSISTENCIA (JSON): Implementación de las funciones
guardar_estado()ycargar_estado()utilizando la libreríajson(ujsonen MicroPython). El sistema guarda de forma automática en la memoria no volátil de la Pico el estado del diccionarioMEMORIA, el valor deANS, el modo de cálculo actual y las variables de configuración, evitando que se borren los datos al apagar la calculadora. -
INTERFAZ DE CONFIGURACIÓN (SETUP): Activación del comando
cmd_setup()vinculado al botón físico SETUP. Despliega un menú interactivo en la pantalla OLED que permite al usuario alternar entre modos de ángulo (DEG/RAD), fijar la cantidad de decimales en pantalla (FIX de 0 a 9) y auditar el estado de salud de la memoria RAM. -
CONTROL DE TIPOS EN BASE-N: Parche de estabilidad en
_evaluar_entero(). Ahora se valida estrictamente que la pila RPN no intente convertir números complejos (complex) o indeterminaciones (NaN) a enteros. Expresiones inválidas comoBIN(3+2i)ahora devuelven un error controlado:"No soporta complejos en BASE-N". -
DOCUMENTACIÓN INTERNA Y PASO NEGATIVO: Limpieza y actualización cosmética de comentarios obsoletos heredados de versiones previas. Se documentó detalladamente la lógica de bifurcación en el rango del comando
TABLEcuando se trabaja con un incremento o paso negativo.
-
NUEVO MÓDULO DE PERSISTENCIA (JSON): Implementación de las funciones
-
picalc_os_v5.0 (Combinatoria, Avanzado en CMPLX y Formateo SCI/NORM):
-
MÓDULO DE COMBINATORIA (
FACT,NPR,NCR): Inclusión de funciones de conteo y probabilidad en la capa de teclado2ND.FACT(n)calcula el factorial de enteros no negativos (límite den=170para evitar overflow).NPR(n,r)yNCR(n,r)calculas permutaciones y combinaciones validando estrictamente que0 <= r <= n. -
FUNCIONES COMPLEJAS AVANZADAS: Integración de comandos
CONJ()yARG().CONJcalcula el conjugado aritmético de un complejo ($a - bi$ ) yARGextrae su argumento o ángulo de fase en el plano complejo, adaptándose de forma dinámica al formato de ángulos seleccionado. -
CORRECCIÓN CRÍTICA EN ÁNGULOS (RADIANES REALES): Se solucionó un bug heredado de la v4.5 donde el flag
MODO_ANGULOS = "RAD"se guardaba en la Flash pero era ignorado por el motor de evaluación. Ahora, las funcionesSIN/COS/TANy sus inversas procesan e interpretan los radianes de forma directa y nativa sin forzar conversiones a grados. -
FORMATOS DE PANTALLA CIENTÍFICOS (
SCIyNORM): Evolución del menúSETUP. Se añade soporte completo para visualización en notación científica (SCIcon selección de 0 a 9 dígitos significativos) y regreso a formato decimal estándar (NORM 1yNORM 2), emulando perfectamente las restricciones visuales de la Casio física.
-
MÓDULO DE COMBINATORIA (
-
picalc_os_v5.1 (Rediseño del Formateador de Pantalla y Fix en SCI/NORM):
-
CORRECCIÓN EN FORMATEO DE PANTALLA (
SCI/NORM): Se reescribió la función fundamentalformatear_numero_setup()corrigiendo fallos de desborde y falsos truncamientos visuales. Ahora el sistema procesa de forma precisa la separación de mantisa y exponente en notación científica (SCI) respetando estrictamente los dígitos significativos elegidos por el usuario de 0 a 9. -
ESTABILIZACIÓN DEL DELIMITADOR DINÁMICO: Reparación del bug crítico vinculado a
_LIMIT_SCI_NORMque generaba comportamientos inesperados en las salidas decimales estándar. Las transiciones entre el formato condensado y el formato expandido (NORM 1yNORM 2) ahora responden a los umbrales matemáticos correctos sin pisotear la memoria temporal. -
REGLAS DE TRUNCAMIENTO SEGURO: Optimización de la lógica para limpiar los restos flotantes redundantes (como los molestos
.0) en números enteros grandes o aproximaciones muy cercanas a cero, garantizando una salida gráfica ultra limpia en la pantalla OLED.
-
CORRECCIÓN EN FORMATEO DE PANTALLA (
-
picalc_os_v5.2 (Gestión Dinámica de Heap y Prevención de MemoryError):
-
MONITOREO DE RAM EN TIEMPO REAL: Integración del módulo de recolección de basura
gc(Garbage Collector). Se diseñó la función internaMOSTRAR_MEM_DISP()para calcular de forma dinámica los bytes libres en el Heap del microcontrolador. -
PREVENCIÓN DE DESBORDES DE PILA: El menú de estadísticas (
STAT) y el generador de tablas de funciones (TABLE) ahora realizan un chequeo preventivo de memoria RAM disponible antes de poblar listas extensas, evitando congelamientos críticos o excepciones de tipoMemoryError. -
OPTIMIZACIÓN MANUAL DEL RECOLECTOR: Inserción de llamadas explícitas a
gc.collect()en los puntos de retorno de operaciones matriciales pesadas y limpiezas de búfer (AC), liberando bloques residuales de memoria muerta de manera inmediata.
-
MONITOREO DE RAM EN TIEMPO REAL: Integración del módulo de recolección de basura
-
picalc_os_v5.3 (Recolección Automática de Basura en el Bucle Principal):
-
RECOLECCIÓN AUTOMÁTICA EN INICIAR(): Se integraron llamadas estratégicas a
gc.collect()directamente dentro del bucle de eventos principal (iniciar()). El sistema ahora fuerza la liberación instantánea de bloques de RAM huérfanos cada vez que se procesa una expresión con la teclaIGUALo se limpia el búfer de entrada con la teclaAC. -
MITIGACIÓN DE LA FRAGMENTACIÓN DEL HEAP: Esta rutina pasiva asegura que la memoria dinámica de la Raspberry Pi Pico se desfragmente de forma continua durante el uso cotidiano, eliminando los residuos que dejan atrás los cálculos pesados en los modos
MATRIX,STATyTABLEantes de que puedan provocar un desborde.
-
RECOLECCIÓN AUTOMÁTICA EN INICIAR(): Se integraron llamadas estratégicas a
-
picalc_os_v5.4 (Editor de Matrices Interactivo y Entorno Gráfico OLED):
-
NUEVO EDITOR INTERACTIVO DE MATRICES (
MATRIX EDIT): Implementación de un entorno de edición visual para el modo de cálculo matricial gestionado por el estado_MATEDIT_ESTADO. Permite al usuario seleccionar dimensiones (de 1x1 hasta 4x4) y editar cada celda individualmente moviéndose con el cursor físico en pantalla. -
RUTINAS GRÁFICAS DE COMPORTAMIENTO CASIO: Integración de las funciones
matedit_abrir(),matedit_ingresar()ymatedit_renderizar(). El sistema dibuja la cuadrícula de la matriz elegida en la OLED, resalta la celda activa, previsualiza el valor actual y procesa la inserción de nuevas expresiones matemáticas dentro de la celda al presionar la teclaIGUAL. -
CONTROL DE PARSEO DE CELDAS: Se enlazó el editor dinámico con el motor parser de la calculadora. Al confirmar un ingreso en una celda, el buffer
ENTRADA_TOKENSes evaluado por el sistema, traduciendo variables o constantes antes de inyectar el valor numérico final en la matriz interna (MatA,MatBoMatC).
-
NUEVO EDITOR INTERACTIVO DE MATRICES (
-
picalc_os_v5.5 (Distribuciones Estadísticas, Tabla Doble f(x)/g(x), Memoria A-Z y Conversión DMS):
-
MÓDULO DE DISTRIBUCIONES (
DIST): Integración nativa de distribuciones de probabilidad accesibles desde el modoSTATo comandos directos. Incluye Distribución Normal (PDF/CDF), Binomial y Poisson, calculadas mediante aproximaciones polinomiales de alta precisión optimizadas para la RAM de la Pico. -
TABLAS CON DOBLE FUNCIÓN (
$f(x)$ y $g(x)$): Evolución del modoTABLEmediante el comandoTABLE2. Ahora el sistema es capaz de evaluar y tabular dos funciones simultáneamente en una sola pasada. La estructura interna se rediseñó para almacenar filas del tipo(x, fx, gx_o_None), manteniendo la retrocompatibilidad absoluta con el formato clásico de tabla simple. -
EXPANSION DE MEMORIA ALFABÉTICA (A-Z): Se rompió la limitación de las variables iniciales (A, B, C, X, Y). El diccionario global de variables ahora soporta casi todo el alfabeto (D, F, M, N, T, K, etc.), reservando estrictamente las letras
E(constante de Euler) eI(unidad imaginaria) para evitar colisiones aritméticas en el parser. Toda la memoria extendida persiste en la Flash mediante JSON. -
CONVERSIÓN SEXAGESIMAL (
DMS): Implementación del sistema de conversión de Grados, Minutos y Segundos a decimales y viceversa (DMS <-> Decimal), emulando la mítica tecla de la burbuja de las calculadoras físicas para simplificar cálculos de topografía y geometría.
-
MÓDULO DE DISTRIBUCIONES (
-
picalc_os_v5.6 (Historial de Cálculos, Notación ENG, Generador RAN#/RANINT# y Comando MOD):
-
SISTEMA DE HISTORIAL INTERACTIVO (
HIST): Implementación de una pila FIFO para almacenar los últimos 20 cálculos (expresión y resultado). Accesible mediante la combinación2ND + HIST, permite al usuario navegar por los registros usando las flechasIZQ/DER. Al presionarIGUALsobre un registro viejo, el bufferENTRADA_TOKENSse recarga automáticamente para permitir la reedición del cálculo. El historial se acopla al motor de persistencia JSON en la Flash (SAVE). -
NOTACIÓN DE INGENIERÍA (
ENG): Incorporación del formato de visualizaciónSETUPENGen el motor de renderizado numérico. A diferencia deSCI, el modoENGrestringe los exponentes a múltiplos estrictos de 3 ($10^3, 10^6, 10^{-3}, 10^{-6}$ , etc.), ajustando la mantisa entre 1 y 999 para facilitar la lectura directa de magnitudes electrónicas y físicas (mili, micro, kilo, mega). -
GENERADORES ALEATORIOS CONFORME A CASIO: Inclusión de las funciones
RAN#(devuelve un flotante pseudoaleatorio uniforme en el rango$[0, 1)$ usando la entropía del reloj del sistema) yRANINT#(a,b)(devuelve un entero aleatorio cerrado entre los límites definidos). Ambos comandos se encuentran completamente habilitados dentro delMODO_EXAMEN. -
COMANDO ARITMÉTICO
MOD(a,b): Se añadió la función de residuo o módulo formal al parser RPN. Funciona como un alias avanzado del operador%, pero permitiendo pasar como argumentos expresiones complejas o variables anidadas (ej:MOD(A^2, 7)) sin romper el flujo de tokens.
-
SISTEMA DE HISTORIAL INTERACTIVO (
-
picalc_os_v5.7 (Arquitectura Modular y Optimización Crítica de RAM):
- REFACTORIZACIÓN Y MODULARIZACIÓN: El sistema rompe la estructura de script único y se divide en múltiples módulos independientes. Esta arquitectura permite aplicar técnicas de lazy loading (carga perezosa) en MicroPython, manteniendo el script principal liviano y cargando los entornos pesados bajo demanda.
-
SOPORTE DE FRACCIONES PROPIAS E IMPROPIAS (
ab/c): Implementación del motor de visualización y conversión de fracciones al estilo clásico Casio. El sistema procesa resultados en fracciones mixtas (propias)$a\frac{b}{c}$ e impropias$\frac{d}{e}$ , permitiendo alternar la visualización en la OLED entre formato mixto, impropio o decimal puro con la tecla dedicadaab/c. -
SISTEMA DE ECUACIONES SIMULTÁNEAS (
EQN): Expansión del modo de ecuaciones agregando soporte para sistemas lineales de 2 incógnitas ($2 \times 2$ ) y 3 incógnitas ($3 \times 3$ ). El motor ejecuta un algoritmo de eliminación de Gauss-Jordan optimizado, validando la existencia de solución única (determinante no nulo) y permitiendo navegar las raíces ($X$ ,$Y$ ,$Z$ ) con las flechas. -
MÓDULO DE VECTORES (
VCTR): Integración completa del modo de cálculo vectorial para dimensiones 2D y 3D (guardados en los buffersVctA,VctByVctC). Se programaron las funciones analíticas esenciales: producto escalar (DOT), producto vectorial (CROSS), determinación de magnitud (ABS) y ángulo entre vectores. - GESTIÓN EFICIENTE DEL HEAP: Al aislar los buffers intermedios de Gauss-Jordan y las matrices de paso en archivos externos, la memoria RAM del RP2040 se libera de inmediato al terminar las operaciones, impidiendo caídas catastróficas por fragmentación en cálculos consecutivos.
- Descargá el archivo de la última versión estable (ubicado en
src/picalc_os_v4_3.py). - Ejecutalo desde tu terminal favorita usando Python 3:
python src/picalc_os_v4_3.py 3. Interactuá directamente tipeando los comandos. Podés tipear MODE para cambiar el estado global, usar las palabras clave de los alias para meter funciones y probar la velocidad del parser RPN.
- Flasheá el firmware oficial de MicroPython en tu Raspberry Pi Pico.
- Conectá el módulo OLED SH1106 a los pines I2C definidos en el script (SDA: GPIO 4, SCL: GPIO 5).
- Cableá tu matriz de botones a los pines GPIO de Filas y Columnas configurados en la sección de hardware.
- Cargá el script dentro de la memoria flash de la placa usando Thonny IDE y renombralo estrictamente como main.py para que se ejecute en bucle infinito de forma automática al recibir energía.