Raspberry Pi Zero inuti en brailledisplay frÄn Handy Tech Active Star 40

Raspberry Pi Zero inuti en brailledisplay frÄn Handy Tech Active Star 40

Författaren har placerat en Raspberry Pi Zero, en Bluetooth-«dongel» och en kabel inuti sin nya brödskiva Handy Tech Active Star 40. Den inbyggda USB-porten tillhandahÄller ström. Det blev en sjÀlvstÀndig dator utan skÀrm med ARM-processor som kör Linux, försedd med tangentbord och brödskiva. Den kan laddas/drivas via USB, inklusive frÄn en powerbank eller solcellsladdare. DÀrför klarar den sig utan nÀtström i flera dagar, inte bara timmar.

Raspberry Pi Zero inuti en brailledisplay frÄn Handy Tech Active Star 40

StorleksmÀssig differentiering av brödskivor

Först och frÀmst varierar de i radlÀngd. Enheter med 60 tecken eller fler Àr bra vid anvÀndning med en stationÀr dator, medan de med 40 tecken Àr bekvÀma att bÀra tillsammans med en bÀrbar dator. Idag finns det Àven brödskivor som kan anslutas till smartphones och surfplattor, med radlÀngd pÄ 14 eller 18 tecken.

Tidigare var brödskivor ganska klumpiga. En 40-teckens brödskiva hade till exempel storlek och vikt som en 13-tums laptop. Nu, med samma antal tecken, Àr de tillrÀckligt kompakta för att kunna placeras framför en laptop, i stÀllet för att sÀtta laptopen ovanpÄ brödskivan.

Det Àr förstÄs bÀttre, men det Àr ÀndÄ inte sÀrskilt bekvÀmt att ha tvÄ separata enheter i knÀt. NÀr man arbetar vid ett skrivbord finns det inga klagomÄl, men man fÄr komma ihÄg att en laptop ocksÄ kallas en bÀrbar dator, och försöka rÀttfÀrdiga detta namn; det visar sig att en kompakt 40-teckens brödskiva Àr Ànnu mindre bekvÀm.

SĂ„ författaren vĂ€ntade pĂ„ utgivningen av den lĂ€nge utlovade nya modellen i serien Handy Tech Star. Redan 2002 slĂ€pptes den föregĂ„ende modellen Handy Tech Braille Star 40, dĂ€r det fanns tillrĂ€ckligt med yta för att kunna sĂ€tta en laptop ovanpĂ„. Och om den inte fĂ„r plats – finns det en utdragbar stativ. Denna modell har nu ersatts av Active Star 40, som Ă€r i stort sett densamma men med uppdaterad elektronik.

Raspberry Pi Zero inuti en brailledisplay frÄn Handy Tech Active Star 40

Och den utdragbara stativet finns kvar:

Raspberry Pi Zero inuti en brailledisplay frÄn Handy Tech Active Star 40

Men det mest bekvÀma i nyheten Àr Fördjupningen som har ungefÀr samma storlek som en smartphone (se KDPV). Den öppnas genom att flytta plattformen bakÄt. Det visade sig vara obekvÀmt att hÄlla en smartphone dÀr, men man mÄste ju pÄ nÄgot sÀtt anvÀnda det tomma utrymmet, dÀr det till och med finns en strömutgÄng.

Det första som författaren kom pÄ var att placera en Raspberry Pi dÀr, men nÀr skÀrmen köptes visade det sig att stativet som tÀcker facket inte passar med "hallonen". Om bara kortet hade varit 3 mm tunnare...

Men en kollega berÀttade om Raspberry Pi Zero, som visade sig vara sÄ kompakt att det skulle rymmas tvÄ... eller kanske till och med tre i facket. Den bestÀlldes omedelbart tillsammans med ett 64 GB minneskort, Bluetooth, en "dongel" och en Micro USB-kabel. NÄgra dagar senare kom allt detta, och synsÀttande vÀnner hjÀlpte författaren att förbereda kortet. Allt fungerade genast bra.

Vad som gjordes för detta

PÄ baksidan av Handy Tech Active Star 40 finns det tvÄ USB-portar för enheter som tangentbord. Ett kompakt tangentbord med magnetfÀste medföljer. NÀr tangentbordet Àr inkopplat och skÀrmen fungerar via Bluetooth, identifierar datorn det dessutom som ett Bluetooth-tangentbord.

SÄ om man kopplar en Bluetooth-"dongel" till Raspberry Pi Zero, som placerats i facket för smartphones, kan det utbyta data med punktskÀrmen via Bluetooth med hjÀlp av BRLTTY, och om man dessutom kopplar tangentbordet till skÀrmen kommer "hallonen" Àven att fungera med det.

Men det Ă€r inte allt. SjĂ€lva "hallonen" kan ocksĂ„ fĂ„ tillgĂ„ng till internet via Bluetooth PAN frĂ„n vilken enhet som helst som stöder det. Författaren har stĂ€llt in sin smartphone och datorer hemma och pĂ„ jobbet pĂ„ det sĂ€ttet, men planerar att anpassa en annan "hallon" — den klassiska, inte Zero, för att koppla till Ethernet och en annan Bluetooth-"dongel".

BlueZ 5 och PAN

SÀttet att konfigurera PAN med hjÀlp av BlueZ visade sig vara otydligt. Författaren hittade ett Python-skript bt-pan (se nedan), som gör det möjligt att konfigurera PAN utan GUI.

Med det kan man konfigurera bÄde server och klient. NÀr det fÄr motsvarande kommando via D-Bus i klientlÀge skapar det en ny nÀtverksenhet bnep0 sÄ snart den ansluter till servern. Vanligtvis anvÀnds DHCP för att tilldela en IP-adress till det hÀr grÀnssnittet. I serverlÀge krÀver BlueZ att en bryggenhet anges, till vilken den kan lÀgga till varje ansluten enhet för att koppla upp sig till varje klient. Att konfigurera adressen för bryge-enheten och starta DHCP-server samt IP-masquerading pÄ bryggan Àr vanligtvis allt som krÀvs.

Bluetooth PAN Access Point med Systemd

För att konfigurera bron anvÀnde författaren systemd-networkd:

Fil /etc/systemd/network/pan.netdev

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

Fil /etc/systemd/network/pan.network

[Match]
Name=pan

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

Nu mÄste vi fÄ BlueZ att konfigurera NAP-profilen. Det visade sig att det inte gÄr med de standardverktyg som tillhandahÄlls av BlueZ 5.36. Om författaren har fel, rÀtta honom: mlang (kan röra öronen) blind (kan ha tillgÄng och kvant) guru

Men han fann ett blogginlÀgg och ett Python-skript för att göra de nödvÀndiga anropen till D-Bus.

För bekvÀmlighetens skull anvÀnde författaren en Systemd-tjÀnst för att köra skriptet och kontrollera beroenden.

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

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

Den andra filen skulle inte behövas om Debian hade stöd för IPMasquerade= (se. #787480).

Efter att ha kört kommandona systemctl daemon-reload och systemctl restart systemd-networkd kan Bluetooth PAN startas med kommandot systemctl start pan

Bluetooth PAN-klient med Systemd

Klientdelen Àr ocksÄ enkel att konfigurera med hjÀlp av Systemd.

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

[Match]
Name=bnep*

[Network]
DHCP=yes

Fil /etc/systemd/system/pan@.service

[Unit]
Description=Bluetooth Personal Area Network-klient

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

Nu, efter att konfigurationen har startats om kan du ansluta till den angivna Bluetooth-Ätkomstpunkten sÄ hÀr:

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

Parning via kommandoraden

Naturligtvis mÄste server- och klientkonfigurationerna göras efter att de har parats via Bluetooth. PÄ servern mÄste du köra bluetoothctl och ge den kommandon:

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

NĂ€r du har startat skanningen, vĂ€nta nĂ„gra sekunder tills den enhet du vill ha visas i listan. Notera dess adress och anvĂ€nd den nĂ€r du ger kommandot pair, och om nödvĂ€ndigt — kommandot trust.

FrÄn klientens sida behöver du ocksÄ göra samma sak, men kommandot trust behövs definitivt inte. Servern behöver det för att acceptera anslutningen via NAP-profilen utan manuell bekrÀftelse frÄn anvÀndaren.

Författaren Àr osÀker pÄ om detta Àr den optimala sekvensen av kommandon. Kanske Àr det allt som behövs - att para klienten med servern och utföra kommandot trust pÄ servern, men sÄ har han inte försökt göra Àn.

TillstÄnd för att anvÀnda Bluetooth-profilen HID

Det krÀvs att "hallonet" kÀnner igen tangentbordet som Àr anslutet till den taktila displayen via kabel och som redan överförs av sjÀlva displayen via Bluetooth. Det görs pÄ samma sÀtt, bara istÀllet för agent on mÄste du ge kommandot agent KeyboardOnly och bluetoothctl hittar enheten med HID-profil.

Men att konfigurera Bluetooth via kommandoraden Àr ganska krÄngligt.

Även om författaren lyckades konfigurera allt, inser han att det Ă€r obekvĂ€mt att stĂ€lla in BlueZ via kommandoraden. Först trodde han att agenter bara behövdes för att ange PIN-koder, men det visade sig till exempel att för att aktivera HID-profilen mĂ„ste man skriva "agent KeyboardOnly". Det Ă€r förvĂ„nande att för att aktivera Bluetooth PAN mĂ„ste man leta genom repositories efter rĂ€tt skript. Han minns att det i den tidigare versionen av BlueZ fanns ett fĂ€rdigt verktyg pand — vart tog det vĂ€gen i BlueZ 5? Kanske finns det en ny lösning som författaren inte kĂ€nner till, men som Ă€r alldeles uppenbar?

Performance

Dataöverföringshastigheten var ungefÀr 120 kbit/s, vilket Àr fullt tillrÀckligt. En 1 GHz ARM-processor Àr mycket snabb för kommandoradsgrÀnssnittet. Författaren planerar fortfarande att anvÀnda enheten frÀmst för ssh och emacs.

Konsoltypsnitt och skÀrmupplösning

Upplösningen pĂ„ skĂ€rmen som anvĂ€nds av framebuffer pĂ„ Raspberry Pi Zero som standard Ă€r ganska konstig: fbset rapporterar att den Ă€r 656×416 pixlar (monitor, förstĂ„s, Ă€r inte ansluten). Med ett konsoltypsnitt pĂ„ 8×16 fick man 82 tecken per rad och 26 rader.

Att arbeta med en taktil display med 40 tecken pÄ detta sÀtt Àr obekvÀmt. Författaren skulle ocksÄ vilja att Unicode-tecken visas pÄ displayen i taktil form. Lyckligtvis stöder Linux 512 tecken, och de flesta konsoltypsnitt har 256. Genom att anvÀnda console-setup kan man anvÀnda tvÄ 256-teckens typsnitt samtidigt. Författaren har lagt till följande rader i filen /etc/default/console-setup:

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

Obs: för att typsnittet brl-16×8.psf ska bli tillgĂ€ngligt mĂ„ste console-braille installeras.

Vad hÀnder hÀrnÀst?

Braille-skÀrmen har en 3,5 mm "jack", men författaren kÀnner inte till adaptrar för att ta ljudsignalen frÄn Mini-HDMI. Författaren lyckades inte aktivera ljudkortet inbyggt i "Raspberry Pi" (konstigt, översÀttaren var sÀker pÄ att Zero inte har ett sÄdant, men det finns sÀtt att fÄ ut ljud via PWM pÄ GPIO). Han planerar att anvÀnda en USB-OTG-hubb och ansluta ett externt kort för att fÄ ljudet att spelas genom den inbyggda högtalaren i braille-skÀrmen. TvÄ externa kort fungerade av nÄgon anledning inte, och just nu letar han efter en liknande enhet med en annan chipset.

Det Àr ocksÄ otympligt att manuellt stÀnga av "Raspberry Pi", vÀnta nÄgra sekunder och stÀnga av braille-skÀrmen. Det beror pÄ att den vid avstÀngning tar bort strömmen frÄn kontakten i facket. Författaren planerar att sÀtta in ett litet buffertbatteri i facket och via GPIO informera "Raspberry Pi" om att skÀrmen har stÀngts av, sÄ att den kan börja stÀnga ner. SÄ en slags UPS i miniatyr.

Systemavbildning

Om du har en likadan braille-skÀrm och vill göra samma sak, Àr författaren beredd att tillhandahÄlla en fÀrdig systemavbildning (baserad pÄ Raspbian Stretch). Skriv till honom om detta pÄ adressen ovan. Om tillrÀckligt mÄnga personer Àr intresserade, kan det till och med bli aktuellt att slÀppa kit som innehÄller allt som behövs för en sÄdan ombyggnad.

Tack.

Tack till Dave Mielke för att korrekturlÀsa texten.

Tack till Simon Kainz för fotoillustrationerna.

Tack till kollegorna vid Graz tekniska universitet för att snabbt introducera författaren till vÀrlden av Raspberry Pi.

P.S. Första tweeten frĂ„n författaren om detta Ă€mne (öppnas inte — översĂ€ttaren) gjordes bara fem dagar innan publiceringen av originalartikeln, och man kan sĂ€ga att, med undantag för ljudproblemet, sĂ„ Ă€r uppgiften i stort sett löst. För övrigt redigerade författaren den slutliga versionen av texten efter att han anslutit den egenproducerade "sjĂ€lvstĂ€ndiga braille-skĂ€rmen" via SSH till sin hemmadator.

KĂ€lla: habr.com

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster