Raspberry Pi Zero à l'intérieur d'un afficheur braille Handy Tech Active Star 40

Raspberry Pi Zero à l'intérieur d'un afficheur braille Handy Tech Active Star 40

L'auteur a placé un Raspberry Pi Zero, un sifflet Bluetooth et un câble à l'intérieur de son nouvel afficheur braille Handy Tech Active Star 40. Un port USB intégré fournit l'alimentation. Le résultat fut un ordinateur autonome sans moniteur sous ARM avec le système d'exploitation Linux, équipé d'un clavier et d'un afficheur braille. Vous pouvez le charger/alimenter via USB, incl. à partir d'une banque d'alimentation ou d'un chargeur solaire. Par conséquent, il peut se passer d’électricité pendant plusieurs heures, mais aussi pendant plusieurs jours.

Raspberry Pi Zero à l'intérieur d'un afficheur braille Handy Tech Active Star 40

Différenciation dimensionnelle des plages braille

Tout d’abord, ils diffèrent par la longueur des lignes. Les appareils d'une capacité de 60 ou plus sont parfaits pour travailler avec un ordinateur de bureau, tandis que les appareils d'une capacité de 40 sont pratiques pour être transportés avec un ordinateur portable. Il existe désormais des plages braille connectées aux smartphones et tablettes, avec une longueur de ligne de 14 ou 18 caractères.

Dans le passé, les afficheurs braille étaient assez répandus. L’ordinateur portable de 40 places, par exemple, avait la taille et le poids d’un ordinateur portable de 13 pouces. Désormais, avec le même nombre de connaissances, ils sont suffisamment miniatures pour que vous puissiez placer l'écran devant l'ordinateur portable, plutôt que l'ordinateur portable sur l'écran.

C'est bien sûr mieux, mais ce n'est toujours pas très pratique de tenir deux appareils distincts sur vos genoux. Lorsque vous travaillez à un bureau, il n'y a rien à redire, mais il convient de rappeler qu'un ordinateur portable est appelé un ordinateur portable sous un autre nom et d'essayer de justifier son nom, car il s'avère que l'écran miniature de 40 caractères est encore moins pratique.

L'auteur a donc attendu la sortie du nouveau modèle tant promis de la série Handy Tech Star. En 2002, le modèle précédent Handy Tech Braille Star 40 a été lancé, où la surface du corps est suffisante pour placer un ordinateur portable dessus. Et si cela ne rentre pas, il y a un support rétractable. Aujourd'hui, ce modèle a été remplacé par l'Active Star 40, qui est presque le même, mais avec une électronique améliorée.

Raspberry Pi Zero à l'intérieur d'un afficheur braille Handy Tech Active Star 40

Et le support rétractable reste :

Raspberry Pi Zero à l'intérieur d'un afficheur braille Handy Tech Active Star 40

Mais le plus pratique du nouveau produit est un évidement de la taille d'un smartphone (voir KDPV). Il s'ouvre lorsque la plateforme est reculée. Il s'est avéré peu pratique d'y ranger un smartphone, mais vous devez d'une manière ou d'une autre utiliser le compartiment vide, à l'intérieur duquel se trouve même une prise de courant.

La première chose que l'auteur a imaginée a été d'y placer le Raspberry Pi, mais lors de l'achat de l'écran, il s'est avéré que le support recouvrant le compartiment ne glissait pas avec la « framboise ». Maintenant, si la planche était seulement 3 mm plus fine...

Mais un collègue m'a parlé de la sortie du Raspberry Pi Zero, qui s'est avéré si miniature que deux d'entre eux pouvaient tenir dans le compartiment... ou peut-être même trois. Il a été immédiatement commandé avec une carte mémoire de 64 Go, Bluetooth, un « sifflet » et un câble Micro USB. Quelques jours plus tard, tout cela arriva et des amis voyants aidèrent l'auteur à préparer une carte. Tout a immédiatement fonctionné comme il se doit.

Qu'est-ce qui a été fait pour cela

À l'arrière du Handy Tech Active Star 40 se trouvent deux ports USB pour des appareils tels que des claviers. Un clavier de petite taille avec support magnétique est inclus. Lorsque le clavier est connecté et que l'écran lui-même fonctionne via Bluetooth, l'ordinateur le reconnaît également comme un clavier Bluetooth.

Ainsi, si vous connectez un « sifflet » Bluetooth à un Raspberry Pi Zero placé dans le compartiment smartphone, celui-ci pourra communiquer avec la plage braille via Bluetooth en utilisant BRLTTY, et si vous connectez également un clavier à l'écran, le « framboise » fonctionnera également avec lui.

Mais ce n'est pas tout. La « framboise » elle-même, à son tour, peut accéder à Internet via Bluetooth PAN à partir de n'importe quel appareil qui le prend en charge. L'auteur a configuré en conséquence son smartphone et ses ordinateurs à la maison et au travail, mais à l'avenir, il prévoit d'adapter pour cela un autre « framboise » - un classique, pas un zéro, connecté à Ethernet et un autre « sifflet » Bluetooth.

BlueZ 5 et PAN

Méthode de configuration PAN utilisant BlueZ s'est avéré peu évident. L'auteur a trouvé le script Python bt-pan (voir ci-dessous), qui permet de configurer PAN sans interface graphique.

Il peut être utilisé pour configurer à la fois le serveur et le client. Après avoir reçu la commande appropriée via D-Bus lorsqu'il travaille en mode client, il crée un nouveau périphérique réseau bnep0 immédiatement après avoir établi une connexion avec le serveur. Généralement, DHCP est utilisé pour attribuer une adresse IP à cette interface. En mode serveur, BlueZ nécessite le nom d'un périphérique pont auquel il peut ajouter un périphérique esclave pour connecter chaque client. La configuration d'une adresse pour le périphérique pont et l'exécution d'un serveur DHCP ainsi que le masquage IP sur le pont suffisent généralement.

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

Nous devons maintenant forcer BlueZ à configurer le profil NAP. Il s'est avéré que cela ne peut pas être fait avec les utilitaires standard BlueZ 5.36. Si l'auteur se trompe, corrigez-le : mlang (peut bouger les oreilles) aveugle (parfois accès et quantique) gourou

Mais il a trouvé article de blog и Script Python pour effectuer les appels nécessaires à D-Bus.

Pour plus de commodité, l'auteur a utilisé le service Systemd pour exécuter le script et vérifier si les dépendances sont résolues.

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

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 deuxième fichier ne serait pas nécessaire si Debian prenait en charge IPMasquerade= (voir ci-dessous). #787480).

Après avoir exécuté les commandes démon systemctl-recharger и systemctl redémarrer systemd-networkd vous pouvez démarrer Bluetooth PAN avec la commande systemctl démarrer le panoramique

Client PAN Bluetooth utilisant Systemd

Le côté client est également facile à configurer à l'aide de Systemd.

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

[Match]
Name=bnep*

[Network]
DHCP=yes

Fichier /etc/systemd/system/[email protected]

[Unit]
Description=Bluetooth Personal Area Network client

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

Maintenant, après avoir rechargé la configuration, vous pouvez vous connecter au point d'accès Bluetooth spécifié comme ceci :

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

Couplage à l'aide de la ligne de commande

Bien entendu, la configuration du serveur et des clients doit être effectuée après les avoir couplés via Bluetooth. Sur le serveur, vous devez exécuter 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é l'analyse, attendez quelques secondes jusqu'à ce que l'appareil dont vous avez besoin apparaisse dans la liste. Notez son adresse et utilisez-la en émettant la commande pair et, si nécessaire, la commande trust.

Côté client, vous devez faire la même chose, mais la commande trust n'est certainement pas nécessaire. Le serveur en a besoin pour accepter une connexion utilisant le profil NAP sans confirmation manuelle de l'utilisateur.

L'auteur n'est pas sûr qu'il s'agisse de la séquence de commandes optimale. Il suffit peut-être de coupler le client avec le serveur et d'exécuter la commande trust sur le serveur, mais il n'a pas encore essayé.

Activation du profil Bluetooth HID

Il est nécessaire que le Raspberry reconnaisse un clavier connecté à l'afficheur braille par fil, et transmis par l'afficheur lui-même via Bluetooth. Cela se fait de la même manière, mais à la place mandataire sur il faut donner un ordre agentClavier uniquement et bluetoothctl trouvera un appareil avec un 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 n'étaient nécessaires que pour saisir les codes PIN, mais il s'est avéré, par exemple, que pour activer le profil HID, il fallait taper « agent KeyboardOnly ». Il est surprenant que pour lancer Bluetooth PAN, vous deviez parcourir les référentiels à la recherche du script requis. Il se souvient que dans la version précédente de BlueZ, il existait un outil prêt à l'emploi pour cela. Panda - où va-t-il dans BlueZ 5 ? Soudain, une nouvelle solution est apparue, inconnue de l'auteur, mais superficielle ?

Performance

La vitesse de transfert des données était d'environ 120 kbit/s, ce qui est largement suffisant. Le processeur ARM 1 GHz est très rapide pour une interface de ligne de commande. L'auteur prévoit toujours d'utiliser principalement ssh et emacs sur l'appareil.

Polices de la console et résolution d'écran

La résolution d'écran par défaut utilisée par le framebuffer du Raspberry Pi Zero est assez étrange : fbset la signale comme 656x416 pixels (aucun moniteur connecté, bien sûr). Avec une police console de 8×16, il y avait 82 caractères par ligne et 26 lignes.

Il n'est pas pratique de travailler avec un afficheur braille de 40 caractères dans ce mode. L'auteur aimerait également voir les caractères Unicode affichés en braille. Heureusement, Linux prend en charge 512 caractères et la plupart des polices de console en ont 256. Grâce à la configuration de la console, vous pouvez utiliser deux polices de 256 caractères ensemble. L'auteur a ajouté les lignes suivantes au fichier /etc/default/console-setup :

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

Remarque : pour rendre la police brl-16×8.psf disponible, vous devez installer console-braille.

Quelle est la prochaine?

L'afficheur braille dispose d'une prise jack 3,5 mm, mais l'auteur ne connaît pas d'adaptateurs pour recevoir un signal audio depuis Mini-HDMI. L'auteur n'a pas pu utiliser la carte son intégrée au Raspberry (étrangement, le traducteur était sûr que le Zero n'en avait pas, mais il existe des moyens de sortir le son en utilisant PWM vers le GPIO). Il prévoit d'utiliser un hub USB-OTG, de connecter une carte externe et de diffuser le son vers le haut-parleur intégré à l'afficheur braille. Pour une raison quelconque, deux cartes externes n'ont pas fonctionné ; il recherche maintenant un appareil similaire sur un chipset différent.

Il est également peu pratique d'éteindre manuellement le "framboise", d'attendre quelques secondes et d'éteindre la plage braille. Et tout cela parce que lorsqu'il est éteint, il coupe l'alimentation du connecteur dans le compartiment. L'auteur prévoit de placer une petite batterie tampon dans le compartiment et, via GPIO, d'informer le Raspberry de l'extinction de l'écran, afin qu'il puisse commencer à arrêter son travail. Il s'agit d'un UPS en miniature.

Image système

Si vous possédez la même plage braille et souhaitez en faire de même, l'auteur est prêt à fournir une image toute faite du système (basée sur Raspbian Stretch). Écrivez-lui à ce sujet à l'adresse indiquée ci-dessus. S'il y a suffisamment de personnes intéressées, il est même possible de sortir des kits comprenant tout le nécessaire pour une telle modification.

Remerciements

Merci à Dave Mielke pour la relecture.

Merci à Simon Kainz pour les illustrations photos.

Merci à mes collègues de l'Université technique de Graz pour avoir rapidement présenté l'auteur au monde du Raspberry Pi.

PS Premier tweet auteur sur ce sujet (ne s'ouvre pas - traducteur) a été rédigé cinq jours seulement avant la publication de l'original de cet article, et on peut considérer que, à l'exception des problèmes de son, la tâche a été pratiquement résolue. D'ailleurs, l'auteur a édité la version finale du texte à partir d'une « plage braille autonome » qu'il a réalisée, en la connectant via SSH à son ordinateur personnel.

Source: habr.com

Ajouter un commentaire