Avtor je postavil Raspberry Pi Zero, piščalko Bluetooth in kabel v svoj novi brajev zaslon Handy Tech Active Star 40. Vgrajena vrata USB zagotavljajo napajanje. Rezultat je bil samozadosten računalnik brez monitorja na ARM z operacijskim sistemom Linux, opremljen s tipkovnico in Braillovim zaslonom. Polnite/napajate ga lahko prek USB-ja, vklj. iz powerbank ali solarnega polnilnika. Zato lahko zdrži brez električne energije več ur, vendar več dni.
Dimenzijska diferenciacija brajevih zaslonov
Najprej se razlikujejo po dolžini črte. Naprave s kapaciteto 60 ali več so primerne za delo z namiznim računalnikom, naprave s kapaciteto 40 pa so priročne za prenašanje s prenosnikom. Zdaj obstajajo braillovi zasloni, povezani s pametnimi telefoni in tablicami, z dolžino vrstice 14 ali 18 znakov.
V preteklosti so bili braillovi zasloni precej množični. Prenosnik s 40 sedeži je na primer imel velikost in težo 13-palčnega prenosnika. Zdaj, z enakim številom poznanstev, so dovolj miniaturni, da lahko postavite zaslon pred prenosnik in ne prenosnik na zaslon.
To je seveda bolje, vendar še vedno ni zelo priročno držati dve ločeni napravi v naročju. Ko delate za mizo, ni nobenih pritožb, vendar je vredno zapomniti, da se prenosnik imenuje prenosni računalnik z drugim imenom in poskušati upravičiti svoje ime, saj se izkaže, da je miniaturni 40-mestni zaslon še manj priročen.
Tako je avtor čakal na izdajo dolgo obljubljenega novega modela v seriji Handy Tech Star. Leta 2002 je bil izdan prejšnji model Handy Tech Braille Star 40, kjer je površina telesa dovolj, da lahko na vrhu postavite prenosni računalnik. In če se ne prilega, je na voljo zložljivo stojalo. Zdaj je ta model zamenjal Active Star 40, ki je skoraj enak, vendar z nadgrajeno elektroniko.
In zložljivo stojalo ostaja:
Toda najbolj priročna stvar pri novem izdelku je vdolbina približno velikosti pametnega telefona (glej KDPV). Odpre se, ko ploščad premaknete nazaj. Izkazalo se je, da je neprijetno držati pametni telefon tam, vendar morate nekako uporabiti prazen predel, znotraj katerega je celo vtičnica.
Prva stvar, ki si jo je zamislil avtor, je bila, da bi tja postavil Raspberry Pi, a ko je bil zaslon kupljen, se je izkazalo, da stojalo, ki pokriva predal, ni zdrsnilo z "malino". Zdaj, če bi bila plošča samo 3 mm tanjša ...
Toda kolega mi je povedal o izdaji Raspberry Pi Zero, ki se je izkazala za tako miniaturno, da sta v predal lahko spravila dva ... ali morda celo tri. Takoj je bil naročen skupaj s 64 GB pomnilniško kartico, bluetoothom, "piščalko" in kablom Micro USB. Čez nekaj dni je vse to prispelo in videči prijatelji so avtorju pomagali pripraviti zemljevid. Takoj je vse delovalo kot mora.
Kaj je bilo storjeno za to
Na hrbtni strani Handy Tech Active Star 40 sta dva priključka USB za naprave, kot so tipkovnice. Priložena je majhna tipkovnica z magnetnim nosilcem. Ko je tipkovnica povezana in sam zaslon deluje preko Bluetootha, ga računalnik dodatno prepozna kot Bluetooth tipkovnico.
Če torej »piščalko« Bluetooth povežete z Raspberry Pi Zero, nameščenim v predalu za pametni telefon, bo ta lahko komuniciral z Braillovim zaslonom prek povezave Bluetooth z
A to še ni vse. Sama "malina" pa lahko dostopa do interneta prek Bluetooth PAN iz katere koli naprave, ki to podpira. Avtor je temu primerno konfiguriral svoj pametni telefon in računalnike doma in v službi, v prihodnosti pa namerava za to prilagoditi še eno "malino" - klasično, ne Zero, povezano z ethernetom in drugo Bluetooth "piščalko".
BlueZ 5 in PAN
Uporaba metode konfiguracije PAN
Uporablja se lahko za konfiguracijo strežnika in odjemalca. Ko prejme ustrezen ukaz prek D-Bus pri delu v odjemalskem načinu, ustvari novo omrežno napravo bnep0 takoj po vzpostavitvi povezave s strežnikom. Običajno se DHCP uporablja za dodelitev naslova IP temu vmesniku. V strežniškem načinu BlueZ zahteva ime premostitvene naprave, ki ji lahko doda podrejeno napravo za povezavo vsakega odjemalca. Običajno je vse, kar je potrebno, konfigurirati naslov za mostno napravo in zagnati strežnik DHCP ter maskiranje IP-ja na mostu.
Dostopna točka Bluetooth PAN s Systemd
Za konfiguracijo mostu je avtor uporabil systemd-networkd:
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
Zdaj moramo BlueZ prisiliti, da konfigurira profil NAP. Izkazalo se je, da tega ni mogoče storiti s standardnimi pripomočki BlueZ 5.36. Če se avtor moti, ga popravite: mlang (lahko premika ušesa) slep (včasih dostop in kvantni) guru
Ampak je našel
Za udobje je avtor uporabil storitev Systemd za zagon skripta in preverjanje, ali so odvisnosti razreš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, če bi Debian imel podporo za IPMasquerade= (glejte spodaj).
Po izvedbi ukazov systemctl daemon-reload и systemctl znova zaženite systemd-networkd Bluetooth PAN lahko zaženete z ukazom systemctl začetna plošča
Odjemalec Bluetooth PAN z uporabo Systemd
Stran odjemalca je prav tako enostavna za konfiguracijo z uporabo Systemd.
Datoteka /etc/systemd/network/pan-client.network
[Match]
Name=bnep*
[Network]
DHCP=yes
Datoteka /etc/systemd/system/[e-pošta zaščitena]
[Unit]
Description=Bluetooth Personal Area Network client
[Service]
Type=notify
ExecStart=/usr/local/sbin/bt-pan --debug --systemd client %I --wait
Zdaj, po ponovnem nalaganju konfiguracije, se lahko povežete z navedeno dostopno točko Bluetooth takole:
systemctl start pan@00:11:22:33:44:55
Seznanjanje z uporabo ukazne vrstice
Seveda je treba konfiguracijo strežnika in odjemalcev opraviti po seznanitvi prek povezave Bluetooth. Na strežniku morate zagnati bluetoothctl in mu dati ukaze:
power on
agent on
default-agent
scan on
scan off
pair XX:XX:XX:XX:XX:XX
trust XX:XX:XX:XX:XX:XX
Po začetku skeniranja počakajte nekaj sekund, da se naprava, ki jo potrebujete, prikaže na seznamu. Zapišite njegov naslov in ga uporabite tako, da izdate ukaz pair in po potrebi ukaz trust.
Na strani odjemalca morate storiti isto, vendar ukaz zaupanja zagotovo ni potreben. Strežnik ga potrebuje, da sprejme povezavo z uporabo profila NAP brez ročne potrditve uporabnika.
Avtor ni prepričan, da je to optimalno zaporedje ukazov. Morda je vse, kar je potrebno, seznaniti odjemalca s strežnikom in zagnati ukaz zaupanja na strežniku, vendar tega še ni poskusil.
Omogočanje profila HID Bluetooth
Zahteva se, da Raspberry prepozna tipkovnico, ki je z Braillovim zaslonom povezana z žico in jo sam zaslon prenaša prek Bluetootha. To se naredi na enak način, le namesto tega agent na treba dati ukaz agent KeyboardOnly in bluetoothctl bo našel napravo s profilom HID.
Toda nastavitev Bluetooth prek ukazne vrstice je nekoliko zapletena
Čeprav je avtorju uspelo konfigurirati vse, razume, da je konfiguracija BlueZ prek ukazne vrstice neprijetna. Sprva je mislil, da so agenti potrebni le za vnos PIN kod, vendar se je na primer izkazalo, da morate za aktiviranje profila HID vnesti "agent KeyboardOnly". Presenetljivo je, da se morate za zagon Bluetooth PAN povzpeti skozi repozitorije in iskati zahtevani skript. Spominja se, da je bilo v prejšnji različici BlueZ za to že pripravljeno orodje panda - kje počne v BlueZ 5? Nenadoma se je pojavila nova rešitev, avtorju neznana, a ležeča na površini?
Produktivnost
Hitrost prenosa podatkov je bila približno 120 kbit/s, kar je povsem dovolj. 1 GHz procesor ARM je zelo hiter za vmesnik ukazne vrstice. Avtor namerava na napravi še vedno uporabljati predvsem ssh in emacs.
Pisave konzole in ločljivost zaslona
Privzeta ločljivost zaslona, ki jo uporablja okvirni medpomnilnik na Raspberry Pi Zero, je precej nenavadna: fbset jo poroča kot 656x416 slikovnih pik (seveda brez priključenega monitorja). S pisavo konzole 8×16 je bilo 82 znakov na vrstico in 26 vrstic.
V tem načinu je delo s 40-mestno Braillovo pisavo neprijetno. Avtor bi rad videl tudi znake Unicode, prikazane v brajici. Na srečo Linux podpira 512 znakov, večina konzolnih pisav pa jih ima 256. Z nastavitvijo konzole lahko skupaj uporabite dve 256-mestni pisavi. Avtor je v datoteko /etc/default/console-setup dodal naslednje vrstice:
SCREEN_WIDTH=80
SCREEN_HEIGHT=25
FONT="Lat15-Terminus16.psf.gz brl-16x8.psf"
Opomba: da bo pisava brl-16×8.psf na voljo, morate namestiti console-braille.
Kaj sledi?
Braillov zaslon ima 3,5 mm priključek, vendar avtor ne pozna adapterjev za sprejem zvočnega signala iz Mini-HDMI. Avtor ni mogel uporabiti zvočne kartice, vgrajene v Raspberry (nenavadno je bil prevajalec prepričan, da je Zero nima, vendar obstajajo načini za oddajanje zvoka s pomočjo PWM v GPIO). Načrtuje uporabo zvezdišča USB-OTG in povezavo zunanje kartice ter oddajanje zvoka na zvočnik, ki je vgrajen v brajev zaslon. Iz neznanega razloga dve zunanji kartici nista delovali; zdaj išče podobno napravo na drugem čipu.
Prav tako je neprijetno ročno izklopiti "malino", počakati nekaj sekund in izklopiti braillov zaslon. In vse zato, ker ko je izklopljen, odstrani napajanje iz priključka v predelu. Avtor namerava v prostor postaviti majhno vmesno baterijo in prek GPIO obvestiti Raspberry o izklopu zaslona, da lahko začne ustavljati svoje delo. To je UPS v malem.
Slika sistema
Če imate enak Braillov zaslon in bi radi naredili enako z njim, je avtor pripravljen zagotoviti že pripravljeno sliko sistema (na osnovi Raspbian Stretch). O tem mu pišite na zgoraj navedeni naslov. Če bo dovolj zainteresiranih, je mogoče izdati celo komplete, ki vključujejo vse, kar je potrebno za takšno modifikacijo.
Zahvala
Hvala Davu Mielkeju za lektoriranje.
Hvala Simonu Kainzu za fotoilustracije.
Hvala mojim kolegom na graški tehnični univerzi, da so avtorja hitro uvedli v svet Raspberry Pi.
PS
Vir: www.habr.com