盲ろうの方のコミュニケーション手段のひとつとして指文字があり、通常は支援者との間で指に直接触れながら用いられます[1]。
指文字表示デバイスが実現すれば、遠隔地の方との指文字コミュニケーションや、インターネットからの情報入手などが可能となります。これまで、[2][3][4]などの既報があり、特にTATUM[4]は実際に用いられているようです。
上記のいずれも、実際の手の形や動きに近づけるために、多くのサーボモーターを使うこととなり、結果、大きく重い装置となっています。ここでは、5指に対応する5個のサーボモーターを使い、簡素な指文字表示デバイスを作ってみました。デバイス本体の重さは62gです。「符号化」に着目し、指文字をなるべく模擬しつつ、互いに識別できるような指文字の形になるようにしました。これにより、デバイスは携帯バッテリーで動作し、ポケットに入る程度の大きさにすることができました。
まず、親指~小指の5指のそれぞれを伸ばすか曲げるかで文字を表現することを考えます。図1は「あ」の指文字ですが、親指を伸ばし(0)人差し指~小指を曲げる(1)ので、「01111」と2進5桁の符号語で表現することができます。各指の伸ばし(0)と曲げ(1)の組み合わせで表現できるのは、2進5桁では00000~11111の32通りにとどまります。

これを拡張するひとつの方法は、手の向きなどもう1桁増やすことで、そうすれば64通りの文字を表現することができます。6点で構成される点字に相当する表現能力となります。
ここでは桁を増やさずに、親指~小指の5指のそれぞれを3つの曲げ角度、すなわち指を伸ばす(0)、指を小さく曲げる(1)、指を大きく曲げる(2)のいずれかをとるように拡張することにします。「あ」の指文字は、親指を伸ばし(0)、人差し指~小指を大きく曲げる(2)ので、「02222」と3進5桁の符号語で表現することになります。各指の曲げ角度の組み合わせで、3進5桁では00000~22222の243通りの表現が可能となります。
「あ」の例のように、指文字の形ををなるべく模擬するように、あいう..., ABC..., 012...のそれぞれの文字をあてはめたものが付録1の表です。手の向きや動きなど、指の曲げ角度だけでは表現できない文字が多数あり(表中の * 印)、同様のことは[2][3]にも記載されています。試作した表示デバイスでは、これらの文字に表のような符号語を割り当てていますが、これは暫定的なものであり、今の段階では検討の対象外とします。
上記の考えのもとに、5個のサーボモーターからなる指文字表示デバイスを作り、Webアプリから制御できるシステムを開発しました。
システム全体の構成は図2のようになっています。
図左は、指文字デバイスとパソコンをUSB接続し、パソコンのWebブラウザで操作する様子を表しています。図右は、スマートホンとBLE(Bluetooth Low Energy)接続した様子を表しています。パソコンやスマートホンでは、サーバに置かれたWebアプリをブラウザで表示してデバイスを操作します。

Webアプリはサーバではなくパソコン上に置いてもよいので、利用者が自由にアレンジすることも可能です。
試作した指文字表示デバイスは図3のようなものです。5個のサーボモーターで各指の曲げ角度をコントロールしています。指はサーボモータのホーンにビニールチューブを固定した簡素な作りになっています。

主な仕様は表1、回路図は図4のとおりです。
| 項目 | 適用 |
|---|---|
| サーボモータ | GWS servo PICO (5個) をPET樹脂板に固定 |
| 電源 | USB接続の場合はパソコンより供給 BLE接続の場合はモバイルバッテリー |
| スマホやパソコンとの接続 | BLE(Bluetooth Low Energy) |
| デバイス本体の大きさ | 18cm×13cm |
| デバイス本体の重さ | 62g |
| 指 | サーボモータに5mmφ×6cmのビニールチューブを固定 |
| 指の曲げ角度 | 0-30-60 / 0-45-90 / 0-60-120(度)からアプリ上で選択 |
| 文字表示間隔 | 0.5~1.5(秒)でアプリ上で設定 |
| 制御用マイコン | Seeeduino ESP32-S3 |
| 開発環境と制御プログラム | Arduino IDE 2.3.7, Arduino-BLE-MIDI, ESP32servo 3.0.9 webio2USB.ino(USB接続の場合) または webio2BLE.ino(BLE接続の場合) USB接続の時はArduinoIDEで[ツール][USB-Mode]をUSB-OTG(TinyUSB)にして書き込む。 |
(注意) BLE接続の場合、現時点では接続が途切れることがあり、動作が多少不安定でした。また、ESP32servoは新しいバージョンではdetachがうまく動作しないので3.0.9を使用します。

指文字デバイスに指文字を表示するソフトウェアをWebアプリとして作成しました(表2)。
| 項目 | 適用 |
|---|---|
| Webブラウザ | WebBluetoothAPIおよびWebMidiAPIを利用できるブラウザ(Can I useで確認できる) 動作の確認はパソコン(Windows11), スマートホン(Android)のChromeブラウザで行った |
| 操作用Webアプリ | fingercode.html, fingercode.js, webio2.js |
| 指文字符号 | 付録1に記載 |
| 操作対象 | ブラウザが動作しているパソコンやスマホに接続したデバイス |
| 指文字表示の時間間隔 | 0.5~1.5秒 |
| 指の曲げ角度のプリセット機能 | 各指 伸ばした状態(0)と大きく曲げた状態(2)それぞれについて0~180度 小さく曲げた状態(1)はその中間値とする ホームポジションは伸ばした状態から1/4曲げた位置とする |
このページ冒頭のボタンを押すと、指文字表示アプリが起動し、USB接続の時は図5左の画面が現れるので、「許可する」のボタンを押します。画面左上に接続されたデバイスの名称が
BLE接続の時は、画面上のボタンを押すと、図5右の画面が現れるので、デバイスを選択し「ペア設定」のボタンを押します。画面左上に接続されたデバイスの名称が
デバイスはパソコンからはMIDIデバイスとして認識されるようになっています。もしも図の接続許可の画面が現れない場合は、ブラウザの設定を確認します。Chromeの場合は[設定][プライバシーとセキュリティ][セキュリティ][サイトの設定][koyama.verse.jp][MIDIデバイスの操作と再プログラム]が「ブロック」になっていれば「確認(デフォルト)」または「許可」に変更します。


接続後のブラウザの操作画面は図6左のようになります。
初回はサーボモーターの動作角度を設定します。ページ末尾のボタンを押すと、図6右の表示になり、各指の伸ばした状態(0)と指を大きく曲げた状態(2)の角度を画面のスライダーで調整します。小さく曲げた状態(1)とホームポジションについては、表2のように自動的に決まります。各指の調整を終えたら、ボタンを押します。設定値はブラウザに保存されます。設定は異なるデバイスの接続を考慮しデバイス1~デバイス3の3パターンを登録できます。

その後、入力欄に文字を入力し(図では「あいさつ」)、ボタンを押すと、指文字デバイスは1文字ずつ指文字の形に変化し、利用者はこれを触って読み取ります。ブラウザ画面にも、指の動きに連動して指文字の形が表示されます(図7)。

指文字表示の時間間隔(0.5~1.5秒)はスライダーで設定できます。
指文字表示デバイスの形と指文字の画面表示は図8のようになります。全部の文字を表示し終えると、デバイスはホームポジションの位置になります。
![]() ![]() 02222 「あ」 |
![]() ![]() 02220 「い」 |
![]() ![]() 02220 「さ」 |
![]() ![]() 11000 「つ」 |
以下は実際の動作の様子です。
市販のSainSmart社製の5フィンガーでも試してみました。回路もソフトも共通なので、サーボモーターを配線しなおすだけでそのまま動作します。指の動きは多少リアル感がありましたが、手で触れた時に形を保持できませんでした。
5フィンガー以外にも指の動きをコントロールできるデバイスはいくつか市販されているようですが、指文字の「識別」を優先して考えた場合は、あまりリアルさを追及する必要はないように思います。
練習用、あるいは評価用に、有意味の単語1語および10語のランダム表示の機能を設けました。登録されているのは「あいさつ」「えき」「きいろ」など2~4文字からなる193語で、付録1の*印の文字は含まれず、1語中に同じ文字も重複していません。また、濁点や半濁点や「ー」は含まれず、「っ」「ゃ」「ゅ」「ょ」の拗音はそれぞれ「つ」「や」「ゆ」「よ」としました。
ボタンを押すと、入力欄にランダムに1語が表示され、再生が開始します。ボタンを押すと、連続して10語が表示されます。語と語の間はいったんホームポジションの位置となります。
今はようやくデバイスやアプリが動作するようになった段階です。私自身、これまで盲ろうの方と接することはなかったので、今後、当事者や支援者の方々のお話を伺いながら、改善していきたいと思っています。
(1) 指文字デバイスの改良
デバイスは、指文字の形を読み取りやすいように工夫を重ねる必要があります。
その際、指文字の特徴を認知しやすいような工夫が重要です。形状や動きの忠実さを追及すると、デバイスが複雑になり高価になってしまうので、その必要はないように思われます。一方で、5フィンガーのように安価なデバイスも市販されるようになったので、今後利用できるデバイスが増えてくれることを期待しています。
なお、現在は指の曲げ角度を大きく変化するように設定していますが、実際の使用時には「識別できる程度に」小さくしても構わないように思います。
(2) 符号語の割り当て
実際の指文字は手の向きや回転や動きなど複雑ですから、5指の曲げ角度だけで忠実に表現できるわけではありません(付録1の表中*印)。この表では、*印の符号語を「指文字となるべく近い形」になるように暫定的に決めています。一方で、「他の符号語となるべく違う形」になるように符号語を決めて識別しやすくするという考え方もあります。
この表は十分に検討したものではありませんので、今後検討を重ねて、変更すべき箇所は変更する必要があります(特に*印)。ただし、頻繁な変更は避ける配慮が必要と思われます。
(3) 指文字入力デバイス
ここに記載したのは「指文字表示デバイス」ですが、今後は「指文字入力デバイス」も検討したいと思っています。3元符号化で指文字の表現を簡素化することで、指文字を模擬した入力デバイスも作れるのではないかと考えています。
入力デバイスと出力デバイスを合体させて入出力デバイスにすれば、盲ろう当事者同士が指文字を使って遠隔でコミュニケーションをとることも可能になります。
...
検討課題はたくさんありますが、いつか、このようなデバイスをポケットに入れて、移動先でメールを読んだり書いたりできる日がくるといいのですが。
(謝辞) このページおよびWebアプリでは、ちびむすドリルさんで公開されている指文字のイラスト[5]を許可を得て使用しました。ご快諾に感謝申し上げます。
[1] 河村(編): 盲ろう者と触手話, 国立リハビリテーションセンター, 2005
[2] 關, 森, 横井: ろうベースの盲ろう者の自立した情報獲得を目指した触指文字ロボットの開発, WIT2016-87, 2017.
[3] 安, 濱, 中津, 村岡: ホビー用ロボットハンドを用いた指文字表現, IPSJ Vol.2018-AAC-8 No.6, 2018.
[4] S.Johnson, et.al, An Adaptive Affordable Open-Source Robotic Hand for Deaf and Deaf-Blind Communication Using Tactile American Sign Language, IEEE EMBC 2021.
[5] 手話の指文字表, ちびむすドリル, https://happylilac.net/sk1805311413.html
親指~小指の5指のそれぞれが3つの曲げ角度(0,1,2)のいずれかをとるとすれば、00000~22222の243通りの表現が可能です。これを符号語と考え、指文字の形ををなるべく模擬するように、あいう..., ABC..., 012...のそれぞれの文字をあてはめたものが下表です。手の向きや動きなど、指の曲げ角度だけでは表現できない文字が多数あり、表中の * 印は暫定的に割り当てたものとなります。