Raspberry Pi en modo kiosko
Durante la creación de proyectos para el Internet de las Cosas (IoT) es muy común el uso de hardware como Arduino y Raspberry Pi debido a su relativo bajo precio, facilidad de empleo y la gran comunidad que los respalda.
En el caso del Raspberry Pi, al ser una pequeña computadora de uso general, que cuenta con todas las funciones accessibles en una computadora normal (léase laptop o PC), es muy amplia la gama de proyectos ingeniosos que se pueden crear. Hace un año estuve experimentando con un Raspberry Pi 3 modelo B con Raspbian instalado y un amigo sugirió la idea de acoplarle una pantalla táctil y una batería de modo que fuera portable.
Este cambio introdujo la necesidad de ejecutar la aplicación que estaba desarrollando en modo kiosko para poder cargar solo el script y no todo el entorno de escritorio, o sea minimizar la cantidad de tareas que el usuario iba a poder realizar y enfocarlo solo a la aplicación.
Configuraciones en Raspbian
Para ello hice varias modificaciones al sistema operativo, Raspbian en este caso, y lo comparto aquí para que les sirva si encuentran un problema parecido.
- Permitir al usuario por defecto “pi” iniciar el X server. En sistemas basados en Debian esto se puede lograr ejecutando “dpkg-reconfigure x11-common” y ahí escoger “Anybody”
- Expandir el sistema de ficheros ejecutando el comando “raspi-config” y entrar en la opción “Expand Filesystem”, esto asegura que toda la tarjeta SD este accesible para el sistema operativo.
- Iniciar el X server durante el booteo para lanzar tu aplicacón añadiendo “su -s /bin/bash -c startxpi” en el fichero /etc/rc.local justo antes de la línea “exit 0”.
- Definir el script que se ejecutará cuando se inicie el X server, para esto añade “matchbox-window-manager& sudo python /usr/local/bin/custom-script.py” en el fichero /home/pi/.xinitrc. La instrucción “matchbox-window-manager& command” lanza este gestor de ventanas ligero para habilitar funcionalidades necesarias como la barra de título y la capacidad de uso de un teclado.
- Cambiar la opción de booteo que trae por defecto ejecutando el comando “raspi-config”, luego entrar en la subcategoría “Boot Options” y escoger “Console or Console Autologin”.
- Copiar el script para /usr/local/bin/.
Con estos pasos debes poder tener tu aplicación corriendo el modo kiosko. Solo agregar que en el caso de la interfaz de la aplicación de ejemplo está desarrollada con PyQt pues en un inicio no estaba pensada para ser usada con una pantalla táctil y por lo tanto alguna otra librería para crear una GUI para pantallas táctiles hubiera sido lo ideal.
Este artículo lo hemos traído de nuestro antiguo blog Código 200, es de la autoría de Joel Ayata Escalona, quien esperamos se nos una nuevamente.
Point very well utilized.!