Raspberry Pi Zero Handy Tech Active Star 40 braille pantaila baten barruan

Raspberry Pi Zero Handy Tech Active Star 40 braille pantaila baten barruan

Egileak Raspberry Pi Zero bat, Bluetooth txistua eta kable bat jarri zituen bere Handy Tech Active Star 40 braille pantaila berriaren barruan. USB ataka integratuak energia ematen du. Emaitza Linux sistema eragilearekin ARM-en monitore gabeko ordenagailu autosufiziente bat izan zen, teklatu batekin eta Braille pantaila batekin hornitua. USB bidez kargatu/elika dezakezu, barne. power bank edo eguzki-kargagailu batetik. Hori dela eta, botererik gabe egin dezake hainbat orduz, baina hainbat egunez.

Raspberry Pi Zero Handy Tech Active Star 40 braille pantaila baten barruan

Braille pantailen dimentsio-bereizpena

Lehenik eta behin, lerro luzera desberdina da. 60 edukiera edo gehiagoko gailuak egokiak dira mahaigaineko ordenagailu batekin lan egiteko, eta 40 edukiera duten gailuak, berriz, ordenagailu eramangarriarekin garraiatzeko. Orain, telefono eta tabletetara konektatuta dauden braille pantailak daude, 14 edo 18 karaktereko lerroarekin.

Iraganean, braille pantailak nahiko masiboak ziren. 40 eserlekuko ordenagailu eramangarriak, adibidez, 13 hazbeteko ordenagailu eramangarri baten tamaina eta pisua zituen. Orain, ezagun kopuru berarekin, nahikoa miniaturakoak dira pantaila eramangarriaren aurrean jarri ahal izateko, ordenagailu eramangarria pantailan baino.

Hau, noski, hobea da, baina oraindik ez da oso erosoa bi gailu bereizi magalean edukitzea. Mahai batean lan egiten duzunean, ez dago kexarik, baina komeni da gogoratzea ordenagailu eramangarri bati ordenagailu eramangarri bati beste izen batekin deitzen zaiola eta bere izena justifikatzen saiatzea, 40 karaktereko miniaturazko pantaila are gutxiago erosoa dela ikusten baita.

Beraz, egileak Handy Tech Star seriean aspaldian agindutako modelo berria kaleratzeko zain egon zen. 2002an, aurreko Handy Tech Braille Star 40 modeloa kaleratu zen, non gorputzaren gunea nahikoa den ordenagailu eramangarri bat gainean jartzeko. Eta kabitzen ez bada, euskarri erretiragarri bat dago. Orain modelo hau Active Star 40-rekin ordezkatu da, ia berdina dena, baina elektronika berritua duena.

Raspberry Pi Zero Handy Tech Active Star 40 braille pantaila baten barruan

Eta euskarri erretiragarria geratzen da:

Raspberry Pi Zero Handy Tech Active Star 40 braille pantaila baten barruan

Baina produktu berriaren gauzarik erosoena smartphone baten tamaina gutxi gorabeherako tartea da (ikus KDPV). Plataforma atzera egiten denean irekitzen da. Desegokia izan da telefono bat bertan edukitzea, baina nolabait hutsik dagoen konpartimentua erabili behar duzu, zeinaren barruan korronte-hartune bat ere badago.

Egileak asmatu zuen lehen gauza Raspberry Pi bertan jartzea izan zen, baina pantaila erosi zenean, konpartimentua estaltzen zuen standa ez zela irristatu "mugurdiarekin". Orain, taula 3 mm meheagoa izango balitz...

Baina lankide batek Raspberry Pi Zero-ren kaleratzeari buruz esan zidan, hain miniaturazkoa izan zela bi konpartimentuan sartu zitezkeen... edo agian hiru ere. Berehala eskatu zen 64 GB-ko memoria-txartel batekin, Bluetooth-a, "txistua" eta Mikro USB kable batekin batera. Handik egun batzuetara hau guztia iritsi zen, eta lagun ikusmenak egileari mapa bat prestatzen lagundu zioten. Dena berehala funtzionatu zuen behar bezala.

Zer egin zen horretarako

Handy Tech Active Star 40-ren atzealdean bi USB ataka daude teklatuak bezalako gailuetarako. Tamaina txikiko teklatua euskarri magnetikoa duen barne dago. Teklatua konektatuta dagoenean eta pantailak berak Bluetooth bidez funtzionatzen duenean, ordenagailuak Bluetooth teklatu gisa ere ezagutzen du.

Horrela, Bluetooth "txistua" telefonoaren konpartimentuan kokatutako Raspberry Pi Zero batera konektatzen baduzu, braille pantailarekin Bluetooth bidez komunikatu ahal izango da. BRLTTY, eta teklatu bat pantailara konektatzen baduzu, "mugurdiak" ere funtzionatuko du.

Baina hori ez da guztia. "Mugurdiak" berak, berriz, Bluetooth PAN bidez Internetera sar daiteke onartzen duen edozein gailutatik. Egileak horren arabera konfiguratu ditu bere telefonoa eta ordenagailuak etxean eta lanean, baina etorkizunean beste "mugurdi" bat egokitzeko asmoa du horretarako - klasiko bat, ez Zero, Ethernet-era konektatuta eta beste "txistu" Bluetooth bat.

BlueZ 5 eta PAN

PAN konfigurazio metodoa erabiliz bluez begi-bistakoa izan zen. Egileak bt-pan Python script-a aurkitu zuen (ikus behean), eta horrek PAN GUIrik gabe konfiguratzeko aukera ematen du.

Zerbitzaria zein bezeroa konfiguratzeko erabil daiteke. Bezero moduan lan egitean D-Bus bidez komando egokia jaso ondoren, sareko gailu berri bat sortzen du bnep0 zerbitzariarekin konexioa ezarri eta berehala. Normalean, DHCP erabiltzen da interfaze honi IP helbide bat esleitzeko. Zerbitzari moduan, BlueZ-ek zubi-gailu baten izena behar du, zeinari gailu esklabo bat gehi diezaiokeen bezero bakoitza konektatzeko. Zubi-gailurako helbide bat konfiguratzea eta DHCP zerbitzari bat gehi IP maskaratzea zubian exekutatzen da normalean behar dena.

Bluetooth PAN sarbide-puntua Systemd

Zubia konfiguratzeko, egileak systemd-networkd erabili zuen:

/etc/systemd/network/pan.netdev fitxategia

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

/etc/systemd/network/pan.network fitxategia

[Match]
Name=pan

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

Orain BlueZ behartu behar dugu NAP profila konfiguratzera. Agertu zen hori ezin dela egin BlueZ 5.36 utilitate estandarrekin. Egilea oker badago, zuzendu ezazu: mlang (belarriak mugitu ditzake) itsu (batzuetan sarbidea eta kuantikoa) guru

Baina aurkitu zuen blogeko mezua и Python gidoia D-Busera beharrezko deiak egiteko.

Erosotasunerako, egileak Systemd zerbitzua erabili zuen scripta exekutatzeko eta mendekotasunak konponduta dauden egiaztatzeko.

/etc/systemd/system/pan.service fitxategia

[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

/usr/local/sbin/pan fitxategia

#!/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

Bigarren fitxategia ez litzateke beharko Debian-ek IPMasquerade= euskarria izango balu (ikus behean). # 787480).

Aginduak exekutatu ondoren systemctl daemon-reload и systemctl berrabiarazi systemd-networkd Bluetooth PAN abiarazi dezakezu komandoarekin systemctl start pan

Bluetooth PAN bezeroa Systemd erabiliz

Bezeroaren aldea ere erraza da konfiguratzen Systemd erabiliz.

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

[Match]
Name=bnep*

[Network]
DHCP=yes

/etc/systemd/system/ fitxategia[posta elektroniko bidez babestua]

[Unit]
Description=Bluetooth Personal Area Network client

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

Orain, konfigurazioa berriro kargatu ondoren, zehaztutako Bluetooth sarbide puntura konekta zaitezke honela:

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

Parekatzea komando-lerroa erabiliz

Noski, zerbitzariaren eta bezeroen konfigurazioa Bluetooth bidez parekatu ondoren egin behar da. Zerbitzarian bluetoothctl exekutatu eta komandoak eman behar dituzu:

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

Eskaneatzen hasi ondoren, itxaron segundo batzuk behar duzun gailua zerrendan agertu arte. Idatzi bere helbidea eta erabili bikote komandoa eta, behar izanez gero, trust komandoa emanez.

Bezeroaren aldetik, gauza bera egin behar duzu, baina konfiantzazko komandoa ez da beharrezkoa. Zerbitzariak NAP profila erabiliz konexio bat onartzeko behar du erabiltzaileak eskuzko berrespenik gabe.

Egilea ez dago ziur komandoen sekuentzia optimoa denik. Beharbada, bezeroa zerbitzariarekin parekatzea eta zerbitzarian trust komandoa exekutatzea besterik ez da behar, baina oraindik ez du probatu.

HID Bluetooth profila gaitzen

Beharrezkoa da Raspberry-k Braille pantailara hari bidez konektatutako teklatua antzematea, eta pantailak berak Bluetooth bidez transmititzen duena. Hau modu berean egiten da, horren ordez agente on agindua eman behar agente KeyboardOnly eta bluetoothctl-ek HID profila duen gailu bat aurkituko du.

Baina Bluetooth komando-lerroaren bidez konfiguratzea pixka bat zaila da

Egileak dena konfiguratzea lortu zuen arren, BlueZ komando-lerroaren bidez konfiguratzea deserosoa dela ulertzen du. Hasieran pentsatu zuen agenteak PIN kodeak sartzeko soilik behar zirela, baina, adibidez, HID profila gaitzeko "agente KeyboardOnly" idatzi behar zen. Harrigarria da Bluetooth PAN abiarazteko biltegietatik igo behar izatea beharrezko scriptaren bila. Gogoan du BlueZ-en aurreko bertsioan horretarako prest zegoen tresna bat zegoela pand - non dago BlueZ 5-en? Bat-batean irtenbide berri bat agertu zen, egileak ezezaguna, baina azalean etzanda?

produktibitatea

Datuak transferitzeko abiadura 120 kbit/s ingurukoa zen, nahikoa da. 1GHz ARM prozesadorea oso azkarra da komando lerroko interfaze baterako. Egileak oraindik ssh eta emacs erabiltzeko asmoa du gailuan.

Kontsolaren letra-tipoak eta pantailaren bereizmena

Raspberry Pi Zero-n framebuffer-ek erabiltzen duen pantaila-bereizmen lehenetsia nahiko bitxia da: fbset-ek 656x416 pixel gisa ematen du (ez dago monitorea konektatuta, noski). 8×16ko kontsolaren letra-tipoarekin, 82 karaktere zeuden lerro bakoitzeko eta 26 lerro.

Modu honetan 40 karaktereko Braille pantaila batekin lan egitea deserosoa da. Egileak Unicode karaktereak braillean bistaratzea ere nahiko luke. Zorionez, Linuxek 512 karaktere onartzen ditu, eta kontsolaren letra-tipo gehienek 256 dituzte. Console-setup erabiliz, 256 karaktereko bi letra-tipo erabil ditzakezu batera. Egileak lerro hauek gehitu ditu /etc/default/console-setup fitxategian:

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

Oharra: brl-16×8.psf letra-tipoa erabilgarri izateko, console-braille instalatu behar duzu.

Zer da hurrengoa?

Braille pantailak 3,5 mm-ko jack bat du, baina egileak ez daki Mini-HDMI-tik audio-seinalea jasotzeko egokitzailerik. Egileak ezin izan zuen Raspberry-n integratutako soinu-txartela erabili (bitxiki, itzultzaileak ziur zegoen Zero-k ez zuela halakorik, baina badaude soinua PWM erabiliz GPIOra ateratzeko moduak). USB-OTG hub bat erabiltzeko eta kanpoko txartel bat eta irteerako soinua braille pantailan integratutako bozgorailura konektatzeko asmoa du. Arrazoiren batengatik, kanpoko bi txartel ez zuten funtzionatu; orain antzeko gailu bat bilatzen ari da beste chipset batean.

Era berean, deserosoa da "mugurdia" eskuz itzaltzea, segundo batzuk itxaron eta braille pantaila itzaltzea. Eta guztia itzalita dagoenean konpartimentuko konektoreari energia kentzen diolako. Egileak konpartimentuan buffer bateria txiki bat jartzeko asmoa du eta, GPIO bidez, Raspberry-ri pantaila itzaltzeari buruz jakinaraziko dio, bere lana ixten has dezan. Hau miniaturako UPS bat da.

Sistemaren irudia

Braille pantaila bera baduzu eta horrekin gauza bera egin nahi baduzu, egilea prest dago sistemaren irudia prest emateko (Raspbian Stretch-en oinarrituta). Idatzi honi buruz goian adierazitako helbidean. Interesa duen jende nahikoa badago, aldaketa hori egiteko beharrezkoa den guztia biltzen duten kit-ak askatzea ere posible da.

Eskerrak

Eskerrik asko Dave Mielke-ri zuzenketagatik.

Eskerrik asko Simon Kainz-i argazki ilustrazioengatik.

Eskerrik asko Graz Unibertsitate Teknikoko nire lankideei egileak Raspberry Pi-ren mundura azkar ezagutzeagatik.

PS Lehenengo txioa Gai honi buruzko egilea (ez du irekitzen - itzultzailea) artikulu honen jatorrizkoa argitaratu baino bost egun lehenago egin zen, eta pentsa daiteke, soinuaren arazoak izan ezik, zeregina ia konponduta zegoela. Bide batez, egileak berak egindako “braille pantaila autosufiziente” batetik editatu zuen testuaren azken bertsioa, SSH bidez bere etxeko ordenagailura konektatuz.

Iturria: www.habr.com

Gehitu iruzkin berria