Raspberry Pi Zero binnen de braille-display Handy Tech Active Star 40

Raspberry Pi Zero binnen de braille-display Handy Tech Active Star 40

De auteur heeft de Raspberry Pi Zero, een Bluetooth-'dongle' en een kabel ingebouwd in zijn nieuwe braille-display Handy Tech Active Star 40. De ingebouwde USB-poort zorgt voor stroom. Het is een zelfstandige computer zonder monitor op ARM met een Linux-besturingssysteem, uitgerust met een toetsenbord en een braille-display. Het kan worden opgeladen of gevoed via USB, inclusief via een powerbank of zonne-oplader. Hierdoor kan het zonder netstroom niet slechts enkele uren, maar enkele dagen werken.

Raspberry Pi Zero binnen de braille-display Handy Tech Active Star 40

Grootte-onderscheid van braille-displays

In de eerste plaats verschillen ze in de regel lengte. Apparaten met 60 of meer cellen zijn goed voor gebruik met een desktopcomputer, terwijl 40 cellen handig zijn om mee te nemen met een laptop. Tegenwoordig zijn er ook braille-displays die op smartphones en tablets kunnen worden aangesloten, met een regel lengte van 14 of 18 cellen.

Vroeger waren braille-displays vrij omvangrijk. Een 40-cellige bijvoorbeeld had afmetingen en gewicht vergelijkbaar met een 13-inch laptop. Nu zijn ze met hetzelfde aantal cellen compact genoeg om het display voor de laptop te plaatsen, in plaats van de laptop op het display.

Dit is natuurlijk beter, maar het blijft onhandig om twee aparte apparaten op schoot te houden. Wanneer je aan een bureau werkt, zijn er geen klachten, maar het is goed te herinneren dat een laptop anders een 'laptop' wordt genoemd, en te proberen deze naam te rechtvaardigen, blijkt dat een compacte 40-cellige display zelfs nog minder comfortabel is.

Dus de auteur wachtte op de release van het lang beloofde nieuwe model in de serie Handy Tech Star. Al in 2002 werd het vorige model Handy Tech Braille Star 40 uitgebracht, waar het oppervlak groot genoeg was om een laptop bovenop te plaatsen. En als het niet past - er is een uitschuifbare standaard voorzien. Dit model is nu vervangen door de Active Star 40, die praktisch hetzelfde is, maar met geüpdatete elektronica.

Raspberry Pi Zero binnen de braille-display Handy Tech Active Star 40

En de uitschuifbare standaard is gebleven:

Raspberry Pi Zero binnen de braille-display Handy Tech Active Star 40

Maar het meest handige aan de nieuwkomer is de uitsparing ter grootte van een smartphone (zie KDPV). Deze opent door de plaat naar achteren te schuiven. Het was onhandig om daar een smartphone in te houden, maar het is nodig om de lege ruimte op te vullen, waarin zelfs een stroomuitgang is voorzien.

Het eerste dat de auteur bedacht, was om daar een Raspberry Pi in te plaatsen, maar toen het scherm was aangeschaft, bleek dat de houder die het compartiment sluit, niet met de 'framboos' paste. Had de kaart maar 3 mm dunner geweest...

Maar een collega vertelde over de Raspberry Pi Zero, die zo klein was dat er wel twee... of zelfs drie in het compartiment paste. Deze werd meteen besteld, samen met een 64 GB geheugenkaart, Bluetooth, een 'dongle' en een Micro USB-kabel. Enkele dagen later arriveerde dit alles, en blinde vrienden hielpen de auteur met het voorbereiden van de kaart. Alles werkte gelijk zoals het moest.

Wat daarvoor is gedaan

Aan de achterkant van de Handy Tech Active Star 40 bevinden zich twee USB-poorten voor apparaten zoals toetsenborden. Een compacte toetsenbord met magnetische bevestiging wordt meegeleverd. Wanneer het toetsenbord is aangesloten en het scherm via Bluetooth werkt, herkent de computer het bovendien als een Bluetooth-toetsenbord.

Dus als je de Raspberry Pi Zero, die in het smartphone compartiment is geplaatst, aansluit op een Bluetooth-dongle, kan hij via Bluetooth gegevens uitwisselen met het braille display met behulp van BRLTTY, en als je ook een toetsenbord op het display aansluit, kan de 'framboos' daar ook mee werken.

Maar dat is nog niet alles. De 'framboos' kan ook via Bluetooth PAN toegang tot internet krijgen vanaf elk apparaat dat dit ondersteunt. De auteur heeft zijn smartphone en computers thuis en op het werk dienovereenkomstig ingesteld, maar is van plan om nog een 'framboos' – een klassieke, niet-Zero – aan te passen en deze aan Ethernet en een andere Bluetooth-dongle te koppelen.

BlueZ 5 en PAN

De configuratiemethode voor PAN met behulp van BlueZ bleek niet voor de hand liggend. De auteur vond een Python-script bt-pan (zie hieronder), waarmee je PAN zonder GUI kunt configureren.

Hiermee kunnen zowel de server als de client worden ingesteld. Bij het ontvangen van een overeenkomstige opdracht via D-Bus in clientmodus, creëert het een nieuw netwerkapparaat bnep0 onmiddellijk na het tot stand brengen van de verbinding met de server. Gewoonlijk wordt DHCP gebruikt om een IP-adres aan dit interface toe te wijzen. In servermodus vereist BlueZ dat je de naam van het brugapparaat opgeeft, waaraan het elk aangesloten apparaat voor de clients kan toevoegen. Het configureren van een adres voor het brugapparaat en het starten van de DHCP-server plus IP-masquerading op de brug is meestal alles wat nodig is.

Bluetooth PAN-toegangspunt met Systemd

Voor de configuratie van de brug heeft de auteur systemd-networkd toegepast:

Bestand /etc/systemd/network/pan.netdev

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

Bestand /etc/systemd/network/pan.network

[Match]
Name=pan

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

Nu moet BlueZ geconfigureerd worden voor het NAP-profiel. Blijkbaar kan dit met de standaardtools van BlueZ 5.36 niet worden gedaan. Als de auteur zich vergist, corrigeer hem: mlang (kan zijn oren bewegen) blind (kan access en quantum zijn) guru

Maar hij vond een bericht in de blog en een Python-script voor het maken van de noodzakelijke aanroepen naar D-Bus.

Voor het gemak heeft de auteur de Systemd-service gebruikt om het script te starten en de afhankelijkheden te controleren.

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

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

Het tweede bestand zou niet nodig zijn als Debian ondersteuning had voor IPMasquerade= (zie #787480).

Na het uitvoeren van de commando's systemctl daemon-reload en systemctl restart systemd-networkd kan Bluetooth PAN gestart worden met het commando systemctl start pan

Bluetooth PAN-client met Systemd

Het clientgedeelte kan ook eenvoudig worden geconfigureerd met behulp van Systemd.

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

[Match]
Name=bnep*

[Network]
DHCP=yes

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

[Unit]
Description=Bluetooth Personal Area Network-client

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

Nu, na het herstarten van de configuratie, kan er verbinding gemaakt worden met het opgegeven Bluetooth-toegangspunt als volgt:

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

Koppeling via de opdrachtregel

Natuurlijk moeten de configuraties van de server en de clients worden uitgevoerd na het koppelen via Bluetooth. Op de server moet bluetoothctl worden gestart en moet de volgende commando's gegeven worden:

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

Start de scan en wacht een paar seconden totdat het gewenste apparaat in de lijst verschijnt. Noteer het adres en gebruik dit, door het commando pair, en indien nodig het commando trust.

Aan de kant van de client moet hetzelfde worden gedaan, maar het commando trust is zeker niet nodig. De server heeft het nodig om de verbinding via het NAP-profiel zonder handmatige bevestiging van de gebruiker te accepteren.

De auteur is er niet zeker van of dit de optimale volgorde van commando's is. Misschien is alles wat nodig is alleen de koppeling van de client met de server en het uitvoeren van het commando trust op de server, maar zo heeft hij het nog niet geprobeerd.

Toestemming voor het gebruik van het Bluetooth HID-profiel

Het is nodig dat de ‘framboos’ het toetsenbord herkent dat via een kabel is aangesloten op de braille-display en al door de display zelf via Bluetooth is doorgestuurd. Dit werkt op dezelfde manier, maar in plaats van agent on moet het commando gegeven worden agent KeyboardOnly en bluetoothctl zal het apparaat met het HID-profiel vinden.

Maar het instellen van Bluetooth via de opdrachtregel is lastig

Hoewel de auteur erin slaagde alles te configureren, begrijpt hij dat het instellen van BlueZ via de opdrachtregel ongemakkelijk is. Eerst dacht hij dat agenten alleen nodig waren om PIN-codes in te voeren, maar het bleek bijvoorbeeld dat voor het inschakelen van het HID-profiel ‘agent KeyboardOnly’ moest worden ingevoerd. Het is verbazingwekkend dat voor het opzetten van Bluetooth PAN men door de repositories moet grasduinen op zoek naar het juiste script. Hij herinnert zich dat er in de vorige versie van BlueZ een kant-en-klaar hulpmiddel voor was pand — waar is het gebleven in BlueZ 5? Is er misschien een nieuwe oplossing verschenen, onbekend voor de auteur, maar voor de hand liggend?

Prestaties

De datasnelheid was ongeveer 120 kbit/s, wat meer dan voldoende is. De 1 GHz ARM-processor is heel snel voor de opdrachtregelinterface. De auteur is van plan om op het apparaat voornamelijk ssh en emacs te gebruiken.

Consolelettertypes en schermresolutie

De standaard schermresolutie die door de framebuffer op de Raspberry Pi Zero wordt gebruikt, is behoorlijk vreemd: fbset meldt dat deze 656×416 pixels bedraagt (de monitor is natuurlijk niet aangesloten). Bij een consolelettertype van 8×16 hebben we 82 symbolen per regel en 26 regels.

Werken met een brailledisplay van 40 tekstregels in deze modus is onhandig. De auteur zou ook willen dat de weergave op de display Unicode-tekens in braille weergeeft. Gelukkig ondersteunt Linux 512 symbolen, en in de meeste consolelettertypes zijn dat er 256. Met console-setup kan men twee 256-symbool lettertypes samen gebruiken. De auteur heeft de volgende regels aan het bestand /etc/default/console-setup toegevoegd:

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

Opmerking: om het lettertype brl-16×8.psf beschikbaar te maken, moet console-braille worden geïnstalleerd.

Wat nu?

Op het braille-display is er een 3,5 mm 'jack', maar de auteur is onbekend met adapters voor het opnemen van het audiosignaal van Mini-HDMI. De auteur is er niet in geslaagd de ingebouwde geluidskaart van de 'raspberry' te gebruiken (vreemd, de vertaler was ervan overtuigd dat de Zero geen had, maar er zijn manieren om geluid via PWM op GPIO uit te voeren). Hij is van plan een USB-OTG-hub te gebruiken en een externe kaart aan te sluiten om het geluid op de ingebouwde luidspreker van het braille-display weer te geven. Twee externe kaarten werkten om de een of andere reden niet, momenteel zoekt hij naar een vergelijkbaar apparaat met een andere chipset.

Het is ook onhandig om de 'raspberry' handmatig uit te schakelen, een paar seconden te wachten en het braille-display los te koppelen. Dit komt omdat het bij het uitschakelen de voeding van de connector in het compartiment verwijdert. De auteur is van plan een kleine bufferbatterij in het compartiment te plaatsen en via GPIO de 'raspberry' te informeren over het uitschakelen van het display, zodat het kan beginnen met afsluiten. Zo'n mini-UPS.

Systeemkopie

Als je ook zo'n braille-display hebt en hetzelfde wilt doen, is de auteur bereid een kant-en-klare systeemkopie (gebaseerd op Raspbian Stretch) te geven. Neem contact met hem op via het hierboven vermelde adres. Als er genoeg geïnteresseerden zijn, is zelfs een uitgave van kits mogelijk die alles bevatten wat nodig is voor zo'n ombouw.

Waardering

Dank aan Dave Mielke voor het nalezen van de tekst.

Dank aan Simon Kainz voor de foto-illustraties.

Dank aan de collega's van de Technische Universiteit Graz voor het snel introduceren van de auteur in de wereld van de Raspberry Pi.

P.S. Eerste tweet van de auteur over dit onderwerp (werkt niet — vertaler) is slechts vijf dagen voor de publicatie van het origineel gemaakt, en het kan worden beschouwd dat, op de geluidsproblemen na, de gestelde taak praktisch is opgelost. Trouwens, de auteur heeft de laatste versie van de tekst bewerkt met zijn 'zelfvoorzienende braille-display', dat hij via SSH aan zijn thuiscomputer heeft verbonden.

Bron: habr.com

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers 🔥 Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster