Raspberry Pi Zero Handy Tech Active Star 40 Braila displejā

Raspberry Pi Zero Handy Tech Active Star 40 Braila displejā

Autors savā jaunajā Braila displejā Handy Tech Active Star 40 ievietoja Raspberry Pi Zero, Bluetooth svilpi un kabeli. IebÅ«vētais USB ports nodroÅ”ina strāvu. Rezultātā tika izveidots paÅ”pietiekams bezmonitora dators ar ARM ar Linux operētājsistēmu, aprÄ«kots ar tastatÅ«ru un Braila displeju. JÅ«s varat to uzlādēt/barot, izmantojot USB, t.sk. no strāvas bankas vai saules lādētāja. Tāpēc bez strāvas var iztikt vairākas stundas, bet vairākas dienas.

Raspberry Pi Zero Handy Tech Active Star 40 Braila displejā

Braila displeju izmēru diferenciācija

Pirmkārt, tie atŔķiras pēc lÄ«nijas garuma. IerÄ«ces ar 60 un vairāk ietilpÄ«bu ir piemērotas darbam ar stacionāro datoru, savukārt ierÄ«ces ar 40 ietilpÄ«bu ir ērtas pārnēsāŔanai ar portatÄ«vo datoru. Tagad viedtālruņiem un planÅ”etdatoriem ir pievienoti Braila displeji, kuru rindiņas garums ir 14 vai 18 rakstzÄ«mes.

Agrāk Braila displeji bija diezgan masÄ«vi. Piemēram, 40 vietÄ«gajam klēpjdatoram bija 13 collu klēpjdatora izmērs un svars. Tagad ar tādu paÅ”u paziņu skaitu tie ir pietiekami miniatÅ«ri, lai varētu novietot displeju klēpjdatora priekŔā, nevis klēpjdatoru uz displeja.

Tas, protams, ir labāk, taču joprojām nav Ä«paÅ”i ērti turēt klēpÄ« divas atseviŔķas ierÄ«ces. Strādājot pie rakstāmgalda, sÅ«dzÄ«bu nav, taču der atcerēties, ka klēpjdatoru sauc citā vārdā, un mēģināt attaisnot tā nosaukumu, jo izrādās, ka miniatÅ«rais 40 zÄ«mju displejs ir vēl mazāk ērts.

Tāpēc autors gaidÄ«ja, kad iznāks ilgi solÄ«tais jaunais Handy Tech Star sērijas modelis. Vēl 2002. gadā tika izlaists iepriekŔējais modelis Handy Tech Braille Star 40, kur korpusa zona ir pietiekama, lai uzliktu klēpjdatoru virsÅ«. Un, ja tas neder, ir izvelkams statÄ«vs. Tagad Å”is modelis ir aizstāts ar Active Star 40, kas ir gandrÄ«z tāds pats, bet ar modernizētu elektroniku.

Raspberry Pi Zero Handy Tech Active Star 40 Braila displejā

Un izvelkamais statīvs paliek:

Raspberry Pi Zero Handy Tech Active Star 40 Braila displejā

Taču visērtākais jaunajā produktā ir aptuveni viedtālruņa izmēra padziļinājums (skat. KDPV). Tas atveras, kad platforma tiek pārvietota atpakaļ. Viedtālruni tur noturēt izrādÄ«jās neērti, taču kaut kā jāizmanto tukÅ”ais nodalÄ«jums, kura iekÅ”pusē ir pat kontaktligzda.

Pirmais, ko autors izdomāja, bija tur novietot Raspberry Pi, taču, iegādājoties displeju, izrādÄ«jās, ka nodalÄ«jumu nosedzoÅ”ais statÄ«vs nav ieslÄ«dējis ar ā€œaveņuā€. Tagad, ja dēlis bÅ«tu tikai par 3 mm plānāks...

Bet kolēģis stāstÄ«ja par Raspberry Pi Zero iznākÅ”anu, kas izrādÄ«jās tik miniatÅ«rs, ka divi no tiem varēja ietilpt nodalÄ«jumā... vai varbÅ«t pat trÄ«s. Tas uzreiz tika pasÅ«tÄ«ts kopā ar 64 GB atmiņas karti, Bluetooth, ā€œsvilpiā€ un Micro USB kabeli. Pēc dažām dienām tas viss ieradās, un redzÄ«gi draugi palÄ«dzēja autoram sagatavot karti. Viss uzreiz strādāja kā nākas.

Kas tika darīts Ŕim nolūkam

Handy Tech Active Star 40 aizmugurē ir divi USB porti ierīcēm, piemēram, tastatūrām. Iekļauta neliela izmēra tastatūra ar magnētisku stiprinājumu. Kad tastatūra ir pievienota un pats displejs darbojas caur Bluetooth, dators to papildus atpazīst kā Bluetooth tastatūru.

Tādējādi, ja savienosiet Bluetooth ā€œsvilpiā€ ar Raspberry Pi Zero, kas atrodas viedtālruņa nodalÄ«jumā, tā varēs sazināties ar Braila displeju, izmantojot Bluetooth, izmantojot BRLTTY, un, ja displejam pievienosit arÄ« tastatÅ«ru, ar to darbosies arÄ« ā€œaveņuā€.

Bet tas vēl nav viss. Savukārt pati ā€œaveneā€ var piekļūt internetam, izmantojot Bluetooth PAN no jebkuras ierÄ«ces, kas to atbalsta. Autors savu viedtālruni un datorus ir attiecÄ«gi konfigurējis mājās un darbā, taču nākotnē plāno Å”im pielāgot vēl vienu ā€œaveņuā€ - klasisku, nevis Zero, kas savienots ar Ethernet un citu Bluetooth ā€œsvilpiā€.

BlueZ 5 un PAN

PAN konfigurācijas metode, izmantojot zils izrādījās nepārprotami. Autors atrada bt-pan Python skriptu (skatīt zemāk), kas ļauj konfigurēt PAN bez GUI.

To var izmantot, lai konfigurētu gan serveri, gan klientu. Saņēmusi atbilstoÅ”u komandu caur D-Bus, strādājot klienta režīmā, tā izveido jaunu tÄ«kla ierÄ«ci bnep0 uzreiz pēc savienojuma izveides ar serveri. Parasti DHCP tiek izmantots, lai Å”ai saskarnei pieŔķirtu IP adresi. Servera režīmā BlueZ pieprasa tilta ierÄ«ces nosaukumu, kurai tā var pievienot palÄ«gierÄ«ci, lai savienotu katru klientu. Parasti ir nepiecieÅ”ams tikai tilta ierÄ«ces adreses konfigurÄ“Å”ana un DHCP servera palaiÅ”ana, kā arÄ« IP maskÄ“Å”ana tiltā.

Bluetooth PAN piekļuves punkts ar Systemd

Lai konfigurētu tiltu, autors izmantoja 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 mums ir jāpiespiež BlueZ konfigurēt NAP profilu. Izrādījās, ka to nevar izdarīt ar standarta BlueZ 5.36 utilītprogrammām. Ja autors kļūdās, izlabojiet viņu: mlang (var kustināt ausis) akls (dažreiz piekļuves un kvantu) guru

Bet viņŔ atrada emuāra ziņa Šø Python skripts veikt nepiecieÅ”amos zvanus uz D-Bus.

Ērtības labad autors izmantoja Systemd pakalpojumu, lai palaistu skriptu un pārbaudītu, vai atkarības ir novērstas.

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 vajadzīgs, ja Debian būtu IPMasquerade= atbalsts (skatiet tālāk). #787480).

Pēc komandu izpildes systemctl daemon-reload Šø systemctl restartējiet systemd-networkd varat sākt Bluetooth PAN ar komandu systemctl start panna

Bluetooth PAN klients, izmantojot Systemd

Klienta pusi ir arī viegli konfigurēt, izmantojot Systemd.

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

[Match]
Name=bnep*

[Network]
DHCP=yes

Fails /etc/systemd/system/[e-pasts aizsargāts]

[Unit]
Description=Bluetooth Personal Area Network client

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

Tagad pēc konfigurācijas atkārtotas ielādÄ“Å”anas varat izveidot savienojumu ar norādÄ«to Bluetooth piekļuves punktu Ŕādi:

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

SavienoŔana pārī, izmantojot komandrindu

Protams, servera un klientu konfigurācija jāveic pēc to savienoÅ”anas pārÄ«, izmantojot Bluetooth. ServerÄ« ir jāpalaiž bluetoothctl un jādod 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

Pēc skenÄ“Å”anas pagaidiet dažas sekundes, lÄ«dz sarakstā tiek parādÄ«ta vajadzÄ«gā ierÄ«ce. Pierakstiet tās adresi un izmantojiet to, izdodot pāra komandu un, ja nepiecieÅ”ams, uzticÄ«bas komandu.

Klienta pusē jums jādara tas pats, taču uzticÄ«bas komanda noteikti nav nepiecieÅ”ama. Serverim tas ir nepiecieÅ”ams, lai pieņemtu savienojumu, izmantojot NAP profilu, bez lietotāja manuāla apstiprinājuma.

Autors nav pārliecināts, ka tā ir optimālā komandu secÄ«ba. Iespējams, viss, kas nepiecieÅ”ams, ir savienot klientu pārÄ« ar serveri un serverÄ« palaist uzticÄ«bas komandu, taču viņŔ to vēl nav izmēģinājis.

HID Bluetooth profila iespējoÅ”ana

Ir nepiecieÅ”ams, lai Raspberry atpazÄ«tu tastatÅ«ru, kas ir savienota ar Braila displeju, izmantojot vadu un kuru pats displejs pārraida, izmantojot Bluetooth. Tas tiek darÄ«ts tādā paŔā veidā, tikai tā vietā aÄ£ents ieslēgts jādod komanda aÄ£ents KeyboardOnly un bluetoothctl atradÄ«s ierÄ«ci ar HID profilu.

Bet Bluetooth iestatīŔana, izmantojot komandrindu, ir nedaudz sarežģīta

Lai gan autoram izdevās visu konfigurēt, viņŔ saprot, ka BlueZ konfigurÄ“Å”ana caur komandrindu ir neērta. Sākumā viņŔ domāja, ka aÄ£enti ir nepiecieÅ”ami tikai PIN kodu ievadÄ«Å”anai, bet izrādÄ«jās, piemēram, lai iespējotu HID profilu, jāievada ā€œagent KeyboardOnlyā€. PārsteidzoÅ”i, ka, lai palaistu Bluetooth PAN, jums jāiet cauri krātuvēm, meklējot nepiecieÅ”amo skriptu. ViņŔ atceras, ka iepriekŔējā BlueZ versijā tam bija gatavs rÄ«ks panda - kur viņŔ dara BlueZ 5? PēkŔņi parādÄ«jās jauns risinājums, autoram nezināms, bet guļ uz virsmas?

ŠŸŃ€Š¾ŠøŠ·Š²Š¾Š“ŠøтŠµŠ»ŃŒŠ½Š¾ŃŃ‚ŃŒ

Datu pārraides ātrums bija aptuveni 120 kbit/s, kas ir pilnīgi pietiekami. 1 GHz ARM procesors ir ļoti ātrs komandrindas interfeisam. Autors joprojām plāno ierīcē izmantot galvenokārt ssh un emacs.

Konsoles fonti un ekrāna izŔķirtspēja

Noklusējuma ekrāna izŔķirtspēja, ko izmanto Raspberry Pi Zero kadru buferis, ir diezgan dÄ«vaina: fbset ziņo par to kā 656x416 pikseļus (protams, nav pievienots monitors). Izmantojot konsoles fontu 8 Ɨ 16, katrā rindā bija 82 rakstzÄ«mes un 26 rindiņas.

Å ajā režīmā ir neērti strādāt ar 40 rakstzÄ«mju Braila displeju. Autors arÄ« vēlētos, lai unikoda rakstzÄ«mes tiktu rādÄ«tas Braila rakstā. Par laimi, Linux atbalsta 512 rakstzÄ«mes, un lielākajai daļai konsoles fontu ir 256. Izmantojot konsoles iestatÄ«Å”anu, varat izmantot divus 256 rakstzÄ«mju fontus kopā. Autors failam /etc/default/console-setup pievienoja Ŕādas rindiņas:

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

PiezÄ«me: lai bÅ«tu pieejams fonts brl-16Ɨ8.psf, jāinstalē braila konsole.

Ko tālāk?

Braila displejam ir 3,5 mm ligzda, taču autoram nav zināmi adapteri audio signāla uztverÅ”anai no Mini-HDMI. Autors nevarēja izmantot Raspberry iebÅ«vēto skaņas karti (dÄ«vaini, tulkotājs bija pārliecināts, ka Zero tādas nav, taču ir veidi, kā izvadÄ«t skaņu, izmantojot PWM uz GPIO). ViņŔ plāno izmantot USB-OTG centrmezglu un pievienot ārējo karti un izvadÄ«t skaņu Braila displejā iebÅ«vētajam skaļrunim. Kādu iemeslu dēļ divas ārējās kartes nedarbojās, tagad viņŔ meklē lÄ«dzÄ«gu ierÄ«ci citā mikroshēmā.

Ir arÄ« neērti manuāli izslēgt "aveņu", pagaidÄ«t dažas sekundes un izslēgt Braila displeju. Un viss, jo, kad tas ir izslēgts, tas atņem strāvu no savienotāja nodalÄ«jumā. Autors plāno nodalÄ«jumā ievietot nelielu buferakumulatoru un, izmantojot GPIO, informēt Raspberry par displeja izslēgÅ”anos, lai tas varētu sākt pārtraukt darbu. Å is ir miniatÅ«rā UPS.

Sistēmas attēls

Ja jums ir tāds pats Braila displejs un vēlaties ar to darÄ«t to paÅ”u, autors ir gatavs sniegt gatavu sistēmas attēlu (pamatojoties uz Raspbian Stretch). Rakstiet viņam par to uz iepriekÅ” norādÄ«to adresi. Ja ir pietiekami daudz interesentu, iespējams pat izdot komplektus, kuros iekļauts viss nepiecieÅ”amais Ŕādai modifikācijai.

Pateicības

Paldies Deivam Mielem par korektūru.

Paldies Simonam Kaincam par fotogrāfiju ilustrācijām.

Paldies maniem kolēģiem Grācas Tehniskajā universitātē, ka viņi ātri iepazīstināja autoru ar Raspberry Pi pasauli.

PS Pirmais tvÄ«ts autors par Å”o tēmu (neatveras - tulkotājs) tika veikts tikai piecas dienas pirms Ŕī raksta oriÄ£ināla publicÄ“Å”anas, un var uzskatÄ«t, ka, izņemot problēmas ar skaņu, uzdevums tika praktiski atrisināts. Starp citu, autors rediģēja teksta galÄ«go versiju no paÅ”a izgatavota ā€œpaÅ”pietiekama Braila displejaā€, savienojot to caur SSH ar mājas datoru.

Avots: www.habr.com

Pievieno komentāru