
El autor colocó el 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 una computadora autónoma sin monitor en ARM con el sistema operativo Linux, equipada con un teclado y una pantalla braille. Puede cargarlo / alimentarlo a través de USB, incl. de un banco de energía o cargador solar. Por lo tanto, puede prescindir de la red eléctrica no durante varias horas, sino durante varios días.

Diferenciación dimensional de pantallas braille
En primer lugar, difieren en la longitud de la cadena. Los dispositivos 60 y más familiares son buenos cuando se trabaja con una computadora de escritorio, 40 dispositivos son convenientes para llevar con una computadora portátil. Ahora hay pantallas Braille conectadas a teléfonos inteligentes y tabletas, con una longitud de cadena de 14 o 18 familiaridad.
En el pasado, las pantallas braille eran bastante masivas. El familiar de 40, por ejemplo, tenía las dimensiones y el peso de una computadora portátil de 13 pulgadas. Ahora, con la misma cantidad de familiaridad, son lo suficientemente pequeños como para colocar una pantalla frente a una computadora portátil, en lugar de una computadora portátil en la pantalla.
Esto, por supuesto, es mejor, pero aún así no es muy conveniente mantener dos dispositivos separados en su regazo. Cuando trabaja en la mesa, no hay quejas, pero vale la pena recordar que la computadora portátil se llama computadora portátil de una manera diferente e intenta justificar su nombre, ya que resulta que la pantalla en miniatura de 40 asientos es aún menos conveniente.
Así que el autor esperó el lanzamiento del nuevo modelo largamente prometido en la serie Handy Tech Star. 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 en la parte superior. Y si no encaja, se proporciona un soporte retráctil. Ahora este modelo es reemplazado por Active Star 40, es casi lo mismo, pero con electrónica mejorada.

Y el soporte retráctil permaneció:

Pero lo más conveniente en la novedad es un receso aproximadamente del tamaño de un teléfono inteligente (ver KDPV). Se abre cuando la plataforma retrocede. Resultó ser un inconveniente mantener el teléfono inteligente allí, pero de alguna manera necesitas usar el compartimento vacío, dentro del cual incluso se proporciona una salida de energía.
Lo primero que se le ocurrió al autor fue poner la Raspberry Pi allí, pero cuando se compró la pantalla, resultó que con la "frambuesa" el soporte, que cierra el compartimento, no se desliza. Ahora, si el tablero fuera solo 3 mm más delgado ...
Pero un colega habló sobre el lanzamiento de Raspberry Pi Zero, que resultó ser tan pequeño que dos cabían en el compartimento ... o tal vez incluso tres. Se ordenó de inmediato junto con una tarjeta de memoria de 64 GB, Bluetooth, un silbato y un cable Micro USB. Pocos días después, todo esto llegó y amigos videntes ayudaron al autor a preparar un mapa. Todo funcionó de inmediato como debería.
¿Qué se hizo para esto?
En la parte posterior del Handy Tech Active Star 40 hay dos puertos USB para dispositivos como teclados. Se incluye un pequeño teclado conectado magnéticamente. Cuando el teclado está conectado y la pantalla funciona a través de Bluetooth, la computadora también lo reconoce como un teclado Bluetooth.
Por lo tanto, si conecta un "silbato" Bluetooth al Raspberry Pi Zero colocado en el compartimiento del teléfono inteligente, puede intercambiar datos con la pantalla Braille a través de Bluetooth usando
BRLTTY , y si también conecta un teclado a la pantalla, el "Malinka" funcionará y con ella
Pero eso no es todo. Malinka, a su vez, puede acceder a Internet a través de Bluetooth PAN desde cualquier dispositivo que lo admita. El autor configuró su teléfono inteligente y sus computadoras en consecuencia en el hogar y en el trabajo, pero en el futuro planea adaptar una "frambuesa" más para esto: una clásica, no Zero, conectada a Ethernet y otro "silbato" Bluetooth.
BlueZ 5 y PAN
La forma de configurar un PAN usando
BlueZ no era obvia. El autor encontró el script pyhton bt-pan (ver más abajo) que le permite configurar PAN sin una GUI.
Con él, puede configurar tanto el servidor como el cliente. Habiendo recibido el comando D-Bus apropiado cuando trabaja en modo cliente, crea un nuevo dispositivo de red bnep0 inmediatamente después de establecer una conexión con el servidor. Normalmente, DHCP se usa para asignar una dirección IP a esta interfaz. En modo servidor, BlueZ requiere el nombre del dispositivo puente al que el esclavo puede agregarlo para conectar cada cliente. Generalmente, todo lo que se requiere es configurar la dirección para el dispositivo de puente e iniciar el servidor DHCP más la máscara de IP en el puente.
Punto de acceso PAN Bluetooth con Systemd
Para configurar el puente, el autor aplicó 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 necesita forzar a BlueZ a configurar el perfil NAP. Resultó que las utilidades regulares de BlueZ 5.36 no se pueden hacer. Si el autor se equivoca, corríjalo: gurú mlang (sabe cómo mover las orejas) ciego (a veces acceso y cuántico)
Pero encontró
una publicación de blog y
un script de Python para hacer las llamadas necesarias a D-Bus.
Por conveniencia, el autor usó el servicio Systemd para ejecutar el script y verificar la resolución de dependencia.
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 IPMasquerade = support (ver
# 787480 ).
Después de ejecutar los
comandos systemctl daemon-reload y
systemctl restart systemd-networkd, puede iniciar el PAN Bluetooth con el comando
systemctl start panCliente PAN Bluetooth con Systemd
El lado del cliente también es fácil de configurar con Systemd.
Archivo /etc/systemd/network/pan-client.network
[Match] Name=bnep* [Network] DHCP=yes
Archivo /etc/systemd/system/pan@.service
[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 reiniciar la configuración, puede conectarse al punto de acceso Bluetooth especificado de esta manera:
systemctl start pan@00:11:22:33:44:55
Emparejamiento de línea de comando
Por supuesto, el servidor y los clientes deben configurarse después de emparejarlos a través de Bluetooth. En el servidor, debe ejecutar bluetoothctl y darle el comando:
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 comenzar la exploración, espere unos segundos hasta que el dispositivo que necesita aparezca en la lista. Escriba su dirección y úsela emitiendo el comando de emparejamiento y, si es necesario, el comando de confianza.
El cliente debe hacer lo mismo, pero el comando de confianza no será necesario con seguridad. El servidor necesita que acepte la conexión en el perfil NAP sin la confirmación manual del usuario.
El autor no está seguro de si esta es 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 probado.
Habilitación del perfil Bluetooth HID
Se requiere que el "Malinka" reconozca el teclado conectado a la pantalla Braille por un cable, y que ya haya sido reenviado por la pantalla a través de Bluetooth. Esto se hace de la misma manera, solo que en lugar del
agente debe dar el comando
KeyboardOnly al
agente , 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, entiende que configurar BlueZ a través de la línea de comando es 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 uno tenía que escribir "agent KeyboardOnly". Sorprendentemente, para iniciar Bluetooth PAN, debe escalar los repositorios en busca del script deseado. Él recuerda que en la versión anterior de BlueZ había una herramienta de
pandillas preparada para esto: ¿dónde lo hizo en BlueZ 5? De repente, apareció una nueva solución, desconocida para el autor, ¿pero tendida en la superficie?
Rendimiento
La velocidad de transferencia de datos fue de aproximadamente 120 kbps, que es suficiente. El procesador ARM de 1 GHz es muy rápido para la interfaz de línea de comando. El autor todavía planea usar 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 informa que tiene 656x416 píxeles (por supuesto, el monitor no está conectado). Con una fuente de consola de 8x16, se obtuvieron 82 caracteres por línea y 26 líneas.
Es inconveniente trabajar con una pantalla Braille de 40 caracteres en este modo. Además, el autor desea que los caracteres Unicode se muestren en Braille. Afortunadamente, Linux admite 512 caracteres, y en la mayoría de las fuentes de consola hay 256. Con 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-16x8.psf esté disponible, debe instalar braille de consola.
Que sigue
Hay un conector de 3,5 mm en la pantalla Braille, pero el autor no conoce los adaptadores para eliminar el audio de Mini-HDMI. El autor no pudo usar la tarjeta de sonido integrada en la "frambuesa" (extraño, el traductor estaba seguro de que no había ninguno en Zero, pero hay formas de enviar el sonido PWM a GPIO). Planea usar un concentrador USB-OTG y conectar una tarjeta externa y emitir el sonido al altavoz integrado en la pantalla Braille. Por alguna razón, dos tarjetas externas no funcionaron, ahora está buscando un dispositivo similar en otro chipset.
También es inconveniente apagar manualmente la "frambuesa", esperar unos segundos y apagar la pantalla Braille. Y todo porque cuando se desconecta, elimina la energía del conector en el compartimento. El autor planea colocar una pequeña batería amortiguadora en el compartimento y, a través del GPIO, informar a la "frambuesa" acerca de apagar la pantalla para que comience a completar el trabajo. Tal UPS en miniatura.
Imagen del sistema
Si tiene la misma pantalla braille y desea hacer lo mismo con ella, el autor está listo para proporcionar una imagen del sistema lista para usar (basada en Raspbian Stretch). Escríbale sobre esto en la dirección anterior. Si hay muchas personas dispuestas, incluso es posible producir conjuntos que incluyan todo lo que necesita para tal alteración.
Agradecimientos
Gracias a Dave Mielke por corregir el texto.
Gracias a Simon Kainz por la ilustración de la foto.
Gracias a los colegas de la Universidad Técnica de Graz por la rápida introducción del autor al mundo de Raspberry Pi.
PD:
El primer tweet del autor sobre este tema (no abre - traductor) se realizó solo cinco días antes de la publicación del original de este artículo, y podemos suponer que, con la excepción de los problemas de sonido, la tarea estaba prácticamente resuelta. Por cierto, el autor editó la versión final del texto de la "pantalla Braille autosuficiente" hecha por él, conectándolo a través de SSH a la computadora de la casa.