Raspberry Pi Zero vo vnútri Braillovho displeja Handy Tech Active Star 40

Raspberry Pi Zero vo vnútri Braillovho displeja Handy Tech Active Star 40

Autor umiestnil Raspberry Pi Zero, Bluetooth píšťalku a kábel do svojho nového Braillovho displeja Handy Tech Active Star 40. Zabudovaný port USB poskytuje napájanie. Výsledkom bol sebestačný počítač bez monitora na ARM s operačným systémom Linux, vybavený klávesnicou a Braillovým displejom. Môžete ho nabíjať/napájať cez USB, vr. z powerbanky alebo solárnej nabíjačky. Preto sa bez prúdu zaobíde niekoľko hodín, no niekoľko dní.

Raspberry Pi Zero vo vnútri Braillovho displeja Handy Tech Active Star 40

Rozmerová diferenciácia Braillovho písma

V prvom rade sa líšia dĺžkou čiary. Zariadenia s kapacitou 60 a viac sú vhodné na prácu so stolným počítačom, zatiaľ čo zariadenia s kapacitou 40 sú vhodné na prenášanie s notebookom. Teraz sú k smartfónom a tabletom pripojené braillovské displeje s dĺžkou riadku 14 alebo 18 znakov.

V minulosti boli Braillovo písmo pomerne masívne. Napríklad 40-miestny notebook mal veľkosť a hmotnosť ako 13-palcový notebook. Teraz pri rovnakom počte známych sú dostatočne miniatúrne na to, aby ste si displej mohli položiť pred notebook, a nie notebook na displej.

To je, samozrejme, lepšie, no stále nie je príliš pohodlné držať na kolenách dve samostatné zariadenia. Keď pracujete pri stole, neexistujú žiadne sťažnosti, ale stojí za to si uvedomiť, že laptop sa nazýva laptop iným menom, a pokúsiť sa ospravedlniť jeho meno, pretože sa ukázalo, že miniatúrny 40-znakový displej je ešte menej pohodlný.

Autor teda čakal na vydanie dlho sľubovaného nového modelu zo série Handy Tech Star. Už v roku 2002 vyšiel predchádzajúci model Handy Tech Braille Star 40, kde plocha tela postačuje na to, aby sa naň umiestnil notebook. A ak sa nezmestí, je tu výsuvný stojan. Teraz bol tento model nahradený Active Star 40, ktorý je takmer rovnaký, ale s modernizovanou elektronikou.

Raspberry Pi Zero vo vnútri Braillovho displeja Handy Tech Active Star 40

A výsuvný stojan zostáva:

Raspberry Pi Zero vo vnútri Braillovho displeja Handy Tech Active Star 40

Najpohodlnejšia vec na novom produkte je však priehlbina veľkosti približne ako smartfón (pozri KDPV). Otvorí sa, keď sa plošina posunie späť. Ukázalo sa, že je nepohodlné držať tam smartfón, ale musíte nejako využiť prázdnu priehradku, v ktorej je dokonca aj elektrická zásuvka.

Prvá vec, ktorú autor vymyslel, bolo umiestniť tam Raspberry Pi, no pri kúpe displeja sa ukázalo, že stojan zakrývajúci priehradku sa s „malinou“ nezasunul. Ak by bola doska len o 3 mm tenšia...

Ale kolega mi povedal o vydaní Raspberry Pi Zero, ktoré sa ukázalo byť také miniatúrne, že sa do priehradky zmestili dve... alebo možno aj tri. Bol okamžite objednaný spolu s 64 GB pamäťovou kartou, Bluetooth, „píšťalkou“ a káblom Micro USB. O niekoľko dní to všetko prišlo a vidiaci priatelia pomohli autorovi pripraviť mapu. Všetko hneď fungovalo ako malo.

Čo sa pre to urobilo

Na zadnej strane Handy Tech Active Star 40 sú dva USB porty pre zariadenia, ako sú klávesnice. Súčasťou balenia je malá klávesnica s magnetickým držiakom. Keď je klávesnica pripojená a samotný displej funguje cez Bluetooth, počítač ho navyše rozpozná ako Bluetooth klávesnicu.

Ak teda pripojíte Bluetooth „píšťalku“ k Raspberry Pi Zero umiestnenému v priehradke na smartfón, bude môcť komunikovať s Braillovým displejom cez Bluetooth pomocou BRLTTY, a ak k displeju pripojíte aj klávesnicu, „malina“ bude fungovať aj s ním.

To však nie je všetko. Samotná „malina“ má zase prístup na internet cez Bluetooth PAN z akéhokoľvek zariadenia, ktoré to podporuje. Autor si podľa toho nakonfiguroval svoj smartfón a počítače doma aj v práci, no v budúcnosti tomu plánuje prispôsobiť ďalšiu „malinu“ – klasickú, nie Zero, pripojenú na Ethernet a ďalšiu Bluetooth „píšťalku“.

BlueZ 5 a PAN

Použitie metódy konfigurácie PAN Bluez sa ukázalo ako nejednoznačné. Autor našiel skript bt-pan Python (pozri nižšie), ktorý vám umožňuje nakonfigurovať PAN bez GUI.

Môže sa použiť na konfiguráciu servera aj klienta. Po prijatí príslušného príkazu cez D-Bus pri práci v klientskom režime okamžite po nadviazaní spojenia so serverom vytvorí nové sieťové zariadenie bnep0. Typicky sa DHCP používa na priradenie IP adresy tomuto rozhraniu. V serverovom režime vyžaduje BlueZ názov premosťovacieho zariadenia, ku ktorému môže pridať podriadené zariadenie na pripojenie každého klienta. Konfigurácia adresy pre mostové zariadenie a spustenie servera DHCP plus maskovanie IP na moste je zvyčajne všetko, čo sa vyžaduje.

Prístupový bod Bluetooth PAN so systémom Systemd

Na konfiguráciu mosta autor použil systemd-networkd:

Súbor /etc/systemd/network/pan.netdev

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

Súbor /etc/systemd/network/pan.network

[Match]
Name=pan

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

Teraz musíme prinútiť BlueZ, aby nakonfiguroval profil NAP. Ukázalo sa, že to nemožno urobiť so štandardnými utilitami BlueZ 5.36. Ak sa autor mýli, opravte ho: mlang (môže hýbať ušami) slepý (niekedy prístupový a kvantový) guru

Ale našiel príspevok v blogu и Python skript na uskutočnenie potrebných hovorov na D-Bus.

Pre pohodlie autor použil službu Systemd na spustenie skriptu a kontrolu, či sú závislosti vyriešené.

Súbor /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

Súbor /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ý súbor by nebol potrebný, ak by Debian mal podporu IPMasquerade= (pozri nižšie). # 787480).

Po vykonaní príkazov systemctl daemon-reload и systemctl reštart systemd-networkd pomocou príkazu môžete spustiť Bluetooth PAN štartovacia panva systemctl

Bluetooth PAN klient pomocou Systemd

Klientska strana sa tiež ľahko konfiguruje pomocou Systemd.

Súbor /etc/systemd/network/pan-client.network

[Match]
Name=bnep*

[Network]
DHCP=yes

Súbor /etc/systemd/system/[chránené e-mailom]

[Unit]
Description=Bluetooth Personal Area Network client

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

Teraz, po opätovnom načítaní konfigurácie, sa môžete pripojiť k určenému prístupovému bodu Bluetooth takto:

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

Párovanie pomocou príkazového riadku

Samozrejme, konfiguráciu servera a klientov je potrebné vykonať po spárovaní cez Bluetooth. Na serveri musíte spustiť bluetoothctl a zadať mu prí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 spustení skenovania počkajte niekoľko sekúnd, kým sa v zozname nezobrazí požadované zariadenie. Zapíšte si jeho adresu a použite ju zadaním príkazu pair a v prípade potreby príkazu trust.

Na strane klienta musíte urobiť to isté, ale príkaz dôvery rozhodne nie je potrebný. Server ho potrebuje na prijatie pripojenia pomocou profilu NAP bez manuálneho potvrdenia používateľom.

Autor si nie je istý, či ide o optimálnu postupnosť príkazov. Možno všetko, čo je potrebné, je spárovať klienta so serverom a spustiť príkaz trust na serveri, ale toto ešte neskúšal.

Povolenie profilu HID Bluetooth

Vyžaduje sa, aby Raspberry rozpoznal klávesnicu pripojenú k Braillovmu displeju drôtom a prenášaný samotným displejom cez Bluetooth. To sa robí rovnakým spôsobom, len namiesto toho agent zapnutý treba dať príkaz Iba klávesnica agenta a bluetoothctl nájde zariadenie s HID profilom.

Ale nastavenie Bluetooth cez príkazový riadok je trochu komplikované

Hoci sa autorovi podarilo všetko nakonfigurovať, chápe, že konfigurácia BlueZ cez príkazový riadok je nepohodlná. Najprv si myslel, že agenti sú potrební iba na zadávanie PIN kódov, ale ukázalo sa napríklad, že na aktiváciu profilu HID musíte zadať „agent KeyboardOnly“. Je prekvapujúce, že na spustenie Bluetooth PAN musíte preliezť úložiská a hľadať požadovaný skript. Pamätá si, že v predchádzajúcej verzii BlueZ bol na to pripravený nástroj pand - kde robí v BlueZ 5? Zrazu sa objavilo nové riešenie, autorovi neznáme, no ležiace na povrchu?

produktivita

Rýchlosť prenosu dát bola približne 120 kbit/s, čo je celkom dosť. 1GHz procesor ARM je veľmi rýchly pre rozhranie príkazového riadku. Autor stále plánuje na zariadení používať hlavne ssh a emacs.

Písma konzoly a rozlíšenie obrazovky

Predvolené rozlíšenie obrazovky používané framebufferom na Raspberry Pi Zero je dosť zvláštne: fbset ho uvádza ako 656 x 416 pixelov (samozrejme bez pripojeného monitora). Pri konzolovom fonte 8×16 bolo 82 znakov na riadok a 26 riadkov.

V tomto režime je nepohodlné pracovať so 40-znakovým Braillovým displejom. Autor by tiež rád videl znaky Unicode zobrazené v Braillovom písme. Našťastie Linux podporuje 512 znakov a väčšina konzolových fontov má 256. Pomocou konzolového nastavenia môžete použiť dva 256-znakové fonty spolu. Autor pridal nasledujúce riadky do súboru /etc/default/console-setup:

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

Poznámka: Ak chcete sprístupniť písmo brl-16×8.psf, musíte si nainštalovať konzolové Braillovo písmo.

Čo bude ďalej?

Braillov displej má 3,5mm jack, no autorovi nie sú známe adaptéry na príjem audiosignálu z Mini-HDMI. Autor nemohol použiť zvukovú kartu zabudovanú v Raspberry (čudo, prekladateľ si bol istý, že Zero ju nemá, ale existujú spôsoby, ako vyviesť zvuk pomocou PWM do GPIO). Plánuje použiť rozbočovač USB-OTG a pripojiť externú kartu a vydávať zvuk do reproduktora zabudovaného v Braillovom displeji. Z nejakého dôvodu nefungovali dve externé karty, teraz hľadá podobné zariadenie na inom čipsete.

Je tiež nepohodlné manuálne vypnúť „malinu“, počkať niekoľko sekúnd a vypnúť Braillov displej. A to všetko preto, že keď je vypnutý, odpojí napájanie z konektora v priehradke. Autor plánuje do priehradky umiestniť malú vyrovnávaciu batériu a cez GPIO informovať Raspberry o vypnutí displeja, aby mohol začať vypínať svoju prácu. Toto je miniatúrny zdroj UPS.

Obraz systému

Ak máte rovnaký Braillov displej a chceli by ste s ním urobiť to isté, autor je pripravený poskytnúť hotový obraz systému (založený na Raspbian Stretch). Napíšte mu o tom na vyššie uvedenú adresu. Pri dostatočnom počte záujemcov je dokonca možné vydať stavebnice, ktoré obsahujú všetko potrebné na takúto úpravu.

Poďakovanie

Ďakujem Daveovi Mielkemu za korektúru.

Za fotoilustrácie ďakujeme Simonovi Kainzovi.

Ďakujem svojim kolegom z Technickej univerzity v Grazi za rýchle uvedenie autora do sveta Raspberry Pi.

PS Prvý tweet autora na túto tému (neotvára - prekladateľ) bola vyhotovená len päť dní pred zverejnením originálu tohto článku a dá sa považovať, že s výnimkou problémov so zvukom bola úloha prakticky vyriešená. Mimochodom, autor upravil konečnú verziu textu z „sebestačného Braillovho displeja“, ktorý vyrobil, a pripojil ho cez SSH k svojmu domácemu počítaču.

Zdroj: hab.com

Pridať komentár