Raspberry Pi Zero dentro da tecnologia ativa estrela ativa 40 Braille Display



O autor colocou o Raspberry Pi Zero, um apito Bluetooth e um cabo dentro de seu novo monitor Braille Handy Tech Active Star 40. Uma porta USB integrada fornece energia. O resultado foi um computador não monitor independente no ARM com o sistema operacional Linux, equipado com um teclado e uma tela em braille. Você pode carregá-lo / alimentá-lo via USB, incl. de um banco de energia ou carregador solar. Portanto, ele pode dispensar a energia da rede elétrica não por várias horas, mas por vários dias.



Diferenciação dimensional de telas em braille


Primeiro de tudo, eles diferem no comprimento da string. Dispositivos 60 e mais familiares são bons quando se trabalha com um computador desktop, 40 dispositivos são convenientes para transportar com um laptop. Agora, existem displays Braille conectados a smartphones e tablets, com um comprimento de string de 14 ou 18 familiaridades.

No passado, as telas em braille eram bastante enormes. Os 40 familiares, por exemplo, tinham as dimensões e o peso de um laptop de 13 polegadas. Agora, com a mesma familiaridade, eles são miniatura o suficiente para colocar uma tela na frente do laptop, em vez de um laptop na tela.

É claro que isso é melhor, mas ainda não é muito conveniente manter dois dispositivos separados no seu colo. Quando você trabalha na mesa, não há reclamações, mas vale lembrar que o laptop é chamado de laptop de uma maneira diferente e tente justificar seu nome, pois a exibição em miniatura de 40 lugares é ainda menos conveniente.

Portanto, o autor aguardou o lançamento do novo modelo há muito prometido na série Handy Tech Star. Em 2002, o modelo Handy Tech Braille Star 40 anterior foi lançado, onde a área do corpo é suficiente para colocar um laptop em cima. E se não encaixar, é fornecido um suporte retrátil. Agora, este modelo é substituído pelo Active Star 40, é quase o mesmo, mas com componentes eletrônicos atualizados.



E o suporte retrátil permaneceu:



Mas a coisa mais conveniente da novidade é um recesso aproximadamente do tamanho de um smartphone (consulte KDPV). Ele abre quando a plataforma se move para trás. Acabou sendo inconveniente manter o smartphone lá, mas de alguma forma você precisa usar o compartimento vazio, dentro do qual até uma saída de energia é fornecida.

A primeira coisa que o autor inventou foi colocar o Raspberry Pi lá, mas quando a tela foi comprada, descobriu-se que, com a "framboesa", o suporte, que fecha o compartimento, não desliza. Agora, se a placa fosse apenas 3 mm mais fina ...

Mas um colega falou sobre o lançamento do Raspberry Pi Zero, que era tão pequeno que dois cabiam no compartimento ... ou talvez até três. Foi imediatamente encomendado juntamente com um cartão de memória de 64 GB, Bluetooth, um apito e um cabo Micro USB. Alguns dias depois, tudo isso chegou e amigos avistados ajudaram o autor a preparar um mapa. Tudo imediatamente funcionou como deveria.

O que foi feito para isso


Na parte traseira do Handy Tech Active Star 40 existem duas portas USB para dispositivos como teclados. Um pequeno teclado magneticamente conectado está incluído. Quando o teclado está conectado e o próprio monitor funciona via Bluetooth, o computador também o reconhece como teclado Bluetooth.

Assim, se você conectar um "apito" Bluetooth ao Raspberry Pi Zero colocado no compartimento do smartphone, ele poderá se comunicar com a tela Braille via Bluetooth usando BRLTTY , e se você também conectar um teclado à tela, o "Malinka" funcionará e com ela.

Mas isso não é tudo. A própria Malinka, por sua vez, pode acessar a Internet via Bluetooth PAN a partir de qualquer dispositivo que a suporte. O autor configurou seu smartphone e computadores de acordo em casa e no trabalho, mas no futuro ele planeja adaptar mais uma “framboesa” para isso - uma clássica, não a Zero, conectada à Ethernet e outro “apito” Bluetooth.

BlueZ 5 e PAN


A maneira de configurar um PAN usando o BlueZ não era óbvia. O autor encontrou o script pyhton bt-pan (veja abaixo) que permite configurar o PAN sem uma GUI.

Com ele, você pode configurar o servidor e o cliente. Após receber o comando D-Bus apropriado ao trabalhar no modo cliente, ele cria um novo dispositivo de rede bnep0 imediatamente após estabelecer uma conexão com o servidor. Normalmente, o DHCP é usado para atribuir um endereço IP a essa interface. No modo de servidor, o BlueZ requer o nome do dispositivo de ponte ao qual ele pode ser adicionado pelo escravo para conectar cada cliente. Configurar o endereço do dispositivo de ponte e iniciar o servidor DHCP mais a máscara de IP na ponte geralmente é tudo o que é necessário.

Ponto de acesso PAN Bluetooth com Systemd


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

Arquivo /etc/systemd/network/pan.netdev

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

Arquivo /etc/systemd/network/pan.network

 [Match] Name=pan [Network] Address=0.0.0.0/24 DHCPServer=yes IPMasquerade=yes 

Agora você precisa forçar o BlueZ a configurar o perfil NAP. Descobriu-se que os utilitários regulares do BlueZ 5.36 não podem ser feitos. Se o autor estiver errado, corrija-o: mlang (sabe como mover as orelhas) cego (às vezes acesso e quantum) guru

Mas ele encontrou um post no blog e um script Python para fazer as chamadas necessárias para o D-Bus.

Por conveniência, o autor usou o serviço Systemd para executar o script e verificar a resolução da dependência.

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

Arquivo / 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 arquivo não seria necessário se o Debian tivesse suporte para IPMasquerade = (veja # 787480 ).

Depois de executar os comandos systemctl daemon-reload e systemctl restart systemd-networkd, você pode iniciar o Bluetooth PAN com o comando systemctl start pan

Cliente PAN Bluetooth usando Systemd


O lado do cliente também é fácil de configurar usando o Systemd.

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

 [Match] Name=bnep* [Network] DHCP=yes 

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

Agora, depois de reiniciar a configuração, você pode conectar-se ao ponto de acesso Bluetooth especificado, como este:

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

Emparelhamento de linha de comando


Obviamente, o servidor e os clientes devem ser configurados após o emparelhamento via Bluetooth. No servidor, você precisa executar bluetoothctl e dar o 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 

Após iniciar a verificação, aguarde alguns segundos até que o dispositivo necessário seja exibido na lista. Anote o endereço dele e use-o emitindo o comando pair e, se necessário, o comando trust.

O cliente deve fazer o mesmo, mas o comando trust não será necessário com certeza. O servidor precisa aceitar a conexão no perfil NAP sem confirmação manual do usuário.

O autor não tem certeza se esta é a sequência ideal de comandos. Talvez tudo o que seja necessário seja emparelhar o cliente com o servidor e executar o comando trust no servidor, mas ele ainda não o tentou.

Habilitando o perfil Bluetooth HID


É necessário que o "Malinka" reconheça o teclado conectado ao monitor em Braille por um fio e que já seja encaminhado pelo próprio monitor via Bluetooth. Isso é feito da mesma maneira, somente em vez de usar o agente, você precisa fornecer o comando KeyboardOnly do agente , e o bluetoothctl encontrará um dispositivo com um perfil HID.

Mas configurar o Bluetooth através da linha de comando é um pouco complicado


Embora o autor tenha conseguido configurar tudo, ele entende que configurar o BlueZ através da linha de comando é inconveniente. A princípio, ele pensou que os agentes eram necessários apenas para inserir códigos PIN, mas, por exemplo, para ativar o perfil HID, era necessário digitar “agent KeyboardOnly”. Surpreendentemente, para iniciar o Bluetooth PAN, você precisa escalar os repositórios em busca do script desejado. Ele lembra que na versão anterior do BlueZ havia uma ferramenta pronta para isso - onde ele fez isso no BlueZ 5? De repente, uma nova solução apareceu, desconhecida para o autor, mas deitada na superfície?

Desempenho


A taxa de transferência de dados foi de aproximadamente 120 kbps, o que é suficiente. O processador ARM de 1 GHz é muito rápido para a interface da linha de comandos. O autor ainda planeja usar principalmente ssh e emacs no dispositivo.

Fontes de console e resolução de tela


A resolução de tela padrão usada pelo buffer de quadros no Raspberry Pi Zero é bastante estranha: o fbset relata que são 656x416 pixels (é claro, o monitor não está conectado). Com uma fonte de console de 8x16, foram obtidos 82 caracteres por linha e 26 linhas.

É inconveniente trabalhar com uma tela Braille de 40 caracteres neste modo. Além disso, o autor gostaria que os caracteres Unicode fossem exibidos em Braille. Felizmente, o Linux suporta 512 caracteres e, na maioria das fontes de console, existem 256. Com a instalação do console, você pode usar duas fontes de 256 caracteres juntas. O autor adicionou as seguintes linhas ao arquivo / etc / default / console-setup:

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

Nota: para que a fonte brl-16x8.psf fique disponível, é necessário instalar o console-braille.

O que vem a seguir?


Há um conector de 3,5 mm na tela Braille, mas o autor não conhece os adaptadores para remover o áudio do Mini-HDMI. O autor não conseguiu usar a placa de som embutida no "raspberry" (estranho, o tradutor tinha certeza de que não havia nenhuma no Zero, mas existem maneiras de emitir som PWM para o GPIO). Ele planeja usar um hub USB-OTG e conectar uma placa externa e emitir o som para o alto-falante embutido no monitor Braille. Por alguma razão, duas placas externas não funcionaram, agora ele está procurando um dispositivo semelhante em outro chipset.

Também é inconveniente desativar manualmente a "framboesa", aguardar alguns segundos e desligar a tela em braille. E tudo porque, quando desconecta, remove a energia do conector no compartimento. O autor planeja colocar uma pequena bateria reserva no compartimento e, através do GPIO, informar o "framboesa" sobre como desligar a tela para que ela comece a concluir o trabalho. Tal UPS em miniatura.

Imagem do sistema


Se você tem a mesma tela em braille e deseja fazer o mesmo, o autor está pronto para fornecer uma imagem pronta do sistema (com base no Raspbian Stretch). Escreva para ele sobre isso no endereço acima. Se houver muitas pessoas dispostas, é possível produzir conjuntos que incluam tudo o que você precisa para essa alteração.

Agradecimentos


Agradecemos a Dave Mielke pela revisão do texto.

Agradecimentos a Simon Kainz pela ilustração fotográfica.

Agradecemos aos colegas da Universidade Técnica de Graz pela rápida introdução do autor ao mundo do Raspberry Pi.

PS O primeiro tweet do autor sobre este tópico (não abre - tradutor) foi feito apenas cinco dias antes da publicação do original deste artigo, e podemos assumir que, com exceção de problemas de som, a tarefa foi praticamente resolvida. A propósito, o autor editou a versão final do texto a partir da "tela Braille auto-suficiente" feita por ele, conectando-a via SSH ao computador doméstico.

Source: https://habr.com/ru/post/pt445454/


All Articles