クリエイター手抜きプロジェクト[649]IoT マイクロビット編 カラー電子ペーパーを使ってみよう
── 古籏一浩 ──

投稿:  著者:



今回は、マイクロビットでカラー電子ペーパーを使ってみます。

電子ペーパーは一度表示したら、通電しなくても表示が消えないという大きなメリットがあります。つまり、電力0で表示したままにできるわけです。コストが安くなればポスターの代わりにも使えるはずです。

使用するカラー電子ペーパーは、Pimoroni社のinky:bitという商品で、日本ではスイッチサイエンス社から購入することができます。Pimoroni社は、マイクロビット用のモジュール等を販売しています。

・inky:bit
https://www.switch-science.com/catalog/6940/






Pimoroni社から直接購入する場合は、以下のページから。

https://shop.pimoroni.com/products/inky-bit


inky:bitに関する仕様などは、以下のページに記載されています。例によって、というか、全部英語です。苦手な人はGoogle翻訳などを使えばよいでしょう。

https://github.com/pimoroni/pxt-inkybit


inky:bitは250×122ピクセルを表示できる、カラー電子ペーパーです(ブロックエディタでは250×199範囲を指定可能)。多くが白黒の電子ペーパーなのに、マイクロビットは豪華な3色!!も表示できる、カラー電子ペーパーです。

子供向け教材でカラーの電子ペーパーを扱えるというのは、10〜20年前と比べて隔世の感があります。昔は高価だったものが、子供でも使えるくらいになってしまったわけです。

さて、実際にinky:bitを使ってみましょう。マイクロビットは新しいバージョンのものしか対応していません。つまり、micro:bit v2でしか使えません。古いマイクロビットでは使えません(試していませんが、たぶん内蔵メモリの容量の関係でしょう)。

まず、inky:bitモジュールにマイクロビットを差し込みます。電子ペーパーの表示画面と、マイクロビットのLEDが同じ面になるように差し込みます。

次に電源ケーブル(マイクロUSBケーブル)を差し込みます。スマホなどBluetooth経由で使うよりも、パソコンと接続しておいた方が高速で便利でしょう。

次に、マイクロビットのブロックエディタのページにアクセスします。新規にプロジェクトを作成します。

https://makecode.microbit.org/


ブロックを配置できる開発画面が表示されたら、「拡張機能」のカテゴリをクリックします。すると拡張機能の一覧が表示されます。

inky:bitは表示される拡張機能の中にはありませんので、画面上部にある検索ボックスに「inky:bit」の文字を入れて検索します。すると、inky:bitの拡張モジュールが表示されます。

表示された拡張モジュールのアイコン(画像)をクリックします。正常に拡張機能が読み込まれると、開発画面のカテゴリに「Inky:Bit」という項目が追加されます。

とりあえず、カラー電子ペーパーに文字を表示してみましょう。

と、その前に注意事項があります。というほどのものでもありませんが、カラー電子ペーパーはビックリするほど表示が低速です。

micro:bit v2は高速化されたとはいえ、パソコンと比べて決して速くありません。輪を掛けて通信速度も速くない上に、電子ペーパー自体も非常に低速です。

(お値段次第という事情もありますが、まあ子供向けなので、ここらへんは仕方ないところ。扱えるだけでラッキーみたいな感じで)

本題に戻ります。カラー電子ペーパーはLEDへの表示とは、異なる手順になります。これはマイクロビットの都合による(SPI通信の仕様)もので、フルカラー液晶モジュールなども同様の手順になります。

(1)初期化
(2)文字が画像などを描画(実際には内部メモリに描画)
(3)内部メモリに描画されたピクセルデータをまとめて転送

ということで、実際にカラー電子ペーパー上に、赤い文字でDigital Creatorsと表示してみましょう。

「Inky:Bit」のカテゴリから「clear th display」のブロックをクリックします。「最初だけ」のブロック内にはめこみます。

次に、「Inky:Bit」のカテゴリから「draw text〜」のブロックをクリックします。先ほど配置した「clear the display」のブロックの下に連結します。

draw textの横の角丸四角形内に、表示する文字を指定します。日本語は表示できないので、英数字、記号のみになります。

at xにはX座標を、yにはY座標を指定します。with colorは「white」(白)、「black」(黒)、「accent」(赤)から選択します。これが表示される文字の色になります。and sizeは文字の1ピクセルの表示倍率です。1〜4倍まで指定できます。

最後に「Inky:Bit」のカテゴリから「display your changes」ブロックをクリックし、「draw text〜」ブロックの下に配置します。

これでできあがりです。実際にブロックエディタから生成されるコードは、以下のようになります。あとは、ダウンロードボタンをクリックして、マイクロビットにプログラムを転送します。

ダイレクトにリンクしている場合は、そのまま転送されますが、そうでない場合は、ダウンロードフォルダに生成されたHEXファイルを、マイクロビットにドラッグ&ドロップしてください。

inkybit.clear()
inkybit.drawText(
"Digital Creators",
8,
52,
inkybit.Color.Accent,
inkybit.TextSize.Medium
)
inkybit.show()

さて、実行すると分かりますが、画面が表示し終わるまでに15秒近くかかります。1回表示するのに、そのくらいかかってしまうわけです。ですから、頻繁に画面を更新するような用途には使えません。時計などは不向きです。もちろん、ゲームなどリアルタイム性を求めるものは全滅です。

週間スケジュールとか献立とか、ゴミ出しとか、格言とか、とにかく表示したら頻繁には書き換えないものを、表示しておくのがいいでしょう。

なお、一度表示してしまえば、マイクロビットを取り外しても電子ペーパーの画面は消えません。が、取り外して飾っておくなら、普通の紙でもいいわけなので、これではメリットがありません。

都合のいいことに、micro:bit v2では省エネモードが用意されています。これはマイクロビットの電源ボタンを長押しすると、電源が入ったまま省エネモードになります。乾電池などで稼働させる場合には有効でしょう。

省エネモードになると、LEDが点滅します。もう一度、電源ボタンを押すと電源が入ります。これなら、長時間マイクロビット+カラー電子ペーパーを使うことができるでしょう。


【古籏一浩】openspc@alpha.ocn.ne.jp
http://www.openspc2.org/


ちなみに、表示する文字の中に{ }を使って表示するアイコンを指定できます。先ほどの文字表示で

Digital Creators {Heart}

とすると、画面にはDigital Creators○(注:ハートマーク)と表示されます。

便利そうなカラー電子ペーパーなんですが、意外といい用途が思いつきません。結局のところ、書き換え可能な紙ということになるので、それなら紙に鉛筆で描いて、消しゴムで消してもいいんじゃないか。紙の方が低コストだし。

書き換えの遅さよりも、コストと扱える用紙サイズがネックなのかもしれません。そう言えば、回転寿司に行ったら精算金額が電子ペーパーに表示されるという具合になっていて、こういう用途もあるのかと、ちょっと感心しました。

どこまで体力が持つか……

年度末、および関東で緊急事態宣言が解除されたせいか、店には人が多くなり道路もやや混雑しています。

まあ、一年前も同様に、緊急事態宣言が解除され人が街に溢れ、次の大きな感染になっていったのですが、まったく同じ周期で同じ事を繰り返す、まさに歴史は繰り返すを地でいく状態。

失敗から学ぶよりも、失敗を繰り返して、より大きな失敗へと向かうのがお決まりのパターンなのでしょうか。なんか太平洋戦争の末期に近い雰囲気になってきたような、気もしないでもないな〜と思ったり。

ちなみに長野県の感染経路は東京→軽井沢→上田地域(店がないので軽井沢から買い出しに)→松本地域(三才山トンネルが無料になった)という感じ。

4月から農作業始める(田んぼ)のですが、一次産業はコロナなんか無関係。コロナで引きこもれるのは上級国民だけ。田んぼも、本当はたくさんお米を作りたいところなんですが、人手がなくて半分しか作っていません。

さらに、会社で雇っていたアルバイトが、大手企業の副業禁止に引っかかっるようで、3月末でやめることに。今どき副業解禁でなくて禁止というのが時代遅れみたいな感じなのですが、規定は規定でどうしようもない。

ということで、4月からアルバイトの分の配達もやることになってしまい、ますます時間が減るという……

今年は「どこまで体力が持つか」が勝負みたいになってきました。

・創って学ぼうプログラミング
https://news.mynavi.jp/series/makeprogram


・8K/4K/ハイビジョン映像素材集
http://www.openspc2.org/HDTV/


・クリエイター手抜きプロジェクト
http://www.openspc2.org/projectX/