
L'autore ha inserito un Raspberry Pi Zero, un dongle Bluetooth e un cavo all'interno del suo nuovo display braille Handy Tech Active Star 40. La porta USB integrata fornisce alimentazione. È emerso un computer autonomo senza monitor basato su ARM, con sistema operativo Linux, dotato di tastiera e display braille. Può essere caricato/alimentato tramite USB, anche da una power bank o da un pannello solare. Pertanto, può funzionare senza rete elettrica per non solo qualche ora, ma per diversi giorni.

Differenziazione dimensionale degli schermi braille
In primo luogo, si differenziano per lunghezza della riga. I dispositivi con 60 o più caratteri sono buoni per l'uso con un computer desktop, mentre quelli con 40 sono comodi da portare insieme a un laptop. Oggi esistono anche schermi braille che possono essere collegati a smartphone e tablet, con lunghezze di riga di 14 o 18 caratteri.
In passato, gli schermi braille erano piuttosto ingombranti. Un modello da 40 caratteri, ad esempio, aveva dimensioni e peso simili a un laptop da 13 pollici. Ora, mantenendo lo stesso numero di caratteri, sono abbastanza compatti da poter posizionare il display di fronte al laptop anziché il laptop sopra il display.
Certo, è un miglioramento, ma non è comunque molto comodo tenere due dispositivi separati sulle ginocchia. Quando si lavora alla scrivania, non ci sono lamentele, ma è bene ricordare che il laptop viene anche chiamato 'laptop', e cercare di giustificare questo nome, come si scopre, è che il mini display 40 caratteri è anche meno comodo.
Quindi, l'autore ha atteso il rilascio del tanto atteso nuovo modello della serie Handy Tech Star. Nel 2002 è stato rilasciato il modello precedente Handy Tech Braille Star 40, dove c'era sufficiente spazio nel telaio per posizionare un laptop sopra. E se non ci stava — è stata prevista una base estraibile. Ora questo modello è sostituito dall'Active Star 40, praticamente lo stesso, ma con elettronica aggiornata.

E la base estraibile è rimasta:

Ma il punto più comodo della novità è l'incavo di dimensioni approssimativamente pari a uno smartphone (vedi la foto). Si apre spostando la piattaforma all'indietro. Tenere uno smartphone lì si è rivelato scomodo, ma bisogna pur utilizzare quel vano vuoto, all'interno del quale è previsto anche un'uscita di alimentazione.
La prima idea dell'autore è stata di inserire un Raspberry Pi, ma quando è stato acquistato il display, si è scoperto che la base che copre il vano non si adattava al 'berry'. Se solo la scheda fosse stata solo 3 mm più sottile...
Tuttavia, un collega ha parlato del Raspberry Pi Zero, che era così miniaturizzato da permettere di inserirne due... o forse anche tre nel vano. È stato subito ordinato insieme a una scheda di memoria da 64 GB, Bluetooth, un 'dongle' e un cavo Micro USB. Dopo pochi giorni, tutto è arrivato, e amici vedenti hanno aiutato l'autore a preparare la scheda. Ha funzionato subito come doveva.
Cosa è stato fatto
Sul retro dell'Handy Tech Active Star 40 ci sono due porte USB per dispositivi come le tastiere. È inclusa una tastiera compatta con attacco magnetico. Quando la tastiera è collegata, e il display funziona tramite Bluetooth, il computer lo riconosce anche come una tastiera Bluetooth.
Quindi, se al Raspberry Pi Zero, inserito nel vano per smartphone, viene collegato un 'dongle' Bluetooth, sarà in grado di scambiare dati con il display braille via Bluetooth tramite , e se si collega anche una tastiera al display, il «malinka» funzionerà anche con essa.
Ma non è tutto. Il «malinka» può anche accedere a Internet tramite Bluetooth PAN da qualsiasi dispositivo compatibile. L'autore ha configurato il suo smartphone e i computer a casa e al lavoro, ma in futuro intende adattare un altro «malinka» — il classico, non Zero, collegato a Ethernet e a un altro dongle Bluetooth.
BlueZ 5 e PAN
Modo di configurare PAN tramite si è rivelato non ovvio. L'autore ha trovato uno script Python bt-pan (vedi sotto) che consente di configurare PAN senza GUI.
Con questo strumento è possibile configurare sia il server che il client. Ricevendo il comando appropriato tramite D-Bus in modalità client, crea un nuovo dispositivo di rete bnep0 subito dopo aver stabilito una connessione con il server. Di solito, per assegnare un indirizzo IP a questa interfaccia si utilizza DHCP. In modalità server, BlueZ richiede l'indicazione del nome del dispositivo bridge, a cui può aggiungere il dispositivo secondario per connettere ciascun cliente. Configurare l'indirizzo per il dispositivo bridge e avviare un server DHCP insieme all'IP masquerading sul bridge sono solitamente tutto ciò che è necessario.
Punto di accesso Bluetooth PAN con Systemd
Per la configurazione del bridge, l'autore ha utilizzato systemd-networkd:
File /etc/systemd/network/pan.netdev
[NetDev]
Name=pan
Kind=bridge
ForwardDelaySec=0File /etc/systemd/network/pan.network
[Match]
Name=pan
[Network]
Address=0.0.0.0/24
DHCPServer=yes
IPMasquerade=yesOra è necessario far configurare a BlueZ il profilo NAP. Si è scoperto che con gli strumenti standard di BlueZ 5.36 non è possibile farlo. Se l'autore sbaglia, correggetelo: mlang (capace di muovere le orecchie) blind (può avere accesso e quantistico) guru
Ma ha trovato e per eseguire le chiamate necessarie su D-Bus.
Per facilitare l'uso, l'autore ha utilizzato il servizio Systemd per avviare lo script e controllare la risoluzione delle dipendenze.
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.targetFile /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 panIl secondo file non sarebbe necessario se in Debian fosse supportato IPMasquerade= (vedi. ).
Dopo l'esecuzione dei comandi systemctl daemon-reload e systemctl restart systemd-networkd è possibile avviare Bluetooth PAN con il comando systemctl start pan
Client Bluetooth PAN con Systemd
Anche la parte client non è difficile da configurare con Systemd.
File /etc/systemd/network/pan-client.network
[Match]
Name=bnep*
[Network]
DHCP=yesFile /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 --waitOra, dopo il riavvio della configurazione, puoi connetterti al punto di accesso Bluetooth specificato in questo modo:
systemctl start pan@00:11:22:33:44:55Accoppiamento tramite riga di comando
Naturalmente, la configurazione del server e dei client deve essere eseguita dopo averli accoppiati via Bluetooth. Sul server, è necessario avviare 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:XXAvviando la scansione, attendere alcuni secondi finché non appare il dispositivo desiderato nell'elenco. Annotare il suo indirizzo e utilizzarlo per inviare il comando pair, e se necessario, anche il comando trust.
Dal lato client bisogna fare lo stesso, ma il comando trust non sarà necessario. Al server serve per accettare la connessione tramite il profilo NAP senza conferma manuale da parte dell'utente.
L'autore non è sicuro che questa sia la sequenza ottimale di comandi. Forse, tutto ciò che serve è associare il client al server ed eseguire il comando trust sul server, ma non ha ancora provato a farlo in questo modo.
Autorizzazione all'uso del profilo Bluetooth HID
È necessario che la 'malina' riconosca la tastiera collegata al display Braille tramite cavo e già passata dallo stesso display via Bluetooth. Si fa allo stesso modo, solo che invece di agent on bisogna dare il comando agent KeyboardOnly e bluetoothctl troverà il dispositivo con il profilo HID.
Ma configurare il Bluetooth tramite riga di comando è piuttosto complicato.
Anche se l'autore è riuscito a configurare tutto, capisce che impostare BlueZ tramite riga di comando non è pratico. Inizialmente pensava che gli agenti servissero solo per inserire i codici PIN, ma si è reso conto, ad esempio, che per attivare il profilo HID è necessario digitare «agent KeyboardOnly». È sorprendente che per avviare il Bluetooth PAN sia necessario cercare nei repository lo script giusto. Ricorda che nella versione precedente di BlueZ c'era uno strumento già pronto per questo. pand — dove è finito in BlueZ 5? È emersa forse una nuova soluzione, sconosciuta all'autore, ma evidente?
Prestazioni
La velocità di trasmissione dati era di circa 120 kbit/s, il che è più che sufficiente. Il processore ARM da 1 GHz è molto rapido per un'interfaccia a riga di comando. L'autore prevede comunque di utilizzare sul dispositivo principalmente ssh ed emacs.
Font console e risoluzione dello schermo
La risoluzione dello schermo utilizzata dal framebuffer su Raspberry Pi Zero per impostazione predefinita è piuttosto strana: fbset riporta 656×416 pixel (naturalmente, il monitor non è connesso). Con un font console di 8×16, sono riusciti a ottenere 82 caratteri nella riga e 26 righe.
Lavorare con un display braille a 40 celle in questo modo è scomodo. Inoltre, l'autore desidererebbe che i caratteri Unicode venissero visualizzati in braille sul display. Fortunatamente, Linux supporta 512 caratteri, mentre nella maggior parte dei font per console ce ne sono 256. Utilizzando console-setup, è possibile utilizzare due font da 256 caratteri insieme. L'autore ha aggiunto al file /etc/default/console-setup le seguenti righe:
SCREEN_WIDTH=80
SCREEN_HEIGHT=25
FONT="Lat15-Terminus16.psf.gz brl-16x8.psf"Nota: per rendere disponibile il font brl-16×8.psf, è necessario installare console-braille.
E ora?
Il display braille ha un jack da 3,5 millimetri, ma l'autore non conosce adattatori per estrarre il segnale audio da Mini-HDMI. Non è riuscito a utilizzare la scheda audio integrata nella 'Raspberry Pi' (stranamente, il traduttore era sicuro che nel modello Zero non ci fosse, ma ci sono modi per generare suono tramite PWM su GPIO). Ha intenzione di utilizzare un hub USB-OTG e collegare una scheda esterna per inviare l'audio all'altoparlante integrato del display braille. Due schede esterne, per qualche motivo, non hanno funzionato, e ora sta cercando un dispositivo simile con un altro chipset.
È scomodo dover spegnere manualmente il Raspberry Pi, attendere alcuni secondi e disattivare il display Braille. Questo perché il display interrompe l'alimentazione dalla porta nella sua custodia quando viene spento. L'autore prevede di inserire nella custodia una piccola batteria tampone e di comunicare al Raspberry Pi attraverso GPIO la disattivazione del display, in modo che possa avviare la procedura di spegnimento. Una sorta di UPS in miniatura.
Immagine del sistema
Se hai un display Braille simile e vuoi realizzare la stessa modifica, l'autore è disponibile a fornire un'immagine di sistema pronta (basata su Raspbian Stretch). Contattalo all'indirizzo indicato sopra. Se ci sarà un numero sufficiente di richieste, potrebbe anche essere possibile rilasciare kit contenenti tutto il necessario per questa modifica.
Ringraziamenti
Grazie a Dave Mielke per la revisione del testo.
Grazie a Simon Kainz per le illustrazioni fotografiche.
Grazie ai colleghi dell'Università Tecnica di Graz per aver rapidamente introdotto l'autore nel mondo di Raspberry Pi.
P.S. L'autore di questo argomento (non disponibile — traduttore) ha completato il lavoro solo cinque giorni prima della pubblicazione dell'originale, e si può dire che, a parte alcuni problemi audio, l'obiettivo è praticamente raggiunto. A proposito, la versione finale del testo è stata modificata dall'autore utilizzando il 'display Braille autosufficiente' che ha creato, collegandolo via SSH al computer di casa.
Fonte: habr.com
