Profile cover photo
Profile photo
Shiki Okasaka
555 followers -
From the kernel to the browser and all in between
From the kernel to the browser and all in between

555 followers
About
Shiki's posts

Post has attachment
最近はすっかりツイッターばかりになってしまっているけれど、ブログ更新のお知らせ。プログラミング教育の方がホットな感じがあるけれども、もっと地道に子ども用のキーボードのお話(先生方向け)。

Post has attachment
#キーボード一言居士, 日本人とエルゴノミック キーボード。
--
最近は日本でエルゴノミック キーボードの話題を見かけることがまた少し多くなってきました。

日本では今40代以上の人だと、80年代にBTRON[0]のキーボードを見たときの衝撃を覚えている人も多いのではないかと思います。
当時は徐々にワープロが普及し始めた頃で、はじめてキーボードに触れたという人が多く、素朴になんでボタンが左右にずれてるの?、手の形に合わせてまっすぐに並んでいたらもっとタイピングも簡単なのに、と思っていた人も少なくなかったように思います。
そんなところへTRONの坂村先生が、今のキーボードは機械式タイプライターの名残りで、キーボード文化のなかった日本人は、指が自然な位置になるようにしたもっとよいキーボードをはじめから使うべき、と著書や教育テレビでもお話されていたのです。当時の期待感はとても高いものがありました。

歴史的には海外の人たちも喜んでボタンを左右にずらしていたというわけではないようで、1909年には親指にシフトキーやバックスペースキーを配置したエルゴノミック キーボードを備えたタイプライター[1]が発明されていたようです。合理主義的なイメージの強いドイツでは、1934年に親指スイッチマシン[2]と呼ばれたエルゴノミック タイプのタイプライターがやはり開発されています。こちらは残念ながら第二次世界大戦のあと生産が再開されることはなかったそうです。

労働医学の面からは、「キーボードの使用時間が週20時間未満なら、手根管症候群のリスクは存在しないかかなり低い」[3]、と考えられているようです。実際のところ、そうでなけれは今頃キーボードによる健康被害はもっと大問題になっていそうに思います。順番としては、別の原因による関節リウマチなどで普通のキーボードが非常に操作しづらくなって、エルゴノミック キーボードに変えられる方もいらっしゃるようです。

日本のエルゴノミック キーボードは、もともとは森田さんのM式もTRONも機械式タイプライターの名残りからの脱却という面が強かったような印象があります。エルゴノミック キーボードにすると、普通のキーボードと指使いが違うのでなかなか慣れない、というような発言が日本人から出てくるとは、80年代には想像も出来ないようなことだったのかもしれませんね。

図は[1]から。

[0] BTRONパソコンの試作機, http://techon.nikkeibp.co.jp/article/COLUMN/20080807/156209/?SS=imgview&FD=-880108104
[1] Type-writer keyboard, https://www.google.com/patents/US964340
[2] Daumenschaltmaschine, https://books.google.co.jp/books?id=nwhpagXq2BMC&lpg=PA133&ots=1-Prs5u_iw&dq=daumenschalt%20tastatur%20Rheinmetall&hl=ja&pg=PA133#v=onepage&q=daumenschalt%20tastatur%20Rheinmetall&f=false
[3] http://www.nytimes.com/ref/health/healthguide/esn-repetitivestrain-expert.html?pagewanted=all
Photo

Post has attachment
#キーボード一言居士 , モニターアーム - 買い揃える順番(改訂版)。
--
以前、エルゴノミック キーボードを買い揃える時の順番[1]として、
1. 机と椅子、
2. ポインティング デバイス、
3. 最後にキーボード、
と書いたことがあります。

これは、
1. 机と椅子、
2.モニターアーム、
3. ポインティング デバイス、
4. 最後にキーボード、
に修正というお話。

--
ニューキーボードNISSEのようなキーボードは、*前腕全体*をベタッと机やアームレスト(≠パームレスト)の上に置いた状態で作業することを念頭に作っています。そのとき腕を支える部分はできれば少し傾斜していて欲しい、ということがあります。

そのため机の形状としては、エンベロップデスク[2]とかドイツスタイルの勉強机[3, 4]が理想的なのですが、中迫先生のデザインされたスイス銀行のオフィスの写真[5,p7]のように傾斜台を机の上に乗せるというのもひとつの方法です。NISSE用の傾斜台[6]も以前作ってみたことがあります(*1)。また、オリジナルのTRONキーボード[7]は傾斜台をキーボード本体に組み入れたようなデザインになっていました(*2)。

[G],[H]キー間の距離もこういった作業環境込みで中迫先生らがご研究をされていて、最適な距離として6.5cmという結果[8]が得られていました。こういった指針はMicrosoftのエルゴノミック キーボードにも現在でも取り入れられています。この辺りは、各キーボード偶然似ているということではなくて、参照しているもともとの研究が同じということです。前腕をベッタと置く作業姿勢についても、2000年代にアメリカで再検証が行われてメリットがあらためて確認されています[9](*3)。

ところで、最近はモニタの解像度がかなり上がってきていて、4Kモニタを使われている方も増えてきているようです。OS側でDPIに合わせて文字などを大きくする対応がとられていたり、ブラウザのpxも本当は「1px is equal to 0.75pt」、という話もありますが、実際にはとにかく画面にたくさん文字を出したい、という方も少なくない様子です。その場合、モニタの解像度が上がると、そのままでは文字はどんどん小さくなってしまうので、結局モニタをもっと手前に出すしかない、ということになるようです。

文字が小さくなったことで、安易にモニタをどんどん手前を持ってきてしまうと、前腕の支持スペースが減ってきてしまい、打鍵姿勢としては理想的でない形になってきてしまうということがあります。ですので、モニタをかなり手前にされたいときは、キーボードの位置を変えるのではなくて、モニターアームを使うようにしてください、というのが今回のお話でした。

--
*1 体格差を考慮すると、支持面はもう少し大きくした方が良かったのですが、角度はそれで良い感じでした。
*2 NISSEだけでなく、オリジナルTRONキーボードの形状の理論的背景も中迫先生らのご研究によるものです。
*3 エルゴノミック デバイスの優劣は相反する結論を導いている論文もあったりで、最終的には被験者の好み等からまとめられていく部分もあり、製品化するのはなかなか大変な部分があります。こういった複数の独立した研究事例があるものは実はとても貴重です。

[1] 買い揃える順番, https://plus.google.com/u/0/+ShikiOkasaka/posts/amMBjm79i9m
[2] エンベロップデスク, http://www.hermanmiller.co.jp/products/workspaces/desks/envelop-desk.html
[3] ドイツの勉強机, http://afg0704.exblog.jp/9477294/
[4] German Desk by Luigi Colani, http://www.pamono.com/german-desk-by-luigi-colani-for-floetotto-1970s-1
[5] オフィスの人間工学, http://www.sanko-e.co.jp/download_file/view/546/332
[6] NISSE用の傾斜台, https://plus.google.com/u/0/+ShikiOkasaka/posts/4VGYQZRRQvP
[7] TRONキーボード, https://commons.wikimedia.org/wiki/Category:TRON_keyboard#/media/File:TRON-keyboard-OKI-front.jpg
[8] キーボードの人間工学的設計, http://jglobal.jst.go.jp/public/20090422/200902056892713763
[9] The Latest Thinking on Computer-Related Pain, http://www.nytimes.com/ref/health/healthguide/esn-repetitivestrain-expert.html?pagewanted=all

Post has attachment
#新キーボード , 機能追加(CXモード)
--
新しいBluetoothに対応したNISSEでは制御基板のマイコンをPIC18F47J53にアップグレードしたこと[1]で、またファームウェアの機能を拡張していく準備ができました。

拡張第一弾として、一部でご要望を頂いていた、左FNキーと右FNキーの空押しでそれぞれ英数キー、かなキーとなる機能を追加しています(下図: CXモード)[2]。

NISSEではオリジナルのTRONキーボードに倣った位置に英数キー、かなキーを配置したCJモード[3]が以前からあり、こちらを使われている方もいらっしゃいます。ただ、
* やや遠い位置にあること、
* 親指のキーが多すぎると分かりづらいという評価がオリジナルのTRONキーボードに対してにあったこと[4]、
からデフォルトではFN-B, FN-Nをそれぞれ英数キー、かなキーにとしてきていました。理由としては、
* TRONかなや親指シフトを使われている方なら同時打鍵には抵抗がない、
* IMEの操作でCtrl-Nの操作に慣れている方も多い、
といったものがありました。

CXモードは、同時打鍵に慣れていないローマ字入力を使われている方や、Apple Keyboardに慣れている方には馴染みやすのものかなと思います。最近はMicrosoftのUniversal Foldable KeyboardもApple Keyboardと同じような英数・かなキーの配置を採用していて、"Universal"という意味ではいずれこの形にどのキーボードも落ち着いてくれた方が良いような気もしなくもありません。なお、従来のUSB版NISSEではプログラムメモリの空き容量が厳しい部分があるのですが、CXモードの評価がよければ入れるようにしたいと思っています。

PIC18F47J53の方はまだだいぶ余裕があるので、他にも機能追加の候補としては、
* Unicodeの直接入力を使って親指シフトで〔, 〕等を入力できるように、
* 日本語キーボード設定のWindowsでも(レジストリなどを操作せずに)英語配列を使えるように、
といったものがあります。

空き容量的にはTiny Basicくらいは動かそうと思えば動かせそうなので、スクリプトを利用したマクロ機能とかキー入れ替え機能とかも候補としてはありそうですが、その他にもリクエスト等あればお気軽に。 :-) --
[1] http://shiki.esrille.com/2016/08/bluetoothusb.html
[2] https://github.com/esrille/new-keyboard/commit/e03444cb
[3] http://www.esrille.com/keyboard/ja-jp/modifiers.html
[4] TRONキーボード入門 第4回 TRONキーボードの設計思想, 美崎薫, TRONWARE Vol.35, 1995.
Photo

Post has attachment
ブログをかなり久しぶりに更新しました。内容はこれまでGoogle+に載せてきていたものを多少整理して加筆したものになっています。

Shiki's Weblog: 新キーボード プロジェクト? - Bluetooth/USB兼用版の開発
http://shiki.esrille.com/2016/08/bluetoothusb.html

#新キーボード , USB/BLE兼用版(#11)。
--
USB/BLE兼用版のNISSEのソースコードをGitHubから公開しました[1]。

今回のNISSEは、USB/BLE兼用版としたことでユーザーの方がキーボードをカスタマイズされたいような部分については、公開したメインの制御基板のPIC18F47J53のファームウェアの変更のみで行えるように構成してあります。

ほとんどの部分は、従来の18F4550用のソースコードと共通になっていますので、これまでUSB版のNISSEのファームウェアをカスタマイズされて使われていた方も比較的容易に移行できるのではないかと思います。

[1] https://github.com/esrille/new-keyboard

Post has attachment
#新キーボード , USB/BLE兼用版(#10)。
--
Fedora 24でのペアリング手順について。

昨日『ちなみにFedora 24では同じハードウェア構成でも、まだ手元では一度もうまくペアリングできていません。』と書いたばかりですが、今日手元のFedora 24でdnf updateをかけて、もう少し調べてみたところペアリングできるようにする手順を見つけられました。

素の状態では上手く行かないのは変わっていないようなのですが、その場合FedoraからNISSEにペアリングせずにbluetoothのコネクションだけが張られている状態になってしまっているようです。そういう場合は、bluetoothctl コマンドを使って次のように一度コネクションを切ってください:

$ bluetoothctl
:
:
[Esrille Nisse]# disconnect XX:XX:XX:XX:XX:XX
Attempting to disconnect from XX:XX:XX:XX:XX:XX
Successful disconnected
[CHG] Device XX:XX:XX:XX:XX:XX Connected: no
[bluetooth]#

これでおかしな状況はおさまって、あとは以下のような手順でだいたいペアリングできるようになりました。

$ bluetoothctl
[bluetooth]# agent DisplayOnly
Agent registered
[bluetooth]# default-agent
Default agent request successful
[bluetooth]# scan on
Discovery started
[CHG] Controller YY:YY:YY:YY:YY:YY Discovering: yes
[NEW] Device XX:XX:XX:XX:XX:XX Esrille Nisse
[bluetooth]# pair XX:XX:XX:XX:XX:XX
Attempting to pair with XX:XX:XX:XX:XX:XX
[CHG] Device XX:XX:XX:XX:XX:XX Connected: yes
[agent] Passkey: 633873 # ここでNISSEで633873と入力してEnterを押します。
[CHG] Device XX:XX:XX:XX:XX:XX Paired: yes
Pairing successful

ただ、現状ではFedoraのbluetoothのサービスがこの手順中に停止してしまうことがありました。そのときは、
  $ sudo systemctl restart bluetooth.service
でサービスを再開してやり直してください。

ちなみに、GUIではまだ確実にうまく行く手順を見つけられていません。上手くいった場合は、スクリーンショットのような感じで進んでいきます(うまく行かない場合はパスキーの表示ダイアログが出てきません。これはUbuntuでも同様です)。このGUIの手順も安定して上手く行くようになれば、NISSEのBluetooth接続の対応OSにLinuxデスクトップも入れるようにしたいと思っています。

※ この投稿は、NISSE > Bluetooth > BT-Micro4 > Fedora 24 Workstation という環境で書いています。 :-)
PhotoPhotoPhoto
2016-08-05
3 Photos - View album

Post has attachment
#新キーボード , USB/BLE兼用版(#9)。
--
NISSE BLE/USB兼用版のページ[4]ではBluetooth接続の対応OSにLinuxデスクトップはいまのところ入れていません。これはLinuxデスクトップのBluetooth(4.0?)キーボードのサポートが現状ではかなり不安定[1, 2, 3]なためです。

ただまるでダメということでもなく、Ubuntu 16.04.1では何回か下記のような手順を繰り返しているとペアリングに成功できる場合があります。

$ bluetoothctl
[bluetooth]# agent on
Agent registered
[bluetooth]# default-agent
Default agent request successful
[bluetooth]# scan on
Discovery started
[NEW] Device XX:XX:XX:XX:XX:XX Esrille Nisse
[bluetooth]# pair XX:XX:XX:XX:XX:XX
[agent] Passkey: 912230
[CHG] Device XX:XX:XX:XX:XX:XX Paired: yes
[Esrille Nisse]# trust XX:XX:XX:XX:XX:XX
[CHG] Device XX:XX:XX:XX:XX:XX Trusted: yes
Changing XX:XX:XX:XX:XX:XX trust succeeded

ただこのペアリング手順がこちらで試した範囲でも、[2]でも書かれているような"the initial pairing/connection process (at least for me) was extremely flakey"な状況です。GUIからのペアリングについては、さらにうまく行かない印象ですが、Project SputnikつながりでUbuntuと割と相性の良かったDellのXPS 12(2012)では、GUIからでもパスキーを入力してペアリングできたこともありました。

というわけで、今もまったくダメということではなく、近い将来Linuxデスクトップももう少し安定して来そうかなといった印象です。この投稿も、NISSE > Bluetooth > BT-Micro4 > Ubuntu 16.04.1 Desktopという環境で書いていて、一度ペアリングさえできてしまえば、比較的安定しているようです。

というわけで、Linuxのサポートはどうなっているのだろう、と思われていた方へご参考まで。

※ ちなみにFedora 24では同じハードウェア構成でも、まだ手元では一度もうまくペアリングできていません。
--
[1] http://askubuntu.com/questions/805096/ubuntu-16-04-unable-to-pair-bluetooth-keyboard-no-pairing-code-prompt-displayed
[2] http://askubuntu.com/questions/730316/apple-wireless-keyboard-wont-connect-in-15-10
[3] http://askubuntu.com/questions/761947/ubuntu-mate-16-04-doesnt-ask-for-pairing-code-to-connect-apple-keyboard
[4] https://www.esrille.com/keyboard/ja-jp/bluetooth.html

Post has attachment
#新キーボード , USB/BLE兼用版(#8)。
--
USB/BLE兼用版の受注を開始しました[0]。 :-)

前回の開発中#7[1]では、製品仕様のハードウェアを完成させるところまで進めていました。ただ、新規のBluetooth機器は必要な試験を実施してBluetooth SIGに製品登録を行って、はじめて製品として出荷できるような仕組み[2]になっています。そのため、その後さらに、

1. Bluetooth SIG に加入する。
2. プロファイルチューニングスイート(PTS)用の無線モジュールを購入する。
3. Bluetooth SIGからイノベーション奨励プログラム(IIP)の承認を受ける。
4. Bluetooth製品登録のための申告IDを購入する。
5. Bluetooth SIGからCompany ID[3]を割り当ててもらう。
6. Bluetoothの認証試験を実施する(予備試験は2.のあとから開始できます)。
7. 試験結果と合わせて製品登録をSIGに申請し承認を受ける。

といった手順を進めてきていました(1.と2.は実際にはいつでも。3.は会社の規模により)。

生産数の少ない商品では費用・工数的に大変な印象もありますが、全体としては比較的低コストで機器の相互運用性を確保していくための施策をBluetooth SIGが取られている、ということのように思います。

今回のNISSEは、USB/BLE兼用版としたことでユーザーの方がキーボードをカスタマイズされたいような部分については、USBマイコン側で処理するようにしています。新しいUSBマイコン側のソースコードについては、今回もGitHubからアクセスできるように現在準備中です。(初回ロットの発送前に公開の予定です。キーマトリクスのスキャンコードからキーコードへの変換の処理の部分などは従来のPIC18F4550版と共通のソースコードになります。)

[0] http://www.esrille.com/keyboard/ja-jp/news.html#2016-08-01
[1] https://plus.google.com/u/0/+ShikiOkasaka/posts/8d6PerV1EGC
[2] https://www.bluetooth.org/ja-jp/test-qualification/qualification-overview/listing-process-updates
[3] https://www.bluetooth.com/specifications/assigned-numbers/company-identifiers

Post has attachment
#新キーボード , USB/BLE兼用版(開発中#7)。
--
USB/BLE兼用版の製品仕様の制御基板が出来上がってきました(写真手前。写真奥の基板は現行のUSB版の制御基板)。

左端の基板は開発用のBLEモジュールの基板です。こちらは太陽誘電製のEYSGCNZWYが載ったものになっていますが、BLEモジュールについては検討中の点がまだいくつか残っています。受注については、この辺りの検討を終えてから、ということになりそうです。(希望的観測としては、いずれにしてももうそろそろかと。)

----
nRF51822のファームウェア開発も、NordicのnRF5 SDK v11になってだいぶしやすくなってきました。去年の夏頃は広く流通しているnRF51822がまだRev. 2(現行品はRev. 3)で、対応しているSDK v6.1を使っていたのですが、その後、機能的に不足している部分をv8からコードをもってきたり、さらにはv9にパッチを当てて使ったりと、なかなかAPIも安定しない感じだったのでした[1]。v11は細かな点[2]は残っているものの、キーボードを作ったりする分にはPeer Managerなど便利なAPIが使えるようになりました。 :-)

[1] https://plus.google.com/u/0/+ShikiOkasaka/posts/imcPhFJkDkC
[2] https://devzone.nordicsemi.com/question/71366/what-are-sdk-1100-known-issues/
Photo
Wait while more posts are being loaded