Raspberry Pi Zero all'interno di un display braille Handy Tech Active Star 40

Raspberry Pi Zero all'interno di un display braille Handy Tech Active Star 40

Ho inserito un Raspberry Pi Zero, un fischietto Bluetooth e un cavo all'interno del mio nuovo display braille Handy Tech Active Star 40. La porta USB integrata fornisce alimentazione. Il risultato è stato un computer autosufficiente senza monitor su ARM con sistema operativo Linux, dotato di tastiera e display Braille. Puoi caricarlo / alimentarlo tramite USB, incl. da un power bank o da un caricatore solare. Pertanto, può fare a meno della rete non per diverse ore, ma per diversi giorni.

Raspberry Pi Zero all'interno di un display braille Handy Tech Active Star 40

Differenziazione dimensionale dei display braille

Prima di tutto, differiscono per la lunghezza della linea. I dispositivi con 60 o più familiarità sono buoni quando si lavora con un computer desktop, 40 sono convenienti da portare con sé con un laptop. Ora ci sono anche display braille collegati a smartphone e tablet, con una lunghezza di riga di 14 o 18 caratteri.

In passato, i display braille erano piuttosto massicci. Il 40 caratteri, ad esempio, aveva le stesse dimensioni e peso di un laptop da 13 pollici. Ora, con lo stesso numero di familiarità, sono abbastanza in miniatura da poter mettere il display davanti al laptop e non il laptop sul display.

Questo è sicuramente meglio, ma non è ancora molto comodo tenere in grembo due dispositivi separati. Quando si lavora alla scrivania non ci sono lamentele, ma vale la pena ricordare che un laptop si chiama laptop in un altro modo e cercare di giustificare il suo nome, poiché si scopre che un display in miniatura da 40 caratteri è ancora meno conveniente.

Quindi l'autore ha atteso l'uscita del nuovo modello tanto promesso nella serie Handy Tech Star. Nel 2002 è stato rilasciato il modello precedente Handy Tech Braille Star 40, dove l'area del corpo è sufficiente per mettere sopra un laptop. E se non si adatta, viene fornito un supporto retrattile. Ora questo modello è stato sostituito da Active Star 40, che è praticamente lo stesso, ma con elettronica aggiornata.

Raspberry Pi Zero all'interno di un display braille Handy Tech Active Star 40

E il supporto retrattile è rimasto:

Raspberry Pi Zero all'interno di un display braille Handy Tech Active Star 40

Ma la cosa più conveniente della novità è una rientranza delle dimensioni di uno smartphone (vedi KDPV). Si apre quando la piattaforma viene spostata indietro. Si è rivelato scomodo tenere lì uno smartphone, ma bisogna in qualche modo utilizzare uno scomparto vuoto, all'interno del quale è prevista anche una presa di corrente.

La prima cosa che l'autore ha pensato è stata quella di mettere lì il Raspberry Pi, ma quando è stato acquistato il display si è scoperto che il supporto che chiudeva il vano non si muoveva con il "lampone". Ora, se la tavola fosse solo 3 mm più sottile...

Ma un collega ha parlato del rilascio del Raspberry Pi Zero, che si è rivelato così piccolo che due di loro sarebbero entrati nell'alloggiamento... o forse anche tre. È stato immediatamente ordinato insieme a una scheda di memoria da 64 GB, Bluetooth, un fischietto e un cavo Micro USB. Pochi giorni dopo, tutto questo è arrivato e gli amici vedenti hanno aiutato l'autore a preparare la mappa. Tutto ha funzionato immediatamente come dovrebbe.

Cosa è stato fatto per questo

Sul retro dell'Handy Tech Active Star 40 sono presenti due porte USB per dispositivi come le tastiere. Tastiera compatta con attacco magnetico inclusa. Quando la tastiera è collegata e il display stesso funziona tramite Bluetooth, il computer lo riconosce anche come tastiera Bluetooth.

Pertanto, se un fischio Bluetooth è collegato a un Raspberry Pi Zero posizionato in uno scomparto per smartphone, sarà in grado di comunicare con un display braille tramite Bluetooth utilizzando BRLTTY, e se colleghi anche una tastiera al display, anche il "raspberry" funzionerà con esso.

Ma non è tutto. Lo stesso Raspberry, a sua volta, può accedere a Internet tramite Bluetooth PAN da qualsiasi dispositivo che lo supporti. L'autore ha configurato di conseguenza il suo smartphone e computer a casa e al lavoro, ma in futuro ha in programma di adattare un altro "lampone" per questo: un classico, non Zero, connesso a Ethernet e un altro "fischio" Bluetooth.

BlueZ5 e PAN

Metodo di configurazione PAN utilizzando BlueZ si è rivelato invisibile. L'autore ha trovato uno script Pyhton bt-pan (vedi sotto) che consente di configurare PAN senza una GUI.

Con esso, puoi configurare sia il server che il client. Dopo aver ricevuto il comando appropriato tramite D-Bus mentre lavora in modalità client, crea un nuovo dispositivo di rete bnep0 immediatamente dopo aver stabilito una connessione con il server. In genere, DHCP viene utilizzato per assegnare un indirizzo IP a questa interfaccia. In modalità server, BlueZ richiede il nome di un dispositivo bridge, al quale può aggiungere un dispositivo slave per connettere ciascuno dei client. La configurazione di un indirizzo per il dispositivo bridge e l'esecuzione di un server DHCP oltre al mascheramento IP sul bridge è in genere tutto ciò che è richiesto.

Punto di accesso PAN Bluetooth con Systemd

L'autore ha utilizzato systemd-networkd per configurare il bridge:

FILE /etc/systemd/network/pan.netdev

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

FILE /etc/systemd/network/pan.network

[Match]
Name=pan

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

Ora dobbiamo ottenere BlueZ per configurare il profilo NAP. Si è scoperto che le normali utility BlueZ 5.36 non possono farlo. Se l'autore ha torto, correggilo: mlang (sa come muovere le orecchie) cieco (a volte accesso e quantum) guru

Ma ha trovato post sul blog и script Python per effettuare le necessarie chiamate D-Bus.

Per comodità, l'autore ha utilizzato il servizio Systemd per eseguire lo script e controllare se le dipendenze sono state risolte.

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

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

Il secondo file non sarebbe necessario se Debian avesse il supporto per IPMasquerade= (vedi sotto). #787480).

Dopo aver eseguito i comandi demone systemctl-ricarica и systemctl riavvia systemd-networkd puoi avviare Bluetooth PAN con il comando pan di avvio systemctl

Client PAN Bluetooth che utilizza Systemd

Anche il lato client è facile da configurare utilizzando Systemd.

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

[Match]
Name=bnep*

[Network]
DHCP=yes

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

Ora, dopo aver ricaricato la configurazione, puoi connetterti al punto di accesso Bluetooth specificato in questo modo:

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

Accoppiamento tramite la riga di comando

Naturalmente, la configurazione del server e dei client deve essere eseguita dopo averli accoppiati tramite Bluetooth. Sul server, devi eseguire bluetoothctl e dargli i comandi:

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

Dopo aver avviato la scansione, attendi qualche secondo fino a quando il dispositivo che ti serve non appare nell'elenco. Annota il suo indirizzo e usalo con il comando pair e, se necessario, con il comando trust.

Dal lato client, devi fare lo stesso, ma il comando trust non sarà sicuramente necessario. Il server ne ha bisogno per accettare una connessione al profilo Protezione accesso alla rete senza la conferma manuale da parte dell'utente.

L'autore non è sicuro che questa sia la sequenza ottimale di comandi. Forse tutto ciò che serve è accoppiare il client con il server ed eseguire il comando trust sul server, ma non l'ha ancora provato.

Abilitazione del profilo HID Bluetooth

E' necessario che il "raspberry" riconosca la tastiera collegata via filo al display Braille, e inoltrata dal display stesso via Bluetooth. Fai lo stesso, ma invece di agente su devo dare un comando Solo tastiera agente e bluetoothctl troverà un dispositivo con un profilo HID.

Ma la configurazione del Bluetooth tramite la riga di comando è complicata.

Sebbene l'autore sia riuscito a configurare tutto, capisce che configurare BlueZ tramite la riga di comando è scomodo. All'inizio pensava che gli agenti fossero necessari solo per inserire i codici PIN, ma si è scoperto, ad esempio, che per abilitare il profilo HID è necessario digitare "Agent KeyboardOnly". Sorprendentemente, per avviare Bluetooth PAN, è necessario arrampicarsi sui repository alla ricerca dello script giusto. Ricorda che nella versione precedente di BlueZ c'era uno strumento già pronto per questo. pan - dove sta facendo in BlueZ 5? All'improvviso è apparsa una nuova soluzione, sconosciuta all'autore, ma che giace in superficie?

Производительность

La velocità di trasferimento dei dati era di circa 120 kbps, il che è abbastanza. Il processore ARM da 1 GHz è molto veloce per un'interfaccia a riga di comando. L'autore prevede ancora di utilizzare principalmente ssh ed emacs sul dispositivo.

Caratteri della console e risoluzione dello schermo

La risoluzione dello schermo predefinita utilizzata dal framebuffer sul Raspberry Pi Zero è piuttosto strana: fbset la riporta come 656x416 pixel (nessun monitor collegato, ovviamente). Con un font da console di 8x16, abbiamo ottenuto 82 caratteri per riga e 26 righe.

Lavorare con un display braille a 40 caratteri in questa modalità è scomodo. Inoltre, l'autore vorrebbe che i caratteri Unicode fossero visualizzati in Braille. Fortunatamente, Linux supporta 512 caratteri e la maggior parte dei caratteri della console ne ha 256. Con la configurazione della console, puoi utilizzare due caratteri da 256 caratteri insieme. L'autore ha aggiunto le seguenti righe al file /etc/default/console-setup:

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

Nota: per rendere disponibile il carattere brl-16x8.psf, è necessario installare console-braille.

Quali sono le prospettive?

Il display braille ha un jack da 3,5 mm, ma l'autore non conosce adattatori per captare l'audio da Mini-HDMI. L'autore non è stato in grado di utilizzare la scheda audio integrata nel "raspberry" (strano, il traduttore era sicuro che Zero non ne avesse una, ma ci sono modi per trasmettere l'audio tramite PWM al GPIO). Ha in programma di utilizzare un hub USB-OTG e collegare una scheda esterna e trasmettere l'audio all'altoparlante integrato nel display Braille. Per qualche motivo, due schede esterne non hanno funzionato, ora sta cercando un dispositivo simile su un chipset diverso.

È anche scomodo spegnere manualmente il "lampone", attendere qualche secondo e spegnere il display braille. E tutto perché quando è spento, rimuove l'alimentazione dal connettore nel vano. L'autore prevede di posizionare una piccola batteria tampone nel vano e, tramite GPIO, informare il "raspberry" di spegnere il display in modo che inizi a spegnersi. Questo è l'UPS in miniatura.

Immagine di sistema

Se hai lo stesso display braille e vuoi fare lo stesso con esso, l'autore è pronto a fornire un'immagine di sistema già pronta (basata su Raspbian Stretch). Scrivigli a riguardo all'indirizzo sopra. Se ci sono abbastanza persone interessate, è persino possibile rilasciare kit che includono tutto il necessario per un tale remake.

Ringraziamenti

Grazie a Dave Mielke per aver corretto il testo.

Grazie a Simon Kainz per le illustrazioni fotografiche.

Grazie ai colleghi della Graz University of Technology per aver introdotto rapidamente l'autore nel mondo di Raspberry Pi.

PS Primo tweet l'autore su questo argomento (non si apre - traduttore) è stato fatto solo cinque giorni prima della pubblicazione dell'originale di questo articolo, e possiamo presumere che, ad eccezione dei problemi con il suono, il compito sia stato praticamente risolto. A proposito, l'autore ha modificato la versione finale del testo dal "display Braille autosufficiente" che ha realizzato, collegandolo tramite SSH al suo computer di casa.

Fonte: habr.com

Aggiungi un commento