Raspberry Pi Zero di hundurê dîmenderek braille ya Handy Tech Active Star 40 de

Raspberry Pi Zero di hundurê dîmenderek braille ya Handy Tech Active Star 40 de

Nivîskar Raspberry Pi Zero, bilbilek Bluetooth, û kabloyek di hundurê dîmendera xweya nû ya Handy Tech Active Star 40 de cîh kir Portek USB-ya çêkirî hêzê peyda dike. Di encamê de komputerek bê çavdêriya xweser a li ser ARM-ê bi pergala xebitandina Linux-ê, bi klavyeyek û dîmenderek Braille bû. Hûn dikarin wê bi rêya USB-yê barkirin/hêz bikin, tê de. ji bankek hêzê an şarjêrê rojê. Ji ber vê yekê, ew dikare çend demjimêran, lê çend rojan bê hêz bike.

Raspberry Pi Zero di hundurê dîmenderek braille ya Handy Tech Active Star 40 de

Cûdahiya dimensîyonel a dîmenên braille

Berî her tiştî, ew di dirêjahiya rêzê de cûda dibin. Amûrên bi kapasîteya 60 an zêdetir ji bo xebitandina bi komputerek sermaseyê re baş in, dema ku cîhazên bi kapasîteya 40 re ji bo hilgirtina bi laptopê rehet in. Naha dîmenderên braille hene ku bi têlefon û tabletan ve girêdayî ne, bi dirêjahiya rêza 14 an 18 tîpan.

Berê, dîmenên braille pir girseyî bûn. Ji bo nimûne, laptopa 40-rûsî, mezinahî û giraniya laptopek 13-inch bû. Naha, bi heman hejmara nasan re, ew têra xwe piçûk in, da ku hûn li şûna laptopê li ser ekranê, dîmenderê bidin ber laptopê.

Ev, bê guman, çêtir e, lê dîsa jî ne pir hêsan e ku meriv du cîhazên cihêreng li ser çokê xwe bigire. Gava ku hûn li ser maseyê dixebitin, gilî tune, lê hêja ye ku ji bîr mekin ku laptopek bi navek din jê re tê gotin laptop, û hewl bidin ku navê xwe rastdar bikin, ji ber ku diqewime ku dîmendera 40-karakterî ya miniature hê kêmtir hêsan e.

Ji ber vê yekê nivîskar li benda serbestberdana modela nû ya dirêj-soz di rêza Handy Tech Star de bû. Di sala 2002-an de, modela berê Handy Tech Braille Star 40 hate berdan, ku qada laş têra danîna laptopek li jor e. Û heger ew nehêle, rawestek vekişînek heye. Naha ev model ji hêla Active Star 40 ve hatî guhertin, ku bi pratîkî heman e, lê bi elektronîkek nûvekirî ye.

Raspberry Pi Zero di hundurê dîmenderek braille ya Handy Tech Active Star 40 de

Û rawestgeha vekêşan dimîne:

Raspberry Pi Zero di hundurê dîmenderek braille ya Handy Tech Active Star 40 de

Lê di derbarê hilbera nû de tişta herî rehet veqetînek bi qasî mezinahiya smartphone ye (li KDPV binêre). Dema ku platform paşde vegere ew vedibe. Derket holê ku girtina têlefonek li wir nerehet e, lê hûn hewce ne ku bi rengekî cîhê vala, ku di hundurê wê de tewra dergehek elektrîkê jî heye, bikar bînin.

Yekem tiştê ku nivîskar pê hesiyabû ew bû ku Raspberry Pi li wir bi cîh bike, lê dema ku dîmen hate kirîn, derket holê ku stûna ku perçeyê vedigire bi "raspberry" re neçû. Naha, heke panel tenê 3 mm ziravtir bûya ...

Lê hevkarek ji min re qala serbestberdana Raspberry Pi Zero kir, ku ew qas piçûk bû ku du ji wan dikarin di nav deverekê de bi cih bibin ... an jî dibe ku sê jî. Ew tavilê ligel qerta bîranîna 64 GB, Bluetooth, "whistle" û kabloyek Micro USB hate ferman kirin. Piştî çend rojan ev hemû hatin, û hevalên dîtbar alîkariya nivîskar kirin ku nexşeyek amade bike. Her tişt yekser wekî ku divê xebitî.

Ji bo vê çi hat kirin

Li ser pişta Handy Tech Active Star 40 ji bo cîhazên wekî klavyeyan du portên USB hene. Klavyeyek piçûk-biçûk bi çiyaya magnetîkî tê de heye. Dema ku klavyeyê ve girêdayî ye, û dîmen bi xwe bi Bluetooth-ê dixebite, komputer wê wekî klavyeyek Bluetooth-ê din nas dike.

Ji ber vê yekê, heke hûn "bilbilek" Bluetooth-ê bi Raspberry Pi Zero ve girêdin ku di beşa smartphone de hatî danîn, ew ê bikaribe bi karanîna Bluetooth-ê bi dîmendera braille re têkilî dayne. BRLTTY, û heke hûn klavyeyek jî bi dîmenderê ve girêdin, dê "raspberry" jî pê re bixebite.

Lê ev ne hemû ye. Ji xwe "raspberry", di encamê de, dikare bi riya Bluetooth PAN-ê ji her amûrek ku wê piştgirî dike bigihîje Înternetê. Nivîskar li gorî vê yekê smartphone û komputerên xwe li malê û li ser kar mîheng kiriye, lê di pêşerojê de ew plan dike ku ji bo vê yekê "raspberry"ek din biguhezîne - yek klasîk, ne Zero, ku bi Ethernet û Bluetooth-ê din ve girêdayî ye.

BlueZ 5 û PAN

Rêbaza veavakirina PAN bikar tîne BlueZ ne diyar bû. Nivîskar skrîpta bt-pan Python dît (li jêr binêre), ku dihêle hûn PAN-ê bêyî GUI-yê mîheng bikin.

Ew dikare ji bo mîhengkirina hem server û hem jî xerîdar were bikar anîn. Dema ku di moda xerîdar de xebitî emrê guncan bi riya D-Bus-ê wergirtiye, ew tavilê piştî ku pêwendiyek bi serverê re saz dike amûrek torê ya nû bnep0 diafirîne. Bi gelemperî, DHCP tête bikar anîn ku navnîşek IP-ê li vê navberê veqetîne. Di moda serverê de, BlueZ navê amûrek pirê hewce dike ku ew dikare amûrek xulam lê zêde bike da ku her xerîdar ve girêbide. Veavakirina navnîşanek ji bo cîhaza pirê û xebitandina serverek DHCP û lêvekirina IP-ya li ser pirê bi gelemperî her tiştê ku hewce ye.

Xala gihîştina Bluetooth PAN bi Systemd

Ji bo mîhengkirina pirê, nivîskar systemd-networkd bikar anî:

Pelê /etc/systemd/network/pan.netdev

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

Pelê /etc/systemd/network/pan.network

[Match]
Name=pan

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

Naha divê em zorê bidin BlueZ ku profîla NAP-ê mîheng bike. Derket holê ku ev bi karûbarên standard BlueZ 5.36 nayê kirin. Ger nivîskar xelet e, wî rast bikin: mlang (kare guhên xwe bihejîne) guru kor (carinan gihîştî û quantum)

Lê wî dît post blog и Nivîsara Python da ku bangên pêwîst ji D-Bus re bikin.

Ji bo rehetiyê, nivîskar karûbarê Systemd bikar anî da ku skrîptê bimeşîne û kontrol bike ka girêdayîn têne çareser kirin.

Pelê /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

Pelê /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

Ger Debian piştgirî IPMasquerade= hebe pelê duyemîn hewce nake (li jêr binêre). #787480).

Piştî pêkanîna fermanan systemctl daemon-reload и systemctl systemd-networkd ji nû ve dest pê bike hûn dikarin bi fermanê Bluetooth PAN dest pê bikin systemctl dest pê dike pan

Xerîdar Bluetooth PAN bi karanîna Systemd

Aliyê xerîdar jî bi karanîna Systemd-ê veavakirina hêsan e.

Pelê /etc/systemd/network/pan-client.network

[Match]
Name=bnep*

[Network]
DHCP=yes

Pelê /etc/systemd/system/[email parastî]

[Unit]
Description=Bluetooth Personal Area Network client

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

Naha, piştî barkirina veavakirinê, hûn dikarin bi vî rengî bi xala gihîştina Bluetooth-ê ya diyarkirî ve girêdin:

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

Bi karanîna rêzika fermanê re hevber kirin

Bê guman, veavakirina server û xerîdar divê piştî ku wan bi Bluetooth-ê veqetînin were kirin. Li ser serverê hûn hewce ne ku bluetoothctl bimeşînin û fermanan bidin wê:

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

Piştî destpêkirina lêgerînê, çend hûrdeman bisekinin heya ku amûra ku hûn hewce ne di navnîşê de xuya bibe. Navnîşana wê binivîsin û bi derxistina fermana cotê û, ger hewce be, fermana pêbaweriyê bikar bînin.

Li aliyê xerîdar, hûn hewce ne ku heman tiştî bikin, lê fermana pêbaweriyê bê guman ne hewce ye. Pêşkêşker hewce dike ku pêwendiyek bi karanîna profîla NAP-ê bêyî pejirandina destan ji hêla bikarhêner ve qebûl bike.

Nivîskar ne bawer e ku ev rêza fermanan çêtirîn e. Dibe ku ya ku hewce ye ev e ku meriv xerîdar bi serverê re heval bike û emrê pêbaweriyê li ser serverê bimeşîne, lê wî hîna vê yekê ceriband.

Çalakkirina Profîla HID Bluetooth

Pêdivî ye ku Raspberry klavyeyek ku bi têlê bi dîmendera Braille ve girêdayî ye nas bike, û ji hêla dîmenderê ve bi Bluetooth-ê ve hatî veguheztin. Ev bi heman awayî tê kirin, tenê li şûna agent li ser pêdivî ye ku fermanek bide agent KeyboardOnly û bluetoothctl dê amûrek bi profîla HID-ê bibîne.

Lê sazkirina Bluetooth-ê bi riya rêzika fermanê hinekî tevlihev e

Her çend nivîskar karî her tiştî mîheng bike, ew fam dike ku mîhengkirina BlueZ bi rêzika fermanê nerehet e. Di destpêkê de wî difikirî ku ajan tenê ji bo têketina kodên PIN-ê hewce ne, lê derket holê, wekî mînak, ji bo çalakkirina profîla HID-ê hûn hewce ne ku "Agent KeyboardOnly" binivîsin. Ecêb e ku ji bo destpêkirina Bluetooth PAN-ê hûn hewce ne ku di nav depoyan de li lêgerîna skrîpta pêwîst bigerin. Ew bi bîr tîne ku di guhertoya berê ya BlueZ de ji bo vê amûrek amade hebû pand - ew li BlueZ 5 li ku dike? Ji nişkê ve çareseriyek nû xuya bû, ji nivîskarê re nenas, lê li ser rûyê erdê ye?

Berhemdariyê

Leza veguheztina daneyê bi qasî 120 kbit/s bû, ku bes e. Pêvajoya ARM ya 1GHz ji bo navgîniya rêzika fermanê pir bilez e. Nivîskar hîn jî plan dike ku bi piranî ssh û emacs li ser cîhazê bikar bîne.

Fontên konsolê û çareseriya ekranê

Çareserkirina dîmendera xwerû ya ku ji hêla framebufferê ve li ser Raspberry Pi Zero tê bikar anîn pir ecêb e: fbset wê wekî 656x416 pixel radigihîne (bê guman, çavdêriyek girêdayî tune). Bi tîpek konsolê ya 8×16, her rêzek 82 tîp û 26 rêzik hebûn.

Nerehet e ku meriv di vê modê de bi dîmenderek Braille ya 40-karakterî re bixebite. Nivîskar her weha dixwaze ku karakterên Unicode bi braille werin xuyang kirin. Xwezî, Linux 512 tîpan piştgirî dike, û piraniya tîpên konsolê 256 hene. Bi karanîna konsolê-sazkirinê, hûn dikarin du tîpên 256-karakterî bi hev re bikar bînin. Nivîskar ev rêzikên jêrîn li pelê /etc/default/console-setup zêde kir:

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

Nîşe: ji bo ku tîpa brl-16×8.psf peyda bibe, divê hûn konsolê-braille saz bikin.

Çi ye?

Dîmendera Braille xwedan jackek 3,5 mm e, lê haya nivîskar ji adapterên ji bo wergirtina îşaretek dengî ji Mini-HDMI nizane. Nivîskar nekaribû qerta dengê ku di Raspberry de hatî çêkirin bikar bîne (ecêb e, wergêr pê bawer bû ku Zero tune ye, lê rê hene ku meriv bi karanîna PWM-ê ji GPIO-yê re deng derxe). Ew plan dike ku navendek USB-OTG bikar bîne û qertek derveyî û dengek derkeve bi axaftvana ku di dîmendera braille de hatî çêkirin ve girêbide. Ji ber hin sedeman, du kartên derveyî nexebitin, naha ew li ser chipsetek cûda li amûrek wekhev digere.

Di heman demê de nerehet e ku meriv bi destan "raspberry" were qut kirin, çend saniyan li bendê bimîne û dîmendera braille bigire. Û hemî ji ber ku dema ku ew bête girtin, ew hêzê ji girêdana di beşê de radike. Nivîskar plan dike ku batariyek tamponek piçûk di nav beşan de bi cîh bike û, bi navgîniya GPIO, Raspberry-ê di derheqê vemirandina dîmenderê de agahdar bike, da ku ew dest bi girtina xebata xwe bike. Ev UPS di mînyaturê de ye.

Wêneya pergalê

Ger we heman dîmendera Braille heye û hûn dixwazin bi wê re heman tiştî bikin, nivîskar amade ye ku wêneyek amadekirî ya pergalê (li ser bingeha Raspbian Stretch) peyda bike. Li ser vê navnîşana ku li jor hatî destnîşan kirin ji wî re binivîsin. Ger kesên eleqedar bi têra xwe hebin, tewra gengaz e ku kîtên ku her tiştê ku ji bo guheztinek wusa hewce dike vedihewîne.

Spasdarî

Spas ji Dave Mielke re ji bo rastnivîsandinê.

Spas ji Simon Kainz re ji bo nîgarên wêneyan.

Spas ji hevkarên xwe yên li Zanîngeha Teknîkî ya Graz re ji bo ku zû nivîskar bi cîhana Raspberry Pi re da nasîn.

PS Tweeta yekem nivîskarê li ser vê mijarê (veke - werger) tenê pênc roj berî weşandina orîjînala vê gotarê hatiye çêkirin, û mirov dikare were hesibandin ku, ji bilî pirsgirêkên dengbêjiyê, ev kar bi pratîkî hate çareser kirin. Bi awayê, nivîskar guhertoya dawîn a nivîsê ji "nîşandana Braille ya xwebexş" a ku wî çêkiriye, bi rêya SSH bi komputera xwe ya malê ve girêdide.

Source: www.habr.com

Add a comment