Raspberry Pi Zero dentro dunha pantalla braille Handy Tech Active Star 40

Raspberry Pi Zero dentro dunha pantalla braille Handy Tech Active Star 40

O autor colocou unha Raspberry Pi Zero, un asubío Bluetooth e un cable dentro da súa nova pantalla braille Handy Tech Active Star 40. Un porto USB integrado proporciona enerxía. O resultado foi un ordenador autosuficiente sen monitor en ARM co sistema operativo Linux, equipado cun teclado e unha pantalla Braille. Pode cargalo/alimentalo a través de USB, incl. dun banco de enerxía ou cargador solar. Polo tanto, pode prescindir de enerxía durante varias horas, pero durante varios días.

Raspberry Pi Zero dentro dunha pantalla braille Handy Tech Active Star 40

Diferenciación dimensional de pantallas braille

En primeiro lugar, difiren na lonxitude da liña. Os dispositivos con capacidade de 60 ou máis son bos para traballar cun ordenador de sobremesa, mentres que os dispositivos con capacidade de 40 son convenientes para transportar cun portátil. Agora hai pantallas braille conectadas a teléfonos intelixentes e tabletas, cunha lonxitude de liña de 14 ou 18 caracteres.

No pasado, as pantallas braille eran bastante masivas. O portátil de 40 prazas, por exemplo, tiña o tamaño e o peso dun portátil de 13 polgadas. Agora, co mesmo número de coñecidos, son o suficientemente en miniatura como para que poidas poñer a pantalla diante do portátil, en lugar do portátil na pantalla.

Isto é, por suposto, mellor, pero aínda non é moi cómodo levar dous dispositivos separados no colo. Cando traballas nunha mesa, non hai queixas, pero vale a pena lembrar que un portátil recibe outro nome e tentar xustificar o seu nome, xa que resulta que a pantalla en miniatura de 40 caracteres é aínda menos conveniente.

Entón, o autor esperou o lanzamento do novo modelo prometido desde hai tempo na serie Handy Tech Star. Xa en 2002, lanzouse o modelo anterior Handy Tech Braille Star 40, onde a zona do corpo é suficiente para poñer un portátil encima. E se non cabe, hai un soporte retráctil. Agora este modelo foi substituído polo Active Star 40, que é case o mesmo, pero cunha electrónica actualizada.

Raspberry Pi Zero dentro dunha pantalla braille Handy Tech Active Star 40

E o soporte retráctil queda:

Raspberry Pi Zero dentro dunha pantalla braille Handy Tech Active Star 40

Pero o máis cómodo do novo produto é un retranqueo aproximadamente do tamaño dun teléfono intelixente (ver KDPV). Ábrese cando a plataforma se move cara atrás. Resultou incómodo manter alí un teléfono intelixente, pero cómpre usar dalgún xeito o compartimento baleiro, dentro do cal hai ata unha toma de corrente.

O primeiro que se lle ocorreu ao autor foi colocar alí o Raspberry Pi, pero cando se comprou a pantalla, resultou que o soporte que cubría o compartimento non se deslizaba coa "framboesa". Agora, se o taboleiro fose só 3 mm máis delgado...

Pero un compañeiro faloume do lanzamento do Raspberry Pi Zero, que resultou ser tan en miniatura que dous deles podían caber no compartimento... ou quizais ata tres. Pediuse inmediatamente xunto cunha tarxeta de memoria de 64 GB, Bluetooth, "silbato" e un cable Micro USB. Uns días despois chegou todo isto, e amigos videntes axudaron ao autor a preparar un mapa. Todo funcionou inmediatamente como debería.

Que se fixo para iso

Na parte traseira do Handy Tech Active Star 40 hai dous portos USB para dispositivos como teclados. Inclúese un teclado de tamaño pequeno con soporte magnético. Cando o teclado está conectado e a pantalla funciona a través de Bluetooth, o ordenador tamén o recoñece como un teclado Bluetooth.

Así, se conectas un "silbato" Bluetooth a un Raspberry Pi Zero colocado no compartimento do smartphone, este poderá comunicarse coa pantalla braille a través de Bluetooth mediante BRLTTY, e se tamén conectas un teclado á pantalla, a "framboesa" tamén funcionará con el.

Pero iso non é todo. A propia "framboesa", pola súa banda, pode acceder a Internet mediante Bluetooth PAN desde calquera dispositivo que o admita. O autor configurou o seu teléfono intelixente e ordenadores na casa e no traballo en consecuencia, pero no futuro planea adaptar outro "framboesa" para iso: un clásico, non un Zero, conectado a Ethernet e outro "asubío" Bluetooth.

BlueZ 5 e PAN

Método de configuración PAN usando AzulZ resultou ser pouco obvio. O autor atopou o script bt-pan Python (ver máis abaixo), que che permite configurar PAN sen unha GUI.

Pódese usar para configurar tanto o servidor como o cliente. Despois de recibir o comando apropiado a través de D-Bus cando traballa en modo cliente, crea un novo dispositivo de rede bnep0 inmediatamente despois de establecer unha conexión co servidor. Normalmente, DHCP úsase para asignar un enderezo IP a esta interface. No modo servidor, BlueZ require o nome dun dispositivo ponte ao que pode engadir un dispositivo escravo para conectar cada cliente. Configurar un enderezo para o dispositivo ponte e executar un servidor DHCP máis o enmascaramento de IP na ponte normalmente é todo o que se require.

Punto de acceso Bluetooth PAN con Systemd

Para configurar a ponte, o autor utilizou systemd-networkd:

Ficheiro /etc/systemd/network/pan.netdev

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

Ficheiro /etc/systemd/network/pan.network

[Match]
Name=pan

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

Agora necesitamos forzar a BlueZ a configurar o perfil NAP. Resultou que isto non se pode facer coas utilidades estándar BlueZ 5.36. Se o autor se equivoca, corríxeo: mlang (pode mover os oídos) cego (ás veces acceso e cuántico) gurú

Pero atopou publicación do blog и Script Python para realizar as chamadas necesarias a D-Bus.

Por comodidade, o autor utilizou o servizo Systemd para executar o script e comprobar se as dependencias están resoltas.

Ficheiro /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

Ficheiro /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

O segundo ficheiro non sería necesario se Debian tivese soporte para IPMasquerade= (ver máis abaixo). # 787480).

Despois de executar os comandos systemload daemon-reload и systemctl reiniciar systemd-networkd pode iniciar Bluetooth PAN co comando systemctl inicio pano

Cliente Bluetooth PAN usando Systemd

O lado do cliente tamén é fácil de configurar usando Systemd.

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

[Match]
Name=bnep*

[Network]
DHCP=yes

Ficheiro /etc/systemd/system/[protexido por correo electrónico]

[Unit]
Description=Bluetooth Personal Area Network client

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

Agora, despois de volver cargar a configuración, pode conectarse ao punto de acceso Bluetooth especificado deste xeito:

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

Emparejamento mediante a liña de comandos

Por suposto, a configuración do servidor e dos clientes debe realizarse despois de vinculalos mediante Bluetooth. No servidor debes executar bluetoothctl e darlle os 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

Despois de iniciar a exploración, agarde uns segundos ata que apareza o dispositivo que precisa na lista. Anote o seu enderezo e utilízao emitindo o comando pair e, se é necesario, o comando trust.

No lado do cliente, cómpre facer o mesmo, pero o comando trust definitivamente non é necesario. O servidor precisa que acepte unha conexión mediante o perfil NAP sen a confirmación manual do usuario.

O autor non está seguro de que esta sexa a secuencia óptima de comandos. Quizais todo o que necesites sexa emparellar o cliente co servidor e executar o comando trust no servidor, pero aínda non o intentou.

Activando o perfil Bluetooth HID

É necesario que o Raspberry recoñeza un teclado conectado á pantalla Braille por cable, e transmitido pola propia pantalla a través de Bluetooth. Isto faise do mesmo xeito, só no seu lugar axente activado precisa dar unha orde axente KeyboardOnly e bluetoothctl atopará un dispositivo cun perfil HID.

Pero configurar Bluetooth a través da liña de comandos é un pouco complicado

Aínda que o autor conseguiu configuralo todo, entende que configurar BlueZ a través da liña de comandos é un inconveniente. Nun principio pensou que os axentes só eran necesarios para introducir códigos PIN, pero resultou, por exemplo, que para habilitar o perfil HID cómpre escribir "axente KeyboardOnly". É sorprendente que para lanzar Bluetooth PAN necesites subir polos repositorios en busca do script necesario. Lembra que na versión anterior de BlueZ había unha ferramenta preparada para iso pan - onde está en BlueZ 5? De súpeto apareceu unha nova solución, descoñecida para o autor, pero que queda na superficie?

Produtividade

A velocidade de transferencia de datos era de aproximadamente 120 kbit/s, o que é suficiente. O procesador ARM de 1 GHz é moi rápido para unha interface de liña de comandos. O autor aínda planea usar principalmente ssh e emacs no dispositivo.

Tipos de letra da consola e resolución de pantalla

A resolución de pantalla predeterminada utilizada polo framebuffer no Raspberry Pi Zero é bastante estraña: fbset infórmaa como 656x416 píxeles (sen monitor conectado, por suposto). Cun tipo de letra de consola de 8×16, había 82 caracteres por liña e 26 liñas.

É inconveniente traballar cunha pantalla Braille de 40 caracteres neste modo. O autor tamén quere ver os caracteres Unicode amosados ​​en braille. Afortunadamente, Linux admite 512 caracteres e a maioría das fontes da consola teñen 256. Usando a configuración da consola, podes usar dúas fontes de 256 caracteres xuntos. O autor engadiu as seguintes liñas ao ficheiro /etc/default/console-setup:

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

Nota: para que o tipo de letra brl-16×8.psf estea dispoñible, cómpre instalar console-braille.

Cal é o próximo?

A pantalla Braille ten unha toma de 3,5 mm, pero o autor non coñece adaptadores para recibir un sinal de audio desde Mini-HDMI. O autor non puido usar a tarxeta de son integrada no Raspberry (estrañamente, o tradutor estaba seguro de que o Zero non tiña unha, pero hai formas de emitir son mediante PWM ao GPIO). Planea usar un concentrador USB-OTG e conectar unha tarxeta externa e emitir son ao altofalante integrado na pantalla braille. Por algunha razón, dúas tarxetas externas non funcionaron; agora está a buscar un dispositivo similar nun chipset diferente.

Tamén é inconveniente apagar manualmente a "framboesa", esperar uns segundos e apagar a pantalla braille. E todo porque cando se apaga, desconecte a alimentación do conector do compartimento. O autor planea colocar unha pequena batería tampón no compartimento e, a través de GPIO, informar á Raspberry sobre o apagado da pantalla, para que poida comezar a apagar o seu traballo. Este é un UPS en miniatura.

Imaxe do sistema

Se tes a mesma pantalla Braille e queres facer o mesmo con ela, o autor está preparado para proporcionar unha imaxe preparada do sistema (baseada en Raspbian Stretch). Escríbelle ao respecto ao enderezo indicado anteriormente. Se hai suficientes persoas interesadas, incluso é posible lanzar kits que inclúan todo o necesario para tal modificación.

Agradecementos

Grazas a Dave Mielke pola corrección.

Grazas a Simon Kainz polas ilustracións fotográficas.

Grazas aos meus compañeiros da Universidade Técnica de Graz por introducir rapidamente ao autor no mundo de Raspberry Pi.

PS Primeiro chío autor sobre este tema (non abre - tradutor) fíxose só cinco días antes da publicación do orixinal deste artigo, e pódese considerar que, con excepción dos problemas co son, a tarefa estaba practicamente resolta. Por certo, o autor editou a versión final do texto a partir dunha “pantalla Braille autosuficiente” que fixo, conectándoa a través de SSH ao seu ordenador doméstico.

Fonte: www.habr.com

Engadir un comentario