Raspberry Pi Zero inuti en Handy Tech Active Star 40 punktskriftsskärm

Raspberry Pi Zero inuti en Handy Tech Active Star 40 punktskriftsskärm

Författaren placerade en Raspberry Pi Zero, en Bluetooth-visselpipa och en kabel i sin nya Handy Tech Active Star 40 punktskriftsdisplay. En inbyggd USB-port ger ström. Resultatet blev en självförsörjande skärmlös dator på ARM med operativsystemet Linux, utrustad med ett tangentbord och en punktdisplay. Du kan ladda/strömförsörja den via USB, inkl. från en powerbank eller solcellsladdare. Därför kan han klara sig utan ström i flera timmar, men i flera dagar.

Raspberry Pi Zero inuti en Handy Tech Active Star 40 punktskriftsskärm

Dimensionell differentiering av punktskriftsdisplayer

Först och främst skiljer de sig åt i linjelängd. Enheter med 60 eller mer kapacitet är bra för att arbeta med en stationär dator, medan enheter med 40 kapacitet är bekväma att bära med en bärbar dator. Nu finns det punktskriftsskärmar kopplade till smartphones och surfplattor, med en radlängd på 14 eller 18 tecken.

Tidigare var punktskriftsskärmar ganska massiva. Den bärbara datorn med 40 platser hade till exempel storleken och vikten som en 13-tums bärbar dator. Nu, med samma antal bekanta, är de tillräckligt miniatyrer så att du kan sätta displayen framför den bärbara datorn, snarare än den bärbara datorn på skärmen.

Detta är naturligtvis bättre, men det är fortfarande inte särskilt bekvämt att hålla två separata enheter i knät. När du arbetar vid ett skrivbord finns det inga klagomål, men det är värt att komma ihåg att en bärbar dator kallas en bärbar dator med ett annat namn och försöker motivera sitt namn, eftersom det visar sig att miniatyrskärmen med 40 tecken är ännu mindre bekväm.

Så författaren väntade på att den länge utlovade nya modellen i Handy Tech Star-serien skulle släppas. Redan 2002 släpptes den tidigare modellen Handy Tech Braille Star 40, där kroppsytan räcker för att lägga en bärbar dator ovanpå. Och om det inte passar finns det ett infällbart stativ. Nu har denna modell ersatts av Active Star 40, som är nästan likadan, men med uppgraderad elektronik.

Raspberry Pi Zero inuti en Handy Tech Active Star 40 punktskriftsskärm

Och det infällbara stativet finns kvar:

Raspberry Pi Zero inuti en Handy Tech Active Star 40 punktskriftsskärm

Men det bekvämaste med den nya produkten är ett urtag ungefär lika stort som en smartphone (se KDPV). Den öppnas när plattformen flyttas tillbaka. Det visade sig vara obekvämt att hålla en smartphone där, men du måste på något sätt använda det tomma facket, inuti vilket det till och med finns ett eluttag.

Det första författaren kom på var att placera Raspberry Pi där, men när displayen köptes visade det sig att stativet som täckte facket inte gled in med "hallonet". Om skivan nu bara vore 3 mm tunnare...

Men en kollega berättade för mig om lanseringen av Raspberry Pi Zero, som visade sig vara så miniatyr att två av dem fick plats i facket... eller kanske till och med tre. Den beställdes omedelbart tillsammans med ett 64 GB minneskort, Bluetooth, "whistle" och en Micro USB-kabel. Några dagar senare kom allt detta, och seende vänner hjälpte författaren att förbereda en karta. Allt fungerade direkt som det skulle.

Vad gjordes för detta

På baksidan av Handy Tech Active Star 40 finns två USB-portar för enheter som tangentbord. Ett litet tangentbord med magnetfäste ingår. När tangentbordet är anslutet, och själva skärmen fungerar via Bluetooth, känner datorn dessutom igen det som ett Bluetooth-tangentbord.

Således, om du ansluter en Bluetooth-"vissla" till en Raspberry Pi Zero placerad i smartphonefacket, kommer den att kunna kommunicera med punktskriftsdisplayen via Bluetooth med BRLTTY, och om du också ansluter ett tangentbord till skärmen, kommer "hallon" att fungera med det också.

Men det är inte allt. Själva "hallonet" kan i sin tur komma åt Internet via Bluetooth PAN från vilken enhet som helst som stöder det. Författaren har konfigurerat sin smartphone och datorer hemma och på jobbet i enlighet med detta, men i framtiden planerar han att anpassa ett annat "hallon" för detta - en klassisk, inte en Zero, ansluten till Ethernet och en annan Bluetooth-"vissla".

BlueZ 5 och PAN

PAN-konfigurationsmetod med hjälp av bluez visade sig vara otydligt. Författaren hittade bt-pan Python-skriptet (se nedan), som låter dig konfigurera PAN utan ett GUI.

Den kan användas för att konfigurera både servern och klienten. Efter att ha mottagit lämpligt kommando via D-Bus när den arbetar i klientläge, skapar den en ny nätverksenhet bnep0 omedelbart efter att ha upprättat en anslutning till servern. Vanligtvis används DHCP för att tilldela en IP-adress till detta gränssnitt. I serverläge kräver BlueZ namnet på en bryggenhet till vilken den kan lägga till en slavenhet för att ansluta varje klient. Att konfigurera en adress för bryggenheten och köra en DHCP-server plus IP-maskering på bryggan är vanligtvis allt som krävs.

Bluetooth PAN Access Point med Systemd

För att konfigurera bryggan använde författaren systemd-networkd:

Filen /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 tvinga BlueZ att konfigurera NAP-profilen. Det visade sig att detta inte kan göras med standardverktygen BlueZ 5.36. Om författaren har fel, rätta honom: mlang (kan röra sina öron) blind (ibland tillgång och kvant) guru

Men han hittade blogginlägg и Python-skript för att ringa nödvändiga samtal till D-Bus.

För enkelhetens skull använde författaren Systemd-tjänsten för att köra skriptet och kontrollera om beroenden är lösta.

Filen /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 nedan). #787480).

Efter att ha utfört kommandona system-uppdatering av demonen и systemctl starta om systemd-networkd du kan starta Bluetooth PAN med kommandot systemctl start panorering

Bluetooth PAN-klient som använder Systemd

Klientsidan är också lätt att konfigurera med Systemd.

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

[Match]
Name=bnep*

[Network]
DHCP=yes

Fil /etc/systemd/system/[e-postskyddad]

[Unit]
Description=Bluetooth Personal Area Network client

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

Nu, efter att ha laddat om konfigurationen, kan du ansluta till den angivna Bluetooth-åtkomstpunkten så här:

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

Parning med hjälp av kommandoraden

Naturligtvis måste konfigurationen av servern och klienterna göras efter att ha parat dem via Bluetooth. På servern måste du köra bluetoothctl och ge den kommandona:

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

Efter att ha startat skanningen, vänta några sekunder tills enheten du behöver visas i listan. Skriv ner dess adress och använd den genom att utfärda parkommandot och, om nödvändigt, förtroendekommandot.

På klientsidan måste du göra samma sak, men förtroendekommandot behövs definitivt inte. Servern behöver den för att acceptera en anslutning med NAP-profilen utan manuell bekräftelse av användaren.

Författaren är inte säker på att detta är den optimala sekvensen av kommandon. Kanske allt som behövs är att para ihop klienten med servern och köra trust-kommandot på servern, men han har inte provat detta än.

Aktiverar HID Bluetooth-profil

Det krävs att hallonet känner igen ett tangentbord som är anslutet till punktdisplayen via tråd och sänds av själva displayen via Bluetooth. Detta görs på samma sätt, bara istället agent på måste ge ett kommando agent endast tangentbord och bluetoothctl kommer att hitta en enhet med en HID-profil.

Men att ställa in Bluetooth via kommandoraden är lite komplicerat

Även om författaren lyckades konfigurera allt, förstår han att det är obekvämt att konfigurera 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 du skriva "agent KeyboardOnly". Det är förvånande att för att starta Bluetooth PAN måste du klättra genom repositories på jakt efter det nödvändiga skriptet. Han minns att det i den tidigare versionen av BlueZ fanns ett färdigt verktyg för detta bröd - var gör han i BlueZ 5? Plötsligt dök det upp en ny lösning, okänd för författaren, men liggandes på ytan?

Производительность

Dataöverföringshastigheten var cirka 120 kbit/s, vilket är tillräckligt. 1GHz ARM-processorn är mycket snabb för ett kommandoradsgränssnitt. Författaren planerar fortfarande att huvudsakligen använda ssh och emacs på enheten.

Konsolteckensnitt och skärmupplösning

Standardskärmupplösningen som används av framebuffern på Raspberry Pi Zero är ganska märklig: fbset rapporterar den som 656x416 pixlar (ingen bildskärm ansluten, naturligtvis). Med ett konsoltypsnitt på 8×16 blev det 82 tecken per rad och 26 rader.

Det är obekvämt att arbeta med en punktdisplay på 40 tecken i det här läget. Författaren skulle också vilja se Unicode-tecken visas i punktskrift. Lyckligtvis stöder Linux 512 tecken, och de flesta konsolteckensnitt har 256. Med konsolinställningar kan du använda två teckensnitt på 256 tecken tillsammans. Författaren lade 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 göra teckensnittet brl-16×8.psf tillgängligt måste du installera konsolpunktskrift.

Vad händer nu?

Punktdisplayen har ett 3,5 mm-uttag, men författaren känner inte till adaptrar för att ta emot en ljudsignal från Mini-HDMI. Författaren kunde inte använda ljudkortet inbyggt i hallonet (märkligt nog var översättaren säker på att Zero inte hade något, men det finns sätt att mata ut ljud med PWM till GPIO). Han planerar att använda en USB-OTG-hubb och ansluta ett externt kort och mata ut ljud till högtalaren som är inbyggd i punktdisplayen. Av någon anledning fungerade inte två externa kort, nu letar han efter en liknande enhet på en annan styrkrets.

Det är också obekvämt att manuellt stänga av "hallon", vänta några sekunder och stänga av punktdisplayen. Och allt för att när den är avstängd tar den bort strömmen från kontakten i facket. Författaren planerar att placera ett litet buffertbatteri i facket och, via GPIO, informera hallonet om att skärmen stängs av, så att den kan börja stänga av sitt arbete. Detta är en UPS i miniatyr.

Systembild

Om du har samma punktdisplay och vill göra detsamma med den, är författaren redo att tillhandahålla en färdig bild av systemet (baserad på Raspbian Stretch). Skriv till honom om detta på adressen som anges ovan. Om det finns tillräckligt många intresserade är det till och med möjligt att släppa kit som innehåller allt som behövs för en sådan modifiering.

Kvitteringar

Tack till Dave Mielke för korrekturläsning.

Tack till Simon Kainz för fotoillustrationerna.

Tack till mina kollegor vid Graz Technical University för att de snabbt introducerade författaren till Raspberry Pi-världen.

PS Första tweeten författare om detta ämne (öppnar inte - översättare) gjordes bara fem dagar före publiceringen av originalet av denna artikel, och det kan anses att, med undantag för problem med ljud, uppgiften var praktiskt löst. Förresten, författaren redigerade den slutliga versionen av texten från en "självförsörjande punktskriftsskärm" han gjorde, och kopplade den via SSH till sin hemdator.

Källa: will.com

Lägg en kommentar