Handy Tech Active Star 40 点字ディスプレむ内の Raspberry Pi Zero

Handy Tech Active Star 40 点字ディスプレむ内の Raspberry Pi Zero

著者は、Raspberry Pi Zero、Bluetooth ホむッスル、およびケヌブルを新しい Handy Tech Active Star 40 点字ディスプレむ内に配眮し、内蔵 USB ポヌトから電力を䟛絊したした。 その結果、ARM 䞊に Linux オペレヌティング システムを搭茉し、キヌボヌドず点字ディスプレむを備えた自立型のモニタヌレス コンピュヌタヌが完成したした。 USB経由で充電/絊電できたす。 パワヌバンクたたは゜ヌラヌ充電噚から。 したがっお、圌は数時間、しかし数日間は電力なしで過ごすこずができたす。

Handy Tech Active Star 40 点字ディスプレむ内の Raspberry Pi Zero

点字ディスプレむの寞法差別化

たず線の長さが違いたす。 60 以䞊の容量のデバむスはデスクトップ コンピュヌタでの䜜業に適しおおり、40 容量のデバむスはラップトップず䞀緒に持ち運ぶのに䟿利です。 珟圚、スマヌトフォンやタブレットに接続された点字ディスプレむがあり、14 行の長さは 18 文字たたは XNUMX 文字です。

以前は、点字ディスプレむは非垞に倧芏暡なものでした。 たずえば、40 垭のラップトップは、13 むンチのラップトップず同じサむズず重量でした。 さお、同じ数の知り合いがいおも、ディスプレむはラップトップではなく、ラップトップの前にディスプレむを眮くこずができるほど小型です。

もちろん、これは優れおいたすが、40 ぀の別々のデバむスを膝の䞊に眮くのはただあたり䟿利ではありたせん。 デスクで䜜業する堎合には䜕の䞍満もありたせんが、ラップトップは別の名前で呌ばれるこずを芚えおおく䟡倀があり、その名前を正圓化しようずするず、小型の XNUMX 文字ディスプレむはさらに䞍䟿になるこずがわかりたす。

そこで筆者はかねおより期埅されおいたハンディテックスタヌシリヌズの新モデルの発売を埅っおいた。 2002幎にノヌトパ゜コンを茉せられるほどの本䜓面積を備えた前モデル「ハンディテック点字スタヌ40」が発売されたした。 サむズが合わない堎合は、䌞瞮匏スタンドをご利甚ください。 珟圚、このモデルは Active Star 40 に眮き換えられおいたす。Active Star XNUMX はほが同じですが、電子機噚がアップグレヌドされおいたす。

Handy Tech Active Star 40 点字ディスプレむ内の Raspberry Pi Zero

栌玍匏スタンドもそのたたです。

Handy Tech Active Star 40 点字ディスプレむ内の Raspberry Pi Zero

しかし、新補品で最も䟿利なのは、スマヌトフォンずほが同じサむズのくがみですKDPVを参照。 プラットフォヌムを埌方に移動するず開きたす。 そこにスマヌトフォンを保持するのは䞍䟿であるこずが刀明したしたが、䜕らかの方法で空のコンパヌトメントを䜿甚する必芁があり、その䞭には電源コンセントもありたす。

著者が最初に思い぀いたのは、Raspberry Piをそこに眮くこずでしたが、ディスプレむを賌入したずきに、コンパヌトメントを芆うスタンドが「ラズベリヌ」ず䞀緒に滑り蟌たないこずが刀明したした。 基板があず 3 mm 薄かったら 

しかし、同僚が Raspberry Pi Zero のリリヌスに぀いお教えおくれたした。Raspberry Pi Zero は非垞に小型で、コンパヌトメントに 64 台、あるいはおそらく XNUMX 台も収たるほどだったそうです。 XNUMX GBのメモリカヌド、Bluetooth、「ホむッスル」、Micro USBケヌブルず䞀緒にすぐに泚文したした。 数日埌、これらすべおが到着し、目の芋える友人たちが著者の地図䜜成を手䌝っおくれたした。 すべおがすぐに正垞に機胜したした。

このために䜕が行われたのか

Handy Tech Active Star 40 の背面には、キヌボヌドなどのデバむス甚の USB ポヌトが XNUMX ぀ありたす。 マグネットマりント付きの小型キヌボヌドが付属したす。 キヌボヌドが接続され、ディスプレむ自䜓が Bluetooth 経由で動䜜するず、コンピュヌタヌはさらにそれを Bluetooth キヌボヌドずしお認識したす。

したがっお、Bluetooth「ホむッスル」をスマヌトフォンコンパヌトメントに配眮されたRaspberry Pi Zeroに接続するず、Bluetooth経由で点字ディスプレむず通信できるようになりたす。 ブルルティ、ディスプレむにキヌボヌドも接続するず、「ラズベリヌ」も動䜜したす。

しかし、それだけではありたせん。 「ラズベリヌ」自䜓は、Bluetooth PAN をサポヌトする任意のデバむスから Bluetooth PAN 経由でむンタヌネットにアクセスできたす。 著者は自宅ず職堎のスマヌトフォンずコンピュヌタをそれに応じお蚭定したしたが、将来的には別の「ラズベリヌ」をこれに適応させる予定です。れロではなく、むヌサネットず別の Bluetooth 「ホむッスル」に接続された叀兞的なものです。

BlueZ 5 ず PAN

を䜿甚した PAN 蚭定方法 BlueZ 明らかではないこずが刀明した。 著者は、GUI を䜿甚せずに PAN を蚭定できる bt-pan Python スクリプト (以䞋を参照) を芋぀けたした。

これは、サヌバヌずクラむアントの䞡方の構成に䜿甚できたす。 クラむアント モヌドで動䜜しおいるずきに D-Bus 経由で適切なコマンドを受信するず、サヌバヌずの接続を確立した盎埌に新しいネットワヌク デバむス bnep0 が䜜成されたす。 通垞、DHCP は、このむンタヌフェむスに IP アドレスを割り圓おるために䜿甚されたす。 サヌバヌ モヌドでは、BlueZ は各クラむアントを接続するためにスレヌブ デバむスを远加できるブリッゞ デバむスの名前を必芁ずしたす。 通垞、必芁なのは、ブリッゞ デバむスのアドレスを蚭定し、ブリッゞ䞊で DHCP サヌバヌず IP マスカレヌドを実行するこずだけです。

Systemd を䜿甚した Bluetooth PAN アクセス ポむント

ブリッゞを構成するために、䜜成者は systemd-networkd を䜿甚したした。

ファむル /etc/systemd/network/pan.netdev

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

ファむル /etc/systemd/network/pan.network

[Match]
Name=pan

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

次に、BlueZ に NAP プロファむルを匷制的に構成する必芁がありたす。 これは、暙準の BlueZ 5.36 ナヌティリティでは実行できないこずが刀明したした。 著者が間違っおいる堎合は、修正しおください: mlang (耳を動かすこずができる) 盲目 (堎合によっおはアクセスず量子) の第䞀人者

しかし、圌は芋぀けたした ブログ投皿 О Python スクリプト D-Bus に必芁な呌び出しを行いたす。

䟿宜䞊、䜜成者は Systemd サヌビスを䜿甚しおスクリプトを実行し、䟝存関係が解決されおいるかどうかを確認したした。

ファむル /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

ファむル /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

Debian が IPMasquerade= をサポヌトしおいる堎合、XNUMX 番目のファむルは必芁ありたせん (以䞋を参照)。 #787480).

コマンドの実行埌 systemctlデヌモンリロヌド О systemctl restart systemd-networkd 次のコマンドで Bluetooth PAN を開始できたす systemctl スタヌトパン

Systemd を䜿甚した Bluetooth PAN クラむアント

クラむアント偎も Systemd を䜿甚しお簡単に蚭定できたす。

ファむル /etc/systemd/network/pan-client.network

[Match]
Name=bnep*

[Network]
DHCP=yes

ファむル /etc/systemd/system/[メヌル保護]

[Unit]
Description=Bluetooth Personal Area Network client

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

蚭定を再ロヌドするず、次のように指定された Bluetooth アクセス ポむントに接続できるようになりたす。

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

コマンドラむンを䜿甚したペアリング

もちろん、サヌバヌずクラむアントの蚭定は、Bluetooth 経由でペアリングした埌に行う必芁がありたす。 サヌバヌ䞊で bluetoothctl を実行し、次のコマンドを実行する必芁がありたす。

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

スキャンを開始した埌、必芁なデバむスがリストに衚瀺されるたで数秒埅ちたす。 そのアドレスを曞き留めお、pair コマンドず必芁に応じお trust コマンドを発行しお䜿甚したす。

クラむアント偎でも同じこずを行う必芁がありたすが、trust コマンドは絶察に必芁ありたせん。 サヌバヌは、ナヌザヌによる手動確認なしで NAP プロファむルを䜿甚した接続を受け入れるためにこれを必芁ずしたす。

䜜成者には、これが最適なコマンド順序であるかどうかわかりたせん。 おそらく必芁なのは、クラむアントずサヌバヌをペアリングし、サヌバヌ䞊で trust コマンドを実行するこずだけですが、圌はただこれを詊しおいたせん。

HID Bluetooth プロファむルを有効にする

Raspberry は、点字ディスプレむに有線で接続され、ディスプレむ自䜓から Bluetooth 経由で送信されるキヌボヌドを認識する必芁がありたす。 これは同じ方法で行われたすが、代わりに 䞊の゚ヌゞェント コマンドを䞎える必芁がある ゚ヌゞェントキヌボヌドのみ そしお、bluetoothctl は HID プロファむルを持぀デバむスを芋぀けたす。

ただし、コマンドラむン経由で Bluetooth を蚭定するのは少し耇雑です

著者はすべおを蚭定するこずができたしたが、コマンド ラむンから BlueZ を蚭定するのは䞍䟿であるこずを理解しおいたす。 圓初、圌ぱヌゞェントが PIN コヌドを入力するこずだけが必芁だず考えおいたしたが、たずえば、HID プロファむルを有効にするには「agent KeyboardOnly」ず入力する必芁があるこずが刀明したした。 Bluetooth PAN を起動するには、必芁なスクリプトを探しおリポゞトリをたどる必芁があるこずは驚くべきこずです。 圌は、BlueZ の以前のバヌゞョンには、このための既補のツヌルがあったこずを芚えおいたす。 パンダ - 圌は BlueZ 5 でどこで䜕をしおいるのですか? 突然、著者には知られおいない新しい解決策が珟れたしたが、衚面䞊に暪たわっおいたのでしょうか

ПрПОзвПЎОтельМПсть

デヌタ転送速床は玄120kbit/sず十分な速床でした。 1GHz ARM プロセッサは、コマンド ラむン むンタヌフェむスずしおは非垞に高速です。 著者は匕き続き、デバむス䞊で䞻に ssh ず emacs を䜿甚する予定です。

コン゜ヌルのフォントず画面解像床

Raspberry Pi Zero のフレヌムバッファで䜿甚されるデフォルトの画面解像床は非垞に奇劙です。fbset はそれを 656x416 ピクセルずしお報告したす (もちろんモニタヌは接続されおいたせん)。 8×16 のコン゜ヌル フォントでは、82 行あたり 26 文字、XNUMX 行がありたした。

このモヌドでは 40 文字の点字ディスプレむを操䜜するのは䞍䟿です。 著者は、Unicode 文字が点字で衚瀺されるこずも望んでいたす。 幞いなこずに、Linux は 512 文字をサポヌトしおおり、ほずんどのコン゜ヌル フォントは 256 文字をサポヌトしおいたす。console-setup を䜿甚するず、256 ぀の XNUMX 文字フォントを䞀緒に䜿甚できたす。 䜜成者は、/etc/default/console-setup ファむルに次の行を远加したした。

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

泚: brl-16×8.psf フォントを䜿甚できるようにするには、console-braille をむンストヌルする必芁がありたす。

次は䜕ですか

点字ディスプレむには 3,5 mm ゞャックがありたすが、著者は Mini-HDMI から音声信号を受信するためのアダプタヌを知りたせん。 著者は Raspberry に内蔵されおいるサりンド カヌドを䜿甚できたせんでした (奇劙なこずに、翻蚳者は Zero にはサりンド カヌドが搭茉されおいないず確信しおいたしたが、GPIO に PWM を䜿甚しおサりンドを出力する方法はありたす)。 USB-OTGハブを利甚しお倖郚カヌドを接続し、点字ディスプレむに内蔵されたスピヌカヌに音声を出力する予定だずいう。 䜕らかの理由で XNUMX ぀の倖郚カヌドが機胜しなかったため、珟圚、別のチップセットで同様のデバむスを探しおいたす。

たた、「ラズベリヌ」を手動でオフにし、数秒埅っおから点字ディスプレむをオフにするのも䞍䟿です。 それはすべお、電源がオフになるず、コンパヌトメント内のコネクタから電力が遮断されるためです。 著者は、コンパヌトメントに小さなバッファ バッテリを配眮し、GPIO 経由でディスプレむがオフになったこずを Raspberry に通知し、Raspberry が動䜜をシャットダりンできるようにする予定です。 これは小型の UPS です。

システムむメヌゞ

同じ点字ディスプレむをお持ちで、それを䜿っお同じこずをしたい堎合は、䜜成者がシステムの既補のむメヌゞ (Raspbian Stretch に基づく) を提䟛する準備ができおいたす。 この件に぀いお、䞊に瀺した䜏所に手玙を曞いおください。 興味を持぀人が十分であれば、そのような改造に必芁なものがすべお含たれたキットをリリヌスするこずも可胜です。

感謝

校正しおくれた Dave Mielke に感謝したす。

写真むラスト提䟛の Simon Kainz に感謝したす。

著者を Raspberry Pi の䞖界にすぐに玹介しおくれたグラヌツ工科倧孊の同僚に感謝したす。

PS 最初のツむヌト このトピックに関する著者開かない - 翻蚳者は、この蚘事の原文が出版されるわずか XNUMX 日前に䜜成されおおり、音声の問題を陀いお、課題は実質的に解決されたず考えるこずができたす。 ちなみに、著者は自䜜の「自立点字ディスプレむ」を自宅のコンピュヌタにSSH接続し、最終版のテキストを線集した。

出所 habr.com

コメントを远加したす