Desarrollan un ordenador portátil multitarea con un microcontrolador de 8 bits
El proyecto AVR-Laptop, documentado por Hackster.io, presenta un ordenador casero compacto construido alrededor de una placa de desarrollo compatible con Arduino Mega 2560 Pro Mini. Este sistema se distingue por su capacidad para ejecutar un entorno de escritorio multitarea con un microcontrolador ATmega2560 de 8 bits, una hazaña notable dadas las limitaciones inherentes a esta arquitectura.
Con unas dimensiones de 12 × 11 × 3.4 cm, el dispositivo incorpora una pantalla LCD monocromática ST7920 de 128 × 64 píxeles, un decodificador de audio VS1053, altavoces, una ranura para tarjetas microSD, un reloj de tiempo real y una batería 18650. La entrada de usuario se gestiona a través de un teclado QWERTY personalizado, inicialmente configurado como una matriz de 8 × 8 y posteriormente mejorado con diodos y un decodificador 4-to-16 para optimizar el uso de pines y mejorar la detección de pulsaciones simultáneas.
El firmware de AVR-Laptop opera sobre FreeRTOS, lo que permite un verdadero entorno multitarea donde las aplicaciones pueden seguir ejecutándose en segundo plano. Por ejemplo, es posible reproducir un vídeo y cambiar a otro programa, como el juego Sokoban, manteniendo el audio en curso. Entre las aplicaciones disponibles se incluyen un gestor de archivos, reproductor de música, reloj, calculadora, Snake, Game of Life y un editor de texto.
El sistema cuenta con un motor de interfaz de usuario propio que soporta elementos como formularios, botones, casillas de verificación, listas y campos de texto. Las aplicaciones se implementan como tareas independientes que interactúan con el sistema de interfaz gráfica mediante eventos y rutinas de dibujo. Añadir nuevas funcionalidades se asemeja al desarrollo de un sketch de Arduino, requiriendo la creación de una clase con métodos de configuración y bucle, junto con entradas de menú e iconos específicos. La gestión de tareas, asignación de pila y manejo de eventos son responsabilidad del shell del sistema.
La ejecución de estas capacidades en un ATmega2560 implica operar bajo serias restricciones de memoria. El chip dispone de solo 8 KB de SRAM, de los cuales aproximadamente la mitad ya está ocupada por variables globales y servicios del sistema. El framebuffer de la pantalla consume 1 KB, y otros componentes como el búfer de la tarjeta SD, FreeRTOS y el sistema de vídeo consumen porciones significativas, dejando un espacio muy limitado para las aplicaciones individuales.
Incluso con estas limitaciones, AVR-Laptop es capaz de reproducir vídeo a 24 fotogramas por segundo o más con sonido sincronizado. Para lograrlo, Vladimir ideó un formato de vídeo personalizado que combina una secuencia de fotogramas monocromáticos XBM con audio MP3. El decodificador VS1053 se encarga del audio, mientras que el microcontrolador se enfoca en alimentar los fotogramas a la pantalla. Este desarrollo subraya el potencial de la optimización extrema en entornos con recursos mínimos.
Fuente original: Hackster.io







