
Autor umístil Raspberry Pi Zero, Bluetooth "dongle" a kabel do svého nového braillského displeje Handy Tech Active Star 40. Vestavěný USB port zajišťuje napájení. Vznikl tak samostatný bezmonitortní počítač na ARM s operačním systémem Linux, vybavený klávesnicí a braillským displejem. Lze ho nabíjet/přitápět přes USB, včetně powerbanky nebo solárního nabíjecího zařízení. Proto může fungovat bez elektrické sítě nejen několik hodin, ale několik dní.

Konstrukční diferenciace braillských displejů
Především se liší délkou řádku. Zařízení s 60 a více znakovými místy jsou dobrá při práci s desktopovými počítači, zatímco s 40 znaky jsou pohodlná pro přenášení s notebookem. V současnosti existují i braillské displeje připojitelné k chytrým telefonům a tabletům, s délkou řádku 14 nebo 18 znaků.
V minulosti byly braillské displeje poměrně objemné. Například 40-znakové mělo rozměry a hmotnost jako 13-palcový notebook. Nyní jsou při stejném počtu znaků dostatečně kompaktní, aby je bylo možné postavit před notebook a ne notebook na displej.
Je to určitě lepší, ale stále není příliš pohodlné mít na kolenou dvě samostatná zařízení. Když pracujete u stolu, nemáte žádné námitky, ale nesmíme zapomenout, že notebook se nazývá laptopy a zkusit ospravedlnit tento název ukazuje, že kompaktní 40-znakový displej je dokonce méně pohodlný.
Tak autor počkal na vydání dlouho slibovaného nového modelu v sérii Handy Tech Star. Již v roce 2002 byl vydán předchozí model Handy Tech Braille Star 40, kde bylo dostatečné prostor pro umístění notebooku nahoře. A pokud se nevejde — je tu vyjížděcí stojan. Nyní byla tato model nahrazena za Active Star 40, což je prakticky to samé, ale s modernizovanou elektronikou.

A vyjížděcí stojan zůstal:

Ale nejpohodlnější na novince je prohlubeň zhruba ve velikosti smartphonu (viz KDPV). Otevírá se posunutím desky dozadu. Držet tam smartphone se ukázalo jako nepohodlné, ale jaksi je třeba využít prázdný prostor, uvnitř kterého je i výstup pro napájení.
První nápad autora byl umístit dovnitř Raspberry Pi, ale když byla zakoupena obrazovka, ukázalo se, že s 'malinkou' nebude možné zasunout podpěru zakrývající otvor. Kdyby byla deska jen o 3 mm tenčí...
Ale kolega vyprávěl o novém Raspberry Pi Zero, které bylo tak kompaktní, že by se do otvoru vešly dva... nebo snad dokonce tři. Okamžitě bylo objednáno spolu s microSD kartou o kapacitě 64 GB, Bluetooth, 'donglem' a kabelem Micro USB. O pár dní později všechno dorazilo a zrakově postižení přátelé pomohli autorovi připravit kartu. Všechno okamžitě fungovalo jak mělo.
Co bylo pro to uděláno
Na zadní straně Handy Tech Active Star 40 jsou umístěny dva USB porty pro zařízení jako jsou klávesnice. Malá klávesnice s magnetickým upevněním je součástí balení. Když je klávesnice připojena a obrazovka funguje přes Bluetooth, počítač ji navíc rozpozná také jako Bluetooth klávesnici.
Takže pokud k Raspberry Pi Zero umístěnému v otvoru pro smartphone připojíte Bluetooth 'dongle', bude moci vyměňovat data s braillským displejem pomocí , a pokud k displeji připojíte klávesnici, 'malinka' bude fungovat i s ní.
Ale to není všechno. Samotná 'malinka' může získat přístup k internetu přes Bluetooth PAN z jakéhokoliv zařízení, které ho podporuje. Autor upravil odpovídajícím způsobem svůj smartphone a počítače doma i v práci, ale plánuje přizpůsobit pro tuto funkci další 'malinku' – klasickou, ne Zero, připojenou k Ethernetu a dalšímu Bluetooth 'dongle'.
BlueZ 5 a PAN
Způsob konfigurace PAN pomocí se ukázal jako nepřehledný. Autor našel Python skript bt-pan (viz níže), který umožňuje nakonfigurovat PAN bez GUI.
S jeho pomocí lze nastavit jak server, tak klienta. Po přijetí příslušného příkazu přes D-Bus v klientském režimu vytvoří nové síťové zařízení bnep0 ihned po navázání spojení se serverem. Obvykle se pro přiřazení IP adresy tomuto rozhraní používá DHCP. V serverovém režimu BlueZ vyžaduje uvedení názvu mostového zařízení, ke kterému může přidat další zařízení pro připojení každého z klientů. Nakonfigurovat adresu pro mostové zařízení a spustit DHCP server plus IP masquerading na mostě – obvykle je to vše, co je potřeba.
Bluetooth PAN Access Point s Systemd
Pro konfiguraci mostu autor použil systemd-networkd:
Soubor /etc/systemd/network/pan.netdev
[NetDev]
Name=pan
Kind=bridge
ForwardDelaySec=0Soubor /etc/systemd/network/pan.network
[Match]
Name=pan
[Network]
Address=0.0.0.0/24
DHCPServer=yes
IPMasquerade=yesNyní je třeba přinutit BlueZ, aby nakonfiguroval profil NAP. Ukázalo se, že to nelze provést pomocí standardních nástrojů BlueZ 5.36. Pokud se autor mýlí, opravte ho: mlang (umí hýbat ušima) blind (může mít přístup a kvantový) guru
Ale našel a pro provedení potřebných volání na D-Bus.
Pro pohodlí autor použil službu Systemd k spuštění skriptu a kontrole povolení závislostí.
Soubor /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.targetSoubor /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 panDruhý soubor by nebyl potřeba, kdyby v Debianu byla podpora IPMasquerade= (viz. ).
Po vykonání příkazů systemctl daemon-reload a systemctl restart systemd-networkd můžete spustit Bluetooth PAN příkazem systemctl start pan
Bluetooth PAN klient s využitím Systemd
Klientskou část také není těžké nakonfigurovat pomocí Systemd.
Soubor /etc/systemd/network/pan-client.network
[Match]
Name=bnep*
[Network]
DHCP=yesSoubor /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 --waitNyní po restartu konfigurace se můžete připojit k zadanému Bluetooth přístupovému bodu takto:
systemctl start pan@00:11:22:33:44:55Spárování pomocí příkazového řádku
Samozřejmě, konfiguraci serveru a klientů je nutné provést po jejich spárování přes Bluetooth. Na serveru je třeba spustit bluetoothctl a poskytnout mu příkazy:
power on
agent on
default-agent
scan on
scan off
pair XX:XX:XX:XX:XX:XX
trust XX:XX:XX:XX:XX:XXPo spuštění skenování počkejte několik sekund, než se v seznamu objeví požadované zařízení. Zapište si jeho adresu a použijte ji pro příkaz pair, a pokud je to nutné - také příkaz trust.
Na straně klienta je třeba udělat totéž, ale příkaz trust nebude zcela nezbytný. Server ho potřebuje pro přijetí připojení podle profilu NAP bez ručního potvrzení uživatelem.
Autor si není jistý, zda je to optimální pořadí příkazů. Možná, že vše, co je potřeba - to je spárování klienta se serverem a provedení příkazu trust na serveru, ale takto to ještě nezkoušel.
Povolení používání Bluetooth profilu HID
Je potřeba, aby „malina“ rozpoznala klávesnici připojenou k Braillskému displeji kabelem, a přenášenou připojením Bluetooth. Dělá se to stejně, jen místo agent on je třeba zadat příkaz agent KeyboardOnly a bluetoothctl najde zařízení s profilem HID.
Ale nastavovat Bluetooth přes příkazový řádek je docela složité.
I když se autorovi podařilo vše nakonfigurovat, uvědomuje si, že nastavování BlueZ přes příkazový řádek není pohodlné. Nejprve si myslel, že agenti jsou potřeba jen pro zadávání PIN kódů, ale ukázalo se například, že pro aktivaci profilu HID je třeba napsat „agent KeyboardOnly“. Je překvapující, že pro spuštění Bluetooth PAN je nutné hledat potřebný skript v repozitářích. Pamatuje si, že v předchozí verzi BlueZ byl k dispozici nástroj pand — kam se poděl v BlueZ 5? Možná se objevilo nové řešení, o kterém autor neví, ale je na dosah?
Výkon
Rychlost přenosu dat dosáhla přibližně 120 kbit/s, což je naprosto dostatečné. 1 GHz ARM procesor je velmi rychlý pro příkazový řádek. Autor i tak plánuje používat zařízení hlavně pro ssh a emacs.
Konzolové písma a rozlišení obrazovky
Standardní rozlišení obrazovky používané framebufferem na Raspberry Pi Zero je poněkud podivné: fbset hlásí, že činí 656×416 pixelů (monitor samozřejmě není připojen). Při konzolovém písmu 8×16 bylo 82 znaků v řádku a 26 řádků.
Práce s Braillským displejem o 40 znacích v takovém režimu je nepohodlná. Autor by také rád, aby se na displej zobrazovaly znaky Unicode v Braillské podobě. Naštěstí Linux podporuje 512 znaků, zatímco většina konzolových písem má 256. S pomocí console-setup je možné použít dvě 256-znaková písma současně. Autor přidal do souboru /etc/default/console-setup tyto řádky:
SCREEN_WIDTH=80
SCREEN_HEIGHT=25
FONT="Lat15-Terminus16.psf.gz brl-16x8.psf"Poznámka: Aby bylo dostupné písmo brl-16×8.psf, je potřeba nainstalovat console-braille.
Co dál?
Na brailovém displeji je 3,5mm jack, ale autor nezná adaptéry pro vyjímání audio signálu z Mini-HDMI. Autorům se nepodařilo aktivovat vestavěnou zvukovou kartu na 'malince' (divné, překladatel byl přesvědčen, že v Zero není, ale jsou způsoby výstupu zvuku PWM na GPIO). Plánuje použít USB-OTG hub a připojit externí kartu a výstup zvuku na vestavěný reproduktor brailovského displeje. Dvě externí karty z nějakého důvodu nefungovaly, nyní hledá podobné zařízení na jiném čipsetu.
Ještě je nepohodlné ručně vypínat 'malinku', čekat několik sekund a odpojit brailovský displej. A to vše proto, že při odpojení ztrácí napájení z konektoru v pouzdře. Autor plánuje umístit do pouzdra malou záložní baterii a přes GPIO informovat 'malinku', že displej byl odpojen, aby mohla zahájit proces vypnutí. Takový malý UPS.
Obraz systému
Pokud máte stejný brailovský displej a chcete udělat to samé, autor je připraven poskytnout hotový obraz systému (na základě Raspbian Stretch). Napište mu o tom na adresu uvedenou výše. Pokud se najde dostatek zájemců, je možné dokonce vydání sad, které obsahují vše potřebné pro tuto přestavbu.
Poděkování
Děkuji Daveu Mielke za korekturu textu.
Děkuji Simonu Kainzovi za fotografie.
Děkuji kolegům z Grazské technické univerzity za rychlé uvedení autora do světa Raspberry Pi.
P.S. autora na toto téma (neotevírá se — překladatel) byl zveřejněn pouhých pět dní před publikací originálu tohoto článku a dá se říci, že s výjimkou problémů se zvukem je úkol prakticky vyřešen. Mimochodem, finální verzi textu autor upravil s vyrobeným 'sebeudržujícím brailovským displejem' připojeným přes SSH k domácímu počítači.
Zdroj: habr.com
