
Forfatteren har placeret Raspberry Pi Zero, en Bluetooth "dongle" og et kabel indeni sin nye braille-display Handy Tech Active Star 40. Den indbyggede USB-port giver strøm. Det er blevet en selvstændig computer uden skærm, drevet af ARM med Linux-operativsystem, udstyret med tastatur og braille-display. Den kan oplades/forsynes via USB, også fra en powerbank eller solopladder. Derfor kan den klare sig uden strømforsyning i flere timer, ja, endda flere dage.

Størrelsesmæssig differentiering af braille-displays
Først og fremmest adskiller de sig i længden af linjen. Enheder med 60 eller flere tegn er gode til brug med en skrivebordskomputer, mens dem med 40 tegn er bekvemme at have med i forbindelse med en bærbar computer. Der findes nu endda braille-displays, der kan tilsluttes smartphones og tablets, med linjelængder på 14 eller 18 tegn.
Tidligere var braille-displays ret store. Et 40-tegns display havde for eksempel en størrelse og vægt som en 13-tommers bærbar computer. Nu er de, ved den samme mængde tegn, små nok til at kunne placeres foran en bærbar computer i stedet for, at bærbarcomputeren skal placeres ovenpå displayet.
Det er selvfølgelig bedre, men det er stadig ikke ret praktisk at holde to separate enheder på skødet. Når man arbejder ved et skrivebord, er der ingen klager, men det er værd at huske, at en bærbar også kaldes en laptop, og når man prøver at retfærdiggøre dette navn, viser det sig, at et mini 40-tegns display faktisk er mindre behageligt.
Så forfatteren ventede på frigivelsen af den længe lovede nye model i Handy Tech Star-serien. Allerede i 2002 blev den tidligere model Handy Tech Braille Star 40 udgivet, hvor der var nok plads i kabinettet til at placere en bærbar computer ovenpå. Hvis den ikke passer, er der en udtrækbar støtte. Denne model er nu blevet erstattet af Active Star 40, som næsten er det samme, men med opgraderet elektronik.

Og den udtrækbare støtte er bevaret:

Men det mest praktiske ved nyheden er fordybningen, der er omtrent på størrelse med en smartphone (se KDPV). Denne åbner sig ved at skubbe platformen tilbage. At holde en smartphone derinde viste sig at være ubelejligt, men man skal jo finde en måde at udnytte det tomme rum, hvor der endda er en strømafbrydelse tilgængelig.
Det første, forfatteren kom på, var at placere en Raspberry Pi der, men da skærmen blev købt, viste det sig, at stativet, der dækker afsnittet, ikke kunne skubbes ind med "hindbæreren". Hvis blot kredsløbspladen havde været kun 3 mm tyndere...
Men en kollega fortalte om udgivelsen af Raspberry Pi Zero, som var så lille, at der ville kunne være to... eller måske endda tre i afsnittet. Den blev straks bestilt sammen med et 64 GB hukommelseskort, Bluetooth, en "dongle" og en Micro USB-kabel. Efter et par dage ankom alt dette, og synsvenner hjalp forfatteren med at forberede kortet. Alt fungerede straks som det skulle.
Hvad der blev gjort
På bagsiden af Handy Tech Active Star 40 er der to USB-porte til enheder som tastaturer. Et kompakt tastatur med magnetisk beslag følger med. Når tastaturet er tilsluttet, og selve skærmen fungerer via Bluetooth, genkender computeren det også som et Bluetooth-tastatur.
Så hvis der tilsluttes en Bluetooth-dongle til Raspberry Pi Zero, der er placeret i smartphone-afsnittet, kan den udveksle data med brailledisplayet via Bluetooth ved hjælp af , og hvis man også tilslutter et tastatur til displayet, vil "hindbæreren" også fungere med det.
Men det er ikke alt. Selve "hindbæreren" kan desuden få adgang til internettet via Bluetooth PAN fra enhver understøttende enhed. Forfatteren har konfigureret sin smartphone og computere derhjemme og på arbejdet, men planlægger at tilpasse endnu en "hindbæreren" - en klassisk, ikke Zero, tilsluttet Ethernet og en anden Bluetooth-dongle.
BlueZ 5 og PAN
Metoden til konfiguration af PAN ved hjælp af var ikke umiddelbart indlysende. Forfatteren fandt et Python-script bt-pan (se nedenfor), der muliggør konfiguration af PAN uden GUI.
Med det kan man konfigurere både server og klient. Ved at modtage den relevante kommando via D-Bus i klienttilstand opretter den et nyt netværksdevice bnep0 straks efter forbindelsen til serveren er etableret. Normalt bruges DHCP til at tildele IP-adressen til dette interface. I servertilstand kræver BlueZ, at man angiver navnet på broen, hvortil den kan tilføje de enheder, der skal tilsluttes hver af klienterne. At konfigurere adressen til broen og starte DHCP-serveren plus IP-masquerading på broen er som regel alt, hvad der kræves.
Bluetooth PAN-adgangspunkt med Systemd
Til konfiguration af broen anvendte forfatteren systemd-networkd:
Fil /etc/systemd/network/pan.netdev
[NetDev]
Name=pan
Kind=bridge
ForwardDelaySec=0Fil /etc/systemd/network/pan.network
[Match]
Name=pan
[Network]
Address=0.0.0.0/24
DHCPServer=yes
IPMasquerade=yesNu skal BlueZ konfigureres til at indstille NAP-profilen. Det viste sig, at de almindelige værktøjer i BlueZ 5.36 ikke kan gøre dette. Hvis forfatteren tager fejl, så ret ham: mlang (kan bevæge ørerne) blind (kan have adgang og kvante) guru
Men han fandt og til at udføre de nødvendige opkald til D-Bus.
For nemheds skyld anvendte forfatteren en Systemd-tjeneste til at starte scriptet og kontrollere afhængighedens tilladelser.
Fil /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.targetFil /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 panDen anden fil ville ikke være nødvendig, hvis Debian understøttede IPMasquerade= (se. ).
Efter udførelse af kommandoerne systemctl daemon-reload og systemctl restart systemd-networkd kan Bluetooth PAN startes med kommandoen systemctl start pan
Bluetooth PAN-klient ved hjælp af Systemd
Klientdelen kan også let konfigureres ved hjælp af Systemd.
Fil /etc/systemd/network/pan-client.network
[Match]
Name=bnep*
[Network]
DHCP=yesFil /etc/systemd/system/pan@.service
[Unit]
Description=Bluetooth Personal Area Network-klient
[Service]
Type=notify
ExecStart=/usr/local/sbin/bt-pan --debug --systemd client %I --waitNu, efter genstart af konfigurationen, kan du tilslutte til den angivne Bluetooth-adgangspunkt på følgende måde:
systemctl start pan@00:11:22:33:44:55Parring ved hjælp af kommandolinjen
Selvfølgelig skal serverens og klienterne konfigureres efter at have parret dem via Bluetooth. På serveren skal du starte bluetoothctl og give det kommandoerne:
power on
agent on
default-agent
scan on
scan off
pair XX:XX:XX:XX:XX:XX
trust XX:XX:XX:XX:XX:XXNår du har startet scanning, skal du vente et par sekunder, indtil den ønskede enhed dukker op på listen. Notér dens adresse og brug den ved at give kommandoen pair, og om nødvendigt også kommandoen trust.
Fra klientens side skal det samme gøres, men kommandoen trust er ikke nødvendig. Serveren har brug for den for at acceptere forbindelsen via NAP-profilen uden manuel bekræftelse fra brugeren.
Forfatteren er ikke sikker på, at dette er den optimale rækkefølge af kommandoer. Måske er alt hvad der kræves, at parre klienten med serveren og udføre kommandoen trust på serveren, men sådan har han ikke prøvet det endnu.
Tilladelse til at bruge Bluetooth-profilen HID
Der kræves, at «malinka» genkender tastaturet, der er tilsluttet den braille-display via ledning, og som allerede er sendt af selve displayet via Bluetooth. Det gøres også på samme måde, bare i stedet for agent on skal du give kommandoen agent KeyboardOnly og bluetoothctl vil finde en enhed med HID-profil.
Men det er lidt vanskeligt at konfigurere Bluetooth via kommandolinjen.
Selvom forfatteren har fået alt konfigureret, forstår han, at det er ubelejligt at indstille BlueZ via kommandolinjen. Først troede han, at agenter kun var nødvendige til at indtaste PIN-koder, men det viste sig, at man f.eks. skal indtaste «agent KeyboardOnly» for at aktivere HID-profilen. Det er overraskende, at man skal søge i repositories for at finde det nødvendige script til at aktivere Bluetooth PAN. Han husker, at der i den tidligere version af BlueZ var et klarlagt værktøj pand — hvor er det blevet af i BlueZ 5? Måske er der kommet en ny løsning, ukendt for forfatteren, men åbenlys?
Ydeevne
Dataoverførselshastigheden var cirka 120 kbit/s, hvilket er mere end tilstrækkeligt. Den 1 GHz ARM-processor er meget hurtig til kommandolinjegrænsefladen. Forfatteren planlægger stadig primært at bruge ssh og emacs på enheden.
Konsol skrifttyper og skærmopløsning
Standard skærmopløsningen, der bruges af framebufferen på Raspberry Pi Zero, er ret mærkelig: fbset rapporterer, at den er 656×416 pixels (monitoren er selvfølgelig ikke tilsluttet). Med konsol skrifttypen 8×16 blev det 82 tegn pr. linje og 26 linjer.
Det er ubelejligt at arbejde med en brailledisplay på 40 punkter i denne tilstand. Forfatteren ønsker også, at tegnene skal vises i braille-format på displayet. Heldigvis understøtter Linux 512 tegn, og de fleste konsol skrifttyper har 256. Med console-setup kan du bruge to 256-tegns skrifttyper samtidigt. Forfatteren har tilføjet følgende linjer til filen /etc/default/console-setup:
SCREEN_WIDTH=80
SCREEN_HEIGHT=25
FONT="Lat15-Terminus16.psf.gz brl-16x8.psf"Bemærk: For at skrifttypen brl-16×8.psf skal være tilgængelig, skal console-braille installeres.
Hvad nu?
På brailledisplayen er der en 3,5 mm "jack", men forfatteren kender ikke til adaptere til at hente lydsignalet fra Mini-HDMI. Forfatteren har ikke været i stand til at bruge det indbyggede lydkort i "malineren" (underligt, oversætteren var sikker på, at Zero ikke har nogen, men der er måder at udlede lyd via PWM på GPIO). Han planlægger at anvende en USB-OTG-hub og tilslutte et eksternt kort for at sende lyd til den indbyggede højtaler i brailledisplayen. To eksterne kort har af en eller anden grund ikke fungeret, han leder nu efter en tilsvarende enhed med en anden chip.
Det er stadig besværligt at manuelt slukke for "malineren", vente et par sekunder og så slukke brailledisplayen. Og det er fordi den fjerner strømmen fra stikket i hulrummet ved slukning. Forfatteren planlægger at placere et lille bufferbatteri i hulrummet og via GPIO informere "malineren" om, at displayet er slukket, så den kan påbegynde nedlukningen. Sådan en mini UPS.
Systembillede
Hvis du har en lignende brailledisplay, og du ønsker at gøre det samme, er forfatteren klar til at give et færdigt systembillede (baseret på Raspbian Stretch). Skriv til ham om dette på den adresse, der er angivet ovenfor. Hvis der er nok interesserede, kan der endda blive udgivet sæt, der inkluderer alt nødvendigt til sådan en ombygning.
Taknemmelighed
Tak til Dave Mielke for korrekturlæsningen.
Tak til Simon Kainz for fotoillustrationerne.
Tak til kollegerne fra Graz Teknisk Universitet for hurtigt at gøre forfatteren bekendt med Raspberry Pi-verdenen.
P.S. fra forfatteren om dette emne (åbner ikke - oversætteren) blev lavet kun fem dage før udgivelsen af den originale artikel, og man kan sige, at bortset fra lydproblemerne, er den stillede opgave stort set løst. Forresten har forfatteren redigeret den endelige version af teksten med den "selvtilstrækkelige brailledisplay", som han tilsluttede til sin hjemmecomputer via SSH.
Kilde: habr.com
