Primeros pasos con Raspberry Pi en Xojo

Raspberry Pi y XojoRaspberry Pi es en esencia un pequeño ordenador, realmente económico (en torno a los 38 euros). Gracias a su pequeño tamaño se puede utilizar para todo tipo de cosas en las que no resultaría práctico emplear un ordenador convencional, como por ejemplo en sistemas empotrados y también en el área de la robótica. Y dado que es económico, también es realmente recomendable como herramienta de aprendizaje, facilitando que cualquier persona pueda tener su ordenador. Además, dado que la Raspberry Pi es un ordenador completamente funcional, con entradas y salidas, almacenamiento y capacidades WiFi, también puede utilizarse como interfaz y control de otros aparatos. Y precismente por ello la Raspberry Pi es uno de los equipos preferidos entre los Makers, creadores, aficionados a la electrónica y cualquiera que quiera llevar a cabo su idea de proyecto.

Lo que hace que la Raspberry Pi sea de algún modo única también es que utiliza un procesador ARM, similar al encontrado en los teléfonos móviles y las tabletas, en vez de emplear una CPU Intel como es el caso en el resto de los “ordenadores”.

En cualquier caso, una Raspberry Pi es un ordenador completo. Puedes conectarle un teclado, un ratón y un monitor. Puedes conectar almacenamiento e instalarle un sistema operativo (por lo general Linux). Ahora bien, no es precisamente el más potente de los ordenadores pero, aún así, es lo suficientemente potente como para llevar a cabo de forma eficaz muchos tipos de tareas.

Xojo puede crear aplicaciones de consola (lanzadas desde el Terminal o línea de comandos), así como aplicaciones Desktop (es decir, con interfaz gráfica) y también aplicaciones Web que pueden ejecutarse tanto sobre la Raspberry Pi 2 como sobre la Raspberry Pi 3 y muchos otros dispositivos que utilicen Linux de 32 bits sobre ARMv7.

La Raspberry Pi original y la Raspberry Pi Zero no son compatibles con las apps Xojo dado que utilizan el antiguo procesador ARMv6.

Enlaces de utilidad:

Crear una app Raspberry Pi en Xojo

Crear una app Raspberry Pi no es distinto a crear una app para otras plataformas (Windows, macOS o Linux). Selecciona el tipo de proyecto que quieras en el Selector de Proyectos y, una vez que vayas a compilar para Raspberry Pi, asegúrate de seleccionar la sección Linux en los ajustes de Build y cambiar la propiedad de arquitectura en el Inspector a ARM 32-bit. Compila tu app y transfiere la carpeta compilada a la Raspberry Pi.

Apps de Escritorio

Reproducir Sonido

La Raspberry Pi puede reproducir como mínimo archivos de sonido en formatos WAV y MP3. Por defecto, la salida de sonido se envía al puerto HDMI. También hay una toma de auriculares que puede utilizarse como salida de sonido. Para conmutar entre ambos puertos de sonido, puedes utilizar este comando:

sudo amixer cset numid=3

Donde n es 0= auto, 1=auriculares, 2=HDMI. En tu código puedes ejecutar el siguiente comando desde un Shell. Este código conmuta al puerto de auriculares:

#If TargetARM Then

Dim sh As New Shell
sh.Execute("amixer cset numid=3 1")
#Endif

HTMLViewer

Para utilizar el HTMLViewer en una app de escritorio, tienes que instalar en primer lugar libwebkitgtk usando los siguientes comandos en el Terminal:

sudo apt-get update
sudo apt-get install libwebkitgtk-1.0.0

El HTMLViewer no funciona en Raspbian Jessie debido a una incompatibilidad con libwebkitgtk 1.0. El HTMLViewer funciona con Raspbian Wheezy.

Apps Web

El navegador web Raspberry Pi se identifica a sí mismo como Epiphany. En las apps web de Xojo puedes comprobarlo usando la propiedad Browser de WebSession:

If Session.Browser = WebSession.BrowserType.Epiphany Then
End If

Algunos consejos para Raspberry Pi

Si tienes la instalación por defecto de Raspbian (con escritorio), entonces podrás conectar tu Pi a cualquier pantalla (incluyendo un TV) utilizando el puerto HDMI. Conecta un teclado y un ratón USB y estarás listo para utilizarlo como ordenador.

Actualizar el Sistema Operativo

Para actualizar el sistema operativo, puedes ejecutar estos dos comandos desde el Terminal:

sudo apt-get update
sudo apt-get upgrade

Transferir archivos a la Raspberry Pi

La Raspberry Pi cuenta con un servidor SFTP instalado por defecto. Puedes conectar a él utilizando cualquier cliente SFTP. Tendrás que saber cual es la dirección IP de la Raspberry Pi en tu red local, así como el nombre de usuario y la contraseña utilizadas al instalar inicialmente Raspbian (por omisión, son ‘pi’ y ‘raspberry’ respectivamente).

Conectar a la Raspbery Pi vía Shell

También puedes utilizar SSH sin ninguna configuración en la Pi. Inicia la sesión SSH mediante un comando como el siguiente:

ssh pi@mi-dirección-ip

E introduce a continuación tu contraseña (por omisión, ‘raspberry’). Ahora estarás conectado a la Pi en una ventana del terminal. De este modo podrás ejecutar apps Xojo que hayas transferido previamente a la Pi utilizando SFTP.

Conectar a la Raspberry Pi mediante VNC

VNC (también conocido como Escritorio Remoto) permite ver y controlar el escritorio de la Pi, interactuando con ella mediante el uso del ratón. Esto no se precisa estrictamente para probar las aplicaciones Xojo que sean de Consola, aunque probablemente lo agradecerás en el caso de las aplicaciones Xojo Desktop para Raspberry Pi, de modo que no debas de tener un segundo monitor conectado (y si utilizas un teclado Bluetooth que admita varios dispositivos, ¡mucho más práctico!).

Para utilizar VNC tendrás que instalar previamente un servidor VNC en la Raspberry Pi, si bien en algunos Kits de inicio de Raspberry Pi dicho servidor ya se encuentra instalado por omisión. Entre las opciones que puedes encontrar como servidor una de las más extendidas es TightVNC, así como RealVNC.

Este comando inicia un servidor VNC sencillo con los ajustes por omisión:

vncserver

Este comando inicia el servidor VNC con un tamaño de pantalla 1080p y 24 bits de color:

vncserver :1 -geometry 1920x1080 -depth 24

Una vez que tengas instalado y funcionando el servidor TightVNC (o cualquier otro), puedes conectarte a él utilizando un cliente VNC. Estas son algunas sugerencias:

  • Compartir Pantalla en macOS. Dirígete a Ir > Conectarse al Servidor, vnc://dirección-ip:5901
  • Vine VNC
  • Screens
  • RealVNC

Uso de GPIO

Para utilizar la GPIO (puerto de Entradas/Salidas de propósito general), tendrás que instalar la librería wiringPi. Tras hacerlo, puedes utilizar el módulo WiringPiXojo para comunicarte con el puerto GPIO en la Raspberry Pi. Este código sencillo en el manejador de evento Run de una app de Consola hace parpadear un LED:

GPIO.SetupGPIO

Const kLEDPin = 4 // "#4" en el pin de salida

// Configura el pin para aceptar la salida

GPIO.PinMode(kLEDPin, GPIO.OUTPUT)

// Parpadea el LED cada 1/2 de segundo

While True

// Enciende el pin (alimenarlo)

GPIO.DigitalWrite(kLEDPin, GPIO.ON)

App.DoEvents(500)

// Desactivar el pin (sin alimentación)

GPIO.DigitalWrite(kLEDPin, GPIO.OFF)

App.DoEvents(500)

Wend

Las apps GPIO han de iniciarse generalmente con sudo, de modo que si creas un app de consola denominada LEDBlink deberás de iniciarla así desde el terminal:

sudo ./LEDBlink

También puedes crear una app de escritorio usando GPIO. Para iniciar una app de escritorio como sudo, has de utilizar el comando gksudo desde el terminal:

gksudo ./LEDBlinkUI

Desde Raspbian Jessie ya no es necesario usar sudo para acceder al GPIO. Para no precisar de sudo has de definir en primer lugar una variable del entorno antes de ejecutar la app:

export WIRINGPIGPIOMEM=1

Tutoriales

Consulta estos tutoriales para obtener instrucciones paso a paso (en inglés) sobre como crear un circuito y una app de Xojo:

Una vez que te sientas cómodo con los anteriores tutoriales, puedes realizar estos otros tutoriales más avanzados:

Limitaciones

Actualmente existen las siguientes limitaciones para las apps creadas para Raspberry Pi:

  • Aún no está disponible el Depurador Remoto.
  • Aún no funciona XojoScript
  • Para utilizar HTMLViewer tendrás que instalar libwebkitgtk 1.0 desde el terminal (el HTMLViewer no funciona actualmente en Raspbian Jessie):
sudo apt-get install libwebkitgtk-1.0.0

3 comentarios en “Primeros pasos con Raspberry Pi en Xojo

  1. Eduardo

    Hola,
    No encuentro respuesta a cómo hacer que una aplicación de escritorio para raspberry pi 4, hecha con Xojo, arranque automáticamente al arrancar la placa.
    También, me gustaría conocer si hay forma, que una vez arrancada esta aplicación, el usuario no pueda ver ni manipular los elementos del escritorio de origen (raspbian).
    Es decir, ¿se puede hacer que arranque y se vea SOLO la aplicación desarrollada con Xojo? como se fuese un navegaror Tom Tom antiguo o algo así?

    Gracias

    1. Javier Rodriguez

      Hola Eduardo,

      Puedes ver como hacer que una app creada para Raspberry Pi se ejecute durante el boot de la placa en este enlace: https://forum.xojo.com/44086-running-xojo-executables-on-raspberry-pi-at-boot

      1. Eduardo

        Muchas gracias.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *