
Autor je smjestio Raspberry Pi Zero, Bluetooth "dongle" i kabel unutar svog novog brajlovskog displeja Handy Tech Active Star 40. Ugrađeni USB port osigurava napajanje. Dobio je samodostatni računar bez monitora na ARM-u s operativnim sustavom Linux, opremljen tipkovnicom i brajlovskim displejom. Može se puniti/napati preko USB-a, uključujući iz power bank-a ili solarne punjive stanice. Stoga može raditi bez electrine mreže ne nekoliko sati, već nekoliko dana.

Dimenzioniranje brajlovskih displeja
Prije svega, razlikuju se po duljini reda. Uređaji s 60 i više mjesta za znakove su dobri za rad s desktop računalom, dok su oni s 40 prikladni za nošenje s prijenosnim računalom. Sada postoje i brajlovski displeji koji se povezuju sa pametnim telefonima i tabletima, s duljinom reda od 14 ili 18 znakova.
U prošlosti su brajlovski displeji bili prilično masivni. Displej s 40 znakova, na primjer, imao je dimenzije i težinu kao 13-inčni prijenosnik. Sada su međutim, uz istu količinu znakova, dovoljno kompaktni da ih se može postaviti ispred prijenosnog računala, a ne da se prijenosno računalo postavlja na displej.
To je, naravno, bolje, ali i dalje nije vrlo udobno držati dva odvojena uređaja na koljenima. Kada se radi za stolom, nema pritužbi, ali valja se podsjetiti da se prijenosno računalo drugačije naziva laptop, i pokušati opravdati to njegovo ime, kako se ispostavlja da je minijaturni displej od 40 znakova čak manje udoban.
Dakle, autor je čekao izlazak dugo obećavanog novog modela u seriji Handy Tech Star. Još 2002. godine objavljen je prethodni model Handy Tech Braille Star 40, gdje je površina kućišta dovoljna da se postavi laptop na vrh. A ako ne stane - predviđena je izvlačiva stalak. Sada je ovaj model zamijenjen Active Star 40, to je praktički isto, ali s moderniziranom elektronikom.

I izvlačiva stalak je ostala:

Ali ono što je najudobnije u novom modelu je udubljenje otprilike veličine pametnog telefona (vidi KDPV). Otvara se pomakom platforme unatrag. Držati pametni telefon unutra se pokazalo neudobnim, ali nekako se mora iskoristiti prazan odjeljak, unutar kojeg je čak predviđen izlaz za napajanje.
Prvo što je autor smislio je da stavi Raspberry Pi unutra, ali kada je zaslon kupljen, ispostavilo se da se s "malinom" ne može pomaknuti postolje koje pokriva odjeljak. Da je samo ploča bila 3 mm tanja...
No kolega je ispričao o izlasku Raspberry Pi Zero, koji je bio toliko minijaturan da bi u odjeljak stali dva... ili, možda, čak tri. Odmah je naručen zajedno s memorijskom karticom od 64 GB, Bluetooth, "donglom" i Micro USB kabelom. Nekoliko dana kasnije, sve je to stiglo, a prijatelji s vidom su pomogli autoru da pripremi karticu. Sve je odmah proradilo kako treba.
Što je učinjeno za to
Na stražnjoj strani Handy Tech Active Star 40 nalaze se dva USB priključka za uređaje poput tipkovnica. Uključena je mala tipkovnica s magnetskim učvršćivanjem. Kada je tipkovnica spojena, a sam zaslon radi putem Bluetooth-a, računalo dodatno prepoznaje i kao Bluetooth tipkovnicu.
Tako ako se na Raspberry Pi Zero, smješten u odjeljak za smartphone, spoji Bluetooth "dongle", moći će razmjenjivati podatke s brajlovskim zaslonom putem Bluetooth-a koristeći , a ako se na zaslon spoji tipkovnica, "malina" će raditi i s njom.
Ali to nije sve. Sam "malina" može pristupiti internetu putem Bluetooth PAN-a s bilo kojeg uređaja koji ga podržava. Autor je na odgovarajući način postavio svoj smartphone i računala kod kuće i na poslu, ali u budućnosti planira prilagoditi još jednu "malinu" — klasičnu, ne Zero, spojenu na Ethernet i drugi Bluetooth "dongle".
BlueZ 5 i PAN
Način konfiguracije PAN-a pomoću se pokazao nejasnim. Autor je pronašao Python skriptu bt-pan (vidi dolje) koja omogućava konfiguriranje PAN-a bez GUI-a.
Pomoću nje se može postaviti i server i klijent. Nakon što dobije odgovarajuću komandu preko D-Bus u klijentskom režimu, stvara novi mrežni uređaj bnep0 odmah nakon uspostave veze sa serverom. Obično se za dodjeljivanje IP adrese ovom sučelju koristi DHCP. U server režimu, BlueZ traži da se naznači naziv mostovnog uređaja na koji može dodati po jedno od poveznih uređaja za svaki od klijenata. Konfigurirati adresu za mostovni uređaj i pokrenuti DHCP server plus IP masquerading na mostu — obično je sve što je potrebno.
Bluetooth PAN pristupna točka s Systemd
Za konfiguraciju mosta autor je primijenio systemd-networkd:
Datoteka /etc/systemd/network/pan.netdev
[NetDev]
Name=pan
Kind=bridge
ForwardDelaySec=0Datoteka /etc/systemd/network/pan.network
[Match]
Name=pan
[Network]
Address=0.0.0.0/24
DHCPServer=yes
IPMasquerade=yesSada treba natjerati BlueZ da konfigurira NAP profil. Ispostavilo se da to običnim alatima BlueZ 5.36 nije moguće. Ako autor griješi, ispravite ga: mlang (zna pomaknuti uši) blind (može imati pristup i kvantnom) guru
Ali je pronašao i za izvršavanje potrebnih poziva na D-Bus.
Radi udobnosti, autor je primijenio Systemd za pokretanje skripte i provjeru dopuštenih zavisnosti.
Datoteka /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.targetDatoteka /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 panDruga datoteka ne bi bila potrebna da je Debian podržavao IPMasquerade= (vidi. ).
Nakon izvršavanja naredbi systemctl daemon-reload i systemctl restart systemd-networkd možete pokrenuti Bluetooth PAN naredbom systemctl start pan
Bluetooth PAN klijent koristeći Systemd
Klijentski dio također se lako može konfigurirati pomoću Systemd.
Datoteka /etc/systemd/network/pan-client.network
[Match]
Name=bnep*
[Network]
DHCP=yesDatoteka /etc/systemd/system/pan@.service
[Unit]
Description=Bluetooth Personal Area Network klijent
[Service]
Type=notify
ExecStart=/usr/local/sbin/bt-pan --debug --systemd client %I --waitSada, nakon ponovnog pokretanja konfiguracije, možete se spojiti na zadanu Bluetooth pristupnu točku ovako:
systemctl start pan@00:11:22:33:44:55Uparivanje putem naredbene linije
Naravno, konfiguraciju poslužitelja i klijenata potrebno je provesti nakon njihova uparivanja preko Bluetootha. Na poslužitelju trebate pokrenuti bluetoothctl i dati mu naredbe:
power on
agent on
default-agent
scan on
scan off
pair XX:XX:XX:XX:XX:XX
trust XX:XX:XX:XX:XX:XXPokrenite skeniranje, pričekajte nekoliko sekundi dok se željeni uređaj ne pojavi na popisu. Zapišite njegovu adresu i upotrijebite je, dajući naredbu pair, a po potrebi i naredbu trust.
Sa strane klijenta potrebno je napraviti isto, ali naredba trust ne bi bila potrebna. Poslužitelju je potrebna kako bi prihvatio vezu putem NAP profila bez ručne potvrde od korisnika.
Autor nije siguran je li ovo optimalni redoslijed naredbi. Možda je sve što je potrebno uparivanje klijenta s poslužiteljem i izvršavanje naredbe trust na poslužitelju, ali to još nije isprobavao.
Dopuštenje za korištenje Bluetooth HID profila
Potrebno je da «malina» prepozna tastaturu spojenu na brajevski displej putem kabela, koji je već povezan samim displejem putem Bluetootha. Radi se isto, samo umesto agenta na treba dati komandu agent KeyboardOnly i bluetoothctl će prepoznati uređaj sa HID profilom.
Ali podešavanje Bluetootha putem komandne linije je prilično komplikovano
Iako mu je uspelo da sve konfiguriše, shvata da je podešavanje BlueZ putem komandne linije nezgodno. Prvo je mislio da su mu agenti potrebni samo za unos PIN kodova, ali se ispostavilo, na primer, da za aktivaciju HID profila potrebno je kucati «agent KeyboardOnly». Čudesno je što za pokretanje Bluetooth PAN-a treba pretraživati repozitorijume u potrazi za potrebnim skriptom. Pamti da je u prethodnoj verziji BlueZ postojao gotov alat pand — gde li je nestao u BlueZ 5? Možda postoji novo rešenje koje autor ne poznaje, ali je na površini?
Performanse
Brzina prenosa podataka iznosila je oko 120 kbit/s, što je sasvim dovoljno. 1-gigaherc ARM procesor je vrlo brz za komandnu liniju. Autor ipak planira da koristi uređaj uglavnom za ssh i emacs.
Konzolni fontovi i rezolucija ekrana
Rezolucija ekrana koja se koristi frame bufferom na Raspberry Pi Zero po defaultu je prilično čudna: fbset javlja da iznosi 656×416 piksela (monitor, naravno, nije povezan). Sa konzolnim fontom 8×16 dobija se 82 karaktera u redu i 26 redova.
Raditi sa brajevskim displejom sa 40 znakova u takvom režimu nije praktično. Takođe, autor bi želeo da se na displeju prikazuju znaci Unicode u brajevskom formatu. Na sreću, Linux podržava 512 simbola, dok većina konzolnih fontova ima 256. Pomoću console-setup moguće je koristiti dva 256-simbolna fonta zajedno. Autor je dodao u fajl /etc/default/console-setup sledeće linije:
SCREEN_WIDTH=80
SCREEN_HEIGHT=25
FONT="Lat15-Terminus16.psf.gz brl-16x8.psf"Napomena: kako bi font brl-16×8.psf postao dostupan, potrebno je instalirati console-braille.
Što dalje?
Na brajlovskom ekranu nalazi se 3,5-milimetarski "jack", ali autoru nisu poznati adapteri za izlaz audio signala s Mini-HDMI. Autor nije uspio aktivirati ugrađenu zvučnu karticu na "malinki" (čudno, prevoditelj je bio siguran da Zero nema takvu, ali postoje načini za izlaz zvuka PWM-om na GPIO). Planira upotrijebiti USB-OTG hub i priključiti vanjsku karticu te izdvojiti zvuk na ugrađenu zvučnik u brajlovskom ekranu. Dvije vanjske kartice iz nekog razloga nisu radile, sada traži slično uređaj na drugom čipsetu.
Još je nezgodno ručno isključivati "malinku", čekati nekoliko sekundi i onda isključiti brajlovski ekran. A sve zato što prilikom isključivanja uklanja napajanje iz razvodne kutije. Autor planira staviti mali buffer akumulator u kutiju i preko GPIO obavijestiti "malinku" o isključenju ekrana, kako bi ta mogla započeti završavanje rada. Tako neka vrsta UPS-a u minijaturnom obliku.
Slikovni sustav
Ako imate sličan brajlovski ekran i želite napraviti isto, autor je spreman pružiti gotovu sliku sustava (temeljen na Raspbian Stretch). Pišite mu o tome na adresu navedenu iznad. Ako se skupi dovoljno zainteresiranih, moguće je čak i izraditi komplete koji uključuju sve potrebno za ovu modifikaciju.
Zahvale
Zahvaljujem Daveu Mielkeu na lekturi teksta.
Zahvaljujem Simonu Kainzu na fotoilustracijama.
Zahvaljujem kolegama s Tehničkog sveučilišta u Grazu na brzom uključivanju autora u svijet Raspberry Pi-a.
P.S. autora na tu temu (ne otvara se — prevoditelj) napravljen je samo pet dana prije objave originala ovog članka, i može se reći da je, osim problema sa zvukom, postavljeni zadatak praktički riješen. Usput, finalnu verziju teksta autor je uredio s izradom "samoodrživog brajlovskog ekrana", povezujući ga putem SSH s kućnim računalom.
Izvor: habr.com
