Raspberry Pi Zero im Braille-Display Handy Tech Active Star 40

Raspberry Pi Zero im Braille-Display Handy Tech Active Star 40

Der Autor hat einen Raspberry Pi Zero, einen Bluetooth-Dongle und ein Kabel in seinem neuen Braille-Display Handy Tech Active Star 40 untergebracht. Der integrierte USB-Anschluss liefert Strom. So entstand ein autarkes, monitorfreies ARM-Computer-System mit Linux-Betriebssystem, ausgestattet mit einer Tastatur und einem Braille-Display. Es kann über USB, auch von einer Powerbank oder einem Solarladegerät, aufgeladen bzw. betrieben werden. Daher kann es ohne Stromnetz nicht nur einige Stunden, sondern mehrere Tage auskommen.

Raspberry Pi Zero im Braille-Display Handy Tech Active Star 40

Dimensionale Differenzierung von Braille-Anzeigen

Zunächst unterscheiden sie sich in der Zeilenlänge. Geräte mit 60 oder mehr Zeichenpositionen sind gut für die Arbeit am Desktop-Computer geeignet, während 40-Zeichen-Anzeigen bequem für den Transport mit einem Laptop sind. Heutzutage gibt es auch Braille-Anzeigen, die an Smartphones und Tablets angeschlossen werden können, mit einer Zeilenlänge von 14 oder 18 Zeichenpositionen.

Früher waren Braille-Anzeigen ziemlich massiv. Ein 40-Zeichen-Modell hatte etwa die Größe und das Gewicht eines 13-Zoll-Laptops. Jetzt sind sie bei gleicher Anzahl von Zeichenpositionen ausreichend kompakt, um das Display vor den Laptop zu stellen, anstatt den Laptop auf das Display zu legen.

Das ist sicherlich besser, aber es ist dennoch unpraktisch, zwei separate Geräte auf den Knien zu halten. Am Schreibtisch gibt es keine Beschwerden, doch man sollte bedenken, dass ein Laptop auch als „Lep Top“ bekannt ist. Wenn man versucht, diesem Namen gerecht zu werden, wird deutlich, dass der kompakte 40-Zeichen große Bildschirm sogar weniger angenehm ist.

So hat der Autor auf das Erscheinen des längst versprochenen neuen Modells der Handy Tech Star-Serie gewartet. Bereits 2002 wurde das vorherige Modell, der Handy Tech Braille Star 40, herausgebracht, das über eine Gehäusefläche verfügt, die ausreichend Platz bietet, um einen Laptop darauf zu platzieren. Und sollte er nicht passen – gibt es einen verstellbaren Ständer. Jetzt wurde dieses Modell durch den Active Star 40 ersetzt, der praktisch dasselbe ist, jedoch mit modernisierter Elektronik.

Raspberry Pi Zero im Braille-Display Handy Tech Active Star 40

Und der ausziehbare Ständer ist geblieben:

Raspberry Pi Zero im Braille-Display Handy Tech Active Star 40

Das praktischste an der Neuheit ist jedoch die Vertiefung mit den Maßen eines Smartphones (siehe KDPV). Sie öffnet sich, wenn man die Fläche nach hinten schiebt. Das Halten des Smartphones dort erweist sich als unpraktisch, aber man muss schließlich irgendwie den leeren Raum nutzen, in dem sogar ein Stromausgang vorgesehen ist.

Zunächst dachte der Autor daran, einen Raspberry Pi zu integrieren. Doch als der Bildschirm gekauft wurde, stellte sich heraus, dass die Halterung für das Fach nicht mit dem Raspberry Pi kompatibel war. Wenn nur die Platine um 3 mm dünner gewesen wäre ...

Ein Kollege berichtete jedoch von dem Raspberry Pi Zero, der so kompakt ist, dass Platz für zwei ... oder sogar drei davon wäre. Dieser wurde sofort zusammen mit einer 64-GB-Speicherkarte, Bluetooth, einem Dongle und einem Micro-USB-Kabel bestellt. Nach ein paar Tagen wurde alles geliefert, und sehende Freunde halfen dem Autor, die Karte vorzubereiten. Sofort funktionierte alles einwandfrei.

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 liegt bei. Wenn die Tastatur angeschlossen ist und der Bildschirm über Bluetooth läuft, erkennt der Computer sie auch als Bluetooth-Tastatur.

Wenn man also den Raspberry Pi Zero, der im Smartphone-Fach untergebracht ist, mit einem Bluetooth-Dongle verbindet, kann er Daten über Bluetooth mit dem Brailledisplay austauschen mittels BRLTTY, und wenn Sie auch eine Tastatur an das Display anschließen, wird die „Malinka“ ebenfalls damit funktionieren.

Doch das ist noch nicht alles. Die „Malinka“ kann über Bluetooth PAN von jedem unterstützenden Gerät auf das Internet zugreifen. Der Autor hat sein Smartphone und die Computer zu Hause und bei der Arbeit entsprechend konfiguriert, plant jedoch, eine weitere „Malinka“ – eine klassische, nicht Zero, mit Ethernet und einem anderen Bluetooth-„Adapter“ – dafür anzuschließen.

BlueZ 5 und PAN

Methode zur Konfiguration von PAN mit BlueZ; war nicht offensichtlich. Der Autor fand ein Python-Skript namens bt-pan (siehe unten), mit dem sich PAN ohne GUI konfigurieren lässt.

Mit ihm kann sowohl ein Server als auch ein Client eingerichtet werden. Er erstellt ein neues Netzwerkgerät bnep0 sofort nach der Verbindung mit dem Server, wenn er den entsprechenden Befehl über D-Bus im Client-Modus erhält. Normalerweise wird DHCP verwendet, um diesem Interface eine IP-Adresse zuzuweisen. Im Servermodus verlangt BlueZ die Angabe des Namens des Bridge-Geräts, zu dem er ein bekanntes Gerät hinzufügen kann, um jeden der Clients zu verbinden. Die Adresse für das Bridge-Gerät zu konfigurieren und den DHCP-Server sowie IP-Masquerading auf der Bridge zu starten, ist in der Regel alles, was erforderlich ist.

Bluetooth PAN Access Point mit Systemd

Für die Bridge-Konfiguration 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 BlueZ konfiguriert werden, 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 (hat Zugang und Quanten) guru

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

Für die Benutzerfreundlichkeit wurde der Systemd-Dienst verwendet, um das Skript zu starten und die Abhängigkeiten zu überprüfen.

Datei /etc/systemd/system/pan.service

[Unit]
Beschreibung=Bluetooth Personal Area Network
Nach=bluetooth.service systemd-networkd.service
Benötigt=systemd-networkd.service
Teil von=bluetooth.service

[Dienst]
Typ=notify
ExecStart=/usr/local/sbin/pan

[Installieren]
Gewünscht von=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, wenn Debian IPMasquerade= unterstützen würde (siehe. #787480).

Nach der Ausführung der Befehle systemctl daemon-reload und systemctl restart systemd-networkd kann das Bluetooth PAN mit dem Befehl gestartet werden systemctl start pan

Bluetooth PAN-Client mit Systemd

Es ist auch nicht schwer, den Client-Teil mit Systemd zu konfigurieren.

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

[Match]
Name=bnep*

[Netzwerk]
DHCP=yes

Datei /etc/systemd/system/pan@.service

[Unit]
Beschreibung=Bluetooth Personal Area Network-Client

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

Jetzt kann man sich nach einem Neustart der Konfiguration mit dem angegebenen Bluetooth-Access-Point verbinden:

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

Pairing über die Befehlszeile

Natürlich muss die Konfiguration des Servers und der Clients nach dem Pairing über Bluetooth durchgeführt werden. Auf dem Server muss bluetoothctl gestartet werden, und die folgenden Befehle eingegeben 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 erscheint. Notieren Sie sich seine Adresse und verwenden Sie sie, um den Befehl pair auszuführen, und gegebenenfalls auch den Befehl trust.

Auf der Clientseite muss dasselbe durchgeführt werden, jedoch wird der Befehl trust 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 Befehlsfolge ist. Vielleicht ist alles, was benötigt wird, die Verbindung des Clients mit dem Server und die Ausführung des trust-Befehls auf dem Server, aber so hat er es noch nicht versucht.

Erlauben der Nutzung des Bluetooth-HID-Profils

Es ist erforderlich, dass die „Raspberry Pi“ die Tastatur erkennt, die per Kabel mit dem Brailledisplay verbunden ist und bereits vom Display selbst über Bluetooth weitergeleitet wird. Es wird genauso gemacht, nur anstelle von agent on muss der Befehl agent KeyboardOnly ausgeführt werden, und bluetoothctl findet das Gerät mit dem HID-Profil.

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

Obwohl der Autor alles erfolgreich konfiguriert hat, ist ihm bewusst, dass die Konfiguration von BlueZ über die Kommandozeile umständlich ist. Zuerst dachte er, dass Agenten nur für die Eingabe von PIN-Codes erforderlich sind, aber es stellte sich heraus, dass man beispielsweise den Befehl „agent KeyboardOnly“ eingeben muss, um das HID-Profil zu aktivieren. Es ist erstaunlich, dass man für den Start von Bluetooth PAN durch Repositories stöbern muss, um das benötigte Skript zu finden. Er erinnert sich, dass es in der vorherigen Version von BlueZ ein fertiges Tool dafür gab. pand — wo ist es in BlueZ 5 geblieben? Gibt es plötzlich eine neue Lösung, die dem Autor unbekannt ist, aber offensichtlich vorhanden?

Leistung

Die Datenübertragungsrate betrug etwa 120 kbit/s, was vollkommen ausreichend ist. Der 1-Gigahertz ARM-Prozessor ist sehr schnell für die Kommandozeilenoberfläche. Der Autor plant dennoch, das Gerät hauptsächlich mit SSH und Emacs zu nutzen.

Konsolenschriftarten und Bildschirmauflösung

Die von framebuffer auf dem Raspberry Pi Zero standardmäßig verwendete Bildschirmauflösung ist ziemlich seltsam: fbset zeigt an, dass sie 656×416 Pixel beträgt (der Monitor ist natürlich nicht angeschlossen). Bei einer Konsolenschriftgröße von 8×16 ergeben sich 82 Zeichen pro Zeile und 26 Zeilen.

Die Arbeit mit einem Brailledisplay mit 40 Zeichen in diesem Modus ist unpraktisch. Der Autor wünscht sich zudem, dass Unicode-Zeichen in Brailleform auf dem Display angezeigt werden. Glücklicherweise unterstützt Linux 512 Zeichen, während die meisten Konsolenschriften 256 Zeichen umfassen. Mit console-setup können zwei 256-Zeichen-Schriften gemeinsam genutzt werden. Der Autor hat folgende Zeilen zu der 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.

Wie geht es weiter?

Das Brailledisplay verfügt über einen 3,5-mm-Jack, aber der Autor kennt keine Adapter, um Audiosignale von Mini-HDMI abzuleiten. Ihm ist es nicht gelungen, die integrierte Soundkarte des Raspberry Pi zu aktivieren (seltsam, der Übersetzer war sich sicher, dass es im Zero keine gibt, aber es gibt Methoden, um PWM-Audio über GPIO auszugeben). Er plant, einen USB-OTG-Hub zu verwenden und eine externe Karte anzuschließen, um den Ton über den integrierten Lautsprecher des Brailledisplays auszugeben. Zwei externe Karten haben aus unerklärlichen Gründen nicht funktioniert, und jetzt sucht er nach einem ähnlichen Gerät mit einem anderen Chipsatz.

Es ist noch umständlich, das "Raspberry Pi" manuell auszuschalten, ein paar Sekunden zu warten und das Braille-Display abzutrennen. Das liegt daran, dass es beim Ausschalten die Stromversorgung von den Anschlüssen im Fach trennt. Der Autor plant, einen kleinen Pufferakku im Fach zu installieren und über GPIO dem "Raspberry Pi" das Ausschalten des Displays mitzuteilen, damit dieser mit dem Herunterfahren beginnen kann. So eine Art Mini-USV.

Systemabbild

Falls Sie ein ähnliches Braille-Display besitzen und das Gleiche tun möchten, ist der Autor bereit, ein fertiges Systemabbild (basierend auf Raspbian Stretch) zur Verfügung zu stellen. Schreiben Sie ihm dazu an die oben angegebene Adresse. Wenn genug Interessierte zusammenkommen, kann sogar eine Kit-Produktion in Betracht gezogen werden, die alles Notwendige für diese Modifikation beinhaltet.

Danksagungen

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. Erster Tweet Der Autor zu diesem Thema (nicht geöffnet — Übersetzer) wurde nur fünf Tage vor der Veröffentlichung des Originals dieser Artikel verfasst, und man kann sagen, dass bis auf die Probleme mit dem Sound die gestellte Aufgabe nahezu gelöst wurde. Übrigens hat der Autor die endgültige Version des Textes mit dem von ihm hergestellten „selbstständigen Braille-Display“ bearbeitet, indem er es über SSH mit seinem Heimcomputer verbunden hat.

Quelle: habr.com

Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server 🔥 Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server | ProHoster