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.
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.
Un izvelkamais statīvs paliek:
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
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
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
Ä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).
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
Avots: www.habr.com