M5Stackシリーズの新デバイス、電子ペーパーを搭載した M5Stack CoreInk が、今日 UIFlow に対応しました。
そして早速チェックして試し、その過程をメモ的なものとして記事にしてみました。
たった 2つのブロックを使うだけで、画像を電子ペーパー上に表示できてしまった!
#CoreInk で #UIFlow 。
— you (@youtoy) November 20, 2020
電子ペーパーに簡単に画像を表示させられた!
(Twitterで使ってる画像)
#M5Stack pic.twitter.com/oTqrTtVOzH
はじめに
事前に以下などの公式ツイートで予告されていて、リリースを楽しみにしていました。
そして今日の夜に Facebook や Twitter のタイムラインに、リリースされたとの情報が流れてきました。
UIFlow for CoreInk ing. This Friday. pic.twitter.com/y9cOj3bbzL
— M5Stack (@M5Stack) November 18, 2020
まずは UIFlow で端末選択画面をチェック。
CoreInk が選択肢に増えてました。
#CoreInk に対応した #UIFlow 、早速チェックせねば!#M5Stack pic.twitter.com/TeL9MUlbto
— you (@youtoy) November 20, 2020
UIFlow のブロックを見てみる
まずは、画面にいろいろと配置してみました。
#UIFlow で #CoreInk を選んで、とりあえず画面にいろいろと並べてみた。#M5Stack pic.twitter.com/zRRrhksGHj
— you (@youtoy) November 20, 2020
こちらは画面に並べた要素と関係ないですが、イベント関連のブロック。
#CoreInk のブロックをチェック中。
— you (@youtoy) November 20, 2020
こちら、イベントのブロック。#UIFlow #M5Stack pic.twitter.com/t52scRXUsx
そして、配置された要素に関するブロックをチェック。
一番試してみたい、と思ったのは画像関連のブロックでした。
#CoreInk のUIの中、画像のブロック。
— you (@youtoy) November 20, 2020
画像表示は試してみたいな。#UIFlow #M5Stack pic.twitter.com/Czl9y1TS0E
こちらは、デフォルトで「UI」の中に含まれる「画面」のブロック。
いったん、画面にあれこれ配置していたものをクリアして、あらためて「UI」の中を見てみる。
— you (@youtoy) November 20, 2020
デフォルトで入ってる「画面」の中のブロックをチェック。#CoreInk #UIFlow #M5Stack pic.twitter.com/zbdcyMc9AK
なぜかバッテリー関連のカテゴリが 2つある?
バッテリー と Battery がある!?#CoreInk #UIFlow #M5Stack pic.twitter.com/kwwben2EwL
— you (@youtoy) November 20, 2020
UIFlow のファームウェアを書き込む
M5Burner で CoreInk にファームウェアを書き込もうとして Mac用のアプリを見てみたのですが、どうやら CoreInk用のメニューは出ていない様子。
Windows用がリリースされた、とかかな、と思い Windows機で見たら無事に使えそうでした。
Windowsマシンにて。#CoreInk #UIFlow #M5Stack pic.twitter.com/g5OGRR6OFH
— you (@youtoy) November 20, 2020
そして、ファームウェアをダウンロードして、書き込みを試しました。
#CoreInk に #UIFlow のファームの書き込み完了!
— you (@youtoy) November 20, 2020
#M5Stack pic.twitter.com/gWvhdFtsLC
UIFlow を利用した画像表示を試す
「画像表示を試したい!」と思って Twitter用に使っている画像をセットしてみました。
単純に画像ブロックのみを使うと、エラーメッセージが表示されたため、その時にメッセージに記載されていた画面ブロックを足してみました。
そうすると、無事に電子ペーパー上に画像を表示できました!
#CoreInk で #UIFlow 。
— you (@youtoy) November 20, 2020
電子ペーパーに簡単に画像を表示させられた!
(Twitterで使ってる画像)
#M5Stack pic.twitter.com/oTqrTtVOzH
ドキュメント等を見ないでとりあえず試したので、上記が正しいかは不明です。
Twitter で別の方のツイートを見ると、ブロックの順序を逆にしてたようでした。
わかった、プログレッシブになってたからだ(GIMPでJPEGにエクスポートするときのワナだった)。カラーの画像でもよきに計らってくれそう? #m5stack #uiflow #coreink https://t.co/zlFeSDn3z1 pic.twitter.com/odGTa4KPod
— さいとてつや (@saitotetsuya) November 20, 2020
【追記1】 画像の 2値化の閾値を変える
Facebook で使っている写真でも試してみました。
なんともいえない感じの画像に(笑)
これはw
— you (@youtoy) November 21, 2020
(あらかじめ、画像を良い感じに変換しておくと良さそうだな)#CoreInk #UIFlow #M5Stack pic.twitter.com/MOznO0nZjX
Twitter コメントより、画像が 2値化される際の閾値を変えられる、という情報を得られたので試してみました。
2値化の閾値を変えられるスライダーがあったのか!@saitotetsuya さん、ありがとうございます。#CoreInk ➕ #UIFlow
— you (@youtoy) November 21, 2020
#M5Stack pic.twitter.com/22Xie9Di30
写真は背景の色の関係で、閾値をいじっても厳しそうでしたが、その前に試していた Twitter のアイコンでやったものは、閾値を変えると輪郭などが良い感じに。
2値化の閾値を変えると、元画像の人物部分と背景の色の差がはっきりしていたものは、輪郭をきっちり出せるようになったりしました。#CoreInk #UIFlow
— you (@youtoy) November 21, 2020
#M5Stack pic.twitter.com/3VYWbyGh7b
【追記2】 ハーフトーンにすることで見た目を改善
写真を表示させようとした事例で、単純な2値化・閾値調整だと見た目があまり良くない感じになったもの、ハーフトーンの処理をした上で表示させることで、ずいぶん改善されました。
(この件、Qiita の記事にしてみました ⇒ UIFlow と M5Stack CoreInk で画像表示をさせる際の事前の画像加工(ハーフトーンの利用) - Qiita)
GIMP を使って画像を調整して取り込んだら、見た目が大幅改善。
— you (@youtoy) November 22, 2020
ハーフトーンのフィルターを使いました。
(余談ですが、入社して最初に配属された画像処理の研究グループで、先輩がこの辺の技術を活用する研究開発をしてたのを思い出した)#M5Stack #CoreInk #UIFlow https://t.co/ct82Fg9Jkq pic.twitter.com/OR23rA3km8
おわりに
冒頭にも書いたように、たった 2つのブロックを使うだけで、画像を電子ペーパー上に表示できてしまった!
【追記1】 その後
テキストの表示も試してみました。
「Set screen show」を置く位置は、表示させたい要素の設定などが終わった後、で良さそうでした。
#CoreInk ➕ #UIFlow 。
— you (@youtoy) November 21, 2020
文字表示もやってみた。
#M5Stack pic.twitter.com/vTucjtSkQ9
ボタンとスピーカーの組み合わせ。
(電子ペーパーの表示は、別のプログラムで表示したものが残っている形)
#CoreInk で #UIFlow 。
— you (@youtoy) November 21, 2020
電子ペーパーを使わないプログラムを試してみる。
ボタンの操作 3種類で、スピーカーから異なる音を出す、というシンプルなもの。
#M5Stack pic.twitter.com/ysNw0JPYmV