
A szerző a Raspberry Pi Zero-t, egy Bluetooth „adaptert” és egy kábelt helyezett el az új Handy Tech Active Star 40 braille kijelzőjében. A beépített USB port biztosítja az áramellátást. Így egy önálló, monitor nélküli, ARM architektúrájú számítógépet kapunk Linux operációs rendszerrel, billentyűzettel és braille kijelzővel. USB-n keresztül, például power bankról vagy napenergia töltőről is lehet tölteni/energiaforráshoz csatlakoztatni. Ezért akár napokig is képes működni hálózati áramforrás nélkül, nem csak órákig.

A braille kijelzők méretbeli differenciálása
Elsősorban a sorhosszúságukban különböznek. A 60 vagy több karakterhelyes eszközök jól használhatók asztali számítógépek mellett, míg a 40 karakterhelyesek kényelmesebbek a laptopokkal való hordozás során. Jelenleg léteznek olyan braille kijelzők is, amelyek okostelefonokhoz és táblagépekhez csatlakoztathatók, 14 vagy 18 karakterhelyes vezetéssel.
A múltban a braille kijelzők meglehetősen nagyok voltak. Például egy 40 karakterhelyes, akkora volt, mint egy 13 hüvelykes laptop. Mostanra ugyanannyi karakterhellyel már kellően kicsik ahhoz, hogy a kijelzőt a laptop elé lehessen helyezni, ne pedig a laptopot a kijelzőre.
Ez természetesen jobb, de így is kényelmetlen két külön eszközt az ölében tartani. Amikor az asztalnál dolgozik, nincs panasz, de érdemes megjegyezni, hogy a laptop más néven lepte, és próbálva igazolni ezt a nevét, kiderül, hogy a kicsi, 40 karakterhelyes kijelző még kényelmetlenebb.
Úgyhogy a szerző megvárta a régóta ígért új modellt a Handy Tech Star sorozatban. Már 2002-ben megjelent a korábbi modellt, a Handy Tech Braille Star 40-et, ahol a ház mérete elegendő volt ahhoz, hogy a laptopot a tetejére helyezze. Ha azonban nem fér el, van egy kihúzható állvány is. Most ezt a modellt az Active Star 40 váltotta fel, ami gyakorlatilag ugyanaz, de modernizált elektronikával rendelkezik.

És a kihúzható állvány megmaradt:

De a legkényelmesebb a újdonságban az a bemélyedés, amely körülbelül okostelefon méretű (lásd KDPV). Hátra húzva nyílik meg. Kiderült, hogy ott tartani a smartphont nem kényelmes, de valahogy hasznosítani kell a üres helyet, amelyben még áramellátási kimenet is található.
Az első dolog, amit a szerző kitalált, hogy belehelyez egy Raspberry Pi-t, de amikor a kijelzőt megvásárolta, kiderült, hogy a 'málna' miatt nem tudja betenni a nyílás fedelét. Ha csak a tábla 3 mm-rel vékonyabb lett volna...
De a kolléga mesélt a Raspberry Pi Zero megjelenéséről, amely annyira kicsi, hogy a nyílásba kettőt is bele lehetett volna tenni... vagy talán hármat is. Azonnal megrendelte, együtt egy 64 GB-os memóriakártyával, Bluetooth-szal, egy 'dongle'-lal és egy Micro USB kábellel. Néhány nap múlva mindez megérkezett, és a látó barátok segítettek a memóriakártya előkészítésében. Minden azonnal működött, ahogy kell.
Mit tettek ezért
A Handy Tech Active Star 40 hátoldalán két USB-port található olyan eszközök számára, mint a billentyűzetek. Egy mágneses rögzítésű billentyűzet is tartozik hozzá. Amikor a billentyűzet csatlakozik, és a kijelző Bluetooth-on működik, a számítógép ezt még Bluetooth-billentyűzetként is felismeri.
Így, ha a telefonnyílásba helyezett Raspberry Pi Zero-ra csatlakoztatnak egy Bluetooth-'dongle'-t, az képes lesz adatokat cserélni a Braille kijelzővel Bluetooth-on keresztül , és ha a kijelzőhöz billentyűzetet is csatlakoztatnak, a 'málna' vele is működni fog.
De ez még nem minden. Maga a 'málna' Bluetooth PAN-en keresztül internethez is hozzáférhet bármely olyan eszközről, amely támogatja ezt. A szerző megfelelően beállította az okostelefonját és a számítógépeit otthon és a munkahelyén, de a jövőben még egy másik 'málna' -t is szeretne alkalmazni - egy klasszikusat, nem Zero-t, Ethernethez és egy másik Bluetooth-'dongle'-hez csatlakoztatva.
BlueZ 5 és PAN
A PAN konfigurálásának módja nem volt egyértelmű. A szerző talált egy Pyhton-skriptet, a bt-pan-t (lásd alább), ami lehetővé teszi a PAN konfigurálását GUI nélkül.
Ennek segítségével beállítható mind a szerver, mind az ügyfél. A megfelelő D-Bus parancs fogadásakor ügyfél üzemmódban új bnep0 hálózati eszközt hoz létre közvetlenül a szerverrel való kapcsolatfelvétel után. Általában a DHCP-t használják ennek az interfésznek az IP-címének kijelölésére. Szerver üzemmódban a BlueZ megköveteli a híd eszköz nevét, amelyhez egy ismert eszközt hozzáadhat minden egyes ügyfél csatlakoztatásához. A híd eszközének címét konfigurálni és elindítani a DHCP-szervert plusz az IP-maszkodást a hídon - általában minden, ami szükséges.
Bluetooth PAN hozzáférési pont Systemd-vel
A híd konfigurálásához a szerző a systemd-networkd-t alkalmazta:
Fájl: /etc/systemd/network/pan.netdev
[NetDev]
Name=pan
Kind=bridge
ForwardDelaySec=0Fájl: /etc/systemd/network/pan.network
[Match]
Name=pan
[Network]
Address=0.0.0.0/24
DHCPServer=yes
IPMasquerade=yesMost arra van szükség, hogy a BlueZ konfigurálja a NAP profilt. Kiderült, hogy a BlueZ 5.36 alapértelmezett eszközeivel ezt nem lehet megtenni. Ha a szerző téved, javítsák ki: mlang (tudja mozgatni a füleit) blind (van hozzáférés és kvantum) guru
De megtalálta és a szükséges D-Bus hívások végrehajtásához.
A kényelem kedvéért a szerző Systemd szolgáltatást használt a szkript elindítására és a függőségek engedélyezésének ellenőrzésére.
Fájl: /etc/systemd/system/pan.service
[Unit]
Description=Bluetooth Személyes Terület Hálózat
After=bluetooth.service systemd-networkd.service
Requires=systemd-networkd.service
PartOf=bluetooth.service
[Service]
Type=notify
ExecStart=/usr/local/sbin/pan
[Install]
WantedBy=bluetooth.targetFájl: /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 panA második fájlra nem lett volna szükség, ha a Debian támogatná az IPMasquerade= (lásd: ).
A parancsok végrehajtása után systemctl daemon-reload és systemctl restart systemd-networkd el lehet indítani a Bluetooth PAN-t a következő paranccsal systemctl start pan
Bluetooth PAN kliens Systemd-vel
A kliens részét is könnyen konfigurálhatjuk Systemd segítségével.
Fájl: /etc/systemd/network/pan-client.network
[Match]
Name=bnep*
[Network]
DHCP=yesFájl: /etc/systemd/system/pan@.service
[Unit]
Description=Bluetooth Személyes Terület Hálózat kliens
[Service]
Type=notify
ExecStart=/usr/local/sbin/bt-pan --debug --systemd client %I --waitMost a konfiguráció újraindítása után csatlakozhat a megadott Bluetooth hozzáférési ponthoz így:
systemctl start pan@00:11:22:33:44:55Párosítás parancssoron keresztül
Természetesen a szerver és a kliensek konfigurálását a Bluetooth párosítása után kell elvégezni. A szerveren el kell indítani a bluetoothctl-t és az alábbi parancsokat kell kiadni:
power on
agent on
default-agent
scan on
scan off
pair XX:XX:XX:XX:XX:XX
trust XX:XX:XX:XX:XX:XXA keresés elindítása után várjon néhány másodpercet, amíg a kívánt eszköz megjelenik a listában. Jegyezze fel a címét, és használja a pair parancsot, szükség esetén a trust parancsot is.
A kliens részéről ugyanezt meg kell tenni, de a trust parancsra nincs szükség. A szervernek szüksége van rá, hogy a NAP profillal kézi megerősítés nélkül fogadja a kapcsolatot.
A szerző nem biztos abban, hogy ez az optimális parancsok sorrendje. Lehet, hogy a szükséges csak a kliens szerverhez való párosítása és a trust parancs végrehajtása a szerveren, de ezt még nem próbálta.
A Bluetooth HID profil használatának engedélyezése
Szükséges, hogy a "malinka" észlelje a braille kijelzőhöz vezetékesen csatlakoztatott billentyűzetet, és amelyet a kijelző már Bluetooth-on át is továbbított. Ugyanúgy történik, csak helyette agent on meg kell adni a parancsot agent KeyboardOnly és a bluetoothctl megtalálja a HID profilú eszközt.
De a Bluetooth konfigurálása a parancssorból elég nehézkes
Bár a szerzőnek sikerült mindent konfigurálnia, tisztában van azzal, hogy a BlueZ parancssorból történő konfigurálása nem kényelmes. Eleinte azt gondolta, hogy az ügynökek csak a PIN-kódok bevitelére szükségesek, de kiderült, például, hogy a HID profil engedélyezéséhez be kell írni az "agent KeyboardOnly" parancsot. Megdöbbentő, hogy a Bluetooth PAN indításához repozitóriumokban kell kutatni a szükséges szkript után. Emlékszik, hogy a BlueZ korábbi verziójában erre volt egy kész eszköz pand — hol tűnt el a BlueZ 5-ből? Talán új megoldás jelent meg, amiről a szerző nem tud, de ami a felszínen van?
Teljesítmény
Az adatátviteli sebesség körülbelül 120 kbit/s volt, ami elegendő. Az 1 GHz-es ARM processzor nagyon gyors a parancssoros interfészen. A szerző ettől függetlenül a készüléken főleg ssh-t és emacs-ot tervez használni.
Konzolbetűtípusok és képernyőfelbontás
A Raspberry Pi Zero által alapértelmezésben használt framebuffer képernyőfelbontása meglehetősen különös: a fbset azt jelzi, hogy 656×416 pixel (a monitor természetesen nincs csatlakoztatva). A 8×16-os konzolbetűtípussal 82 karaktert kaptunk soronként és 26 sort.
A 40 karakteres braille kijelzőn ilyen módon dolgozni kényelmetlen. A szerző azt is szeretné, ha a Unicode jelek braille formában jelenhetnének meg a kijelzőn. Szerencsére a Linux 512 karaktert támogat, míg a legtöbb konzolbetűtípus 256-ot. A console-setup segítségével két 256 karakteres betűtípus használható együtt. A szerző hozzáadta a következő sorokat a /etc/default/console-setup fájlhoz:
SCREEN_WIDTH=80
SCREEN_HEIGHT=25
FONT="Lat15-Terminus16.psf.gz brl-16x8.psf"Megjegyzés: ahhoz, hogy a brl-16×8.psf betűtípus elérhetővé váljon, telepíteni kell a console-braille-t.
Mi következik?
A Braille display has a 3.5mm jack, but the author is unaware of adapters for extracting audio signals from Mini-HDMI. The author was unable to utilize the built-in sound card in the 'raspberry' (strangely, the translator was sure that the Zero does not have one, but there are ways to output sound via PWM on GPIO). He plans to use a USB-OTG hub and connect an external sound card to output sound to the built-in speaker of the Braille display. Two external cards somehow did not work, and he is currently looking for a similar device with a different chipset.
It is also inconvenient to manually disconnect the 'raspberry', wait a few seconds, and then disconnect the Braille display. This is because it turns off the power from the connector in the compartment upon disconnection. The author plans to place a small buffer battery in the compartment and notify the 'raspberry' of the display's disconnection via GPIO so that it can begin the shutdown process. A miniature UPS of sorts.
System Image
If you have the same Braille display and want to do the same, the author is ready to provide the ready-made system image (based on Raspbian Stretch). Contact him about this at the address provided above. If there are enough interested parties, there might even be a release of kits that include everything necessary for such a conversion.
Köszönetnyilvánítások
Thanks to Dave Mielke for proofreading the text.
Thanks to Simon Kainz for the photo illustrations.
Thanks to colleagues at Graz University of Technology for quickly introducing the author to the world of Raspberry Pi.
P.S. by the author on this topic (not opening — translator) was made just five days before the publication of the original article, and it can be said that except for the sound issues, the task set is practically solved. By the way, the author edited the final version of the text using the 'self-sufficient Braille display' he made, connecting it via SSH to his home computer.
Forrás: habr.com
