sábado, 20 de octubre de 2018

Tableta Android como display y teclado de la Raspberry Pi

En esta entrada mostraré como podemos utilizar una tablet Android como display y teclado para nuestra Raspberry Pi (RPi) sólo en modo consola, como para ir aprendiendo a programar durante el tiempo disponible que tenemos, sin necesidad de estar conectado a un display o monitor y un teclado que nos quitan "portatibilidad" además que es una solución de bajo costo para aprovechar nuestra RPi.
El sistema que tengo consta de:
  • Una tablet Leotec Stellar 3G (cualquier otra debe servir, probado con Android 4.4 y 5.1)
  • Un cable adaptador OTG.
  • Un cable de datos normal USB a micro USB
  • Una micro SD de 8Gb cargado con Raspbian Strech Lite
  • Una Raspberry Pi, lo he probado con RPi 1 modelo A+, RPi 1 modelo B+, y RPi Zero, funciona Ok!
  • La fuente de energía y el cable de power para la RPi, en este caso y para las RPis en listadas más arriba utilizo mi cargador de celular(adaptador de 5VDC @1 A).


Necesitamos descargar en nuestra tableta las Apps:

  • ConnectBot, esta aplicación nos conecta a la RPi con el servicio SSH habilitado
  • CodeBoard o Keyboard with Ctrl key, serán el teclado virtual, yo me decanté por la primera, igual ambas sirven y de hecho que hay más en PLAY STORE.
Estas app nos permiten substituir el teclado de Android, es decir, mejorar y tener a la mano "teclas" que normalmente no están contempladas en el teclado ordinario de Android como son teclas CTRL, ESC, FN, Flechas y otras más, que nos ayudaran a elaborar y probar nuestro código. Hay que tener la precaución de habilitarlos activando el icono correspondiente, esto en ajustes y entradas de texto e idioma de su tablet.

Lo primero que haremos será descargar la última versión de Raspbian Strech Lite y lo "quemamos" en nuestra micro SD con Win32DiskImager, luego crearemos un archivo llamado ssh en el directorio boot, asegurarse que no tiene la extensión 'txt' ni ninguna otra, esto permite habilitar el servicio ssh en la RPi.
Retiramos la micro SD y la insertamos en la RPi y energizamos, dejamos que arranque el SO.
Si estamos trabajando en la RPi B+, basta con conectarla a nuestra red por Ethernet y como ya está habilitado el servidor ssh en la RPi, desde nuestra PC (conectada a la misma red que la RPi) y conociendo la IP de la RPi (utilice Advance IP Scanner), con el programa Putty nos conectamos a la RPi, utilizamos las credenciales por defecto:

IP: (La que arroje Advance IP Scanner en tu red local)
user: pi
password: raspberry

Tipeamos en la consola lo siguiente:
sudo nano /etc/network/interfaces
Vamos al final del archivo y pegamos lo siguiente:
    allow-hotplug usb0 iface usb0 inet static address 192.168.42.42 netmask 255.255.255.0 network 192.168.42.0 broadcast 192.168.42.255 gateway 192.168.42.1

Terminamos con Crtl-X y a la pregunta si deseamos guardar le respondemos con Y.
Esto último permitirá la conexión túnel entre la tableta y nuestra RPi via el cable USB. Es decir ya podemos prescindir de la conexión de red local y conectar directamente nuestra RPi via un cable USB a nuestra Tablet. Éste es el cable de datos USB normal que todos utilizamos, de micro USB(este lado hacia la tablet) a USB (y este lado hacia el adaptador OTG de la RPi Zero). Si esta utilizando la RPi A+ o la B+, es mas sencillo aún, el lado del micro USB hacia la tablet y el lado USB al puerto USB de la RPi.


Asegurarse que ya tenemos instaladass ConnectBot y CodeBoard.
Conectamos nuestra tableta a través del puerto USB de la RPi, abrimos ConnectBot y nos pedirá información de la conexión, la mas importante es la dirección IP del host, escribimos alli:
192.168.42.42
El usuario es:
pi
Y al conectarse la contraseña por defecto es:
raspberry


Es importante tener el modo USB como MTP y activado la opción anclaje de USB. Gracias a ConnectBot y SSH habilitado en la RPi podremos ver la consola de la RPi y CodeBoard es nuestro teclado. A mi parecer ConnectBot es más cómodo de utilizar que JuiceSSH o MobileSSH.

ConnectBot despliega un teclado auxiliar muy delgado con teclas especiales como las flechas Up, Down, Letf, Right, Ctrl, etc, cuando tocas la pantalla (para suplir las teclas que no tiene el teclado Android), pero puedes inhabilitar que aparezca en los ajustes.


El teclado virtual debe dejar ver una ventana adecuada de la consola, no debe ser ni muy grande ni muy pequeño, la app CodeBoard  resultó más cómoda, en la foto se aprecia los ajustes de esta app de teclado virtual, aquí podemos cambiar el tamaño y el color del teclado. Ojo que ConnectBot permite cambiar el tamaño de texto con sólo el control de volumen de la tablet.


Editando un script en la RPi con nano y la tablet con la app Keyboard with Crtl Key. Se observa que esta app es un teclado muy pequeño, dejaba ver un gran espacio vacío entre el display y el texto y las teclas muy apretadas, con errores al tipear.