Raspberry Pi Zero inde i en Handy Tech Active Star 40 brailleskærm

Raspberry Pi Zero inde i en Handy Tech Active Star 40 brailleskærm

Forfatteren placerede en Raspberry Pi Zero, en Bluetooth-fløjte og et kabel i sin nye Handy Tech Active Star 40 brailleskærm.En indbygget USB-port giver strøm. Resultatet blev en selvforsynende skærmløs computer på ARM med Linux-operativsystemet, udstyret med et tastatur og en Braille-skærm. Du kan oplade/strømforsyne den via USB, inkl. fra en powerbank eller solcelleoplader. Derfor kan han undvære strøm i flere timer, men i flere dage.

Raspberry Pi Zero inde i en Handy Tech Active Star 40 brailleskærm

Dimensionel differentiering af brailledisplays

Først og fremmest adskiller de sig i linjelængde. Enheder med en kapacitet på 60 eller mere er gode til at arbejde med en stationær computer, mens enheder med en kapacitet på 40 er praktiske at bære med en bærbar computer. Nu er der punktskriftsskærme forbundet til smartphones og tablets, med en linjelængde på 14 eller 18 tegn.

Tidligere var brailleskærme ret massive. Den 40-sæders bærbare computer havde for eksempel størrelsen og vægten af ​​en 13-tommer bærbar. Nu, med det samme antal bekendte, er de miniature nok til, at du kan placere skærmen foran den bærbare computer, frem for den bærbare computer på skærmen.

Dette er selvfølgelig bedre, men det er stadig ikke særlig bekvemt at holde to separate enheder på skødet. Når du arbejder ved et skrivebord, er der ingen klager, men det er værd at huske, at en bærbar computer kaldes en bærbar computer med et andet navn, og forsøger at retfærdiggøre dens navn, da det viser sig, at miniatureskærmen på 40 tegn er endnu mindre praktisk.

Så forfatteren ventede på, at den længe lovede nye model i Handy Tech Star-serien blev frigivet. Tilbage i 2002 udkom den tidligere model Handy Tech Braille Star 40, hvor kropsarealet er nok til at sætte en bærbar computer ovenpå. Og hvis det ikke passer, er der et udtrækkeligt stativ. Nu er denne model erstattet af Active Star 40, som er næsten den samme, men med opgraderet elektronik.

Raspberry Pi Zero inde i en Handy Tech Active Star 40 brailleskærm

Og det udtrækkelige stativ forbliver:

Raspberry Pi Zero inde i en Handy Tech Active Star 40 brailleskærm

Men det mest bekvemme ved det nye produkt er en fordybning, der er omtrent på størrelse med en smartphone (se KDPV). Den åbner, når platformen flyttes tilbage. Det viste sig at være ubelejligt at holde en smartphone der, men du skal på en eller anden måde bruge det tomme rum, hvori der endda er en stikkontakt.

Det første forfatteren fandt på var at placere Raspberry Pi der, men da skærmen blev købt, viste det sig, at stativet, der dækkede rummet, ikke gled ind med "hindbæret". Hvis pladen nu kun var 3 mm tyndere...

Men en kollega fortalte mig om udgivelsen af ​​Raspberry Pi Zero, som viste sig at være så miniature, at to af dem kunne passe i rummet... eller måske endda tre. Den blev straks bestilt sammen med et 64 GB hukommelseskort, Bluetooth, "fløjte" og et Micro USB-kabel. Et par dage senere ankom alt dette, og seende venner hjalp forfatteren med at udarbejde et kort. Alt fungerede umiddelbart som det skulle.

Hvad blev der gjort for dette

På bagsiden af ​​Handy Tech Active Star 40 er der to USB-porte til enheder såsom tastaturer. Et lille tastatur med magnetisk montering medfølger. Når tastaturet er tilsluttet, og selve skærmen fungerer via Bluetooth, genkender computeren det desuden som et Bluetooth-tastatur.

Hvis du således forbinder en Bluetooth-"fløjte" til en Raspberry Pi Zero placeret i smartphone-rummet, vil den være i stand til at kommunikere med Braille-displayet via Bluetooth vha. BRLTTY, og hvis du også tilslutter et tastatur til skærmen, vil "hindbær" også fungere med det.

Men det er ikke alt. Selve "hindbæret" kan til gengæld få adgang til internettet via Bluetooth PAN fra enhver enhed, der understøtter det. Forfatteren har konfigureret sin smartphone og computere derhjemme og på arbejdet i overensstemmelse hermed, men i fremtiden planlægger han at tilpasse en anden "hindbær" til dette - en klassisk, ikke en Zero, forbundet til Ethernet og en anden Bluetooth "fløjte".

BlueZ 5 og PAN

PAN-konfigurationsmetode ved hjælp af BlueZ viste sig at være uoplagt. Forfatteren fandt bt-pan Python-scriptet (se nedenfor), som giver dig mulighed for at konfigurere PAN uden en GUI.

Den kan bruges til at konfigurere både serveren og klienten. Efter at have modtaget den passende kommando via D-Bus, når den arbejder i klienttilstand, opretter den en ny netværksenhed bnep0 umiddelbart efter oprettelse af en forbindelse med serveren. Typisk bruges DHCP til at tildele en IP-adresse til denne grænseflade. I servertilstand kræver BlueZ navnet på en broenhed, som den kan tilføje en slaveenhed til for at forbinde hver klient. Konfiguration af en adresse til broenheden og kørsel af en DHCP-server plus IP-maskering på broen er normalt alt, der kræves.

Bluetooth PAN Access Point med Systemd

For at konfigurere broen brugte forfatteren systemd-networkd:

Filen /etc/systemd/network/pan.netdev

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

Fil /etc/systemd/network/pan.network

[Match]
Name=pan

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

Nu skal vi tvinge BlueZ til at konfigurere NAP-profilen. Det viste sig, at dette ikke kan lade sig gøre med standard BlueZ 5.36-værktøjerne. Hvis forfatteren tager fejl, ret ham: mlang (kan bevæge sine ører) blind (nogle gange adgang og kvante) guru

Men han fandt blogindlæg и Python script at foretage de nødvendige opkald til D-Bus.

For nemheds skyld brugte forfatteren Systemd-tjenesten til at køre scriptet og kontrollere, om afhængigheder er løst.

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

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

Den anden fil ville ikke være nødvendig, hvis Debian havde IPMasquerade=-understøttelse (se nedenfor). #787480).

Efter at have udført kommandoerne systemctl daemon-reload и systemctl genstart systemd-netværkd du kan starte Bluetooth PAN med kommandoen systemctl start panorering

Bluetooth PAN-klient ved hjælp af Systemd

Klientsiden er også nem at konfigurere ved hjælp af Systemd.

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

[Match]
Name=bnep*

[Network]
DHCP=yes

Fil /etc/systemd/system/[e-mail beskyttet]

[Unit]
Description=Bluetooth Personal Area Network client

[Service]
Type=notify
ExecStart=/usr/local/sbin/bt-pan --debug --systemd client %I --wait

Nu, efter genindlæsning af konfigurationen, kan du oprette forbindelse til det angivne Bluetooth-adgangspunkt på denne måde:

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

Parring ved hjælp af kommandolinjen

Selvfølgelig skal konfigurationen af ​​serveren og klienterne udføres efter parring af dem via Bluetooth. På serveren skal du køre bluetoothctl og give den kommandoerne:

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

Når du har startet scanningen, skal du vente et par sekunder, indtil den enhed, du skal bruge, vises på listen. Skriv dens adresse ned og brug den ved at udstede parkommandoen og om nødvendigt tillidskommandoen.

På klientsiden skal du gøre det samme, men tillidskommandoen er absolut ikke nødvendig. Serveren skal bruge den for at acceptere en forbindelse ved hjælp af NAP-profilen uden manuel bekræftelse af brugeren.

Forfatteren er ikke sikker på, at dette er den optimale rækkefølge af kommandoer. Måske er alt, der skal til, at parre klienten med serveren og køre tillidskommandoen på serveren, men han har ikke prøvet dette endnu.

Aktiverer HID Bluetooth-profil

Det er påkrævet, at Raspberry genkender et tastatur, der er forbundet til Braille-displayet via ledning, og transmitteret af selve skærmen via Bluetooth. Dette gøres på samme måde, kun i stedet for agent på nødt til at give en kommando agent KeyboardOnly og bluetoothctl finder en enhed med en HID-profil.

Men opsætning af Bluetooth via kommandolinjen er lidt kompliceret

Selvom forfatteren formåede at konfigurere alt, forstår han, at det er ubelejligt at konfigurere BlueZ via kommandolinjen. Først troede han, at agenter kun var nødvendige for at indtaste PIN-koder, men det viste sig for eksempel, at for at aktivere HID-profilen skal du skrive "agent KeyboardOnly". Det er overraskende, at for at starte Bluetooth PAN skal du klatre gennem depoter på jagt efter det nødvendige script. Han husker, at der i den tidligere version af BlueZ var et færdigt værktøj til dette panda - hvor laver han i BlueZ 5? Pludselig dukkede en ny løsning op, ukendt for forfatteren, men liggende på overfladen?

Ydelse

Dataoverførselshastigheden var cirka 120 kbit/s, hvilket er ganske nok. 1GHz ARM-processoren er meget hurtig til en kommandolinjegrænseflade. Forfatteren planlægger stadig primært at bruge ssh og emacs på enheden.

Konsolskrifttyper og skærmopløsning

Standardskærmopløsningen brugt af framebufferen på Raspberry Pi Zero er ret mærkelig: fbset rapporterer det som 656x416 pixels (ingen skærm tilsluttet, selvfølgelig). Med en konsolskrifttype på 8×16 var der 82 tegn pr. linje og 26 linjer.

Det er ubelejligt at arbejde med et 40-tegns brailledisplay i denne tilstand. Forfatteren vil også gerne se Unicode-tegn vist i braille. Heldigvis understøtter Linux 512 tegn, og de fleste konsolskrifttyper har 256. Ved at bruge konsolopsætning kan du bruge to skrifttyper på 256 tegn sammen. Forfatteren tilføjede 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 gøre brl-16×8.psf skrifttypen tilgængelig, skal du installere konsol-braille.

Hvad er det næste?

Braille-displayet har et 3,5 mm-stik, men forfatteren kender ikke til adaptere til at modtage et lydsignal fra Mini-HDMI. Forfatteren var ikke i stand til at bruge det indbyggede lydkort i Raspberry (mærkeligt nok var oversætteren sikker på, at Zero ikke havde et, men der er måder at udsende lyd ved hjælp af PWM til GPIO). Han planlægger at bruge en USB-OTG-hub og tilslutte et eksternt kort og udsende lyd til den højttaler, der er indbygget i brailledisplayet. Af en eller anden grund virkede to eksterne kort ikke; nu leder han efter en lignende enhed på et andet chipset.

Det er også ubelejligt manuelt at slukke for "hindbær", vente et par sekunder og slukke for brailledisplayet. Og alt sammen fordi, når den er slukket, fjerner den strømmen fra stikket i rummet. Forfatteren planlægger at placere et lille bufferbatteri i rummet og via GPIO informere Raspberry om, at skærmen slukker, så den kan begynde at lukke ned for sit arbejde. Dette er en UPS i miniature.

Systembillede

Hvis du har den samme Braille-skærm og gerne vil gøre det samme med den, er forfatteren klar til at give et færdigt billede af systemet (baseret på Raspbian Stretch). Skriv til ham om dette på adressen angivet ovenfor. Hvis der er nok interesserede, er det endda muligt at frigive kits, der indeholder alt, hvad der er nødvendigt for en sådan modifikation.

Tak

Tak til Dave Mielke for korrekturlæsningen.

Tak til Simon Kainz for fotoillustrationerne.

Tak til mine kolleger på Graz Technical University for hurtigt at introducere forfatteren til Raspberry Pi-verdenen.

PS Første tweet forfatter om dette emne (åbner ikke - oversætter) blev lavet kun fem dage før offentliggørelsen af ​​originalen af ​​denne artikel, og det kan anses for, at med undtagelse af problemer med lyd, var opgaven praktisk talt løst. For øvrigt redigerede forfatteren den endelige version af teksten fra en "selvforsynende blindeskriftsskærm", han lavede, og forbinder den via SSH til sin hjemmecomputer.

Kilde: www.habr.com

Tilføj en kommentar