Raspberry Pi Zero à l'intérieur de l'écran braille Handy Tech Active Star 40

Raspberry Pi Zero à l'intérieur de l'écran braille Handy Tech Active Star 40

L'auteur a intégré un Raspberry Pi Zero, un dongle Bluetooth et un câble à l'intérieur de son nouvel afficheur braille Handy Tech Active Star 40. Le port USB intégré fournit de l'alimentation. Cela a donné un ordinateur ARM autonome, sans écran, fonctionnant sous Linux, équipé d'un clavier et d'un afficheur braille. Il peut être chargé / alimenté via USB, y compris via une batterie externe ou un chargeur solaire. Ainsi, il peut fonctionner sans réseau électrique pendant plusieurs jours au lieu de quelques heures.

Raspberry Pi Zero à l'intérieur de l'écran braille Handy Tech Active Star 40

Différenciation des afficheurs braille

Tout d'abord, ils se distinguent par la longueur de la ligne. Les appareils avec 60 caractères ou plus sont idéaux pour le travail avec un ordinateur de bureau, tandis que ceux avec 40 caractères sont pratiques pour être transportés avec un ordinateur portable. Il existe désormais également des afficheurs braille connectés aux smartphones et tablettes, avec des longueurs de ligne de 14 ou 18 caractères.

Autrefois, les afficheurs braille étaient plutôt encombrants. Un modèle de 40 caractères, par exemple, avait des dimensions et un poids comparables à ceux d'un ordinateur portable de 13 pouces. Maintenant, ils sont assez compacts pour que l'on puisse placer l'afficheur devant l'ordinateur portable tout en conservant le même nombre de caractères.

C'est bien sûr mieux, mais il reste peu pratique de tenir deux appareils séparés sur les genoux. Au bureau, il n'y a pas de problèmes, mais il convient de se rappeler que l'ordinateur portable est aussi appelé 'laptop', et d'essayer de justifier ce nom ; il s'avère alors que l'afficheur braille miniaturisé de 40 caractères est même moins pratique.

Ainsi, l'auteur a attendu la sortie du nouveau modèle tant attendu de la série Handy Tech Star. En 2002, le précédent modèle Handy Tech Braille Star 40 avait été lancé, dont la surface était suffisamment grande pour placer un ordinateur portable dessus. Et s'il ne tenait pas — un support rétractable était prévu. Ce modèle a maintenant été remplacé par l'Active Star 40, qui est pratiquement le même, mais avec une électronique modernisée.

Raspberry Pi Zero à l'intérieur de l'écran braille Handy Tech Active Star 40

Et le support rétractable est toujours là :

Raspberry Pi Zero à l'intérieur de l'écran braille Handy Tech Active Star 40

Mais le plus pratique avec cette nouveauté est l'encoche, de taille semblable à un smartphone (voir les images). Elle s'ouvre en déplaçant la plateforme vers l'arrière. Il s'est révélé peu pratique de tenir un smartphone là-dedans, mais il fallait bien utiliser cet espace vide, à l'intérieur duquel une sortie d'alimentation est même prévue.

La première idée de l'auteur a été d'y placer un Raspberry Pi, mais lorsque l'écran a été acquis, il s'est avéré que le support qui ferme le compartiment ne peut pas se déplacer avec la « framboise ». Si seulement la carte avait été 3 mm plus fine…

Mais un collègue a parlé de la sortie du Raspberry Pi Zero, qui était si miniaturisé que deux, voire trois, pourraient tenir dans le compartiment. Il a été immédiatement commandé avec une carte mémoire de 64 Go, un Bluetooth, une clé et un câble Micro USB. Quelques jours plus tard, tout cela est arrivé, et des amis voyants ont aidé l'auteur à préparer la carte. Tout a tout de suite fonctionné comme prévu.

Ce qui a été fait

Au dos du Handy Tech Active Star 40, il y a deux ports USB pour des appareils tels que des claviers. Un clavier compact avec un système de fixation magnétique est fourni. Lorsque le clavier est connecté et que l'écran fonctionne via Bluetooth, l'ordinateur le reconnaît également comme un clavier Bluetooth.

Ainsi, si on connecte un Bluetooth « clé » au Raspberry Pi Zero placé dans le compartiment pour smartphone, il pourra échanger des données avec l'écran braille via Bluetooth en utilisant BRLTTY, et si un clavier est également connecté à l'écran, la « framboise » fonctionnera aussi avec celui-ci.

Mais ce n'est pas tout. La « framboise », à son tour, peut accéder à Internet via Bluetooth PAN depuis tout appareil compatible. L'auteur a configuré son smartphone et ses ordinateurs à la maison et au travail en conséquence, mais prévoit de consacrer une autre « framboise » - classique, pas Zero, connectée à Ethernet et à une autre clé Bluetooth.

BlueZ 5 et PAN

La méthode de configuration du PAN à l'aide de BlueZ s'est révélée non évidente. L'auteur a trouvé un script Python bt-pan (voir ci-dessous) permettant de configurer le PAN sans interface graphique.

Avec celui-ci, on peut configurer à la fois le serveur et le client. En recevant la commande appropriée via D-Bus en mode client, il crée un nouveau dispositif réseau bnep0 immédiatement après l'établissement de la connexion avec le serveur. En général, le DHCP est utilisé pour attribuer une adresse IP à cette interface. En mode serveur, BlueZ nécessite de spécifier le nom de l'appareil pont, auquel il peut ajouter un périphérique connu pour connecter chaque client. Configurer une adresse pour l'appareil pont et lancer un serveur DHCP plus un IP masquage sur le pont est généralement tout ce qui est requis.

Point d'accès Bluetooth PAN avec Systemd

Pour configurer le pont, l'auteur a utilisé systemd-networkd :

Fichier /etc/systemd/network/pan.netdev

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

Fichier /etc/systemd/network/pan.network

[Match]
Name=pan

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

Maintenant, il faut configurer BlueZ pour le profil NAP. Il s'est avéré qu'avec les utilitaires standards de BlueZ 5.36, cela n'est pas possible. Si l'auteur se trompe, corrigez-le : mlang (peut bouger les oreilles) blind (peut être accès et quantique) guru

Mais il a trouvé un message sur le blog et un script en Python pour effectuer les appels nécessaires sur D-Bus.

Pour plus de commodité, l'auteur a utilisé le service Systemd pour lancer le script et vérifier la résolution des dépendances.

Fichier /etc/systemd/system/pan.service

[Unit]
Description=Réseau personnel Bluetooth
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

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

Le second fichier ne serait pas nécessaire si Debian supportait IPMasquerade= (voir. #787480).

Après l'exécution des commandes systemctl daemon-reload et systemctl restart systemd-networkd il est possible de lancer Bluetooth PAN avec la commande systemctl start pan

Client Bluetooth PAN avec Systemd

Il est également assez simple de configurer la partie client à l'aide de Systemd.

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

[Match]
Name=bnep*

[Network]
DHCP=yes

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

[Unit]
Description=Client réseau personnel Bluetooth

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

Maintenant, après avoir rechargé la configuration, il est possible de se connecter à un point d'accès Bluetooth désigné comme suit :

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

Appairage via ligne de commande

Évidemment, la configuration du serveur et des clients doit être effectuée après leur appairage par Bluetooth. Sur le serveur, il faut lancer bluetoothctl et lui donner les commandes :

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

Après avoir lancé le scan, attendez quelques secondes que le dispositif souhaité apparaisse dans la liste. Notez son adresse et utilisez-la en donnant la commande pair, et si nécessaire — la commande trust.

Du côté client, il faut faire la même chose, mais la commande trust ne sera pas nécessaire. Le serveur en a besoin pour accepter la connexion selon le profil NAP sans confirmation manuelle de l'utilisateur.

L'auteur n'est pas sûr que ce soit la séquence de commandes optimale. Peut-être que tout ce qui est nécessaire — c'est l'appairage du client au serveur et l'exécution de la commande trust sur le serveur, mais il n'a jamais essayé de le faire ainsi.

Autorisation d'utilisation du profil Bluetooth HID

Il est nécessaire que le « framboise » reconnaisse le clavier connecté au périphérique braille par câble, et déjà relayé par le périphérique lui-même via Bluetooth. Cela fonctionne de la même manière, mais au lieu de agent sur il faut donner la commande agent KeyboardOnly et bluetoothctl trouvera un appareil avec le profil HID.

Mais configurer Bluetooth via la ligne de commande est un peu compliqué

Bien que l'auteur ait réussi à tout configurer, il comprend que configurer BlueZ via la ligne de commande n'est pas pratique. Au début, il pensait que les agents étaient nécessaires uniquement pour entrer des codes PIN, mais il s'est avéré, par exemple, que pour activer le profil HID, il fallait saisit « agent KeyboardOnly ». Étonnamment, pour démarrer Bluetooth PAN, il faut fouiller dans les référentiels à la recherche du script approprié. Il se souvient que dans la version précédente de BlueZ, il y avait un outil prêt à l'emploi pand — où est-il donc passé dans BlueZ 5 ? Peut-être qu'il existe une nouvelle solution, inconnue de l'auteur, mais facilement accessible ?

Performance

La vitesse de transmission des données était d'environ 120 kbit/s, ce qui est tout à fait suffisant. Un processeur ARM de 1 GHz est très rapide pour une interface en ligne de commande. L'auteur a néanmoins prévu d'utiliser principalement ssh et emacs sur l'appareil.

Polices de console et résolution d'écran

La résolution d'écran utilisée par le framebuffer sur Raspberry Pi Zero par défaut est plutôt étrange : fbset indique qu'elle est de 656×416 pixels (évidemment, le moniteur n'est pas connecté). Avec une police de console de 8×16, cela donne 82 caractères par ligne et 26 lignes.

Travailler avec un affichage braille de 40 caractères dans ce mode n'est pas pratique. L'auteur aimerait également que les signes Unicode soient affichés en braille sur l'affichage. Heureusement, Linux prend en charge 512 caractères, et la plupart des polices de console en gèrent 256. Grâce à console-setup, il est possible d'utiliser deux polices de 256 caractères ensemble. L'auteur a ajouté au fichier /etc/default/console-setup les lignes suivantes :

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

Remarque : pour rendre la police brl-16×8.psf disponible, il est nécessaire d'installer console-braille.

Et après ?

L'affichage en braille dispose d'une prise 3,5 mm, mais l'auteur ne connaît pas d'adaptateurs pour extraire le signal audio depuis Mini-HDMI. Il n'a pas réussi à utiliser la carte son intégrée à la "Raspberry", ce qui est étrange, car le traducteur pensait qu'il n'y en avait pas sur le Zero, mais il existe des moyens de sortir du son par PWM sur GPIO. Il prévoit d'utiliser un hub USB-OTG et de connecter une carte externe pour sortir le son sur le haut-parleur intégré de l'afficheur en braille. Deux cartes externes n'ont pas fonctionné pour une raison quelconque; il cherche maintenant un dispositif similaire avec un autre chipset.

Il est encore inconfortable de déconnecter manuellement la "Raspberry", d'attendre quelques secondes et de déconnecter l'afficheur en braille. Tout cela parce qu'il coupe l'alimentation du connecteur dans le compartiment au moment de la déconnexion. L'auteur prévoit de placer une petite batterie tampon dans le compartiment et de signaler à la "Raspberry" via GPIO la déconnexion de l'afficheur, afin qu'elle puisse commencer à terminer son fonctionnement. C'est donc une petite alimentation sans coupure.

Image du système

Si vous avez un afficheur en braille similaire et que vous souhaitez faire la même chose, l'auteur est prêt à fournir une image système prête à l'emploi (basée sur Raspbian Stretch). Écrivez-lui à l'adresse indiquée ci-dessus. S'il y a suffisamment de demande, il est même possible de sortir des kits contenant tout le nécessaire pour cette modification.

Remerciements

Merci à Dave Mielke pour la relecture du texte.

Merci à Simon Kainz pour les illustrations photographiques.

Merci aux collègues de l'Université technique de Graz pour avoir rapidement introduit l'auteur à l'univers de Raspberry Pi.

P.S. Premier tweet de l'auteur sur ce sujet (non accessible — traducteur) a été fait seulement cinq jours avant la publication de l'original de cet article, et il est raisonnable de considérer que, sauf les problèmes de son, la tâche fixée est pratiquement résolue. Au fait, la version finale du texte a été révisée par l'auteur en connectant son "afficheur en braille autonome" à son ordinateur domestique via SSH.

Source : habr.com

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster