Raspberry Pi Zero Handy Tech Active Star 40 Brailio ekrane

Raspberry Pi Zero Handy Tech Active Star 40 Brailio ekrane

Autorius įdėjo Raspberry Pi Zero, „Bluetooth“ švilpuką ir laidą į savo naująjį „Handy Tech Active Star 40“ Brailio rašto ekraną. Įtaisytas USB prievadas tiekia maitinimą. Rezultatas buvo savarankiškas ARM kompiuteris be monitoriaus su Linux operacine sistema, turintis klaviatūrą ir Brailio rašto ekraną. Jį galite įkrauti/maitinti per USB, įsk. iš maitinimo bloko arba saulės įkroviklio. Todėl be elektros jis gali išsiversti kelias valandas, bet kelias dienas.

Raspberry Pi Zero Handy Tech Active Star 40 Brailio ekrane

Brailio rašto ekranų matmenų diferenciacija

Visų pirma, jie skiriasi linijos ilgiu. 60 ir daugiau talpos įrenginiai tinkami darbui su staliniu kompiuteriu, o 40 talpos įrenginius patogu nešiotis su nešiojamuoju kompiuteriu. Dabar yra Brailio rašto ekranai, prijungti prie išmaniųjų telefonų ir planšetinių kompiuterių, kurių eilutės ilgis yra 14 arba 18 simbolių.

Anksčiau Brailio rašto ekranai buvo gana dideli. Pavyzdžiui, 40 vietų nešiojamasis kompiuteris turėjo 13 colių nešiojamojo kompiuterio dydį ir svorį. Dabar, kai yra tiek pat pažįstamų, jie yra pakankamai miniatiūriniai, kad galėtumėte įdėti ekraną prieš nešiojamąjį kompiuterį, o ne nešiojamąjį kompiuterį ant ekrano.

Tai, žinoma, geriau, bet vis tiek nėra labai patogu laikyti du atskirus įrenginius ant kelių. Kai dirbate prie stalo, priekaištų nėra, tačiau verta prisiminti, kad nešiojamasis kompiuteris vadinamas nešiojamuoju kompiuteriu kitu vardu, ir pabandyti pateisinti jo pavadinimą, nes pasirodo, kad miniatiūrinis 40 simbolių ekranas yra dar mažiau patogus.

Taigi autorius laukė, kol pasirodys seniai žadėtas naujas Handy Tech Star serijos modelis. Dar 2002 metais buvo išleistas ankstesnio modelio Handy Tech Braille Star 40, kuriame korpuso ploto pakanka nešiojamam kompiuteriui ant viršaus pasidėti. O jei netelpa, yra ištraukiamas stovas. Dabar šį modelį pakeitė „Active Star 40“, kuris yra beveik toks pat, tačiau su atnaujinta elektronika.

Raspberry Pi Zero Handy Tech Active Star 40 Brailio ekrane

O ištraukiamas stovas lieka:

Raspberry Pi Zero Handy Tech Active Star 40 Brailio ekrane

Tačiau patogiausia naujame gaminyje yra maždaug išmaniojo telefono dydžio įduba (žr. KDPV). Jis atsidaro, kai platforma perkeliama atgal. Paaiškėjo, kad nepatogu ten laikyti išmanųjį telefoną, tačiau reikia kažkaip išnaudoti tuščią skyrių, kurio viduje yra net elektros lizdas.

Pirmas dalykas, kurį autorius sugalvojo, buvo ten patalpinti Raspberry Pi, tačiau įsigijus ekraną paaiškėjo, kad skyrių dengiantis stovas neįslydo su „aviete“. Dabar, jei lenta būtų tik 3 mm plonesnė...

Tačiau kolega papasakojo apie Raspberry Pi Zero išleidimą, kuris pasirodė toks miniatiūrinis, kad į skyrių tilpo du... o gal net trys. Jis buvo nedelsiant užsakytas kartu su 64 GB atminties kortele, Bluetooth, "švilpu" ir "Micro USB" kabeliu. Po kelių dienų visa tai atkeliavo, o regintys draugai padėjo autoriui parengti žemėlapį. Viskas iš karto veikė kaip priklauso.

Kas dėl to buvo padaryta

„Handy Tech Active Star 40“ gale yra du USB prievadai tokiems įrenginiams kaip klaviatūros. Komplekte yra nedidelė klaviatūra su magnetiniu laikikliu. Kai klaviatūra prijungta, o pats ekranas veikia per Bluetooth, kompiuteris jį papildomai atpažįsta kaip Bluetooth klaviatūrą.

Taigi, jei prijungsite Bluetooth "švilpuką" prie Raspberry Pi Zero, esančio išmaniojo telefono skyriuje, jis galės susisiekti su Brailio ekranu per "Bluetooth" BRLTTY, o jei prie ekrano taip pat prijungsite klaviatūrą, „avietė“ taip pat veiks su ja.

Bet tai dar ne viskas. Pati „avietė“ savo ruožtu gali pasiekti internetą per „Bluetooth PAN“ iš bet kurio jį palaikančio įrenginio. Autorius atitinkamai sukonfigūravo savo išmanųjį telefoną ir kompiuterius namuose ir darbe, tačiau ateityje planuoja tam pritaikyti dar vieną „avietę“ - klasikinį, o ne „Zero“, prijungtą prie Ethernet ir kitą „Bluetooth“ „švilpuką“.

BlueZ 5 ir PAN

PAN konfigūracijos metodas naudojant „BlueZ“ pasirodė neakivaizdu. Autorius rado bt-pan Python scenarijų (žr. toliau), kuris leidžia konfigūruoti PAN be GUI.

Jis gali būti naudojamas tiek serveriui, tiek klientui konfigūruoti. Gavęs atitinkamą komandą per D-Bus dirbdamas kliento režimu, užmezgęs ryšį su serveriu iš karto sukuria naują tinklo įrenginį bnep0. Paprastai DHCP naudojamas šiai sąsajai priskirti IP adresą. Serverio režimu BlueZ reikalauja tilto įrenginio pavadinimo, prie kurio jis gali pridėti pavaldų įrenginį, kad prijungtų kiekvieną klientą. Paprastai tereikia sukonfigūruoti tilto įrenginio adresą ir paleisti DHCP serverį bei užmaskuoti IP tilte.

Bluetooth PAN prieigos taškas su Systemd

Norėdami sukonfigūruoti tiltą, autorius naudojo systemd-networkd:

Failas /etc/systemd/network/pan.netdev

[NetDev]
Name=pan
Kind=bridge
ForwardDelaySec=0

Failas /etc/systemd/network/pan.network

[Match]
Name=pan

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

Dabar turime priversti „BlueZ“ sukonfigūruoti NAP profilį. Paaiškėjo, kad to negalima padaryti naudojant standartines BlueZ 5.36 komunalines paslaugas. Jei autorius klysta, pataisykite jį: mlang (gali judinti ausis) aklas (kartais prieigos ir kvantinis) guru

Bet jis rado tinklaraščio straipsnis и Python scenarijus atlikti reikiamus skambučius į D-Bus.

Kad būtų patogiau, autorius naudojo „Systemd“ paslaugą, kad paleistų scenarijų ir patikrintų, ar priklausomybės yra pašalintos.

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

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

Antrojo failo nereikėtų, jei „Debian“ turėtų IPMasquerade= palaikymą (žr. toliau). # 787480).

Įvykdžius komandas systemctl daemon-reload и „systemctl“ iš naujo paleiskite „systemd-networkd“ galite paleisti Bluetooth PAN naudodami komandą systemctl start pan

Bluetooth PAN klientas naudojant Systemd

Kliento pusę taip pat lengva konfigūruoti naudojant Systemd.

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

[Match]
Name=bnep*

[Network]
DHCP=yes

Failas /etc/systemd/system/[apsaugotas el. paštu]

[Unit]
Description=Bluetooth Personal Area Network client

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

Dabar, iš naujo įkėlę konfigūraciją, galite prisijungti prie nurodyto Bluetooth prieigos taško taip:

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

Poravimas naudojant komandinę eilutę

Žinoma, serverio ir klientų konfigūracija turi būti atlikta suporavus juos per Bluetooth. Serveryje turite paleisti bluetoothctl ir duoti 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

Pradėję nuskaitymą palaukite kelias sekundes, kol sąraše atsiras jums reikalingas įrenginys. Užsirašykite jo adresą ir naudokite jį išleisdami poros komandą ir, jei reikia, pasitikėjimo komandą.

Kliento pusėje reikia daryti tą patį, tačiau pasitikėjimo komandos tikrai nereikia. Serveriui reikia, kad jis priimtų ryšį naudojant NAP profilį be vartotojo rankinio patvirtinimo.

Autorius nėra tikras, kad tai yra optimali komandų seka. Galbūt viskas, ko reikia, yra susieti klientą su serveriu ir paleisti pasitikėjimo komandą serveryje, tačiau jis to dar nebandė.

Įgalinamas HID Bluetooth profilis

Reikalaujama, kad „Raspberry“ atpažintų klaviatūrą, prijungtą prie Brailio rašto ekrano laidu ir perduodamą paties ekrano per „Bluetooth“. Tai daroma taip pat, tik vietoj agentas įjungtas reikia duoti komandą agentas KeyboardOnly ir bluetoothctl suras įrenginį su HID profiliu.

Tačiau „Bluetooth“ nustatymas per komandinę eilutę yra šiek tiek sudėtingas

Nors autoriui pavyko viską sukonfigūruoti, jis supranta, kad „BlueZ“ konfigūruoti per komandinę eilutę yra nepatogu. Iš pradžių jis manė, kad agentai reikalingi tik PIN kodams įvesti, bet, pavyzdžiui, paaiškėjo, kad norint įjungti HID profilį reikia įvesti „agent KeyboardOnly“. Nuostabu, kad norint paleisti „Bluetooth PAN“, reikia pereiti per saugyklas ir ieškoti reikiamo scenarijaus. Jis prisimena, kad ankstesnėje „BlueZ“ versijoje buvo tam paruoštas įrankis pandas - Kur jis veikia BlueZ 5? Staiga atsirado naujas, autoriui nežinomas, bet paviršiuje gulintis sprendimas?

Našumas

Duomenų perdavimo greitis buvo maždaug 120 kbit/s, to visiškai pakanka. 1GHz ARM procesorius yra labai greitas komandų eilutės sąsajai. Autorius vis dar planuoja įrenginyje naudoti daugiausia ssh ir emacs.

Konsolės šriftai ir ekrano skiriamoji geba

Numatytoji ekrano skiriamoji geba, kurią naudoja Raspberry Pi Zero kadrų buferis, yra gana keista: fbset praneša apie 656 x 416 pikselių (žinoma, nėra prijungto monitoriaus). Naudojant konsolės šriftą 8 × 16, eilutėje buvo 82 simboliai ir 26 eilutės.

Šiuo režimu nepatogu dirbti su 40 simbolių Brailio ekranu. Autorius taip pat norėtų, kad Unicode simboliai būtų rodomi Brailio raštu. Laimei, Linux palaiko 512 simbolių, o dauguma konsolių šriftų turi 256. Naudodami konsolės sąranką galite naudoti du 256 simbolių šriftus kartu. Autorius prie failo /etc/default/console-setup pridėjo šias eilutes:

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

Pastaba: kad būtų galima naudoti šriftą brl-16×8.psf, turite įdiegti konsolės Brailio raštą.

Kas toliau?

Brailio rašto ekrane yra 3,5 mm lizdas, tačiau autorius nežino adapterių, skirtų garso signalui priimti iš Mini-HDMI. Autorius negalėjo naudoti Raspberry įmontuotos garso plokštės (keista, vertėjas buvo tikras, kad Zero jos neturi, tačiau yra būdų, kaip garsą išvesti naudojant PWM į GPIO). Jis planuoja naudoti USB-OTG šakotuvą ir prijungti išorinę kortelę bei išvesti garsą į Brailio rašto ekrane įmontuotą garsiakalbį. Dėl tam tikrų priežasčių neveikė dvi išorinės kortelės, dabar jis ieško panašaus įrenginio kitame mikroschemų rinkinyje.

Taip pat nepatogu rankiniu būdu išjungti „avietę“, palaukti kelias sekundes ir išjungti Brailio rašto ekraną. Ir viskas dėl to, kad kai jis yra išjungtas, jis pašalina maitinimą iš skyriuje esančios jungties. Autorius planuoja į skyrių įdėti nedidelę buferinę bateriją ir per GPIO informuoti Raspberry apie ekrano išsijungimą, kad jis pradėtų išjungti savo darbą. Tai miniatiūrinis UPS.

Sistemos vaizdas

Jei turite tą patį Brailio ekraną ir norėtumėte su juo daryti tą patį, autorius yra pasirengęs pateikti paruoštą sistemos vaizdą (pagrįstą Raspbian Stretch). Parašykite jam apie tai aukščiau nurodytu adresu. Jei susidomėjusių yra pakankamai, netgi galima išleisti rinkinius, kuriuose yra viskas, ko reikia tokiai modifikacijai.

Padėkos

Ačiū Dave'ui Mielke'ui už korektūrą.

Ačiū Simonui Kainzui už nuotraukų iliustracijas.

Dėkoju savo kolegoms iš Graco technikos universiteto, kad jie greitai supažindino autorių su Raspberry Pi pasauliu.

PS Pirmas tviteris autorius šia tema (neatsidaro - vertėjas) buvo padarytas likus vos penkioms dienoms iki šio straipsnio originalo publikavimo, ir galima manyti, kad, išskyrus garso problemas, užduotis buvo praktiškai išspręsta. Beje, galutinę teksto versiją autorius redagavo iš savo pagaminto „savarankiško Brailio rašto ekrano“, prijungdamas jį per SSH prie savo namų kompiuterio.

Šaltinis: www.habr.com

Добавить комментарий