Raspberry Pi Zero dentro de una pantalla braille Handy Tech Active Star 40

Raspberry Pi Zero dentro de una pantalla braille Handy Tech Active Star 40

El autor colocó una Raspberry Pi Zero, un silbato Bluetooth y un cable dentro de su nueva pantalla braille Handy Tech Active Star 40. Un puerto USB incorporado proporciona energía. El resultado fue un ordenador autónomo sin monitor basado en ARM con sistema operativo Linux, equipado con un teclado y una pantalla Braille. Puedes cargarlo/alimentarlo mediante USB, incl. desde un banco de energía o cargador solar. Por lo tanto, puede pasar sin electricidad durante varias horas, pero también durante varios días.

Raspberry Pi Zero dentro de una pantalla braille Handy Tech Active Star 40

Diferenciación dimensional de pantallas braille.

En primer lugar, se diferencian en la longitud de la línea. Los dispositivos con capacidad de 60 o más son buenos para trabajar con una computadora de escritorio, mientras que los dispositivos con capacidad de 40 son convenientes para transportar con una computadora portátil. Ahora existen pantallas braille conectadas a teléfonos inteligentes y tabletas, con una longitud de línea de 14 o 18 caracteres.

En el pasado, las pantallas braille eran bastante masivas. La computadora portátil de 40 asientos, por ejemplo, tenía el tamaño y el peso de una computadora portátil de 13 pulgadas. Ahora, con la misma cantidad de conocidos, son lo suficientemente pequeños como para que puedas colocar la pantalla frente a la computadora portátil, en lugar de la computadora portátil en la pantalla.

Por supuesto, esto es mejor, pero todavía no es muy conveniente sostener dos dispositivos separados en su regazo. Cuando trabajas en un escritorio, no hay quejas, pero vale la pena recordar que una computadora portátil se llama computadora portátil con otro nombre y tratar de justificar su nombre, ya que resulta que la pantalla en miniatura de 40 caracteres es aún menos conveniente.

Por eso, el autor esperó a que saliera al mercado el nuevo modelo de la serie Handy Tech Star, largamente prometido. En 2002, se lanzó el modelo anterior Handy Tech Braille Star 40, donde el área del cuerpo es suficiente para colocar una computadora portátil encima. Y si no encaja, hay un soporte retráctil. Ahora este modelo ha sido reemplazado por el Active Star 40, que es casi el mismo, pero con una electrónica mejorada.

Raspberry Pi Zero dentro de una pantalla braille Handy Tech Active Star 40

Y el soporte retráctil permanece:

Raspberry Pi Zero dentro de una pantalla braille Handy Tech Active Star 40

Pero lo más cómodo de la novedad es un hueco del tamaño aproximado de un teléfono inteligente (ver KDPV). Se abre cuando se mueve la plataforma hacia atrás. Resultó incómodo mantener el teléfono inteligente allí, pero de alguna manera es necesario utilizar el compartimento vacío, dentro del cual incluso hay una toma de corriente.

Lo primero que se le ocurrió al autor fue colocar la Raspberry Pi allí, pero cuando compró la pantalla, resultó que el soporte que cubría el compartimento no encajaba con la "frambuesa". Ahora bien, si la placa fuera sólo 3 mm más delgada...

Pero un colega me habló del lanzamiento de la Raspberry Pi Zero, que resultó ser tan miniatura que cabían dos en el compartimento... o tal vez incluso tres. Se pidió inmediatamente junto con una tarjeta de memoria de 64 GB, Bluetooth, un “silbato” y un cable Micro USB. Unos días después llegó todo esto y amigos videntes ayudaron al autor a preparar un mapa. Todo funcionó inmediatamente como debería.

¿Qué se hizo para esto?

En la parte trasera del Handy Tech Active Star 40 se encuentran dos puertos USB para dispositivos como, por ejemplo, teclados. Se incluye un teclado de pequeño tamaño con soporte magnético. Cuando el teclado está conectado y la pantalla funciona a través de Bluetooth, la computadora también lo reconoce como un teclado Bluetooth.

Así, si conecta un “silbato” Bluetooth a una Raspberry Pi Zero colocada en el compartimento del teléfono inteligente, podrá comunicarse con la pantalla braille a través de Bluetooth utilizando BRLTTY, y si también conectas un teclado a la pantalla, el “frambuesa” también funcionará con él.

Pero eso no es todo. La propia "frambuesa", a su vez, puede acceder a Internet a través de Bluetooth PAN desde cualquier dispositivo que lo admita. El autor ha configurado su teléfono inteligente y sus computadoras en casa y en el trabajo en consecuencia, pero en el futuro planea adaptar otra "frambuesa" para esto: una clásica, no una Zero, conectada a Ethernet y otro "silbato" Bluetooth.

BlueZ 5 y PAN

Método de configuración PAN usando BlueZ resultó no ser obvio. El autor encontró el script Python bt-pan (ver más abajo), que le permite configurar PAN sin una GUI.

Se puede utilizar para configurar tanto el servidor como el cliente. Habiendo recibido el comando apropiado a través de D-Bus cuando trabaja en modo cliente, crea un nuevo dispositivo de red bnep0 inmediatamente después de establecer una conexión con el servidor. Normalmente, se utiliza DHCP para asignar una dirección IP a esta interfaz. En modo servidor, BlueZ requiere el nombre de un dispositivo puente al que puede agregar un dispositivo esclavo para conectar a cada cliente. Por lo general, todo lo que se requiere es configurar una dirección para el dispositivo puente y ejecutar un servidor DHCP más enmascaramiento de IP en el puente.

Punto de acceso Bluetooth PAN con Systemd

Para configurar el puente, el autor utilizó systemd-networkd:

Archivo /etc/systemd/network/pan.netdev

[NetDev]
Name=pan
Kind=bridge
ForwardDelaySec=0

Archivo /etc/systemd/network/pan.network

[Match]
Name=pan

[Network]
Address=0.0.0.0/24
DHCPServer=yes
IPMasquerade=yes

Ahora necesitamos forzar a BlueZ a configurar el perfil NAP. Resultó que esto no se puede hacer con las utilidades estándar BlueZ 5.36. Si el autor se equivoca, corríjalo: mlang (puede mover las orejas) gurú ciego (a veces de acceso y cuántico)

Pero encontró entrada de blog и secuencia de comandos de Python para realizar las llamadas necesarias a D-Bus.

Por conveniencia, el autor utilizó el servicio Systemd para ejecutar el script y verificar si las dependencias están resueltas.

Archivo /etc/systemd/system/pan.service

[Unit]
Description=Bluetooth Personal Area Network
After=bluetooth.service systemd-networkd.service
Requires=systemd-networkd.service
PartOf=bluetooth.service

[Service]
Type=notify
ExecStart=/usr/local/sbin/pan

[Install]
WantedBy=bluetooth.target

Archivo /usr/local/sbin/pan

#!/bin/sh
# Ugly hack to work around #787480
iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

exec /usr/local/sbin/bt-pan --systemd --debug server pan

El segundo archivo no sería necesario si Debian tuviera soporte para IPMasquerade= (ver más abajo). #787480).

Después de ejecutar los comandos systemctl daemon-reload и systemctl reiniciar systemd-networkd puedes iniciar Bluetooth PAN con el comando bandeja de inicio systemctl

Cliente PAN Bluetooth usando Systemd

El lado del cliente también es fácil de configurar usando Systemd.

Archivo /etc/systemd/network/pan-client.network

[Match]
Name=bnep*

[Network]
DHCP=yes

Archivo /etc/systemd/system/[email protected]

[Unit]
Description=Bluetooth Personal Area Network client

[Service]
Type=notify
ExecStart=/usr/local/sbin/bt-pan --debug --systemd client %I --wait

Ahora, después de recargar la configuración, puede conectarse al punto de acceso Bluetooth especificado de esta manera:

systemctl start pan@00:11:22:33:44:55

Emparejamiento usando la línea de comando

Por supuesto, la configuración del servidor y los clientes debe realizarse después de emparejarlos vía Bluetooth. En el servidor necesitas ejecutar bluetoothctl y darle los comandos:

power on
agent on
default-agent
scan on
scan off
pair XX:XX:XX:XX:XX:XX
trust XX:XX:XX:XX:XX:XX

Después de iniciar el escaneo, espere unos segundos hasta que el dispositivo que necesita aparezca en la lista. Anote su dirección y úsela emitiendo el comando pair y, si es necesario, el comando trust.

En el lado del cliente, debe hacer lo mismo, pero el comando de confianza definitivamente no es necesario. El servidor lo necesita para aceptar una conexión utilizando el perfil NAP sin confirmación manual por parte del usuario.

El autor no está seguro de que ésta sea la secuencia óptima de comandos. Quizás todo lo que se necesita es emparejar el cliente con el servidor y ejecutar el comando de confianza en el servidor, pero aún no lo ha intentado.

Habilitación del perfil Bluetooth HID

Es necesario que Raspberry reconozca un teclado conectado a la pantalla Braille por cable y transmitido por la propia pantalla a través de Bluetooth. Esto se hace de la misma manera, solo que en lugar agente en necesito dar una orden agente KeyboardOnly y bluetoothctl encontrará un dispositivo con un perfil HID.

Pero configurar Bluetooth a través de la línea de comando es un poco complicado

Aunque el autor logró configurar todo, comprende que configurar BlueZ a través de la línea de comando es un inconveniente. Al principio pensó que los agentes solo eran necesarios para ingresar códigos PIN, pero resultó, por ejemplo, que para habilitar el perfil HID era necesario escribir "agente KeyboardOnly". Es sorprendente que para iniciar Bluetooth PAN sea necesario recorrer los repositorios en busca del script requerido. Recuerda que en la versión anterior de BlueZ había una herramienta preparada para esto. panda - ¿Dónde está en BlueZ 5? De repente apareció una nueva solución, desconocida para el autor, pero ¿en la superficie?

Rendimiento

La velocidad de transferencia de datos fue de aproximadamente 120 kbit/s, lo cual es suficiente. El procesador ARM de 1 GHz es muy rápido para una interfaz de línea de comandos. El autor todavía planea utilizar principalmente ssh y emacs en el dispositivo.

Fuentes de consola y resolución de pantalla

La resolución de pantalla predeterminada utilizada por el framebuffer en Raspberry Pi Zero es bastante extraña: fbset la informa como 656x416 píxeles (sin monitor conectado, por supuesto). Con una fuente de consola de 8×16, había 82 caracteres por línea y 26 líneas.

Es inconveniente trabajar con una pantalla Braille de 40 caracteres en este modo. Al autor también le gustaría que los caracteres Unicode se muestren en braille. Afortunadamente, Linux admite 512 caracteres y la mayoría de las fuentes de la consola tienen 256. Usando la configuración de la consola, puede usar dos fuentes de 256 caracteres juntas. El autor agregó las siguientes líneas al archivo /etc/default/console-setup:

SCREEN_WIDTH=80
SCREEN_HEIGHT=25
FONT="Lat15-Terminus16.psf.gz brl-16x8.psf"

Nota: para que la fuente brl-16×8.psf esté disponible, debe instalar console-braille.

¿Qué será lo próximo?

La pantalla Braille tiene un conector de 3,5 mm, pero el autor no conoce adaptadores para recibir una señal de audio Mini-HDMI. El autor no pudo utilizar la tarjeta de sonido integrada en Raspberry (curiosamente, el traductor estaba seguro de que Zero no tenía ninguna, pero hay formas de emitir sonido mediante PWM a GPIO). Planea usar un concentrador USB-OTG y conectar una tarjeta externa y emitir sonido al altavoz integrado en la pantalla braille. Por alguna razón, dos tarjetas externas no funcionaron, ahora está buscando un dispositivo similar con otro chipset.

También es un inconveniente apagar manualmente la "frambuesa", esperar unos segundos y apagar la pantalla braille. Y todo porque cuando se apaga, corta la alimentación del conector del compartimento. El autor planea colocar una pequeña batería tampón en el compartimento y, a través de GPIO, informar a la Raspberry sobre el apagado de la pantalla, para que pueda comenzar a dejar de funcionar. Este es un UPS en miniatura.

Imagen del sistema

Si tiene la misma pantalla Braille y le gustaría hacer lo mismo con ella, el autor está dispuesto a proporcionar una imagen preparada del sistema (basada en Raspbian Stretch). Escríbale sobre esto a la dirección indicada anteriormente. Si hay suficientes personas interesadas, incluso es posible lanzar kits que incluyan todo lo necesario para dicha modificación.

Agradecimientos

Gracias a Dave Mielke por la revisión.

Gracias a Simon Kainz por las ilustraciones fotográficas.

Gracias a mis colegas de la Universidad Técnica de Graz por presentar rápidamente al autor el mundo de Raspberry Pi.

PS Primer tuit El autor sobre este tema (no abre - traductor) se realizó apenas cinco días antes de la publicación del original de este artículo, y se puede considerar que, salvo problemas con el sonido, la tarea quedó prácticamente resuelta. Por cierto, el autor editó la versión final del texto desde una “pantalla Braille autosuficiente” que construyó, conectándola vía SSH a la computadora de su casa.

Fuente: habr.com

Añadir un comentario