« 2021年9月 | トップページ | 2021年11月 »

2021年10月

2021/10/16

Androidの電子書籍用ページめくり機を作りました(2022/12/26追記)

先日HIDデバイスとして動作するBluetoothリモートシャッターがAndroidの電子書籍用ページめくり機として使えるかを実験しました。結果として、ボタンを押すと音量上げのコマンドが出ることが確認できた一方で、電子書籍アプリのページめくり機能が不統一でボタンを押すと前のページに戻ってしまうものがあり、それがよりによって私が最も多用しているSONY Readerでした。
手元で確認した状況を次に示しますが、Kindle以外は音量ボタンでのページめくりに対応していました
アプリ音量上げ音量下げメモ
SONY Readerページ戻りページ送り使わない設定も可
Kinoppyページ送りページ戻り設定なし
読書尚友送りor戻り戻りor送り双方向設定可
なろうリーダ送りor戻り戻りor送り双方向設定可
BOOK☆WALKERページ戻りページ送り使わない設定も可
ブックライブ送りor戻り戻りor送り双方向設定可
Kindleページ戻りページ送り使わない設定も可
※KindleやReaderで不使用に設定できるのはオーディブルや「ながら聴き」を考慮した仕様かも知れません。

そしたら、自分で作るしかないでしょ?ということで少し前から気になっていたSeeeduino XIAOを使い、併せて新しい環境も勉強しようかとCircuitPython(←日本語チュートリアル)を使ってみることにしました。なお、リンク先のmain.pyはcode.pyに読み替えて下さい。

結果としてできたものは、こんな感じです:
Et01
ケースは定番のFRISKを久しぶりに使いました。ボタンは3つあり、ページ送り/戻りと本棚に戻る、です。それぞれ音量上げ下げとマウス右クリックに対応しています。そしてアプリによって送り/戻りを切り替えるためにスライドスイッチを付けています。
なお、ここで使っているAndroidタブレットはASUSのZenPad 3 8.0で、USB Type-Cケーブルで接続しています(公式ページが無くなってしまったのでPC Watchの解説記事にリンク)。開いている本は香月美夜先生の本好きの下剋上〜司書になるためには手段を選んでいられません〜の、原作小説・初巻です。

回路図はとっても簡単です:
Ebook_turner_sch
CircuitPythonのコードはGitHubに上げておきました。ライブラリとして、Adafruit HID libraryからconsumer_control_code, consumer_control, mouseの3つが必要です。

蓋を開けたところです:
Et02
部品はSeeeduino XIAOと、タクトスイッチ3つにスライドスイッチ1つと基板だけ。あとはラベルとケーブルです。いま気が付いたのですが、前から持っているのを流用したUSBケーブルが、他の部品全部を足したよりも高い。むむむ

基板は秋月電子さんのを使いました(便利):
Et03
ちなみにスペーサーとして段ボールを詰めています。

最後に完成品のアップを置いておきます:
Et04
左下の白丸は、Seeeduino XIAOのインジケーターLEDがうっすら見えるようにしてあります。

今回はじめてCircuitPythonを使ってみましたが、Pythonの心得があって、ボード定義などのお約束が分かれば、Arduinoより楽な開発環境だと思いました。ピン定義をまとめてやるところなどPythonならではのコーディングができますし、サンプルプログラムを色々と読んでいても可読性の良さを感じました。また、Arduinoは続けてやっていているときや、ひとつのデバイスに限っているうちはいいのですが、複数のデバイス(UNOとATmega328P自励発振とATtiny85など)を使っていて間が空くと、環境を思い出すのがハードルになってしまうところがあります。その点CircuitPythonだと「そこ」にあるストレージにコードを置くだけで、そのコードの中味は時間が経っても開けば一目瞭然ですし、コードを書き換えて保存した瞬間に動き出しますし、Mu Editorを使えばデバッグも簡単です。逆に困るのは、必ずマスストレージとして繋がってしまうので、取り外さずに抜くと叱られること。まぁ、ファイルさえ開いていなければ大丈夫だと思います。あと、使えるデバイスが限られるのは進歩の代償だと割り切っています。(開発環境を飛ばしても成果物だけは残るというメリットもありますね。考えたくも無いですが…)

ちょうど今夜から寒くなるという予報なのですが、これでコタツや布団の中に手を入れたままで電子書籍が読めるようになりました。我ながら、なんてズボラなんだ…

以上、何かの参考になれば幸いです。ご利用は自己責任で。

パドラッパ from MacBook Air (2017)

【2021/10/17追記】
一晩使ってみて手首の角度が固定されるのが気になり、上面にも「ページ送り」を付けました。回路的には元のスイッチと並列に繋いだだけです:
Et05
手の中で転がしながら読書できるようになりました。ちょっとナースコールみたいですけど(汗

【2022/12/26追記】
Kindleアプリではページめくり不可と書いていましたが、BOOX Leaf2の製品紹介を読んでいてできることに気が付き、修正しました。設定は深いところにあって、次の通りです:
(読書画面で)画面中央をタップ→【Aa】をタップ→「その他」タブの下の方にある「音量ボタンでページをめくる」をON

| | | コメント (0)

2021/10/08

100均で330円のBluetoothリモートシャッターを改造しようとしたら別物だったお話(2022/12/26追記)

先日たまたま小さくて安いArduino互換ボードのSeeeduino XIAOを見て、速いしメモリも多くて凄い、と使ってみたくなりました。それとは別に、これから寒くなると電子書籍のページめくりで布団やコタツから手を出したくなくなるなぁ、とズボラなことを考えていたところでXIAOがUSBのHIDデバイスとしても使えることを知って、音量上げ下げだけをする小物を作ろうかな、とtwitterで呟いていました

ちなみに私がAndroidタブレットで使っている電書アプリでは、ソニーの電子書籍Reader(ReaderStore)紀伊國屋書店Kinoppy読書尚友なろうリーダKindleが音量上げ下げでのページめくりに対応しています(2021/10/13・2022/12/26末尾に追記しました)。

するとフォロワーさんから、ダイソーのBluetoothリモートシャッターを改造する記事を教えて頂きました:
ダイソーでスマホ用Bluetoothリモートシャッターを発見→分解→ちょい改造:ウェブ情報実験室 - Engadget 日本版

これはいい!と近所のダイソーを探したところ残念ながら見当たらなかったのですが、そのフォロワーさんがワッツで同じものを見つけた、と送って下さいました。ところが開けてみるとICが違います。
Rs01
乗っているICの品番はYC1089。検索したところYiChip社のトリプルモードRF SOCでした。ダイソー品に入っていたLENZE社のST17H26と同じくOTPのようなのでプログラムの書き換えはできません(スクラッチから作る技術もありませんが)。

あらためて本体を見直すと技適番号と電池蓋の構造とON/OFFの刻印が違います。というわけで、他人のそら似でした:
Engadget記事品→No.201-170383, AB shutter3 (TO-OH社)
今回入手したもの→No.201-180749, CW-268BT (Core Wave社)

折角なので、あわよくば改造して使えるかと解析してみました。9本あるGPIOのうち、iOSボタン・Androidボタン・LEDに繋がっている3本以外の6本は基板上でNCになっています:
Rs02
これらのどれかに音量下げのコマンドが付いていたら、Engadgetの記事と同じことができます。そこで同様に、GNDパターンにリード線をはんだ付けして針を繋いでおきます。電池はマスキングテープで仮留めしました。

Androidタブレットにキーコードを取得するアプリKeyEvent Displayを入れて、まずは本体の音量上げ下げをすると、キーコード24, 25が帰ってきました。これはAndroidの仕様通りです。
続いてリモートシャッターの電源を入れて接続し、GPIOピンを1つずつGNDに落としていきます。結果として、iOSボタンとAndroidボタンに対応するピンがキーコード24(音量上げ)で、他のピンは無反応でした。
Rs03
そういうわけで、残念ながら音量下げのボタンを付けることはできませんでした。

それにしても、前のダイソー品でAndroidボタンは単なる音量上げでなくEnter+VolumeUPだったのに、今回のワッツ品は2つあるボタンに同一の機能しかないというのは、どういうことでしょう。電池蓋の構造などが違うことから金型を流用したわけでも無いでしょうし、よく分かりません。

結果としてページを戻すことはできませんでしたが、ほとんどの操作はページ送りなので、これはこれで使っていこうと思います。ページ戻りがどうしても欲しくなったら作りましょう。また、Seeeduino XIAOを使いたい欲を満たすネタも考えよう。

以上、何かの参考になれば幸いです。

パドラッパ from MacBook Air (2017)

【2021/10/13追記】
・ページめくり・送り・戻りと表記が揺れていたのを修正しました。送り:次のページに進む、戻り:前のページに戻る、めくり:送り戻り双方、とここでは定義しましたが、適切な用語があればまた直します。
・アプリによってページめくりの挙動が違って、特にソニーの電子書籍Readerではページ送りができませんでした。やっぱり作るしかないかな。また、マウスを繋いでテストしたところ、ほとんどのアプリは右クリックで本を閉じる動作になることが分かりました。
アプリ音量上げ音量下げメモ
Readerページ戻りページ送り不使用設定可
Kinoppyページ送りページ戻り設定なし
読書尚友送りor戻り戻りor送り双方向設定可
なろうリーダ送りor戻り戻りor送り双方向設定可
Kindleページ戻りページ送り不使用設定可
※KindleやReaderで不使用に設定できるのはオーディブルや「ながら聴き」を考慮した仕様かも知れません。

【2021/10/28追記】
参考情報:ダイソーでEngadget記事と同じ技適番号の商品を買って開けたら基板が違ったそうです。

【2022/12/26追記】
Kindleアプリではページめくり不可と書いていましたが、BOOX Leaf2の製品紹介を読んでいてできることに気が付き、修正しました。設定は深いところにあって、次の通りです:
(読書画面で)画面中央をタップ→【Aa】をタップ→「その他」タブの下の方にある「音量ボタンでページをめくる」をON

| | | コメント (2)

« 2021年9月 | トップページ | 2021年11月 »