
El autor colocó una Raspberry Pi Zero, un adaptador Bluetooth y un cable dentro de su nueva pantalla braille Handy Tech Active Star 40. El puerto USB integrado proporciona energía. Se ha creado una computadora autosuficiente sin monitor basada en ARM con un sistema operativo Linux, equipada con un teclado y una pantalla braille. Se puede cargar/alimentar a través de USB, incluso desde un banco de energía o un cargador solar. Por lo tanto, puede funcionar sin una red eléctrica no durante varias horas, sino durante varios días.

Diferenciación de las pantallas braille
En primer lugar, difieren en la longitud de la línea. Los dispositivos con 60 caracteres o más son buenos para trabajar con una computadora de escritorio, mientras que los de 40 son convenientes para llevar con un portátil. Ahora existen pantallas braille que se conectan a teléfonos inteligentes y tabletas, con longitudes de línea de 14 o 18 caracteres.
En el pasado, las pantallas braille eran bastante masivas. Por ejemplo, una pantalla de 40 caracteres tenía el tamaño y el peso de un portátil de 13 pulgadas. Ahora, con el mismo número de caracteres, son lo suficientemente miniaturas como para colocar la pantalla frente al portátil en lugar de colocar el portátil sobre la pantalla.
Esto, por supuesto, es mejor, pero aún así no es muy cómodo tener dos dispositivos separados en las rodillas. Cuando trabajas en una mesa, no hay quejas, pero vale la pena recordar que un portátil se llama de otra manera, y al intentar justificar este nombre, resulta que una pantalla braille miniatura de 40 caracteres es incluso menos cómoda.
Así que el autor esperó la salida del nuevo modelo prometido en la serie Handy Tech Star. Ya en 2002 se lanzó el modelo anterior Handy Tech Braille Star 40, cuyo tamaño de carcasa es suficiente para colocar un portátil encima. Y si no cabe, hay un soporte retráctil. Ahora este modelo ha sido reemplazado por el Active Star 40, que es prácticamente lo mismo, pero con electrónica modernizada.

Y el soporte retráctil se ha mantenido:

Pero lo más conveniente de la novedad es el hueco de aproximadamente el tamaño de un smartphone (ver KDPV). Se abre al deslizar la plataforma hacia atrás. Resulta incómodo mantener el smartphone allí, pero de alguna manera hay que usar el espacio vacío, dentro del cual incluso se ha contemplado una salida de energía.
La primera idea del autor fue colocar una Raspberry Pi, pero cuando se adquirió la pantalla, se dio cuenta de que la base que cubre el compartimento no encajaba con la "frambuesa". Si tan solo la placa fuera 3 mm más delgada...
Sin embargo, un colega habló sobre la salida de la Raspberry Pi Zero, que resultó ser tan pequeña que cabrían dos... o quizás incluso tres en el compartimento. Se pidió de inmediato junto con una tarjeta de memoria de 64 GB, Bluetooth, un "dongle" y un cable Micro USB. Después de unos días, todo llegó, y amigos videntes ayudaron al autor a preparar la tarjeta. Todo funcionó como se esperaba.
Qué se hizo para esto
En la parte trasera del Handy Tech Active Star 40 hay dos puertos USB para dispositivos como teclados. Se incluye un teclado compacto con soporte magnético. Cuando el teclado está conectado y la pantalla funciona a través de Bluetooth, el ordenador lo reconoce también como teclado Bluetooth.
Por lo tanto, si se conecta un "dongle" Bluetooth a la Raspberry Pi Zero colocada en el compartimento del smartphone, podrá intercambiar datos con el display Braille a través de Bluetooth utilizando , y si también se conecta un teclado al display, la "frambuesa" funcionará con él.
Pero eso no es todo. La "frambuesa", a su vez, puede acceder a Internet a través de Bluetooth PAN desde cualquier dispositivo que lo soporte. El autor configuró su smartphone y ordenadores en casa y en el trabajo de esta manera, pero planea adaptar otra "frambuesa", la clásica, no Zero, conectada a Ethernet y a otro "dongle" Bluetooth.
BlueZ 5 y PAN
La forma de configurar PAN utilizando resultó ser poco evidente. El autor encontró un script de Python llamado bt-pan (ver más abajo), que permite configurar PAN sin GUI.
Con él se puede configurar tanto el servidor como el cliente. Al recibir el comando correspondiente por D-Bus en modo cliente, crea un nuevo dispositivo de red bnep0 justo después de establecer la conexión con el servidor. Normalmente, se utiliza DHCP para asignar una dirección IP a esta interfaz. En modo servidor, BlueZ exige que se especifique el nombre del dispositivo puente al que puede añadir un dispositivo subordinado para conectar a cada uno de los clientes. Configurar la dirección para el dispositivo puente y poner en marcha el servidor DHCP más el enmascaramiento IP en el puente es generalmente todo lo que se requiere.
Punto de acceso Bluetooth PAN con Systemd
Para la configuración del puente, el autor utilizó systemd-networkd:
Archivo /etc/systemd/network/pan.netdev
[NetDev]
Name=pan
Kind=bridge
ForwardDelaySec=0Archivo /etc/systemd/network/pan.network
[Match]
Name=pan
[Network]
Address=0.0.0.0/24
DHCPServer=yes
IPMasquerade=yesAhora es necesario hacer que BlueZ configure el perfil NAP. Resultó que no se puede hacer esto con las herramientas estándar de BlueZ 5.36. Si el autor se equivoca, corríjalo: mlang (puede mover las orejas) blind (a veces tiene acceso y cuántico) guru
Pero encontró y para realizar las llamadas necesarias en D-Bus.
Para mayor comodidad, el autor utilizó un servicio de Systemd para ejecutar el script y verificar la resolución de dependencias.
Archivo /etc/systemd/system/pan.service
[Unit]
Description=Red de Área Personal Bluetooth
After=bluetooth.service systemd-networkd.service
Requires=systemd-networkd.service
PartOf=bluetooth.service
[Service]
Type=notify
ExecStart=/usr/local/sbin/pan
[Install]
WantedBy=bluetooth.targetArchivo /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 panEl segundo archivo no sería necesario si Debian tuviera soporte para IPMasquerade= (ver. ).
Después de ejecutar los comandos systemctl daemon-reload y systemctl restart systemd-networkd puede iniciar Bluetooth PAN con el comando systemctl start pan
Cliente Bluetooth PAN utilizando Systemd
La parte del cliente también es fácil de configurar usando Systemd.
Archivo /etc/systemd/network/pan-client.network
[Match]
Name=bnep*
[Network]
DHCP=yesArchivo /etc/systemd/system/pan@.service
[Unit]
Description=Cliente de Red de Área Personal Bluetooth
[Service]
Type=notify
ExecStart=/usr/local/sbin/bt-pan --debug --systemd client %I --waitAhora, después de reiniciar la configuración, se puede conectar al punto de acceso Bluetooth especificado de la siguiente manera:
systemctl start pan@00:11:22:33:44:55Emparejamiento mediante línea de comandos
Por supuesto, la configuración del servidor y los clientes debe hacerse después de emparejarlos por Bluetooth. En el servidor, debe iniciar 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:XXInicie el escaneo y espere unos segundos hasta que el dispositivo que necesita aparezca en la lista. Anote su dirección y úsela, ejecutando el comando pair, y si es necesario, también el comando trust.
Desde el lado del cliente, se debe hacer lo mismo, pero el comando trust no será necesario. Al servidor le es necesario para aceptar la conexión mediante el perfil NAP sin la confirmación manual del usuario.
El autor no está seguro de que esta sea la secuencia óptima de comandos. Tal vez lo único que se necesita es emparejar el cliente con el servidor y ejecutar el comando trust en el servidor, pero aún no lo ha probado.
Permitir el uso del perfil Bluetooth HID
Es necesario que «malina» reconozca el teclado conectado al display braille mediante un cable y transmitido ya por el display a través de Bluetooth. Se hace de la misma manera, solo que en lugar de agent on hay que dar el comando agent KeyboardOnly y bluetoothctl encontrará el dispositivo con el perfil HID.
Pero configurar Bluetooth a través de la línea de comandos es complicado.
Aunque el autor logró configurar todo, entiende que ajustar BlueZ a través de la línea de comandos no es práctico. Al principio pensó que los agentes solo eran necesarios para ingresar códigos PIN, pero resultó que, por ejemplo, para habilitar el perfil HID es necesario escribir «agent KeyboardOnly». Es sorprendente que para iniciar Bluetooth PAN haya que buscar en los repositorios el script necesario. Recuerda que en la versión anterior de BlueZ había una herramienta lista para eso. pand — ¿a dónde fue a parar en BlueZ 5? ¿Tal vez ha surgido una nueva solución desconocida para el autor, pero evidente?
Rendimiento
La velocidad de transmisión de datos fue de aproximadamente 120 kbit/s, lo cual es bastante adecuado. Un procesador ARM de 1 GHz es muy rápido para la interfaz de línea de comandos. Aun así, el autor planea usar en el dispositivo principalmente ssh y emacs.
Fuentes de consola y resolución de pantalla
La resolución de pantalla utilizada por el framebuffer en Raspberry Pi Zero por defecto es bastante extraña: fbset informa que es de 656×416 píxeles (el monitor, por supuesto, no está conectado). Con la fuente de consola 8×16 se obtuvieron 82 caracteres por línea y 26 líneas.
Trabajar con un display braille de 40 caracteres en ese modo no es cómodo. Además, al autor le gustaría que los signos Unicode se mostraran en formato braille en la pantalla. Afortunadamente, Linux soporta 512 caracteres, mientras que la mayoría de las fuentes de consola solo tienen 256. Con el console-setup se pueden usar dos fuentes de 256 caracteres simultáneamente. El autor agregó a la configuración del archivo /etc/default/console-setup las siguientes líneas:
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, es necesario instalar console-braille.
¿Qué sigue?
En la pantalla braille hay un conector de 3,5 milímetros, pero el autor no conoce adaptadores para extraer la señal de audio del Mini-HDMI. No pudo utilizar la tarjeta de sonido integrada en la 'raspberry' (es extraño, el traductor estaba seguro de que el Zero no la tenía, pero hay formas de emitir sonido mediante PWM en GPIO). Planea usar un hub USB-OTG y conectar una tarjeta externa para enviar el sonido a la bocina integrada en la pantalla braille. Dos tarjetas externas, por alguna razón, no funcionaron; ahora está buscando un dispositivo similar con otro chipset.
Todavía es incómodo apagar manualmente la 'raspberry', esperar unos segundos y desconectar la pantalla braille. Todo porque al desconectarse corta la alimentación del conector en el compartimento. El autor planea colocar en el compartimento una pequeña batería de reserva y a través de GPIO informar a la 'raspberry' sobre la desconexión de la pantalla, para que esta comience a finalizar su funcionamiento. Un SAI en miniatura.
Imagen del sistema
Si tienes una pantalla braille similar y deseas hacer lo mismo, el autor está dispuesto a proporcionar una imagen del sistema lista (basada en Raspbian Stretch). Escríbele sobre esto a la dirección mencionada anteriormente. Si hay suficientes interesados, incluso es posible lanzar kits que incluyan todo lo necesario para esta modificación.
Agradecimientos
Gracias a Dave Mielke por la revisión del texto.
Gracias a Simon Kainz por las ilustraciones fotográficas.
Gracias a los colegas de la Universidad Técnica de Graz por la rápida introducción del autor al mundo de Raspberry Pi.
P.D. del autor sobre este tema (no se abre — traductor) se hizo solo cinco días antes de la publicación del original de este artículo, y se puede considerar que, salvo los problemas de sonido, la tarea planteada está prácticamente resuelta. Por cierto, el autor editó la versión final del texto conectando su 'pantalla braille autosuficiente' a su computadora doméstica por SSH.
Fuente: habr.com
