
Autorul a integrat un Raspberry Pi Zero, un dongle Bluetooth și un cablu în noul său display braille Handy Tech Active Star 40. Portul USB încorporat asigură alimentarea. A rezultat un computer autonom fără monitor pe arhitectura ARM, cu sistemul de operare Linux, echipat cu o tastatură și un display braille. Poate fi încărcat/alimentat prin USB, inclusiv de la un power bank sau de la un încărcător solar. Prin urmare, poate funcționa fără rețea electrică timp de câteva zile, nu doar câteva ore.

Diferențierea dimensiunilor display-urilor braille
În primul rând, ele variază în funcție de lungimea liniei. Dispozitivele cu 60 și mai multe locuri pentru caractere sunt excelente pentru lucru pe un computer de birou, în timp ce cele cu 40 sunt convenabile pentru transportul împreună cu un laptop. Acum există și display-uri braille care se conectează la smartphone-uri și tablete, cu lungimi ale liniei de 14 sau 18 locuri pentru caractere.
În trecut, display-urile braille erau destul de voluminoase. De exemplu, unul cu 40 de locuri era de dimensiunea și greutatea unui laptop de 13 inci. Acum, ele sunt suficient de compacte pentru a putea fi plasate în fața unui laptop, menținând același număr de locuri pentru caractere.
Este, desigur, mai bine, dar tot nu este foarte convenabil să țină pe genunchi două dispozitive separate. Când lucrezi la birou, nu sunt plângeri, dar să ne amintim că laptopul se mai numește și „laptop”, iar încercând să justifici acest nume, se dovedește că display-ul braille miniatural cu 40 de locuri este chiar mai puțin convenabil.
Așa că autorul a așteptat lansarea noului model promițând din seria Handy Tech Star. În 2002 a fost lansat modelul anterior Handy Tech Braille Star 40, unde suprafața carcasei era suficientă pentru a plasa laptopul deasupra. Dacă acesta nu se încadra, era prevăzut un suport glisant. Acum acest model este înlocuit de Active Star 40, care este practic același lucru, dar cu electronica modernizată.

Și suportul glisant a rămas:

Însă cel mai convenabil aspect al noului model este adâncitura, de dimensiunea aproximativă a unui smartphone (vezi KDPV). Aceasta se deschide prin glisarea platformei înapoi. Asezați telefonul aici s-a dovedit a fi inconfortabil, dar trebuie să cumva folosească acest spațiu gol, în interiorul căruia este prevăzut și un ieșire de alimentare.
Primul lucru pe care l-a imaginat autorul a fost să plaseze un Raspberry Pi acolo, dar când a fost achiziționat display-ul, s-a dovedit că suportul care închide compartimentul nu se potrivește cu „măslinul”. Dacă placa ar fi fost cu doar 3 mm mai subțire...
Dar colegul a menționat apariția Raspberry Pi Zero, care s-a dovedit atât de mic, încât în compartiment ar fi putut încăpea două... sau poate chiar trei. A fost comandat imediat, împreună cu un card de memorie de 64 GB, Bluetooth, un „dongle” și un cablu Micro USB. După câteva zile, toate acestea au sosit, iar prietenii cu vedere l-au ajutat pe autor să pregătească cardul. Totul a funcționat imediat cum trebuie.
Ce s-a făcut pentru asta
Pe spatele Handy Tech Active Star 40 se află două porturi USB pentru astfel de dispozitive ca tastaturile. Tastatura compactă cu prindere magnetică este inclusă. Când tastatura este conectată, iar display-ul funcționează prin Bluetooth, computerul o recunoaște suplimentar ca pe o tastatură Bluetooth.
Astfel, dacă la Raspberry Pi Zero, plasat în compartimentul pentru smartphone, se conectează un „dongle” Bluetooth, acesta va putea schimba date cu display-ul braille prin Bluetooth folosind , iar dacă se conectează și o tastatură la display, „măslina” va funcționa și cu aceasta.
Dar asta nu e tot. „Măslina” poate accesa internetul prin Bluetooth PAN de la orice dispozitiv care îl suportă. Autorul și-a configurat telefonul și computerele de acasă și de la birou, dar plănuiește în continuare să adapteze o altă „măslină” — una clasică, nu Zero, conectată la Ethernet și la un alt „dongle” Bluetooth.
BlueZ 5 și PAN
Metoda de configurare a PAN folosind s-a dovedit a fi neașteptată. Autorul a găsit un script Python bt-pan (vezi mai jos), care permite configurarea PAN fără GUI.
Cu ajutorul său se poate configura atât serverul, cât și clientul. Primind comanda corespunzătoare prin D-Bus în modul client, acesta creează un nou dispozitiv de rețea bnep0 imediat după stabilirea conexiunii cu serverul. De obicei, DHCP este utilizat pentru atribuirera unei adrese IP acestui interfață. În modul server, BlueZ necesită specificarea numelui dispozitivului pod, la care poate adăuga un dispozitiv cunoscut pentru conectarea fiecărui client. Configurarea adresei pentru dispozitivul pod și pornirea serverului DHCP plus mascarea IP pe pod este, de obicei, tot ce este necesar.
Punctul de acces Bluetooth PAN cu Systemd
Pentru configurarea podului, autorul a aplicat systemd-networkd:
Fișierul /etc/systemd/network/pan.netdev
[NetDev]
Name=pan
Kind=bridge
ForwardDelaySec=0Fișierul /etc/systemd/network/pan.network
[Match]
Name=pan
[Network]
Address=0.0.0.0/24
DHCPServer=yes
IPMasquerade=yesAcum trebuie să facem ca BlueZ să configureze profilul NAP. S-a dovedit că, cu uneltele standard BlueZ 5.36, acest lucru nu este posibil. Dacă autorul greșește, corectați-l: mlang (poate mișca urechile) blind (poate avea acces și cuantificat) guru
Dar a găsit și pentru a efectua apelurile necesare pe D-Bus.
Pentru conveniență, autorul a aplicat un serviciu Systemd pentru a rula scriptul și a verifica permisiunile dependențelor.
Fișierul /etc/systemd/system/pan.service
[Unit]
Description=Rețea personală Bluetooth
After=bluetooth.service systemd-networkd.service
Requires=systemd-networkd.service
PartOf=bluetooth.service
[Service]
Type=notify
ExecStart=/usr/local/sbin/pan
[Install]
WantedBy=bluetooth.targetFișierul /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 panCel de-al doilea fișier nu ar fi fost necesar, dacă în Debian ar exista suport pentru IPMasquerade= (vezi. ).
După executarea comenzilor systemctl daemon-reload și systemctl restart systemd-networkd se poate lansa Bluetooth PAN cu comanda systemctl start pan
Client Bluetooth PAN utilizând Systemd
Partea clientului poate fi de asemenea configurată ușor cu ajutorul Systemd.
Fișierul /etc/systemd/network/pan-client.network
[Match]
Name=bnep*
[Network]
DHCP=yesFișierul /etc/systemd/system/pan@.service
[Unit]
Description=Client Bluetooth Rețea Personală
[Service]
Type=notify
ExecStart=/usr/local/sbin/bt-pan --debug --systemd client %I --waitAcum, după repornirea configurației, se poate conecta la punctul de acces Bluetooth dorit astfel:
systemctl start pan@00:11:22:33:44:55Perechea folosind linia de comandă
Desigur, configurația serverului și a clienților trebuie realizată după ce acestea sunt asociate prin Bluetooth. Pe server, trebuie să lansați bluetoothctl și să-i dați comenzile:
power on
agent on
default-agent
scan on
scan off
pair XX:XX:XX:XX:XX:XX
trust XX:XX:XX:XX:XX:XXDupă ce ați început scanarea, așteptați câteva secunde până când dispozitivul dorit apare în listă. Notați adresa sa și folosiți-o, dând comanda pair, iar dacă este necesar — comanda trust.
Din partea clientului, trebuie să faceți la fel, dar comanda trust nu va fi necesară cu siguranță. Serverului îi este necesară pentru a accepta conexiunea prin profilul NAP fără confirmarea manuală a utilizatorului.
Autorul nu este sigur că aceasta este secvența optimă de comenzi. Poate tot ce este nevoie — este asocierea clientului cu serverul și execuția comenzii trust pe server, dar nu a încercat încă acest lucru.
Permisiune de utilizare a profilului Bluetooth HID
Este necesar ca «framboesa» să recunoască tastatura conectată la un display Braille prin cablu și transmisă deja de display prin Bluetooth. Se face la fel, doar că în loc de agent on trebuie dată comanda agent KeyboardOnly și bluetoothctl va găsi dispozitivul cu profil HID.
Dar configurarea Bluetooth prin linia de comandă este complicată.
Deși autorul a reușit să configureze totul, el înțelege că setarea BlueZ prin linia de comandă este incomodă. La început, a crezut că agenții sunt necesari doar pentru introducerea codurilor PIN, dar s-a dovedit, de exemplu, că pentru activarea profilului HID trebuie să tasteze «agent KeyboardOnly». Este surprinzător că pentru a activa Bluetooth PAN trebuie să coboare în repozitorii în căutarea scriptului necesar. Își amintește că în versiunea anterioară a BlueZ exista un instrument gata făcut pand — unde a dispărut acesta în BlueZ 5? A apărut, poate, o nouă soluție, necunoscută autorului, dar aflată la îndemână?
Performanță
Viteza de transfer a fost de aproximativ 120 kbit/s, ceea ce este suficient. Procesorul ARM de 1 GHz este foarte rapid pentru o linie de comandă. Autorul totuși plănuiește să utilizeze pe dispozitiv în principal ssh și emacs.
Fonturi de consolă și rezoluția ecranului
Rezoluția ecranului utilizată de framebuffer pe Raspberry Pi Zero implicit este destul de ciudată: fbset raportul că aceasta este de 656×416 pixeli (monitorul, desigur, nu este conectat). Cu fontul de consolă 8×16 au rezultat 82 de caractere pe linie și 26 de linii.
Lucrul cu un display Braille cu 40 de locuri într-un astfel de mod este incomod. De asemenea, autorul ar dori ca caracterele Unicode să fie afișate pe display în format Braille. Din fericire, Linux acceptă 512 caractere, iar în cele mai multe fonturi de consolă sunt 256. Cu ajutorul console-setup este posibil să folosiți două fonturi de 256 de caractere împreună. Autorul a adăugat în fișierul /etc/default/console-setup următoarele linii:
SCREEN_WIDTH=80
SCREEN_HEIGHT=25
FONT="Lat15-Terminus16.psf.gz brl-16x8.psf"Notă: pentru ca fontul brl-16×8.psf să devină disponibil, trebuie să instalați console-braille.
Ce urmează?
Pe displayul Braille există un jack de 3,5 mm, dar autorul nu cunoaște adaptoare pentru extragerea semnalului audio de pe Mini-HDMI. Autorului nu i-a reușit să folosească placa de sunet încorporată în „malinkă” (ciudat, traducătorul era convins că Zero nu are așa ceva, dar există metode de redare a sunetului PWM pe GPIO). Intenționează să folosească un hub USB-OTG și să conecteze o placă externă pentru a reda sunetul prin difuzorul încorporat în display-ul Braille. Două plăci externe din diverse motive nu au funcționat, acum caută un dispozitiv similar pe un alt chipset.
De asemenea, este inconvenient să oprești manual „malinka”, să aștepți câteva secunde și să deconectezi display-ul Braille. Totul pentru că acesta deconectează alimentarea din conectorul din compartiment. Autorul intenționează să plaseze în compartiment o mică baterie de tampon și să informeze „malinka” prin GPIO despre deconectarea display-ului, pentru ca aceasta să înceapă procesul de încheiere a activității. Așadar, un UPS în miniatură.
Imaginea sistemului
Dacă aveți un display Braille similar și doriți să faceți același lucru, autorul este dispus să ofere o imagine de sistem gata (bazată pe Raspbian Stretch). Scrieți-i la adresa menționată mai sus. Dacă se adună suficienți doritori, este posibil chiar să fie lansate kituri care să includă tot ce este necesar pentru această modificare.
Mulțumiri
Mulțumiri lui Dave Mielke pentru corectarea textului.
Mulțumiri lui Simon Kainz pentru ilustrațiile foto.
Mulțumiri colegilor de la Universitatea Tehnică din Graz pentru integrarea rapidă a autorului în lumea Raspberry Pi.
P.S. al autorului pe această temă (nu se deschide - traducătorul) a fost realizat cu doar cinci zile înainte de publicarea originalului acestui articol, și se poate considera că, cu excepția problemelor cu sunetul, sarcina stabilită este practic rezolvată. Apropo, varianta finală a textului a fost editată de autor folosind „display-ul Braille autosuficient” creat de el, conectându-l prin SSH la calculatorul său de acasă.
Sursa: habr.com
