
Autors ievietoja Raspberry Pi Zero, Bluetooth «atslēgu» un kabeli savā jaunajā Braila displejā Handy Tech Active Star 40. Iebūvētais USB ports nodrošina barošanu. Rezultātā izveidojies patstāvīgs monitoram neparedzēts dators uz ARM ar Linux operētājsistēmu, aprīkots ar klaviatūru un Braila displeju. To var uzlādēt/pabarot caur USB, tajā skaitā no portatīvā akumulatora vai saules lādētāja. Tāpēc tas var iztikt bez strāvas tīkla ne vairākas stundas, bet pat vairākas dienas.

Braila displeju izmēru diferencēšana
Pirmkārt, tie atšķiras ar rindu garumu. Ierīces ar 60 un vairāk zīmēm ir labas darbam ar galda datoru, savukārt 40 - ērtas pārvadāšanai kopā ar klēpjdatoru. Šobrīd ir pieejami arī Braila displeji, kas savienojas ar viedtālruņiem un planšetdatoriem, ar rindu garumu 14 vai 18 zīmēm.
Iepriekš Braila displeji bija diezgan masīvi. Piemēram, 40 zīmju displejs bija līdzīgs 13 collu klēpjdatoram gan izmēru, gan svara ziņā. Tagad tie ir pietiekami kompakti, lai varētu novietot displeju priekšā klēpjdatora, nevis klēpjdatoru uz displeja.
Tas, protams, ir labāk, bet joprojām nav ļoti ērti turēt divas atsevišķas ierīces uz ceļgaliem. Strādājot pie galda, nav sūdzību, bet jāatceras, ka klēpjdators citādi saucas arī par lejtapu, un mēģinot attaisnot šo nosaukumu, izrādās, ka mini 40 zīmju displejs pat ir mazāk ērts.
Tāpēc autors gaidīja ilgi solītā jaunā modeļa izlaišanu sērijā Handy Tech Star. Jau 2002. gadā tika laista iepriekšējā modeļa Handy Tech Braille Star 40, kur korpusa platība bija pietiekama, lai virs klēpjdatora varētu novietot klēpjdatoru. Ja tas neietilpst, ir paredzēta izvelkama atbalsta kāja. Tagad šo modeli ir aizstājusi Active Star 40, kas praktiski ir tas pats, tikai ar modernizētu elektroniku.

Un izvelkamā atbalsta kāja ir palikusi:

Bet pats ērti jaunajā modelī ir padziļinājums, kura izmērs ir aptuveni kā viedtālrunis (skat. KDPV). Tas tiek atvērts, pārvietojot platformu atpakaļ. Tur iestādīt viedtālruni izrādījās neērti, bet kādā veidā jāizmanto tukšā nodalījuma iekšpuse, kur pat strāvas izeja ir paredzēta.
Pirmais, ko autors izdomāja — ievietot tur Raspberry Pi, bet, kad ekrāns tika iegādāts, izrādījās, ka ar "apelsīnu" nav izstiepjama statīva, kas slēdz iekšdedzes nodalījumu. Ja vien plate būtu tikai par 3 mm plānāka…
Bet kolēģis pastāstīja par Raspberry Pi Zero iznākšanu, kas izrādījās tik miniaturizēts, ka nodalījumā varētu ietilpt divi… vai, iespējams, pat trīs. Tas tika nekavējoties pasūtīts kopā ar 64 GB microSD karti, Bluetooth, "uzlikumu" un Micro USB kabeli. Pēc dažām dienām visa tā lieta ieradās, un redzošie draugi palīdzēja autoram sagatavot karti. Viss nekavējoties sāka darboties kā vajadzētu.
Kas tika izdarīts
Uz aizmugurējā paneļa Handy Tech Active Star 40 ir divi USB porti tādiem ierīcēm kā tastatūras. Ierodamā tastatūra ar magnētisko stiprinājumu ir iekļauta. Kad tastatūra ir pievienota, un pašreizējais ekrāns darbojas caur Bluetooth, dators papildus to atpazīst arī kā Bluetooth tastatūru.
Tādējādi, ja Raspberry Pi Zero, ievietots viedtālruņa nodalījumā, pieslēdz Bluetooth "uzlikumu", tas var apmainīties ar datiem ar Braila ekrānu pa Bluetooth ar , bet, ja vēl pieslēdz pie ekrāna tastatūru — "apelsīns" darbosies arī ar to.
Bet tas vēl nav viss. Pats "apelsīns" savukārt var piekļūt internetam, izmantojot Bluetooth PAN no jebkuras atbalstošas ierīces. Autors atbilstoši konfigurēja savu viedtālruni un datorus mājās un darbā, bet nākotnē plāno pielāgot tam vēl vienu "apelsīnu" — klasisku, ne Zero, pieslēgtu pie Ethernet un cita Bluetooth "uzlikuma".
BlueZ 5 un PAN
PAN konfigurēšanas metode, izmantojot , izrādījās ne acīmredzama. Autors atrada Pyhton skriptu bt-pan (skatīt zemāk), kas ļauj konfigurēt PAN bez GUI.
Ar tā palīdzību var konfigurēt gan serveri, gan klientu. Saņemot attiecīgo komandu pa D-Bus, strādājot klienta režīmā, tas izveido jaunu tīkla ierīci bnep0 tūlīt pēc savienojuma izveides ar serveri. Parasti šai saskarnei IP adrese tiek piešķirta, izmantojot DHCP. Servera režīmā BlueZ prasa norādīt tilta ierīces nosaukumu, kurā tas var pievienot pēc zināmas ierīces, lai pieslēgtu katru no klientiem. Konfigurēt adresi tiltam un palaist DHCP serveri plus IP maskēšanu uz tilta — parasti viss, kas nepieciešams.
Bluetooth PAN punkts ar Systemd
Bridge konfigurācijai autors ir izmantojis systemd-networkd:
Fails /etc/systemd/network/pan.netdev
[NetDev]
Name=pan
Kind=bridge
ForwardDelaySec=0Fails /etc/systemd/network/pan.network
[Match]
Name=pan
[Network]
Address=0.0.0.0/24
DHCPServer=yes
IPMasquerade=yesTagad ir jāpanāk, lai BlueZ konfigurētu NAP profilu. Izrādījās, ka ar BlueZ 5.36 to izdarīt nav iespējams, izmantojot noklusējuma rīkus. Ja autors kļūdās, lūdzu, to labojiet: mlang (spēj pārvietot ausis) blind (ir pieejams arī kvantu) guru
Bet viņš atrada un lai veiktu nepieciešamos izsaukumus uz D-Bus.
Lai atvieglotu, autors izmantoja Systemd pakalpojumu skripta palaišanai un atkarību atļauju pārbaudei.
Fails /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.targetFails /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 panOtrais fails nebūtu nepieciešams, ja Debian atbalstītu IPMasquerade= (skat. ).
Pēc komandu izpildes systemctl daemon-reload un systemctl restart systemd-networkd var uzsākt Bluetooth PAN ar komandu systemctl start pan
Bluetooth PAN klients ar Systemd
Klientu daļu ir viegli konfigurēt, izmantojot Systemd.
Fails /etc/systemd/network/pan-client.network
[Match]
Name=bnep*
[Network]
DHCP=yesFails /etc/systemd/system/pan@.service
[Unit]
Description=Bluetooth Personal Area Network klients
[Service]
Type=notify
ExecStart=/usr/local/sbin/bt-pan --debug --systemd client %I --waitTagad pēc konfigurācijas pārstartēšanas var pieslēgties norādītajam Bluetooth piekļuves punktam šādi:
systemctl start pan@00:11:22:33:44:55Pārošana, izmantojot komandu rindu
Protams, servera un klientu konfigurācija jāpaveic pēc to pārošanas pa Bluetooth. Serverī ir jāsāk bluetoothctl un jāizpilda šādas komandas:
power on
agent on
default-agent
scan on
scan off
pair XX:XX:XX:XX:XX:XX
trust XX:XX:XX:XX:XX:XXUzsākot skenēšanu, pagaidiet dažas sekundes, līdz sarakstā parādās jūs interesējošais ierīce. Pierakstiet tās adresi un izmantojiet to, izpildot komandu pair, un, ja nepieciešams, arī komandu trust.
Klientam ir jāveic tas pats, bet komanda trust noteikti nebūs nepieciešama. Serverim tā ir nepieciešama, lai pieņemt savienojumu ar NAP profilu bez manuāla apstiprinājuma no lietotāja.
Autors nav pārliecināts, vai šī ir optimālā komandu secība. Iespējams, viss, kas nepieciešams, ir klienta pārošana ar serveri un komandas trust izpilde serverī, bet tā viņš vēl nav mēģinājis.
Bluetooth HID profila izmantošanas atļauja
Ir nepieciešams, lai «malinka» atpazītu tastatūru, kas pievienota braila displejam ar vadu un pārraidīta jau pašam displejam pa Bluetooth. To darīt tāpat, tikai vietā agent on jānosūta komanda agent KeyboardOnly un bluetoothctl atradīs ierīci ar HID profilu.
Taču Bluetooth iestatīšana caur komandu rindu ir sarežģīta.
Lai gan autoram izdevās visu konfigurēt, viņš saprot, ka BlueZ iestatīšana caur komandu rindu ir neērta. Sākumā viņš domāja, ka aģenti ir nepieciešami tikai PIN-kodu ievadei, tomēr izrādījās, piemēram, ka HID profila aktivizēšanai jāievada «agent KeyboardOnly». Ir pārsteidzoši, ka Bluetooth PAN aktivizēšanai vajadzēja meklēt vajadzīgo skriptu repozitorijos. Viņš atceras, ka iepriekšējā BlueZ versijā šim mērķim bija gatavs rīks pand — kur tad tas pazuda BlueZ 5? Iespējams, ir parādījies jauns risinājums, kas autoram nav zināms, bet ir acīmredzams?
Veiktspēja
Datu pārraides ātrums bija aptuveni 120 kbit/s, kas ir pilnīgi pietiekami. 1 GHz ARM procesors ir ļoti ātrs komandu rindu saskarnei. Autoram joprojām plānots izmantot ierīcē galvenokārt ssh un emacs.
Konsoles fonti un ekrāna izšķirtspēja
Ekrāna izšķirtspēja, ko izmanto framebuffer Raspberry Pi Zero pēc noklusējuma, ir diezgan dīvaina: fbset ziņo, ka tā ir 656×416 pikseļi (monitorš, protams, nav pievienots). Izmantojot konsoles fontu 8×16, iznāk 82 simboli rindā un 26 rindas.
Darbs ar braila displeju ar 40 zīmēm šādā veidā nav ērts. Tāpat autoram gribētos, lai ekrānā tiek attēloti Unicode raksti braila veidā. Par laimi, Linux atbalsta 512 simbolus, bet lielākajā daļā konsoles fontu ir 256. Izmantojot console-setup, var apvienot divus 256 simbolu fontus. Autors pievienoja šādas rindas failam /etc/default/console-setup:
SCREEN_WIDTH=80
SCREEN_HEIGHT=25
FONT="Lat15-Terminus16.psf.gz brl-16x8.psf"Piezīme: lai kļūtu pieejams fonts brl-16×8.psf, ir jāinstalē console-braille.
Kas tālāk?
Braila displejā ir 3,5 mm «jack», taču autoram nav zināmi adapteri, lai iegūtu audio signālu no Mini-HDMI. Autoram neizdevās izmantot iebūvēto «mašīnītes» skaņas karti (dīvaini, tulkotājs bija pārliecināts, ka Zero tādas nav, bet ir veidi, kā izvadīt skaņu ar PWM uz GPIO). Viņš plāno izmantot USB-OTG hub un pievienot ārējo karti, lai izvadītu skaņu uz iebūvēto braila displeja skaļruni. Divas ārējās kartes kādā iemesla dēļ neiedarbojās, tagad viņš meklē līdzīgu ierīci ar citu čipu.
Vēl nav ērti manuāli atslēgt «mašīnīti», gaidīt dažas sekundes un atslēgt braila displeju. Un viss tāpēc, ka tas, atslēdzoties, izslēdz barošanu no ligzdas nodalījumā. Autors plāno ievietot nodalījumā nelielu buferakumulatoru un caur GPIO paziņot «mašīnītei» par displeja atslēgšanu, lai tā varētu sākt darbu pabeigt. Tāds ir UPS mini formātā.
Sistēmas attēls
Ja jums ir tāds pats braila displejs, un vēlaties izdarīt to pašu, autors ir gatavs nodrošināt gatavu sistēmas attēlu (uz Raspbian Stretch pamata). Uzrakstiet viņam par to uz iepriekš norādīto adresi. Ja pietiekami daudz cilvēku izteiks interesi, var būt pat komplektu izdošana, kas ietver visu nepieciešamo šādas pārbūves veikšanai.
Pateicības
Paldies Dave Mielke par teksta korekciju.
Paldies Simon Kainz par fotoattēliem.
Paldies kolēģiem no Grācas Tehniskās Universitātes par autoram ātru ievadu Raspberry Pi pasaulē.
P.S. autora par šo tēmu (nestartējas — tulkotājs) tika izdarīts tikai piecas dienas pirms šīs raksta oriģināla publikācijas, un var uzskatīt, ka izņemot problēmas ar skaņu, izvirzītā uzdevums praktiski ir atrisināts. Starp citu, galīgo tekstu autors laboja, izveidojot «pašpietiekamu braila displeju», pieslēdzot to caur SSH mājas datoram.
Avots: habr.com
