Raspberry Pi Zero unutar Brajlovog displeja Handy Tech Active Star 40

Raspberry Pi Zero unutar Brajlovog displeja Handy Tech Active Star 40

Avtor je v svoj novi brajevski zaslon Handy Tech Active Star 40 vgradil Raspberry Pi Zero, Bluetooth "dongle" in kabel. Vgrajena USB jačina napaja zaslon. Izkazal se je kot samostojen brezmonitorni računalnik na ARM z operacijskim sistemom Linux, opremljen s tipkovnico in brajevim zaslonom. Nalaga se ga lahko prek USB, tudi iz power banke ali sončnega polnilnika. Zato lahko deluje brez električnega omrežja ne le nekaj ur, temveč tudi več dni.

Raspberry Pi Zero unutar Brajlovog displeja Handy Tech Active Star 40

Dimenzionalna diferenciacija brajevskih zaslonov

Predvsem se razlikujejo po dolžini vrstice. Naprave s 60 in več znaki so odlične pri delu z osebnim računalnikom, tiste s 40 pa so primerne za prenašanje skupaj z prenosnikom. Zdaj obstajajo tudi brajevski zasloni, ki se povezujejo s pametnimi telefoni in tablicami, s dolžino vrstice 14 ali 18 znakov.

V preteklosti so bili brajevski zasloni precej obsežni. 40-znakovni, na primer, je imel velikost in težo kot 13-palčni prenosnik. Zdaj so pri enakem številu znakov dovolj kompaktni, da jih lahko postavimo pred prenosnik, namesto da bi postavili prenosnik na zaslon.

To je, seveda, bolje, a kljub temu ni zelo udobno držati na kolenih dveh ločenih naprav. Ko delamo za mizo, ni pripomb, vendar je treba pomisliti, da se prenosni računalnik drugače imenuje "laptop", in poskušati opravičiti to njegovo ime, saj se izkaže, da je mini 40-znakovni zaslon celo manj priročen.

Tako je avtor počakal na izid dolgo obljubljenega novega modela iz serije Handy Tech Star. Že leta 2002 je izšla prejšnja različica Handy Tech Braille Star 40, kjer je bilo dovolj prostora za postavitev prenosnika na vrh. Če ne spada, je na voljo izvlečna podstavka. Ta model je zdaj nadomeščen z Active Star 40, kar je pravzaprav isto, a z modernizirano elektroniko.

Raspberry Pi Zero unutar Brajlovog displeja Handy Tech Active Star 40

Izvlečna podstavka je ostala:

Raspberry Pi Zero unutar Brajlovog displeja Handy Tech Active Star 40

A kar je najbolj priročno pri novinki, je izreza velikosti približno pametnega telefona (glej KDPV). Odpre se s premikom plošče nazaj. Držati pametni telefon tam se je izkazalo za neprijetno, vendar je treba nekako izkoristiti prazen prostor, znotraj katerega je predviden tudi izhod za napajanje.

Prva stvar koju je autor smislio bila je da smjesti Raspberry Pi unutra, ali kada je zaslon kupljen, ispostavilo se da s „malinom” ne može pomaknuti postolje koje zatvara odjeljak. Da je samo ploča bila 3 mm tanja...

Ali kolega je ispričao o izlasku Raspberry Pi Zero, koji je bio toliko minijaturan da bi u odjeljak mogao stati čak dva... ili, možda, čak tri. Odmah je naručen zajedno s memorijskom karticom od 64 GB, Bluetoothom, „donglom” i Micro USB kabelom. Nakon nekoliko dana sve je to stiglo, a prijatelji s dobrim vidom pomogli su autoru da pripremi karticu. Sve je odmah počelo raditi kako treba.

Što je za to učinjeno

Na stražnjoj strani Handy Tech Active Star 40 nalaze se dva USB porta za uređaje poput tipkovnica. Mala tipkovnica s magnetskim držačem dolazi u paketu. Kada je tipkovnica spojena, a sam zaslon radi putem Bluetootha, računalo je dodatno prepoznaje i kao Bluetooth tipkovnicu.

Dakle, ako se na Raspberry Pi Zero, smješten u odjeljak za pametni telefon, priključi Bluetooth „dongle”, moći će razmjenjivati podatke s brajevskim zaslonom putem Bluetootha koristeći BRLTTY, a ako se još i tipkovnica poveže sa zaslonom — „malina” će raditi i s njom.

Ali ni to nije sve. Samo „malina” može pristupiti internetu putem Bluetooth PAN-a s bilo kojeg uređaja koji to podržava. Autor je ispravno postavio svoj pametni telefon 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 uz pomoć BlueZ se pokazao kao nejasan. Autor je pronašao Python skriptu bt-pan (vidi ispod), koja omogućava konfiguriranje PAN-a bez GUI-a.

Uz njezinu pomoć može se postaviti i server i klijent. Nakon primljenog odgovarajućeg naredbe preko D-Busa u klijentskom modu, stvara novo mrežno uređaj bnep0 odmah nakon uspostavljanja veze s serverom. Obično se za dodjelu IP adrese ovom sučelju koristi DHCP. U servernom modu, BlueZ traži da se navede naziv uređaja mosta kojem može dodati po jedno poznato uređaj za povezivanje svakog od klijenata. Konfiguriranje adrese za uređaj mosta i pokretanje DHCP servera plus IP maske na mostu — obično je sve što je potrebno.

Bluetooth PAN access point with Systemd

To configure the bridge, the author used systemd-networkd:

File /etc/systemd/network/pan.netdev

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

File /etc/systemd/network/pan.network

[Match]
Name=pan

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

Now we need to make BlueZ configure the NAP profile. It turned out that the default tools of BlueZ 5.36 cannot do this. If the author is mistaken, correct him: mlang (can move its ears) blind (has access and is quantum) guru

But he found a post on the blog in a Python script to make the necessary D-Bus calls.

For convenience, the author used a Systemd service to run the script and check for dependencies.

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

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

The second file would not be needed if Debian had support for IPMasquerade= (see. #787480).

After executing the commands systemctl daemon-reload in systemctl restart systemd-networkd you can start the Bluetooth PAN with the command systemctl start pan

Bluetooth PAN client using Systemd

The client part can also be easily configured using Systemd.

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

[Match]
Name=bnep*

[Network]
DHCP=yes

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

[Unit]
Description=Bluetooth Personal Area Network client

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

Now, after reloading the configuration, you can connect to the specified Bluetooth access point like this:

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

Pairing using the command line

Of course, the server and client configurations need to be performed after pairing them via Bluetooth. On the server, you need to start bluetoothctl and give it the commands:

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

Once scanning is started, wait a few seconds until the desired device appears in the list. Note its address and use it by issuing the pair command, and if necessary — the trust command.

On the client side, you need to do the same, but the trust command will not be necessary for sure. The server needs it to accept the connection through the NAP profile without manual confirmation from the user.

The author is not sure if this is the optimal sequence of commands. Perhaps all that is needed is to pair the client with the server and execute the trust command on the server, but he has not tried doing it this way yet.

Permission to use the Bluetooth HID profile

Potrebno je, da „malina“ prepozna tipkovnico, povezano z brajevim zaslonom prek kabla, ki je že prilagodila sama naprava prek Bluetootha. To se izvede na enak način, samo namesto agenta na je treba dati ukaz agent KeyboardOnly in bluetoothctl bo našel napravo s HID profilom.

Vendar pa je nastavitev Bluetootha preko ukazne vrstice precej zahtevna.

Čeprav je avtor uspel vse konfigurirati, razume, da je nastavitev BlueZ preko ukazne vrstice nepraktična. Sprva je mislil, da so agenti potrebni le za vnos PIN kod, vendar se je izkazalo, da je, na primer, za vklop HID profila potrebno vpisati „agent KeyboardOnly“. Presenetljivo je, da je za zagon Bluetooth PAN potrebno iskati prave skripte v repozitorijih. Spomni se, da je bila v prejšnji različici BlueZ na voljo že pripravljena orodja pand — kam je to šlo v BlueZ 5? Morda se je pojavila nova rešitev, ki je avtorju neznana, vendar je na površini?

Performansa

Hitrost prenosa podatkov je bila približno 120 kbit/s, kar je povsem dovolj. 1-gigaherčni ARM procesor je zelo hiter za ukazno vrstico. Avtor načrtuje uporabo naprave predvsem za ssh in emacs.

Konzolne pisave in ločljivost zaslona

Ločljivost zaslona, ki jo na Raspberry Pi Zero po privzeto uporablja framebuffer, je precej nenavadna: fbset sporoča, da je 656×416 slikovnih točk (monitor seveda ni priključen). S konzolno pisavo 8×16 je bilo doseženih 82 znakov na vrstico in 26 vrstic.

Delati z brajevim zaslonom z 40 znaki v tem načinu je neprijetno. Avtor bi si želel, da bi se na zaslonu prikazali znaki Unicode v brajevi obliki. Na srečo Linux podpira 512 znakov, medtem ko večina konzolnih pisav ima 256. Z uporabo console-setup je mogoče kombinirati dve 256-znakovni pisavi. Avtor je dodal naslednje vrstice v datoteko /etc/default/console-setup:

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

Opomba: da bo pisava brl-16×8.psf na voljo, je potrebno namestiti console-braille.

Kaj zdaj?

Na braille deski je 3,5-milimetrski »jack«, vendar avtorju niso znani adapterji za prenos avdio signala z Mini-HDMI. Avtorju ni uspelo uporabiti vgrajene zvočne kartice v »malinki« (čudno, prevajalec je bil prepričan, da Zero te nima, vendar so načini za izhod zvoka s PWM na GPIO). Načrtuje, da bo uporabil USB-OTG hub in priključil zunanjo zvočno kartico ter zvok prenesel na zvočnik, vgrajen v braille desko. Dve zunanji kartici iz neznanega razloga nista delovali, trenutno išče podobno napravo z drugim čipom.

Poleg tega je neprijetno, da je treba »malinko« ročno izklopiti, čakati nekaj sekund in nato izklopiti braille desko. Vse zato, ker ob izklopu odstrani napajanje iz vtiča v predalu. Avtor načrtuje, da bo v predal namestil majhen buffer akumulator in preko GPIO sporočil »malinki«, da se je zaslon izklopil, da se ta lahko pripravi na izklop. Nekakšna mini UPS.

Slika sistema

Če imate enako braille desko in želite narediti točno to, je avtor pripravljen ponuditi pripravljen sistem (na osnovi Raspbian Stretch). Pišite mu o tem na naslovu, navedenem zgoraj. Če se bo nabralo dovolj zainteresiranih, je celo možna izdaja kompletov, ki vključujejo vse potrebno za takšno predelavo.

Poděkování

Hvala Daveu Mielkeju za lekturo besedila.

Hvala Simonu Kainzu za foto ilustracije.

Hvala kolegom iz Tehnične univerze v Gradcu za hitro vključitev avtorja v svet Raspberry Pi.

P.S. Prvi tvit avtorja na to temo (ne odpre — prevajalec) je bil objavljen komaj pet dni pred objavo izvirnika tega članka in lahko rečemo, da je bila zastavljena naloga praktično rešena, razen težav z zvokom. Mimogrede, končno različico besedila je avtor uredil s pomočjo svojega »samostojnega braille zaslona«, povezanega preko SSH z domačim računalnikom.

Izvor: habr.com

Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki 🔥 Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki | ProHoster