Raspberry Pi Zero uvnitř braillského řádku Handy Tech Active Star 40

Raspberry Pi Zero uvnitř braillského řádku Handy Tech Active Star 40

Do svého nového braillského displeje Handy Tech Active Star 40 jsem umístil Raspberry Pi Zero, píšťalku Bluetooth a kabel. Napájení zajišťuje vestavěný port USB. Výsledkem byl soběstačný počítač bez monitoru na ARM s operačním systémem Linux, vybavený klávesnicí a braillským displejem. Můžete jej nabíjet / napájet přes USB, vč. z powerbanky nebo solární nabíječky. Proto se bez sítě obejde ne několik hodin, ale několik dní.

Raspberry Pi Zero uvnitř braillského řádku Handy Tech Active Star 40

Rozměrové rozlišení braillských řádků

V první řadě se liší délkou vedení. Zařízení s 60 nebo více známými jsou dobré při práci se stolním počítačem, 40 jsou vhodné pro přenášení spolu s notebookem. Nově jsou k chytrým telefonům a tabletům připojeny i braillské displeje s délkou řádku 14 nebo 18 znaků.

V minulosti byly braillské řádky poměrně masivní. Například 40znakový měl stejné rozměry a hmotnost jako 13palcový notebook. Nyní, se stejným počtem obeznámenosti, jsou dostatečně miniaturní na to, abyste mohli umístit displej před notebook a ne notebook na displej.

To je jistě lepší, ale stále není příliš pohodlné držet na klíně dvě samostatná zařízení. Při práci u stolu neexistují žádné stížnosti, ale stojí za to si uvědomit, že notebook se nazývá laptop jiným způsobem, a pokusit se ospravedlnit jeho jméno, protože se ukazuje, že miniaturní 40znakový displej je ještě méně pohodlný.

Autor si tedy počkal na vydání dlouho slibovaného nového modelu řady Handy Tech Star. Již v roce 2002 vyšel předchozí model Handy Tech Braille Star 40, kde plocha těla stačí na to, aby se na něj dal umístit notebook. A pokud se nevejde, je k dispozici výsuvný stojan. Nyní byl tento model nahrazen Active Star 40, který je prakticky stejný, ale s modernizovanou elektronikou.

Raspberry Pi Zero uvnitř braillského řádku Handy Tech Active Star 40

A výsuvný stojan zůstal:

Raspberry Pi Zero uvnitř braillského řádku Handy Tech Active Star 40

Nejpohodlnější na novince je ale prohlubeň o velikosti smartphonu (viz KDPV). Otevře se, když se plošina posune dozadu. Ukázalo se, že je nepohodlné držet tam smartphone, ale člověk musí nějak využít prázdnou přihrádku, uvnitř které je dokonce i elektrická zásuvka.

První, co autor vymyslel, bylo dát tam Raspberry Pi, ale při koupi displeje se ukázalo, že stojánek, který přihrádku uzavíral, s „malinou“ nehýbal. Kdyby byla deska jen o 3 mm tenčí...

Ale kolega mluvil o vydání Raspberry Pi Zero, které se ukázalo být tak malinké, že by se do šachty vešly dva ... nebo možná dokonce tři. Okamžitě byl objednán spolu s 64GB paměťovou kartou, Bluetooth, píšťalkou a Micro USB kabelem. O pár dní později to všechno dorazilo a vidoucí přátelé pomohli autorovi mapu připravit. Vše hned fungovalo jak mělo.

Co se pro to udělalo

Na zadní straně Handy Tech Active Star 40 jsou dva USB porty pro zařízení, jako jsou klávesnice. Kompaktní klávesnice s magnetickým uchycením součástí balení. Když je klávesnice připojena a samotný displej funguje přes Bluetooth, počítač jej navíc rozpozná jako Bluetooth klávesnici.

Pokud je tedy Bluetooth píšťalka připojena k Raspberry Pi Zero umístěnému v přihrádce pro smartphone, bude moci komunikovat s braillským displejem přes Bluetooth pomocí BRLTTY, a pokud k displeji připojíte i klávesnici, bude „malina“ fungovat i s ním.

Ale to není všechno. Samotné Raspberry se zase může připojit k internetu přes Bluetooth PAN z jakéhokoli zařízení, které to podporuje. Podle toho si autor nastavil chytrý telefon a počítače doma i v práci, ale do budoucna k tomu plánuje uzpůsobit další „malinu“ – klasickou, nikoli Zero, připojenou k Ethernetu a další Bluetooth „pískačku“.

BlueZ5 a PAN

Pomocí metody konfigurace PAN BlueZ se ukázalo být neviditelným. Autor našel pyhtonský skript bt-pan (viz níže), který umožňuje konfigurovat PAN bez GUI.

S ním můžete konfigurovat server i klienta. Po obdržení příslušného příkazu přes D-Bus při práci v klientském režimu vytvoří ihned po navázání spojení se serverem nové síťové zařízení bnep0. K přiřazení IP adresy tomuto rozhraní se obvykle používá DHCP. V režimu serveru vyžaduje BlueZ název přemosťovacího zařízení, ke kterému může přidat podřízené zařízení pro připojení každého z klientů. Obvykle je vše, co je potřeba, konfigurace adresy pro zařízení bridge a spuštění serveru DHCP plus maskování IP na mostě.

Bluetooth PAN Access Point se Systemd

Autor použil systemd-networkd ke konfiguraci mostu:

SOUBOR /etc/systemd/network/pan.netdev

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

SOUBOR /etc/systemd/network/pan.network

[Match]
Name=pan

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

Nyní potřebujeme, aby BlueZ nakonfiguroval profil NAP. Ukázalo se, že běžné utility BlueZ 5.36 toto neumí. Pokud se autor mýlí, opravte ho: mlang (ví, jak hýbat ušima) slepý (někdy přístupový a kvantový) guru

Ale našel příspěvek na blogu и python skript pro uskutečnění nezbytných volání D-Bus.

Pro usnadnění autor použil službu Systemd ke spuštění skriptu a kontrole, zda jsou závislosti vyřešeny.

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.target

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

Druhý soubor by nebyl potřeba, pokud by Debian měl podporu pro IPMasquerade= (viz níže). #787480).

Po provedení příkazů systemctl daemon-reload и systemctl restart systemd-networkd pomocí příkazu můžete spustit Bluetooth PAN startovací pánev systemctl

Bluetooth PAN klient pomocí Systemd

Klientská strana se také snadno konfiguruje pomocí Systemd.

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

[Match]
Name=bnep*

[Network]
DHCP=yes

SOUBOR /etc/systemd/system/[chráněno e-mailem]

[Unit]
Description=Bluetooth Personal Area Network client

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

Nyní, po opětovném načtení konfigurace, se můžete připojit k určenému přístupovému bodu Bluetooth takto:

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

Párování pomocí příkazového řádku

Konfigurace serveru a klientů musí být samozřejmě provedena po spárování přes Bluetooth. Na serveru musíte spustit bluetoothctl a zadat 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:XX

Po spuštění skenování počkejte několik sekund, dokud se v seznamu neobjeví požadované zařízení. Zapište si jeho adresu a použijte ji s příkazem pair a případně s příkazem trust.

Na straně klienta musíte udělat totéž, ale příkaz trust určitě nebude potřeba. Server jej potřebuje k přijetí připojení profilu NAP bez ručního potvrzení uživatelem.

Autor si není jistý, že se jedná o optimální posloupnost příkazů. Snad to chce jen spárování klienta se serverem a spuštění příkazu trust na serveru, ale to ještě nezkoušel.

Povolení profilu Bluetooth HID

Je vyžadováno, aby „malina“ rozpoznala klávesnici připojenou k braillskému řádku drátem a předávanou samotným displejem přes Bluetooth. Udělejte totéž, ale místo toho agent zapnutý musím dát příkaz Pouze klávesnice agenta a bluetoothctl najde zařízení s HID profilem.

Konfigurace Bluetooth přes příkazový řádek je ale ošemetná.

Autor sice zvládl vše nakonfigurovat, ale chápe, že konfigurace BlueZ přes příkazový řádek je nepohodlná. Nejprve si myslel, že agenti jsou potřeba pouze pro zadávání PIN kódů, ale ukázalo se například, že pro aktivaci HID profilu je potřeba zadat „agent KeyboardOnly“. Ke spuštění Bluetooth PAN je překvapivě potřeba prolézt úložiště a hledat ten správný skript. Pamatuje si, že v předchozí verzi BlueZ na to byl hotový nástroj. pand - kde dělá v BlueZ 5? Najednou se objevilo nové řešení, autorovi neznámé, ale ležící na povrchu?

Производительность

Rychlost přenosu dat byla asi 120 kbps, což je docela dost. 1GHz procesor ARM je velmi rychlý pro rozhraní příkazového řádku. Autor stále plánuje na zařízení používat hlavně ssh a emacs.

Konzolové fonty a rozlišení obrazovky

Výchozí rozlišení obrazovky používané framebufferem na Raspberry Pi Zero je poněkud zvláštní: fbset jej hlásí jako 656 x 416 pixelů (samozřejmě bez připojeného monitoru). S konzolovým písmem 8x16 jsme dostali 82 znaků na řádek a 26 řádků.

Práce se 40znakovým braillským displejem v tomto režimu je nepohodlná. Autor by také chtěl, aby znaky Unicode byly zobrazeny v Braillově písmu. Naštěstí Linux podporuje 512 znaků a většina konzolových fontů má 256. S konzolovým nastavením můžete použít dva 256znakové fonty dohromady. Autor přidal následující řádky do souboru /etc/default/console-setup:

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

Poznámka: Chcete-li zpřístupnit font brl-16x8.psf, musíte nainstalovat konzolové braillské písmo.

Co bude dál?

Braillský displej má 3,5mm jack, ale o adaptérech pro snímání zvuku z Mini-HDMI autor neví. Autor nemohl použít zvukovou kartu zabudovanou do „maliny“ (zvláštní, překladatel si byl jistý, že Zero žádnou nemá, ale existují způsoby, jak vyvést zvuk pomocí PWM do GPIO). Plánuje použití USB-OTG hubu a připojení externí karty a výstupu zvuku do reproduktoru zabudovaného v braillském řádku. Z nějakého důvodu nefungovaly dvě externí karty, nyní hledá podobné zařízení na jiném čipsetu.

Je také nepohodlné ručně vypnout „malinu“, počkat několik sekund a vypnout braillský displej. A to vše proto, že když je vypnutý, odebírá napájení z konektoru v přihrádce. Autor plánuje do přihrádky umístit malou vyrovnávací baterii a prostřednictvím GPIO informovat „malinu“ o vypnutí displeje, aby se začal vypínat. Taková je UPS v miniatuře.

Obraz systému

Pokud máte stejný braillský řádek a chtěli byste s ním udělat to samé, autor vám rád poskytne hotový obraz systému (založený na Raspbian Stretch). Napište mu o tom na výše uvedenou adresu. V případě dostatečného počtu zájemců je dokonce možné vydat stavebnice, které obsahují vše potřebné pro takový remake.

Poděkování

Děkuji Dave Mielke za korekturu textu.

Za fotoilustraci děkujeme Simonu Kainzovi.

Děkuji kolegům z Technické univerzity v Grazu za rychlé uvedení autora do světa Raspberry Pi.

PS První tweet autor na toto téma (neotevírá - překladatel) vznikl pouhých pět dní před vydáním originálu tohoto článku a lze předpokládat, že s výjimkou problémů se zvukem je úkol prakticky vyřešen. Mimochodem, konečnou verzi textu autor upravil z vytvořeného „soběstačného braillského řádku“ a připojil jej přes SSH ke svému domácímu počítači.

Zdroj: www.habr.com

Přidat komentář