Raspberry Pi Zero in een Handy Tech Active Star 40 brailleleesregel

Raspberry Pi Zero in een Handy Tech Active Star 40 brailleleesregel

De auteur plaatste een Raspberry Pi Zero, een Bluetooth-fluitje en een kabel in zijn nieuwe Handy Tech Active Star 40 brailleleesregel. Een ingebouwde USB-poort zorgt voor stroom. Het resultaat was een zelfvoorzienende monitorloze computer op ARM met het Linux-besturingssysteem, uitgerust met een toetsenbord en een brailleleesregel. Je kunt hem opladen/voeden via USB, incl. van een powerbank of zonnelader. Daarom kan hij enkele uren, maar meerdere dagen zonder stroom.

Raspberry Pi Zero in een Handy Tech Active Star 40 brailleleesregel

Dimensionale differentiatie van brailleleesregels

Allereerst verschillen ze in lijnlengte. Apparaten met een capaciteit van 60 of meer zijn goed voor het werken met een desktopcomputer, terwijl apparaten met een capaciteit van 40 handig zijn om mee te nemen met een laptop. Nu zijn er brailleleesregels verbonden met smartphones en tablets, met een regellengte van 14 of 18 tekens.

In het verleden waren brailleleesregels behoorlijk groot. De laptop met 40 zitplaatsen had bijvoorbeeld het formaat en het gewicht van een 13-inch laptop. Nu, met hetzelfde aantal kennissen, zijn ze klein genoeg zodat je het beeldscherm voor de laptop kunt plaatsen, in plaats van de laptop op het beeldscherm.

Dit is natuurlijk beter, maar het is nog steeds niet erg handig om twee aparte apparaten op schoot te houden. Als je aan een bureau werkt, zijn er geen klachten, maar het is de moeite waard om te onthouden dat een laptop een laptop met een andere naam wordt genoemd, en probeer zijn naam te rechtvaardigen, aangezien het miniatuurdisplay van 40 tekens nog minder handig blijkt te zijn.

Dus wachtte de auteur op de release van het lang beloofde nieuwe model in de Handy Tech Star-serie. In 2002 werd het vorige model Handy Tech Braille Star 40 uitgebracht, waarbij het lichaamsoppervlak voldoende was om er een laptop op te plaatsen. En als het niet past, is er een uitschuifbare standaard. Nu is dit model vervangen door de Active Star 40, die vrijwel hetzelfde is, maar met verbeterde elektronica.

Raspberry Pi Zero in een Handy Tech Active Star 40 brailleleesregel

En de intrekbare standaard blijft:

Raspberry Pi Zero in een Handy Tech Active Star 40 brailleleesregel

Maar het handigste aan het nieuwe product is een uitsparing die ongeveer zo groot is als een smartphone (zie KDPV). Deze gaat open als het platform naar achteren wordt bewogen. Het bleek lastig om daar een smartphone vast te houden, maar je moet op de een of andere manier het lege compartiment gebruiken, waarin zelfs een stopcontact zit.

Het eerste waar de auteur op bedacht was om de Raspberry Pi daar te plaatsen, maar toen het display werd aangeschaft, bleek dat de standaard die het compartiment bedekte niet naar binnen schoof met de ‘framboos’. Als het bord maar 3 mm dunner was...

Maar een collega vertelde me over de release van de Raspberry Pi Zero, die zo klein bleek te zijn dat er twee in het compartiment pasten... of misschien zelfs drie. Hij werd meteen besteld, samen met een geheugenkaart van 64 GB, Bluetooth, “whistle” en een micro-USB-kabel. Een paar dagen later arriveerde dit alles, en ziende vrienden hielpen de auteur met het maken van een kaart. Alles werkte meteen zoals het zou moeten.

Wat is hiervoor gedaan

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

Als u dus een Bluetooth-fluitje aansluit op een Raspberry Pi Zero die in het smartphonecompartiment is geplaatst, kan deze via Bluetooth communiceren met de brailleleesregel. BRLTTY, en als je ook een toetsenbord op het display aansluit, zal de “framboos” er ook mee werken.

Maar dat is niet alles. De "framboos" zelf heeft op zijn beurt toegang tot internet via Bluetooth PAN vanaf elk apparaat dat dit ondersteunt. De auteur heeft zijn smartphone en computers thuis en op het werk dienovereenkomstig geconfigureerd, maar in de toekomst is hij van plan hiervoor een andere "framboos" aan te passen - een klassieke, geen Zero, verbonden met Ethernet en een ander Bluetooth "fluitje".

BlueZ 5 en PAN

PAN-configuratiemethode met behulp van BlueZ bleek niet evident. De auteur heeft het bt-pan Python-script gevonden (zie hieronder), waarmee je PAN kunt configureren zonder een GUI.

Het kan worden gebruikt om zowel de server als de client te configureren. Nadat het de juiste opdracht via D-Bus heeft ontvangen wanneer in de clientmodus wordt gewerkt, wordt er onmiddellijk na het tot stand brengen van een verbinding met de server een nieuw netwerkapparaat bnep0 aangemaakt. Meestal wordt DHCP gebruikt om een ​​IP-adres aan deze interface toe te wijzen. In de servermodus heeft BlueZ de naam nodig van een bridge-apparaat waaraan het een slave-apparaat kan toevoegen om elke client te verbinden. Meestal is het configureren van een adres voor het bridge-apparaat en het draaien van een DHCP-server plus IP-maskering op de bridge het enige dat nodig is.

Bluetooth PAN-toegangspunt met Systemd

Om de bridge te configureren gebruikte de auteur systemd-networkd:

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 moeten we BlueZ dwingen het NAP-profiel te configureren. Het bleek dat dit niet mogelijk is met de standaard BlueZ 5.36-hulpprogramma's. Als de auteur ongelijk heeft, corrigeer hem dan: mlang (kan zijn oren bewegen) blinde (soms toegang en kwantum) goeroe

Maar hij vond blogbericht и Python-script om de nodige oproepen naar D-Bus te maken.

Voor het gemak heeft de auteur de Systemd-service gebruikt om het script uit te voeren en te controleren of de afhankelijkheden zijn opgelost.

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 IPMasquerade=-ondersteuning had (zie hieronder). #787480).

Na het uitvoeren van de opdrachten systemctl daemon-reload и systemctl herstart systemd-networkd u kunt Bluetooth PAN starten met het commando systemctl start pan

Bluetooth PAN-client met Systemd

De clientzijde is ook eenvoudig te configureren met Systemd.

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

[Match]
Name=bnep*

[Network]
DHCP=yes

Bestand /etc/systemd/system/[e-mail beveiligd]

[Unit]
Description=Bluetooth Personal Area Network client

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

Nadat u de configuratie opnieuw hebt geladen, kunt u nu als volgt verbinding maken met het opgegeven Bluetooth-toegangspunt:

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

Koppelen via de opdrachtregel

Uiteraard moet de configuratie van de server en clients worden uitgevoerd nadat ze via Bluetooth zijn gekoppeld. Op de server moet je bluetoothctl uitvoeren en de volgende opdrachten geven:

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

Wacht na het starten van de scan een paar seconden totdat het gewenste apparaat in de lijst verschijnt. Schrijf het adres op en gebruik het door het paarcommando en, indien nodig, het vertrouwenscommando te geven.

Aan de clientkant moet je hetzelfde doen, maar het vertrouwenscommando is absoluut niet nodig. De server heeft deze nodig om een ​​verbinding via het NAP-profiel te accepteren zonder handmatige bevestiging door de gebruiker.

De auteur is er niet zeker van dat dit de optimale volgorde van opdrachten is. Misschien is het enige wat nodig is de client aan de server koppelen en het vertrouwenscommando op de server uitvoeren, maar hij heeft dit nog niet geprobeerd.

HID Bluetooth-profiel inschakelen

Het is vereist dat de Raspberry een toetsenbord herkent dat via een draad op de brailleleesregel is aangesloten en door de leesregel zelf via Bluetooth wordt verzonden. Dit gebeurt op dezelfde manier, alleen in plaats daarvan agent op een commando moeten geven agent Alleen toetsenbord en bluetoothctl zal een apparaat met een HID-profiel vinden.

Maar het instellen van Bluetooth via de opdrachtregel is een beetje ingewikkeld

Hoewel de auteur erin is geslaagd alles te configureren, begrijpt hij dat het configureren van BlueZ via de opdrachtregel lastig is. In eerste instantie dacht hij dat agenten alleen pincodes hoefden in te voeren, maar het bleek bijvoorbeeld dat je om het HID-profiel in te schakelen “agent KeyboardOnly” moet typen. Het is verrassend dat je, om Bluetooth PAN te starten, door repository's moet klimmen op zoek naar het vereiste script. Hij herinnert zich dat daar in de vorige versie van BlueZ een kant-en-klare tool voor bestond panda - waar doet hij in BlueZ 5? Plots verscheen er een nieuwe oplossing, onbekend bij de auteur, maar aan de oppervlakte?

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

De gegevensoverdrachtsnelheid bedroeg ongeveer 120 kbit/s, wat ruim voldoende is. De 1GHz ARM-processor is erg snel voor een opdrachtregelinterface. De auteur is nog steeds van plan om voornamelijk ssh en emacs op het apparaat te gebruiken.

Consolelettertypen en schermresolutie

De standaardschermresolutie die wordt gebruikt door de framebuffer op de Raspberry Pi Zero is nogal vreemd: fbset rapporteert deze als 656x416 pixels (uiteraard geen monitor aangesloten). Met een consolelettertype van 8×16 waren er 82 tekens per regel en 26 regels.

Het is onhandig om in deze modus met een brailleleesregel van 40 tekens te werken. De auteur zou ook graag zien dat Unicode-tekens in braille worden weergegeven. Gelukkig ondersteunt Linux 512 tekens, en de meeste consolelettertypen hebben er 256. Met console-setup kunt u twee lettertypen van 256 tekens samen gebruiken. De auteur heeft de volgende regels toegevoegd aan het bestand /etc/default/console-setup:

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

Let op: om het lettertype brl-16×8.psf beschikbaar te maken, moet u console-braille installeren.

Wat is het volgende?

De brailleleesregel heeft een 3,5 mm-aansluiting, maar de auteur kent geen adapters voor het ontvangen van een audiosignaal van Mini-HDMI. De auteur kon de geluidskaart die in de Raspberry was ingebouwd niet gebruiken (vreemd genoeg was de vertaler er zeker van dat de Zero er geen had, maar er zijn manieren om geluid uit te voeren met behulp van PWM naar de GPIO). Hij is van plan een USB-OTG-hub te gebruiken en een externe kaart aan te sluiten en geluid uit te voeren naar de luidspreker die in de brailleleesregel is ingebouwd. Om de een of andere reden werkten twee externe kaarten niet, nu is hij op zoek naar een soortgelijk apparaat op een andere chipset.

Het is ook lastig om de "framboos" handmatig uit te schakelen, een paar seconden te wachten en de brailleleesregel uit te schakelen. En dat allemaal omdat wanneer het is uitgeschakeld, de stroom wordt verwijderd van de connector in het compartiment. De auteur is van plan een kleine bufferbatterij in het compartiment te plaatsen en de Raspberry via GPIO te informeren over het uitschakelen van het display, zodat hij zijn werk kan afsluiten. Dit is een UPS in miniatuur.

Systeem afbeelding

Als u dezelfde brailleleesregel heeft en daar hetzelfde mee wilt doen, staat de auteur klaar om een ​​kant-en-klaar beeld van het systeem te leveren (gebaseerd op Raspbian Stretch). Schrijf hem hierover op het hierboven aangegeven adres. Als er voldoende geïnteresseerden zijn, is het zelfs mogelijk om kits uit te brengen die alles bevatten wat nodig is voor een dergelijke aanpassing.

Dankbetuigingen

Met dank aan Dave Mielke voor het proeflezen.

Met dank aan Simon Kainz voor de foto-illustraties.

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

PS Eerste tweetje auteur over dit onderwerp (opent niet - vertaler) is slechts vijf dagen vóór de publicatie van het origineel van dit artikel gemaakt en er kan van worden uitgegaan dat, met uitzondering van problemen met geluid, de taak praktisch is opgelost. Overigens heeft de auteur de definitieve versie van de tekst bewerkt vanaf een door hem gemaakte “zelfvoorzienende brailleleesregel” en deze via SSH met zijn thuiscomputer verbonden.

Bron: www.habr.com

Voeg een reactie