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

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

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

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

Differenziazione dimensionale dei display braille

Prima di tutto, si distinguono per la lunghezza della riga. I dispositivi con 60 o più caratteri sono buoni per lavorare con un computer desktop, mentre quelli con 40 sono comodi per essere trasportati insieme a un laptop. Ora esistono display braille che si collegano a smartphone e tablet, con lunghezze della riga di 14 o 18 caratteri.

In passato, i display braille erano piuttosto ingombranti. Un modello da 40 caratteri, ad esempio, aveva dimensioni e peso simili a quelli di un laptop da 13 pollici. Ora, mantenendo lo stesso numero di caratteri, sono abbastanza compatti da poter essere posizionati davanti a un laptop, invece di collocare il laptop sopra il display.

Certamente è meglio, ma non è comunque molto comodo tenere in braccio due dispositivi separati. Quando si lavora a una scrivania, non ci sono lamentele, ma bisognerebbe ricordare che il laptop è chiamato anche 'laptop', e provare a giustificare questo nome, rendendosi conto che il display braille compatto di 40 caratteri risulta persino meno comodo.

Così l'autore ha atteso l'uscita del nuovo modello promesso nella serie Handy Tech Star. Nel 2002 era stato rilasciato il precedente modello Handy Tech Braille Star 40, la cui scocca era abbastanza ampia da poter ospitare un laptop sopra. E se non ci sta — è prevista una base estraibile. Ora questo modello è stato sostituito da Active Star 40, praticamente lo stesso, ma con elettronica aggiornata.

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

E la base estraibile è rimasta:

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

Ma la cosa più comoda della novità è la cavità delle dimensioni di uno smartphone (vedi KDPV). Si apre spostando il piano indietro. Tenere lì uno smartphone è risultato scomodo, ma bisogna pur sfruttare il vano vuoto, all'interno del quale è prevista anche un'uscita di alimentazione.

La prima cosa che ha ideato l'autore è stata inserire un Raspberry Pi, ma quando il display è stato acquistato, si è scoperto che la base che chiude il compartimento non si può muovere con il "lampone". Se solo la scheda fosse stata solo 3 mm più sottile...

Ma un collega ha parlato del rilascio del Raspberry Pi Zero, che si è rivelato così miniaturizzato che nel compartimento ne sarebbero entrati due... o forse anche tre. È stato subito ordinato insieme a una scheda di memoria da 64 GB, Bluetooth, un "dongle" e un cavo Micro USB. Dopo alcuni giorni, tutto è arrivato, e amici vedenti hanno aiutato l'autore a preparare la scheda. Tutto ha funzionato immediatamente come doveva.

Cosa è stato fatto per questo

Sul pannello posteriore del Handy Tech Active Star 40 ci sono due porte USB per dispositivi come tastiere. Una tastiera compatta con supporto magnetico è inclusa. Quando la tastiera è collegata e il display funziona tramite Bluetooth, il computer la riconosce anche come tastiera Bluetooth.

Pertanto, se si collega un dongle Bluetooth al Raspberry Pi Zero, inserito nel compartimento per smartphone, sarà in grado di comunicare con il display braille via Bluetooth utilizzando BRLTTY, e se si collega anche una tastiera al display, il "lampone" funzionerà anche con essa.

Ma non è tutto. Il "lampone" stesso, a sua volta, può accedere a Internet tramite Bluetooth PAN da qualsiasi dispositivo che lo supporti. L'autore ha configurato di conseguenza il proprio smartphone e i computer a casa e al lavoro, ma in seguito prevede di adattare un altro "lampone" - uno classico, non Zero, collegato a Ethernet e a un altro dongle Bluetooth.

BlueZ 5 e PAN

Il modo per configurare il PAN utilizzando BlueZ si è rivelato non banale. L'autore ha trovato uno script Python bt-pan (vedi sotto) che permette di configurare il PAN senza GUI.

Con esso, è possibile configurare sia il server sia il client. Ricevendo il comando appropriato tramite D-Bus in modalità client, crea un nuovo dispositivo di rete bnep0 subito dopo aver stabilito la 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, al quale può aggiungere il dispositivo noto per collegare ciascun cliente. Configurare l'indirizzo per il dispositivo bridge e avviare il server DHCP più il masquerading IP sul bridge è solitamente tutto ciò che è necessario.

Punto di accesso Bluetooth PAN con Systemd

Per configurare il ponte, l'autore ha utilizzato systemd-networkd:

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 è necessario far configurare il profilo NAP da BlueZ. Si è scoperto che con gli strumenti standard di BlueZ 5.36 non è possibile. Se l'autore ha sbagliato, correggetelo: mlang (sa muovere le orecchie) blind (ha accesso e quantistico) guru

Ma ha trovato un messaggio nel blog e uno script in Python per effettuare le chiamate necessarie a D-Bus.

Per comodità, l'autore ha utilizzato un 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.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 in Debian ci fosse supporto per IPMasquerade= (vedi. #787480).

Dopo aver eseguito i comandi systemctl daemon-reload e systemctl restart systemd-networkd puoi avviare il Bluetooth PAN con il comando systemctl start pan

Cliente 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=yes

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

Ora, dopo il riavvio della configurazione, puoi connetterti al punto di accesso Bluetooth specificato in questo modo:

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

Accoppiamento tramite riga di comando

Naturalmente, la configurazione del server e dei client deve essere effettuata dopo averli accoppiati via Bluetooth. Sul server, devi 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:XX

Dopo aver avviato la scansione, attendi alcuni secondi finché il dispositivo desiderato non appare nell'elenco. Prendi nota del suo indirizzo e utilizzalo fornendo il comando pair e, se necessario, anche il comando trust.

Dalla parte del 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 è accoppiare il client con il server e eseguire il comando trust sul server, ma finora non ha provato a farlo.

Autorizzazione per l'uso del profilo Bluetooth HID

È necessario che il "malinka" riconosca la tastiera collegata al display braille tramite cavo e già passata dallo stesso display tramite Bluetooth. Si fa allo stesso modo, solo invece agent on devi 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, comprende che impostare BlueZ tramite riga di comando è scomodo. All'inizio pensava che gli agenti servissero solo per l'inserimento dei codici PIN, ma si è scoperto, ad esempio, che per attivare il profilo HID è necessario digitare "agent KeyboardOnly". È sorprendente che per avviare Bluetooth PAN sia necessario cercare nei repository il giusto script. Ricorda che nella versione precedente di BlueZ c'era uno strumento pronto per questo pand - dove è finito in BlueZ 5? È venuta fuori una nuova soluzione a cui l'autore non aveva pensato, ma che è evidente?

Prestazioni

La velocità di trasmissione dei dati era di circa 120 kbit/s, il che è più che sufficiente. Un processore ARM da 1 GHz è molto veloce per l'interfaccia a riga di comando. L'autore prevede comunque di utilizzare principalmente ssh ed emacs sul dispositivo.

Font da console e risoluzione dello schermo

La risoluzione dello schermo utilizzata dal framebuffer su Raspberry Pi Zero per impostazione predefinita è piuttosto strana: fbset riporta che è di 656×416 pixel (ovviamente, il monitor non è collegato). Con un font da console di 8×16 si sono ottenuti 82 caratteri per riga e 26 righe.

Lavorare con un display braille a 40 caratteri in questo modo non è pratico. Inoltre, all'autore piacerebbe che sul display venissero mostrati in forma braille i caratteri Unicode. Fortunatamente, Linux supporta 512 caratteri, mentre la maggior parte dei font da console ne supporta 256. Con console-setup è possibile utilizzare insieme due font da 256 caratteri. 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: affinché il font brl-16×8.psf sia disponibile, è necessario installare console-braille.

Cosa succede dopo?

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' (strano, il traduttore era convinto che non ce ne fosse una nel Zero, ma ci sono modi per emettere suono tramite PWM su GPIO). Ha in programma di utilizzare un hub USB-OTG e collegare una scheda audio esterna per far uscire il suono attraverso il diffrattore integrato nel display Braille. Due schede esterne, per qualche motivo, non hanno funzionato; ora sta cercando un dispositivo simile con un chipset diverso.

È anche scomodo disconnettere manualmente la 'Raspberry Pi', attendere qualche secondo e scollegare il display Braille. E tutto ciò perché, quando si disconnette, interrompe l'alimentazione dalla porta nell'alloggiamento. L'autore prevede di inserire un piccolo accumulatore tampone nell'alloggiamento e comunicare tramite GPIO alla 'Raspberry Pi' la disconnessione del display, in modo che possa procedere alla chiusura del lavoro. Un piccolo UPS in miniatura.

Immagine del sistema

Se hai un display Braille simile e desideri fare la stessa cosa, l'autore è pronto a fornire un'immagine di sistema pronta (basata su Raspbian Stretch). Contattalo all'indirizzo sopra indicato. Se ci saranno abbastanza interessati, è possibile anche rilasciare kit che includano tutto il necessario per questa modifica.

Ringraziamenti

Grazie a Dave Mielke per l'editing del testo.

Grazie a Simon Kainz per le illustrazioni fotografiche.

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

P.S. Il primo tweet dell'autore su questo argomento (non si apre — traduttore) è stato fatto solo cinque giorni prima della pubblicazione dell'originale di questo articolo, e si può considerare che, a parte i problemi audio, l'obiettivo fissato sia praticamente raggiunto. A proposito, l'autore ha modificato la versione finale del testo collegando il suo 'display Braille autonomo' tramite SSH al computer di casa.

Fonte: habr.com

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster