Raspberry Pi Zero unutar Handy Tech Active Star 40 brailleovog zaslona

Raspberry Pi Zero unutar Handy Tech Active Star 40 brailleovog zaslona

Stavio sam Raspberry Pi Zero, Bluetooth zviždaljku i kabel u svoj novi brajev zaslon Handy Tech Active Star 40. Ugrađeni USB priključak osigurava napajanje. Rezultat je bilo samodostatno računalo bez monitora na ARM-u s operativnim sustavom Linux, opremljeno tipkovnicom i Brailleovim zaslonom. Možete ga puniti/napajati putem USB-a, uklj. iz power bank-a ili solarnog punjača. Stoga može bez mreže ne nekoliko sati, već nekoliko dana.

Raspberry Pi Zero unutar Handy Tech Active Star 40 brailleovog zaslona

Dimenzionalna diferencijacija brajevih zaslona

Prije svega, razlikuju se po duljini linije. Uređaji s 60 ili više familijarnosti dobri su za rad sa stolnim računalom, 40 su prikladni za nošenje uz prijenosno računalo. Sada postoje i brajevi zasloni povezani s pametnim telefonima i tabletima, s dužinom retka od 14 ili 18 znakova.

U prošlosti su Brailleovi zasloni bili prilično masovni. Primjerice, 40 znakova imao je iste dimenzije i težinu kao prijenosno računalo od 13 inča. Sada, uz isti broj familijarnosti, dovoljno su minijaturni da možete staviti displej ispred laptopa, a ne laptop na displej.

Ovo je svakako bolje, ali još uvijek nije baš zgodno držati dva odvojena uređaja u krilu. Kada radite za stolom, nema pritužbi, ali vrijedi zapamtiti da se prijenosno računalo naziva prijenosnim računalom na drugi način i pokušava opravdati svoje ime, jer se ispostavlja da je minijaturni zaslon od 40 znakova još manje prikladan.

Tako je autor čekao izlazak dugo obećavanog novog modela u seriji Handy Tech Star. Davne 2002. godine izašao je prethodni model Handy Tech Braille Star 40, gdje je površina tijela dovoljna da se na vrh stavi prijenosno računalo. A ako ne stane, osiguran je stalak na uvlačenje. Sada je ovaj model zamijenio Active Star 40, koji je praktički isti, ali s nadograđenom elektronikom.

Raspberry Pi Zero unutar Handy Tech Active Star 40 brailleovog zaslona

I postolje na uvlačenje je ostalo:

Raspberry Pi Zero unutar Handy Tech Active Star 40 brailleovog zaslona

Ali najprikladnija stvar kod novosti je udubljenje veličine pametnog telefona (vidi KDPV). Otvara se kada se platforma pomakne unazad. Ispostavilo se da je nezgodno držati pametni telefon tamo, ali morate nekako koristiti prazan odjeljak, unutar kojeg je čak i utičnica za struju.

Prvo čega se autor dosjetio bilo je staviti Raspberry Pi tamo, ali kada je displej kupljen, pokazalo se da se postolje koje je zatvaralo pretinac ne pomiče s “malinom”. E sad, da je ploča samo 3 mm tanja...

Ali kolega je govorio o izdanju Raspberry Pi Zero, koji se pokazao toliko malenim da bi dva od njih stala u odjeljak ... ili možda čak tri. Odmah je naručen zajedno s memorijskom karticom od 64 GB, Bluetoothom, zviždaljkom i Micro USB kabelom. Nekoliko dana kasnije sve je to stiglo, a videći prijatelji pomogli su autoru da izradi kartu. Sve je odmah radilo kako treba.

Što je učinjeno za ovo

Na stražnjoj strani Handy Tech Active Star 40 nalaze se dva USB priključka za uređaje kao što su tipkovnice. Kompaktna tipkovnica s uključenim magnetskim priključkom. Kada je tipkovnica spojena, a sam displej radi preko Bluetootha, računalo ga dodatno prepoznaje kao Bluetooth tipkovnicu.

Dakle, ako je Bluetooth zviždaljka spojena na Raspberry Pi Zero postavljen u pretinac za pametni telefon, moći će komunicirati s brajevim zaslonom putem Bluetootha koristeći BRLTTY, a ako na displej spojite i tipkovnicu, “malina” će raditi i s njom.

Ali to nije sve. Sama Raspberry pak može pristupiti internetu putem Bluetooth PAN-a s bilo kojeg uređaja koji to podržava. Autor je prema tome konfigurirao svoj pametni telefon i računala kod kuće i na poslu, no u budućnosti za to planira prilagoditi još jednu “malinu” – klasičnu, a ne Zero, spojenu na Ethernet i još jednu Bluetooth “zviždaljku”.

BlueZ5 i PAN

Upotreba metode konfiguracije PAN-a bluez pokazalo se nevidljivim. Autor je pronašao Pyhton skriptu bt-pan (vidi dolje) koja vam omogućuje konfiguraciju PAN-a bez GUI-ja.

Pomoću njega možete konfigurirati i poslužitelj i klijent. Primivši odgovarajuću naredbu putem D-Bus-a tijekom rada u načinu klijenta, kreira novi mrežni uređaj bnep0 odmah nakon uspostavljanja veze s poslužiteljem. Obično se DHCP koristi za dodjelu IP adrese ovom sučelju. U načinu rada poslužitelja, BlueZ zahtijeva naziv premosnog uređaja, kojemu može dodati podređeni uređaj za povezivanje svakog od klijenata. Obično je sve što je potrebno konfigurirati adresu za premosni uređaj i pokrenuti DHCP poslužitelj plus maskiranje IP-a na premosnom uređaju.

Bluetooth PAN pristupna točka sa Systemd

Autor je koristio systemd-networkd za konfiguraciju mosta:

DATOTEKA /etc/systemd/network/pan.netdev

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

DATOTEKA /etc/systemd/network/pan.network

[Match]
Name=pan

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

Sada moramo natjerati BlueZ da konfigurira NAP profil. Ispostavilo se da obični uslužni programi BlueZ 5.36 to ne mogu učiniti. Ako je autor u krivu, ispravite ga: mlang (zna micati ušima) slijep (ponekad pristup i kvantni) guru

Ali našao je post na blogu и python skripta za obavljanje potrebnih D-Bus poziva.

Radi praktičnosti, autor je koristio uslugu Systemd za pokretanje skripte i provjeru jesu li ovisnosti riješene.

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.target

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

Druga datoteka ne bi bila potrebna da Debian ima podršku za IPMasquerade= (vidi dolje). #787480).

Nakon izvršenja naredbi systemctl daemon-reload и ponovno pokretanje systemctl systemd-networkd možete pokrenuti Bluetooth PAN s naredbom systemctl početna ploča

Bluetooth PAN klijent koji koristi Systemd

Stranu klijenta također je lako konfigurirati pomoću Systemd-a.

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

[Match]
Name=bnep*

[Network]
DHCP=yes

DATOTEKA /etc/systemd/system/[e-pošta zaštićena]

[Unit]
Description=Bluetooth Personal Area Network client

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

Sada, nakon ponovnog učitavanja konfiguracije, možete se povezati s navedenom Bluetooth pristupnom točkom ovako:

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

Uparivanje pomoću naredbenog retka

Naravno, konfiguracija poslužitelja i klijenata mora se izvršiti nakon njihovog uparivanja putem 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:XX

Nakon pokretanja skeniranja pričekajte nekoliko sekundi dok se uređaj koji vam je potreban pojavi na popisu. Zapišite njegovu adresu i upotrijebite je s naredbom pair i, ako je potrebno, s naredbom trust.

Sa strane klijenta, trebate učiniti isto, ali naredba trust sigurno neće biti potrebna. Poslužitelj ga treba za prihvaćanje veze s NAP profilom bez ručne potvrde korisnika.

Autor nije siguran da je to optimalan slijed naredbi. Možda je sve što je potrebno upariti klijenta s poslužiteljem i pokrenuti naredbu trust na poslužitelju, ali on to još nije pokušao.

Omogućavanje Bluetooth HID profila

Potrebno je da "malina" prepozna tipkovnicu koja je žicom povezana s Brailleovim zaslonom, a prosljeđuje je sam zaslon Bluetoothom. Učinite isto, ali umjesto agent na moram dati naredbu agent KeyboardOnly i bluetoothctl će pronaći uređaj s HID profilom.

No konfiguriranje Bluetootha putem naredbenog retka je nezgodno.

Iako je autor uspio sve konfigurirati, on razumije da je konfiguracija BlueZ-a putem naredbenog retka nezgodna. Prvo je mislio da su agenti potrebni samo za unos PIN kodova, no pokazalo se, primjerice, da za uključivanje HID profila treba upisati "agent KeyboardOnly". Iznenađujuće, da biste pokrenuli Bluetooth PAN, morate se popeti kroz repozitorije u potrazi za pravom skriptom. Sjeća se da je u prethodnoj verziji BlueZ-a za to postojao gotov alat. panda - gdje radi u BlueZ 5? Odjednom se pojavilo novo rješenje, nepoznato autoru, ali leži na površini?

Performanse

Brzina prijenosa podataka bila je oko 120 kbps, što je sasvim dovoljno. ARM procesor od 1 GHz vrlo je brz za sučelje naredbenog retka. Autor i dalje planira koristiti uglavnom ssh i emacs na uređaju.

Fontovi konzole i razlučivost zaslona

Zadana razlučivost zaslona koju koristi međuspremnik okvira na Raspberry Pi Zero prilično je čudna: fbset je prijavljuje kao 656x416 piksela (monitor nije povezan, naravno). S konzolnim fontom 8x16 dobili smo 82 znaka po retku i 26 redaka.

Rad s brajevim zaslonom od 40 znakova u ovom načinu rada je nezgodan. Također, autor želi da se Unicode znakovi prikazuju na Brailleovom pismu. Srećom, Linux podržava 512 znakova, a većina konzolnih fontova ima 256. Uz postavljanje konzole, možete koristiti dva fonta od 256 znakova zajedno. Autor je dodao sljedeće retke u datoteku /etc/default/console-setup:

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

Napomena: Da biste font brl-16x8.psf učinili dostupnim, morate instalirati console-braille.

Što je sljedeće?

Brailleov zaslon ima 3,5 mm priključak, ali autor ne zna za adaptere za primanje zvuka s Mini-HDMI-ja. Autor nije mogao koristiti zvučnu karticu ugrađenu u "malinu" (čudno, prevoditelj je bio siguran da je Zero nema, ali postoje načini za izlaz zvuka putem PWM-a na GPIO). Planira koristiti USB-OTG hub i spojiti vanjsku karticu i izlaz zvuka na zvučnik ugrađen u Brailleov zaslon. Iz nekog razloga dvije vanjske kartice nisu radile, sada traži sličan uređaj na drugom čipsetu.

Također je nezgodno ručno isključiti "malinu", pričekati nekoliko sekundi i isključiti brajev zaslon. A sve zato što kada je isključen, uklanja napajanje iz konektora u odjeljku. Autor planira staviti malu međuspremnik bateriju u pretinac i preko GPIO-a obavijestiti "malinu" o gašenju zaslona kako bi se on počeo gasiti. Takav je UPS u malom.

Slika sustava

Ako imate isti brajev zaslon i želite učiniti isto s njim, autor će vam rado dati gotovu sliku sustava (temeljenu na Raspbian Stretchu). Pišite mu o tome na gornju adresu. Ako bude dovoljno zainteresiranih, moguće je čak izdati komplete koji sadrže sve što je potrebno za takav remake.

Blagodarnosti

Hvala Daveu Mielkeu na lektoriranju teksta.

Hvala Simonu Kainzu na fotoilustracijama.

Hvala kolegama s Tehničkog sveučilišta u Grazu što su autora brzo uveli u svijet Raspberry Pi.

PS Prvi tweet autor na ovu temu (ne otvara - prevoditelj) je napravljen samo pet dana prije objave originala ovog članka, i možemo pretpostaviti da je, izuzev problema sa zvukom, zadatak praktički riješen. Inače, autor je konačnu verziju teksta uredio sa “samodovoljnog Brailleovog displeja” koji je napravio, povezujući ga putem SSH-a sa svojim kućnim računalom.

Izvor: www.habr.com

Dodajte komentar