Raspberry Pi Zero iekšā Braila displejā Handy Tech Active Star 40

Raspberry Pi Zero iekšā Braila displejā Handy Tech Active Star 40

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.

Raspberry Pi Zero iekšā Braila displejā Handy Tech Active Star 40

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.

Raspberry Pi Zero iekšā Braila displejā Handy Tech Active Star 40

Un izvelkamā atbalsta kāja ir palikusi:

Raspberry Pi Zero iekšā Braila displejā Handy Tech Active Star 40

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 BRLTTY, 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 BlueZ , 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=0

Fails /etc/systemd/network/pan.network

[Match]
Name=pan

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

Tagad 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 ziņojumu emuāra un Python skriptu 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.target

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

Otrais fails nebūtu nepieciešams, ja Debian atbalstītu IPMasquerade= (skat. #787480).

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=yes

Fails /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 --wait

Tagad 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:55

Pā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:XX

Uzsā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. Pirmais tvīts 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

Iegādājieties uzticamu tīmekļa hostingu ar DDoS aizsardzību, VPS VDS serveriem 🔥 Iegādājieties uzticamu tīmekļa hostingu ar DDoS aizsardzību, VPS VDS serveriem | ProHoster