Raspberry Pi Zero unutar Handy Tech Active Star 40 brajevog displeja

Raspberry Pi Zero unutar Handy Tech Active Star 40 brajevog displeja

Autor je stavio Raspberry Pi Zero, Bluetooth zviždaljku i kabl u svoj novi Handy Tech Active Star 40 brajev displej. Ugrađeni USB port obezbeđuje napajanje. Rezultat je bio samodovoljan računar bez monitora na ARM-u sa Linux operativnim sistemom, opremljen tastaturom i Brajevim ekranom. Možete ga puniti/napajati preko USB-a, uklj. iz power banke ili solarnog punjača. Stoga može bez struje nekoliko sati, ali nekoliko dana.

Raspberry Pi Zero unutar Handy Tech Active Star 40 brajevog displeja

Dimenzionalna diferencijacija Brajevih displeja

Prije svega, razlikuju se po dužini linije. Uređaji kapaciteta 60 i više su dobri za rad sa desktop računarom, dok su uređaji kapaciteta 40 pogodni za nošenje sa laptopom. Sada postoje Brajevi displeji povezani sa pametnim telefonima i tabletima, sa dužinom reda od 14 ili 18 znakova.

U prošlosti su Brajevi ekrani bili prilično masivni. Laptop sa 40 sjedišta, na primjer, imao je veličinu i težinu laptopa od 13 inča. Sada, sa istim brojem poznanika, dovoljno su minijaturni da možete staviti displej ispred laptopa, a ne laptop na displej.

Ovo je, naravno, bolje, ali još uvijek nije baš zgodno držati dva odvojena uređaja u krilu. Kada radite za stolom, nema zamjerki, ali vrijedi zapamtiti da se laptop naziva laptop drugim imenom i pokušati opravdati njegovo ime, jer se ispostavilo da je minijaturni ekran od 40 znakova još manje zgodan.

Stoga je autor čekao da dugo obećani novi model iz serije Handy Tech Star bude objavljen. Davne 2002. godine izašao je prethodni model Handy Tech Braille Star 40, gdje je površina tijela dovoljna da se laptop stavi na vrh. A ako ne stane, postoji postolje na uvlačenje. Sada je ovaj model zamijenjen Active Star 40, koji je skoro isti, ali sa nadograđenom elektronikom.

Raspberry Pi Zero unutar Handy Tech Active Star 40 brajevog displeja

A postolje na uvlačenje ostaje:

Raspberry Pi Zero unutar Handy Tech Active Star 40 brajevog displeja

Ali najpogodnija stvar kod novog proizvoda je udubljenje otprilike veličine pametnog telefona (pogledajte KDPV). Otvara se kada se platforma pomeri nazad. Ispostavilo se da je nezgodno držati pametni telefon tamo, ali morate nekako koristiti prazan pretinac, unutar kojeg se čak nalazi i utičnica.

Prvo što je autor smislio je da tu postavi Raspberry Pi, ali kada je ekran kupljen, ispostavilo se da postolje koje pokriva pretinac nije klizilo unutra sa „malinom“. E sad, da je ploča samo 3 mm tanja...

Ali kolega mi je pričao o izlasku Raspberry Pi Zeroa, koji se pokazao toliko minijaturnim da ih dvoje mogu stati u pregradu... ili možda čak tri. Odmah je naručen zajedno sa memorijskom karticom od 64 GB, Bluetoothom, “zviždaljkom” i Micro USB kablom. Nekoliko dana kasnije sve je to stiglo, a viđeni prijatelji pomogli su autoru da pripremi mapu. Sve je odmah proradilo kako je trebalo.

Šta je urađeno za ovo

Na poleđini Handy Tech Active Star 40 nalaze se dva USB porta za uređaje kao što su tastature. Uključena je tastatura male veličine sa magnetnim nosačem. Kada je tastatura povezana, a sam ekran radi preko Bluetooth-a, računar ga dodatno prepoznaje kao Bluetooth tastaturu.

Dakle, ako povežete Bluetooth “zviždaljku” na Raspberry Pi Zero koji se nalazi u pretincu pametnog telefona, on će moći komunicirati s Brajevim zaslonom putem Bluetooth-a koristeći BRLTTY, a ako na ekran povežete i tastaturu, „malina“ će raditi i sa njom.

Ali to nije sve. Sama “malina” zauzvrat može pristupiti internetu putem Bluetooth PAN-a sa bilo kojeg uređaja koji ga podržava. Autor je u skladu s tim konfigurirao svoj pametni telefon i računare kod kuće i na poslu, ali u budućnosti planira za to prilagoditi još jednu „malinu“ – klasičnu, a ne Zero, povezanu na Ethernet i drugu Bluetooth „zviždaljku“.

BlueZ 5 i PAN

PAN metoda konfiguracije koristeći bluez ispostavilo se neočiglednim. Autor je pronašao bt-pan Python skriptu (pogledajte ispod), koja vam omogućava da konfigurišete PAN bez GUI.

Može se koristiti za konfiguraciju i servera i klijenta. Dobivši odgovarajuću komandu preko D-Bus-a pri radu u klijentskom modu, kreira novi mrežni uređaj bnep0 odmah nakon uspostavljanja veze sa serverom. Obično se DHCP koristi za dodjelu IP adrese ovom interfejsu. U serverskom modu, BlueZ zahtijeva ime bridge uređaja na koji može dodati slave uređaj za povezivanje svakog klijenta. Konfigurisanje adrese za bridge uređaj i pokretanje DHCP servera plus IP maskiranje na mostu je obično sve što je potrebno.

Bluetooth PAN pristupna tačka sa Systemd

Za konfiguraciju mosta, autor je koristio systemd-networkd:

Fajl /etc/systemd/network/pan.netdev

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

Fajl /etc/systemd/network/pan.network

[Match]
Name=pan

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

Sada moramo prisiliti BlueZ da konfigurira NAP profil. Ispostavilo se da se to ne može učiniti sa standardnim uslužnim programima BlueZ 5.36. Ako je autor u krivu, ispravite ga: mlang (može pomicati uši) slijepi (ponekad pristup i kvantni) guru

Ali pronašao je blog post и Python skripta za obavljanje potrebnih poziva na D-Bus.

Radi praktičnosti, autor je koristio Systemd uslugu da pokrene skriptu i provjeri da li su ovisnosti riješene.

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

Fajl /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 и systemctl restart systemd-networkd možete pokrenuti Bluetooth PAN komandom systemctl start pan

Bluetooth PAN klijent koji koristi Systemd

Stranu klijenta je također lako konfigurirati koristeći Systemd.

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

[Match]
Name=bnep*

[Network]
DHCP=yes

Fajl /etc/systemd/system/[email zaštićen]

[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 na određenu Bluetooth pristupnu tačku na sljedeći način:

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

Uparivanje pomoću komandne linije

Naravno, konfiguracija servera i klijenata se mora izvršiti nakon njihovog uparivanja putem Bluetooth-a. Na serveru morate 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 treba ne pojavi na listi. Zapišite njegovu adresu i koristite je izdavanjem naredbe uparivanje i, ako je potrebno, naredbe povjerenja.

Na strani klijenta, morate učiniti istu stvar, ali komanda trust definitivno nije potrebna. Serveru je potreban da prihvati vezu koristeći NAP profil bez ručne potvrde od strane korisnika.

Autor nije siguran da je ovo optimalan slijed naredbi. Možda je sve što je potrebno upariti klijenta sa serverom i pokrenuti naredbu trust na serveru, ali on to još nije pokušao.

Omogućavanje HID Bluetooth profila

Potrebno je da Raspberry prepozna tastaturu koja je žicom povezana sa Brajevim displejom, a koju sam displej prenosi putem Bluetooth-a. Ovo se radi na isti način, samo umjesto toga agent on treba dati komandu agent KeyboardOnly i bluetoothctl će pronaći uređaj sa HID profilom.

Ali podešavanje Bluetooth-a putem komandne linije je malo komplikovano

Iako je autor uspio sve konfigurirati, on razumije da je konfiguriranje BlueZ-a preko komandne linije nezgodno. U početku je mislio da su agenti potrebni samo za unos PIN kodova, ali se ispostavilo, na primjer, da za omogućavanje HID profila treba ukucati “agent KeyboardOnly”. Iznenađujuće je da da biste pokrenuli Bluetooth PAN morate se penjati kroz spremišta u potrazi za potrebnom skriptom. Sjeća se da je u prethodnoj verziji BlueZ-a postojao gotov alat za to panda - gdje radi u BlueZ 5? Odjednom se pojavilo novo rješenje, nepoznato autoru, ali leži na površini?

Produktivnost

Brzina prijenosa podataka bila je otprilike 120 kbit/s, što je sasvim dovoljno. 1GHz ARM procesor je veoma brz za interfejs komandne linije. Autor i dalje planira koristiti uglavnom ssh i emacs na uređaju.

Fontovi konzole i rezolucija ekrana

Podrazumevana rezolucija ekrana koju koristi framebuffer na Raspberry Pi Zero je prilično čudna: fbset je prijavljuje kao 656x416 piksela (nije povezan monitor, naravno). Sa fontom konzole od 8×16, bilo je 82 znaka po redu i 26 redova.

Nezgodno je raditi sa Brajevim ekranom od 40 znakova u ovom načinu rada. Autor bi također želio vidjeti Unicode znakove prikazane na Brajevom azbuku. Srećom, Linux podržava 512 znakova, a većina konzolnih fontova ima 256. Koristeći podešavanje konzole, možete koristiti dva fontova od 256 znakova zajedno. Autor je dodao sljedeće linije u /etc/default/console-setup datoteku:

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

Napomena: da bi font brl-16×8.psf bio dostupan, potrebno je da instalirate konzolnu brajevu azbuku.

Što je sljedeće?

Brajev ekran ima priključak od 3,5 mm, ali autoru nisu poznati adapteri za prijem audio signala sa Mini-HDMI. Autor nije mogao da koristi zvučnu karticu ugrađenu u Raspberry (čudno, prevodilac je bio siguran da je Zero nema, ali postoje načini za izlaz zvuka pomoću PWM-a na GPIO). Planira da koristi USB-OTG čvorište i poveže eksternu karticu i emituje zvuk na zvučnik ugrađen u Brajev ekran. Iz nekog razloga dvije eksterne 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 se isključi, isključuje napajanje iz konektora u odjeljku. Autor planira da u odeljak stavi malu bafer bateriju i preko GPIO-a obavesti Raspberry o gašenju displeja, kako bi on mogao da ugasi svoj rad. Ovo je UPS u malom.

Slika sistema

Ako imate isti Brajev displej i želite da uradite isto sa njim, autor je spreman da obezbedi gotovu sliku sistema (baziranu na Raspbian Stretch-u). Pišite mu o tome na gore navedenu adresu. Ako ima dovoljno zainteresiranih, moguće je čak i izdati komplete koji uključuju sve što je potrebno za takvu modifikaciju.

Zahvalnice

Hvala Daveu Mielkeu na lekturi.

Hvala Simonu Kainzu na foto ilustracijama.

Hvala mojim kolegama na Tehničkom univerzitetu u Gracu što su brzo uveli autora u svijet Raspberry Pi-ja.

PS Prvi tvit autor na ovu temu (ne otvara - prevodilac) nastao je samo pet dana prije objavljivanja originala ovog članka, te se može smatrati da je, izuzev problema sa zvukom, zadatak praktično riješen. Inače, autor je konačnu verziju teksta uredio sa “samodovoljnog Brajevog displeja” koji je napravio, povezujući ga preko SSH-a sa svojim kućnim računarom.

izvor: www.habr.com

Dodajte komentar