Aplicació encastada per a Raspberry Pi
Interfície a pantalla completa per a un dispositiu tàctil sense teclat ni ratolí, amb integració directa amb el sistema operatiu.
- Any
- 2024
- Context
- Projecte personal
- Stack
- Python · Tkinter · Raspberry Pi
Aplicació d'escriptori en Python per a una Raspberry Pi amb pantalla tàctil, concebuda com a regal: galeria de fotografies, mapa interactiu, comptadors de dates i configuració del sistema. El dispositiu arrenca directament a l'aplicació, de manera que qualsevol operació (connexió WiFi, importació de fitxers, apagada) s'havia de poder fer des de la interfície, sense accés a terminal ni a perifèrics.
En síntesi
Disseny d'interfícies per a maquinari limitat i integració amb el sistema operatiu
Context
L'aplicació s'estructura en mòduls independents (menú principal, galeria, mapa, configuració, comptadors i línia de temps) gestionats des d'un menú central. Les restriccions del dispositiu condicionen tot el disseny: entrada exclusivament tàctil, recursos de memòria limitats i la necessitat que el sistema es recuperi sol després d'un reinici.
Sistemes principals
El mòdul de mapa permet afegir ubicacions sobre un canvas tàctil. En seleccionar un punt apareix un teclat QWERTY a pantalla completa per introduir-ne el nom. Cada ubicació es desa en JSON, es representa sobre el mapa i es mostra en una llista lateral des d'on es pot eliminar.
Aprenentatges
El projecte em va obligar a dissenyar a partir de les condicions d'ús reals: un usuari no tècnic, sense accés a eines de diagnòstic, per al qual qualsevol situació d'error s'havia de poder resoldre des de la interfície. També em va aportar experiència pràctica en la integració amb Linux: gestió de processos, permisos i fitxers de configuració del sistema.
Stack
- Python 3 Llenguatge principal.
- Tkinter + ttk / ttkthemes Interfície gràfica i temes visuals.
- Pillow Càrrega i tractament d'imatges i GIF animats.
- pygame Reproducció d'àudio en bucle.
- JSON Persistència de les ubicacions del mapa.
- datetime Càlcul de diferències temporals.
- os, subprocess, shutil Integració amb el sistema (USB, WiFi, processos i apagada).
Estat actual
El dispositiu és plenament funcional i el projecte es considera tancat. L'arquitectura modular permetria afegir noves seccions sense modificar el nucli.