Raspberry Pi Zero im Brailledisplay Handy Tech Active Star 40

Raspberry Pi Zero im Brailledisplay Handy Tech Active Star 40

Der Autor hat einen Raspberry Pi Zero, einen Bluetooth-Dongle und ein Kabel in sein neues Braille-Display Handy Tech Active Star 40 integriert. Der integrierte USB-Anschluss sorgt für die Stromversorgung. Es ist ein autarkes, monitorfreies ARM-Computer-System mit Linux-Betriebssystem, ausgestattet mit einer Tastatur und einem Braille-Display. Es kann über USB aufgeladen/mit Strom versorgt werden, einschließlich von einer Powerbank oder einem Solarladegerät. Daher kann es nicht nur einige Stunden, sondern mehrere Tage ohne Stromnetz auskommen.

Raspberry Pi Zero im Brailledisplay Handy Tech Active Star 40

Größendifferenzierung von Braille-Displays

Zunächst einmal unterscheiden sie sich in der Zeichenlänge. Geräte mit 60 oder mehr Zeichen sind für die Arbeit mit Desktop-Computern gut geeignet, während 40-Zeichen-Displays bequem zusammen mit Laptops transportiert werden können. Heutzutage gibt es auch Braille-Displays, die mit Smartphones und Tablets verbunden werden können, mit einer Zeichenlänge von 14 oder 18 Zeichen.

Früher waren Braille-Displays ziemlich massiv. Ein 40-Zeichen-Display hatte beispielsweise dieselben Abmessungen und das gleiche Gewicht wie ein 13-Zoll-Laptop. Jetzt sind sie bei derselben Anzahl von Zeichen ausreichend kompakt, sodass man das Display vor den Laptop stellen kann, anstatt den Laptop auf das Display zu setzen.

Das ist natürlich besser, aber es ist immer noch nicht sehr bequem, zwei separate Geräte auf den Knien zu halten. Wenn man am Tisch arbeitet, gibt es keine Beschwerden, aber man sollte daran denken, dass der Laptop auch als „Lep-top“ bezeichnet wird, und versuchen, diesen Namen zu rechtfertigen. Es stellt sich heraus, dass ein kompaktes 40-Zeichen-Display sogar noch weniger bequem ist.

Der Autor hat also auf das Erscheinen des seit langem versprochenen neuen Modells der Serie Handy Tech Star gewartet. Bereits 2002 wurde das vorherige Modell Handy Tech Braille Star 40 herausgebracht, dessen Gehäuse so viel Platz bot, dass man einen Laptop oben drauf stellen konnte. Und wenn er nicht darauf passt – wurde eine ausziehbare Halterung vorgesehen. Jetzt wurde dieses Modell durch das Active Star 40 ersetzt, das praktisch dasselbe ist, aber mit modernisierter Elektronik.

Raspberry Pi Zero im Brailledisplay Handy Tech Active Star 40

Und die ausziehbare Halterung ist geblieben:

Raspberry Pi Zero im Brailledisplay Handy Tech Active Star 40

Das praktischste an der Neuheit ist die Vertiefung, die etwa die Größe eines Smartphones hat (siehe KDPV). Sie öffnet sich, wenn man die Fläche nach hinten schiebt. Es stellte sich als unpraktisch heraus, das Smartphone dort zu halten, aber man muss schließlich irgendwie den leeren Raum nutzen, in dem sogar ein Stromausgang vorgesehen ist.

Das Erste, was der Autor sich ausgedacht hat, war, einen Raspberry Pi darin unterzubringen, aber als der Bildschirm gekauft wurde, stellte sich heraus, dass das Gehäuse, das den Bereich abdeckt, nicht mit dem "Himbeere"-Modell funktioniert. Wenn die Platine nur 3 mm dünner wäre...

Aber ein Kollege erzählte von dem Raspberry Pi Zero, der so miniaturisiert ist, dass man zwei… oder vielleicht sogar drei in das Gehäuse packen könnte. Er wurde sofort zusammen mit einer 64 GB Speicherkarte, Bluetooth, einem „Dongle“ und einem Micro-USB-Kabel bestellt. Einige Tage später kam alles an, und sehende Freunde halfen dem Autor, die Karte vorzubereiten. Alles funktionierte sofort wie gewünscht.

Was dafür getan wurde

An der Rückseite des Handy Tech Active Star 40 befinden sich zwei USB-Ports für Geräte wie Tastaturen. Eine kompakte Tastatur mit Magnetbefestigung ist im Lieferumfang enthalten. Wenn die Tastatur angeschlossen ist und der Bildschirm über Bluetooth funktioniert, erkennt der Computer sie zusätzlich als Bluetooth-Tastatur.

So kann, wenn man den Raspberry Pi Zero, der im Smartphone-Einsatz untergebracht ist, mit einem Bluetooth-Dongle verbindet, eine Datenübertragung zwischen dem Braille-Display und dem Raspberry Pi über Bluetooth stattfinden durch BRLTTY, und wenn die Tastatur auch noch an den Bildschirm angeschlossen wird, funktioniert die "Himbeere" auch damit.

Und das ist noch nicht alles. Die "Himbeere" selbst kann über Bluetooth PAN von jedem unterstützenden Gerät aus auf das Internet zugreifen. Der Autor hat sein Smartphone und die Computer zu Hause und bei der Arbeit entsprechend konfiguriert, plant jedoch, eine weitere "Himbeere" – eine klassische, keine Zero – anzuschließen, die mit Ethernet und einem anderen Bluetooth-Dongle verbunden ist.

BlueZ 5 und PAN

Die Methode zur Konfiguration von PAN mit BlueZ hat sich als nicht offensichtlich herausgestellt. Der Autor fand ein Python-Skript bt-pan (siehe unten), das es ermöglicht, PAN ohne GUI zu konfigurieren.

Damit kann man sowohl einen Server als auch einen Client einrichten. Bei einem entsprechenden Befehl über D-Bus im Client-Modus erstellt er ein neues Netzwerkgerät bnep0 sofort nach der Verbindung mit dem Server. Üblicherweise wird DHCP verwendet, um dieser Schnittstelle eine IP-Adresse zuzuweisen. Im Servermodus verlangt BlueZ die Angabe des Namens des Bridge-Geräts, zu dem er jedem Client ein bekanntes Gerät hinzufügen kann. Die Konfiguration der Adresse für das Bridge-Gerät sowie das Starten eines DHCP-Servers plus IP-Masquerading auf der Bridge sind in der Regel alles, was erforderlich ist.

Bluetooth PAN-Zugangspunkt mit Systemd

Zur Konfiguration des Bridges hat der Autor systemd-networkd verwendet:

Datei /etc/systemd/network/pan.netdev

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

Datei /etc/systemd/network/pan.network

[Match]
Name=pan

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

Jetzt muss man BlueZ konfigurieren, um das NAP-Profil einzurichten. Es stellte sich heraus, dass dies mit den Standardwerkzeugen von BlueZ 5.36 nicht möglich ist. Falls der Autor falsch liegt, korrigieren Sie ihn: mlang (kann die Ohren bewegen) blind (manchmal gibt es Zugang und Quanten) guru

Aber er fand eine Nachricht im Blog und ein Python-Skript um die erforderlichen Aufrufe an D-Bus durchzuführen.

Zur Erleichterung hat der Autor einen Systemd-Dienst verwendet, um das Skript zu starten und die Abhängigkeiten zu überprüfen.

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

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

Die zweite Datei wäre nicht nötig gewesen, wenn Debian IPMasquerade= unterstützt hätte (siehe. #787480).

Nach dem Ausführen der Befehle systemctl daemon-reload und systemctl restart systemd-networkd kann man den Bluetooth PAN mit dem Befehl starten systemctl start pan

Bluetooth PAN-Client unter Verwendung von Systemd

Der Client-Teil lässt sich auch leicht mit Systemd konfigurieren.

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

[Match]
Name=bnep*

[Network]
DHCP=yes

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

Jetzt kann man sich nach dem Neustart der Konfiguration mit dem angegebenen Bluetooth-Zugangspunkt verbinden:

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

Kopplung über die Kommandozeile

Selbstverständlich muss die Konfiguration von Server und Clients nach deren Bluetooth-Kopplung ausgeführt werden. Auf dem Server sollte bluetoothctl gestartet und mit diesen Kommandos bedient werden:

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

Nachdem Sie den Scan gestartet haben, warten Sie einige Sekunden, bis das gewünschte Gerät in der Liste angezeigt wird. Notieren Sie sich die Adresse und verwenden Sie sie mit dem Befehl pair, bei Bedarf auch mit dem Befehl trust.

Auf der Client-Seite muss das Gleiche getan werden, allerdings wird der Befehl trust sicher nicht benötigt. Der Server benötigt ihn, um die Verbindung über das NAP-Profil ohne manuelle Bestätigung durch den Benutzer anzunehmen.

Der Autor ist sich nicht sicher, ob dies die optimale Befehlsabfolge ist. Möglicherweise ist alles, was benötigt wird, die Kopplung des Clients mit dem Server und die Ausführung des Befehls trust auf dem Server, aber so hat er es noch nicht ausprobiert.

Erlaubnis zur Nutzung des Bluetooth-Profils HID

Es ist erforderlich, dass die ‚Marlina‘ die Tastatur erkennt, die über ein Kabel mit dem Braille-Display verbunden ist und bereits vom Display über Bluetooth weitergeleitet wird. Es funktioniert genauso, nur anstelle von agent on muss der Befehl gegeben werden agent KeyboardOnly und bluetoothctl wird das Gerät mit dem HID-Profil finden.

Aber es ist kompliziert, Bluetooth über die Kommandozeile einzurichten.

Obwohl es dem Autor gelungen ist, alles zu konfigurieren, versteht er, dass die Einrichtung von BlueZ über die Kommandozeile unpraktisch ist. Zunächst dachte er, dass Agenten nur für die Eingabe von PIN-Codes erforderlich sind, stellte jedoch fest, dass man zum Aktivieren des HID-Profils „agent KeyboardOnly“ eingeben muss. Es ist erstaunlich, dass man zum Starten von Bluetooth PAN in den Repositories nach dem benötigten Skript suchen muss. Er erinnert sich, dass es in der vorherigen Version von BlueZ ein fertiges Werkzeug gab, pand – wo ist es in BlueZ 5 hin? Gibt es vielleicht eine neue Lösung, die dem Autor nicht bekannt ist, aber offensichtlich ist?

Leistung

Die Übertragungsrate betrug etwa 120 kbit/s, was völlig ausreichend ist. Der 1-GHz-ARM-Prozessor ist sehr schnell für die Kommandozeilenoberfläche. Der Autor plant dennoch, auf dem Gerät hauptsächlich ssh und emacs zu verwenden.

Konsolenschriften und Bildschirmauflösung

Die Bildschirmauflösung, die vom Framebuffer auf Raspberry Pi Zero standardmäßig verwendet wird, ist ziemlich seltsam: fbset berichtet, dass sie 656×416 Pixel beträgt (der Monitor ist natürlich nicht angeschlossen). Bei einer Konsolenschrift von 8×16 ergeben sich 82 Zeichen pro Zeile und 26 Zeilen.

Die Arbeit mit einem Braille-Display mit 40 Zeichen ist in diesem Modus unpraktisch. Außerdem wünscht sich der Autor, dass Unicode-Zeichen in Braille auf dem Display angezeigt werden. Glücklicherweise unterstützt Linux 512 Zeichen, während die meisten Konsolenschriften nur 256 Zeichen haben. Mit console-setup kann man zwei 256-Zeichen-Schriften zusammen verwenden. Der Autor hat folgende Zeilen zur Datei /etc/default/console-setup hinzugefügt:

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

Hinweis: Damit die Schriftart brl-16×8.psf verfügbar wird, muss console-braille installiert werden.

Was folgt jetzt?

Das Brailledisplay verfügt über einen 3,5-mm-Jackanschluss, aber dem Autor sind keine Adapter bekannt, um Audiosignale von Mini-HDMI abzunehmen. Es gelang dem Autor nicht, die in die "Mütze" integrierte Soundkarte zu verwenden (seltsam, der Übersetzer war sich sicher, dass es im Zero keine gibt, aber es gibt Möglichkeiten, das Audio mit PWM über GPIO auszugeben). Er plant, einen USB-OTG-Hub zu verwenden und eine externe Karte anzuschließen, um den Ton über den im Brailledisplay integrierten Lautsprecher auszugeben. Zwei externe Karten haben aus irgendeinem Grund nicht funktioniert, jetzt sucht er nach einem ähnlichen Gerät mit einem anderen Chipset.

Es ist auch umständlich, die "Mütze" manuell auszuschalten, einige Sekunden zu warten und das Brailledisplay zu trennen. Das liegt daran, dass bei der Trennung die Stromversorgung von der Buchse im Fach entfernt wird. Der Autor plant, einen kleinen Pufferspeicher im Fach unterzubringen und über GPIO der "Mütze" mitzuteilen, dass das Display getrennt wird, damit sie mit dem Herunterfahren beginnen kann. So etwas wie eine USV im Miniaturformat.

Systemabbild

Wenn Sie ein ähnliches Brailledisplay haben und das Gleiche damit tun möchten, ist der Autor bereit, ein fertiges Systemabbild (basierend auf Raspbian Stretch) zur Verfügung zu stellen. Schreiben Sie ihm unter der oben angegebenen Adresse. Wenn sich genügend Interessierte finden, könnte sogar eine Produktion von Kits zur Verfügung gestellt werden, die alles Nötige für diese Umrüstung enthalten.

Dank

Danke an Dave Mielke für das Korrekturlesen des Textes.

Danke an Simon Kainz für die Fotoillustrationen.

Danke an die Kollegen der Technischen Universität Graz für die schnelle Einführung des Autors in die Welt von Raspberry Pi.

P.S. Der erste Tweet des Autors zu diesem Thema (öffnen sich nicht – Übersetzer) wurde nur fünf Tage vor der Veröffentlichung des Originals dieser Artikel gemacht, und man kann sagen, dass abgesehen von den Problemen mit dem Ton die gestellte Aufgabe praktisch gelöst ist. Übrigens hat der Autor die finale Version des Textes bearbeitet, indem er sein „eigenständiges Brailledisplay“ per SSH mit dem Heimcomputer verbunden hat.

Quelle: habr.com

60GB SSD 8Gb DDR4