Raspberry Pi Zero Handy Tech Active Star 40 braille-ekraanil

Raspberry Pi Zero Handy Tech Active Star 40 braille-ekraanil

Kasutaja paigaldas Raspberry Pi Zero, Bluetooth-»pulgaga« ja kaabli oma uude braille-ekraani Handy Tech Active Star 40. Integreeritud USB-port tagab toite. Tulemuseks on iseseisev monitorita arvuti ARM arhitektuuril, mis töötab Linuxi operatsioonisüsteemil, koos klaviatuuri ja braille-ekraaniga. Seda saab laadida/toita USB kaudu, sealhulgas powerbank'i või päikesepatarei abil. Seetõttu suudab see töötada ilma elektrivõrguta mitte paar tundi, vaid mitu päeva.

Raspberry Pi Zero Handy Tech Active Star 40 braille-ekraanil

Braille-ekraanide mõõtmete erinevused

Esiteks erinevad nad rea pikkuse poolest. 60 ja enama sümbolikohta seadmed on head lauaarvutiga töötamiseks, 40 sümboliga on mugavad kaasas kanda koos sülearvutiga. Praegu on olemas ka braille-ekraanid, mis ühenduvad nutitelefonide ja tahvelarvutitega ning mille rea pikkus on 14 või 18 sümbolit.

Varasemalt olid braille-ekraanid üsna mahukad. Näiteks 40-sümboliga ekraan oli suuruse ja kaaluga nagu 13-tollise sülearvuti puhul. Nüüd on nad samal sümbolite arvul piisavalt kompaktsed, et ekraani saaks asetada sülearvuti ette, mitte sülearvutit ekraani peale.

See, see on muidugi parem, kuid siiski ei ole kahel eraldi seadmel süles hoidmine väga mugav. Kui töötad laua taga, pole kaebusi, aga tuleb meenutada, et sülearvutit nimetatakse ka lääne keeles laptopiks; proovi seda nimetust õigustada, ja selgub, et miniatuurne 40-tähemärgiline ekraan on veel ebamugavam.

Nii et autor ootas kaua lubatud uue mudeli ilmumist Handy Tech Star seerias. Juba 2002. aastal ilmus eelmise põlvkonna mudel Handy Tech Braille Star 40, kus korpuse pindala on piisav sülearvuti peal hoidmiseks. Kui see ei mahu, on ette nähtud väljatõmmatav alus. See mudel on nüüd asendatud Active Star 40-ga, mis on praktiliselt sama, kuid moderniseeritud elektroonikaga.

Raspberry Pi Zero Handy Tech Active Star 40 braille-ekraanil

Ja väljatõmmatav alus on jäänud:

Raspberry Pi Zero Handy Tech Active Star 40 braille-ekraanil

Aga kõige mugavam asi uues mudelis on süvend, mille suurus on ligikaudu nutitelefoni suurune (vt KDPV). See avaneb, kui plaat tõmmata tagasi. Seal pidada nutitelefoni on ebamugav, kuid tühja ruumi tuleb siiski kuidagi kasutada, kus sees on isegi toiteühendus.

Esimene idee autorilt oli panna sinna Raspberry Pi, kuid kui ekraan oli soetud, selgus, et "marjakaga" ei liigu tugi, mis katab pesa. Kui ainult plaat oleks 3 mm õhem...

Kuid kolleeg rääkis Raspberry Pi Zero väljatulemises, mis osutus nii miniatuurseks, et pesa mahuks kaks... või ilmselt isegi kolm. See telliti kohe koos 64 GB mälukaardiga, Bluetoothi, "võtme" ja Micro USB kaabliga. Mõne päeva pärast kõik see jõudis kohale ja nägijad sõbrad aitasid autoril kaardi ette valmistada. Kõik töötas kohe nagu peab.

Mida selleks tehti

Handy Tech Active Star 40 tagaküljel on kaks USB-porti selliste seadmete jaoks nagu klaviatuurid. USB-klaviatuur, millel on magnetiline kinnitamine, on lisatud. Kui klaviatuur on ühendatud ja ekraan töötab Bluetoothi kaudu, tuvastab arvuti selle ka Bluetooth-klaviatuurina.

Seega, kui Raspberry Pi Zero, mis on paigutatud nutitelefoni pesasse, ühendatakse Bluetooth "võtmega", saab see vahetada andmeid braille-ekraaniga Bluetoothi abil läbi BRLTTY, ja kui ühendada ekraaniga klaviatuur, siis «malinka» töötab ka selle kaudu.

Aga see ei ole veel kõik. Ise «malinka» võib samuti saada internetiühenduse Bluetooth PAN-i kaudu igast seadmest, mis seda toetab. Autor seadistas vastavalt oma nutitelefoni ja arvutid kodus ja tööl, kuid plaanib tulevikus kohandada veel ühe «malinka» — klassikalise, mitte Zero, ühendatuna Etherneti ja teise Bluetooth-«sviistiku» kaudu.

BlueZ 5 ja PAN

PAN-i konfigureerimise meetod BlueZ; oli mitte ilmselge. Autor leidis Python-skripti bt-pan (vt allpool), mis võimaldab seadistada PAN-i ilma GUI-ta.

Selle abil saab seadistada nii serverit kui ka klienti. Kui klient on režiimis, loob see D-Bus'i kaudu saadud vastava käsu korral kohe pärast serveriga ühenduse loomist uue võrguseadme bnep0. Sellele liidesele IP-aadressi määramisel kasutatakse tavaliselt DHCP-d. Serverirežiimis nõuab BlueZ silda sisaldava seadme nime, kuhu saab iga kliendi ühendamiseks lisada seotud seadmeid. Silla seadistamiseks aadressi ja DHCP-serveri käivitamiseks koos IP-maskeerimisega — tavaliselt on see kõik, mis vajalik.

Bluetooth PAN juurdepääsupunkt Systemd'ga

Silla konfigureerimiseks kasutas autor systemd-networkd:

Fail /etc/systemd/network/pan.netdev

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

Fail /etc/systemd/network/pan.network

[Match]
Name=pan

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

Nüüd on vaja BlueZ sundida NAP profiili seadistama. Selgus, et BlueZ 5.36 tavapäraste tööriistadega ei ole seda võimalik teha. Kui autor eksib, palun parandage teda: mlang (oskab kõrvu liigutada) blind (on juurdepääs ja kvantitehnoloogia) guru

Aga ta leidis postituse blogis ja Python'i skripti vajalike D-Bus'i kutsete tegemiseks.

Kasutusmugavuse huvides kasutas autor Systemd teenust skripti käivitamiseks ja sõltuvuste lubade kontrollimiseks.

Fail /etc/systemd/system/pan.service

[Unit]
Description=Bluetooth isiklik ala võrk
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

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

Teist faili ei oleks vaja, kui Debian toetaks IPMasquerade= (vt. #787480).

Pärast käskude täitmist systemctl daemon-reload ja systemctl restart systemd-networkd saab Bluetooth PAN-i käivitada käsuga systemctl start pan

Bluetooth PAN klient Systemdi rakendusega

Kliendi osa konfigureerimine Systemdi abil ei ole samuti keeruline.

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

[Match]
Name=bnep*

[Network]
DHCP=jah

Fail /etc/systemd/system/pan@.service

[Unit]
Description=Bluetooth isiklik ala võrk klient

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

Nüüd, pärast konfiguratsiooni taaskäivitamist, saab ühenduda määratud Bluetooth ligipääsupunktiga järgmiselt:

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

Paari loomine käsurea abil

Muidugi tuleb serveri ja klientide konfiguratsioon teha pärast nende Bluetoothi kaudu sidumist. Serveris tuleb käivitada bluetoothctl ja anda tal käsud:

power on
agent on
default-agent
scan on
scan off
pair XX:XX:XX:XX:XX:XX
trust XX:XX:XX:XX:XX:XX

Skaneerimise käivitamisel oodake mõni sekund, kuni soovitud seade loendisse ilmub. Kirjutage üles selle aadress ja kasutage seda, esitades käsu pair ja vajadusel ka käsu trust.

Kliendi poolelt tuleb teha sama, kuid käsku trust tõenäoliselt ei vajata. Server vajab seda, et aktsepteerida ühendust NAP-profiili kaudu ilma kasutaja käsitsi kinnitamiseta.

Autor ei ole kindel, kas see on optimaalne käskude jada. Võib-olla on vajalik vaid kliendi ja serveri sidumine ning käsu trust täitmine serveris, kuid ta pole sellega veel proovinud.

Bluetooth HID-profiili kasutamise lubamine

On vajalik, et "malinka" tunneks ära klaviatuuri, mis on braille'i ekraaniga kaabli kaudu ühendatud ja mille Bluetooth'i kaudu edastab juba ekraan ise. Seda tehakse samamoodi, lihtsalt asemel agent on tuleb anda käsk agent KeyboardOnly ja bluetoothctl leiab seadme, millel on HID-profiil.

Kuid Bluetooth'i seadistamine käsurealt on keeruline.

Kuigi autor suutis kõik seadistada, mõistab ta, et BlueZ-i seadistamine käsurealt on ebamugav. Esialgu arvas ta, et agendid on vajalikud ainult PIN-koodide sisestamiseks, kuid selgus, et näiteks HID-profiili aktiveerimiseks on vaja sisestada „agent KeyboardOnly“. Üllatav, et Bluetooth PAN-i käivitamiseks peab otsima vajalikke skripte hoidlatest. Ta mäletab, et BlueZ-i eelmisel versioonil oli selleks valmis tööriist. pand — kuhu see BlueZ 5-s kadus? Kas äkki on ilmunud uus lahendus, millest autor ei tea, kuid mis on ilmselgelt nähtav?

Tootlikkus

Andmeedastuskiirus oli umbes 120 kbit/s, mis on täiesti piisav. 1 GHz ARM-protsessor on käsurea jaoks väga kiire. Autor plaanib seadmes peamiselt kasutada ssh-d ja emacsit.

Konsoli fondid ja ekraani eraldusvõime

Raspberry Pi Zero default framebuffer'i ekraani eraldusvõime on üsna kummaline: fbset ütleb, et see on 656×416 pikslit (monitor ei ole loomulikult ühendatud). 8×16 fondiga sai 82 märki reaas ja 26 rida.

Braille-ekraaniga 40 tähemärgiga töötamine on selles režiimis ebamugav. Autor soovib, et ekraanile kuvataks Unicode-märke Braille'i kujul. Õnneks toetab Linux 512 märki, enamikus konsooli fontides on neid 256. Kasutades console-setup'i, on võimalik kasutada kahte 256-märgiga fonti koos. Autor lisas faili /etc/default/console-setup järgmised read:

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

Märkus: et font brl-16×8.psf oleks saadaval, tuleb installida console-braille.

Mis edasi?

Braille-ekraanil on 3,5 mm „jak“, kuid autor ei tea adapteritest Mini-HDMI heli edastamiseks. Autor ei suutnud kasutada väikese 'malina' sisemisi helikaarte (kummaline, tõlkija oli kindel, et Zero-l pole neid, kuid on viise heli edastamiseks PWM-i kaudu GPIO-le). Ta plaanib kasutada USB-OTG-hubi ning ühendada välist helikaarti ja edastada heli Braille-ekraanile integreeritud kõlarisse. Kaks välist helikaarti ei töötanud millegipärast, praegu otsib ta sarnast seadet teistel kiipidel.

Veel on ebamugav manuaalselt „malinki” välja lülitada, oodata paar sekundit ja siis lülitada välja braille-ekraan. Kõik see juhtub seepärast, et ekraani väljalülitamisel katkestatakse toide pesa seest. Autor plaanib asetada sekka väikese akupanga ja edastada GPIO kaudu „malinkale” ekraani väljalülitamisest teate, et see saaks töö lõpetada. Nii saab detailne UPS miniatuurses vormingus.

Süsteemi pilt

Kui teil on sama braille-ekraan ja soovite sellega sama teha, on autor valmis pakkuma valmis süsteemi pilti (Raspbian Stretch põhjal). Kirjutage talle ülaltoodud aadressil. Kui huvilisi on piisavalt, on võimalik isegi komplektide väljatöötamine, mis sisaldavad kõike vajalikku selleks konversiooniks.

Tänud

Aitäh Dave Mielkele teksti toimetamise eest.

Aitäh Simon Kainzile fotoillustratsioonide eest.

Aitäh Graz Tehnikaülikooli kolleegidele autori kiire sisseviimise eest Raspberry Pi maailma.

P.S. Esimene tweet artikli autori teema (ei avane — tõlkija) valmis vaid viis päeva enne originaali avaldamist ning seda võib pidada enam-vähem lahendatuks, välja arvatud heliprobleemid. Muide, autor toimetas teksti lõpliku versiooni, ühendades oma valmistatud «iseendale piisava braille-ekraani» koduarvutiga SSH kaudu.

Allikas: habr.com

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster