この記事は、日本ではスイッチサイエンスさんから販売されている M5Stack CoreInk を、とりあえず試した過程をメモとして書いたものです。
●M5Stack CoreInk 開発キット(1.5インチ Einkディスプレイ) - スイッチサイエンス
https://www.switch-science.com/catalog/6735/
@ssci さんからのお届けもの、#M5Stack_CoreInk !
— you (@youtoy) November 14, 2020
#M5Stack #CoreInk pic.twitter.com/9IzJkRS7oa
参照先の情報を探す
まずは下記の公式の GitHub のページを参照。
●m5stack/M5-CoreInk: M5Stack CoreInk Arduino Library
https://github.com/m5stack/M5-CoreInk
その中に以下のクイックスタートがあったので、それを見つつ進めました。
●M5Stack Docs - The reference docs for M5Stack products.
http://docs.m5stack.com/#/en/quick_start/coreink/quick_start_arduino
公式のクイックスタートを試していく
ドライバ・開発環境の導入
公式のクイックスタートの最初は「USB Driver」について書かれているのですが、自分は過去の別デバイスの開発時に導入済みだったので、ここはスキップ。Arduino-IDE の導入についても同様の理由でスキップ。
ボードマネージャー関連
次のステップは「M5Stack Boards Manager」の部分。
ボードマネージャーのURLとして追加する
https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/arduino/package_m5stack_index.json
という部分は、以前の M5Stack関連の開発時に追加していたものと違うような気がして、この手順は進めて行きました。
URL追加後は、ボードマネージャー上で「M5Stack」で検索をして、出てきたものをインストール。
あれ?前はボードマネージャで検索してたのって、ESP32とかじゃなかったっけ?
— you (@youtoy) November 14, 2020
MQTTとかUnit制御を使うやつとかのUIFlowで大丈夫なものは、UIFlowでやってたので、けっこう前から変わってたりしたのかな。
ボードマネージャー絡みで追加するURLも変わってる?https://t.co/wRi362guJp https://t.co/bzerQExw0n pic.twitter.com/7BnoBQ24dy
そうすると、ボードの選択の中で、「M5Stack-CoreInk」が選択可能に。
ボードの選択で、 #M5Stack のカテゴリがある中に、今回の目的の #M5Stack_CoreInk が並び、その下には #M5Stack_Paper が既に入っている!#CoreInk pic.twitter.com/9MoGaJwuBr
— you (@youtoy) November 14, 2020
上記のボードマネージャーのURL追加の件、どうも以下の記事を見ると、M5Stack Core2 の開発でも、以前と異なる(今回と同じ)URL を追加する形のようです。
そういえば、M5Stack Core2 は、タッチスクリーンやボタン・MQTT を利用する開発をやったけど、全部 UIFlow でやったんだった・・・。
●Arduino IDEの設定 (M5Stackシリーズ) - Qiita
https://qiita.com/penguinprogrammer/items/774d4b719464e41cdcf3
ライブラリ関連
ライブラリを検索する画面で「M5Stack-CoreInk」で検索し、出てきたものをインストールします。
Arduino IDE での手順を引き続き。ライブラリマネージャーで、M5Stack-CoreInk を検索して、ライブラリをインストール。 pic.twitter.com/aAew3MVMTP
— you (@youtoy) November 14, 2020
そして、メニューから「スケッチ例」をたどると、「M5-CoreInk」という項目ができており、いくつかのサンプルを選択可能になっています。
スケッチサンプルをとりあえず書き込んでみよう。 pic.twitter.com/MyN6dLMGHI
— you (@youtoy) November 14, 2020
スケッチの書き込みと動作確認
今回は、サンプルの中で一番上にある「Button」を書き込んで試してみました。
Buttonのサンプルにしてみようかな。
— you (@youtoy) November 14, 2020
とりあえず、ざっくりソースコードを読んでみる。 pic.twitter.com/otpWmlpBwO
サンプルとして出てくるソースコードは以下のとおりです。
#include "M5CoreInk.h"
Ink_Sprite InkPageSprite(&M5.M5Ink);
void ButtonTest(char* str)
{
InkPageSprite.clear();
InkPageSprite.drawString(35,59,str);
InkPageSprite.pushSprite();
delay(2000);
}
void setup() {
M5.begin();
if( !M5.M5Ink.isInit())
{
Serial.printf("Ink Init faild");
}
M5.M5Ink.clear();
delay(1000);
//creat ink refresh Sprite
if( InkPageSprite.creatSprite(0,0,200,200,true) != 0 )
{
Serial.printf("Ink Sprite creat faild");
}
}
void loop() {
if( M5.BtnUP.wasPressed()) ButtonTest("Btn UP Pressed");
if( M5.BtnDOWN.wasPressed()) ButtonTest("Btn DOWN Pressed");
if( M5.BtnMID.wasPressed()) ButtonTest("Btn MID Pressed");
if( M5.BtnEXT.wasPressed()) ButtonTest("Btn EXT Pressed");
if( M5.BtnPWR.wasPressed()){
ButtonTest("Btn PWR Pressed");
M5.PowerDown();
}
M5.update();
}
そして、これを書き込んで、動かしてみた様子が以下です。
「側面のボタンを押すと、真っ新な画面に文字が表示される」という挙動が確認できました。
今朝は、公式のクイックスタートを見つつ、新デバイス #M5Stack_CoreInk を積んでしまわないよう、触ってみはじめた。
— you (@youtoy) November 14, 2020
来週の #IoTLT の LT登壇ネタにできれば、というのがあったりするんだけど、
とりあえず公式サンプルを書き込み、「ボタン押下で文字表示」というのは試せた!#M5Stack #CoreInk pic.twitter.com/P09kBjC4Fu
とりあえず無事にサンプルが動いたので、今後は他のサンプルを試したり、独自の処理を加えてみたりしようと思います。
注意点メモ
こちら、注意しよう。https://t.co/bICxhgnSRf pic.twitter.com/M7fyGCcQMK
— you (@youtoy) November 14, 2020
【追記】 気になる情報
Twitter で「CoreInk」というキーワードを検索してみて、気になったツイートをピックアップ。
CoreInk 向けに画像を変換するやつを置きました(win10/osx/linuxバイナリがあります) https://t.co/Mar2zpoVja
— ミクミンP/Kazuhiro Sasao (@ksasao) November 14, 2020
M5Stack CoreInk
— Komikoni@LOVE_THE_WORLD (@komikoni) November 14, 2020
97x97(ver20)のQR Code なら、ちゃんと表示できそう。#M5stack https://t.co/HffnNsAGxT pic.twitter.com/jtxIqm1GZv
【追記】 気になる情報2: UIFlow が準備されてる!
これは楽しみ!
Preview of CoreInk UIFlow. Next week!!! pic.twitter.com/vICZQjcQdB
— M5Stack (@M5Stack) November 13, 2020
【追記】 UIFlow がリリースされ、早速試した!
ブロック2つを使うだけで画像表示ができてしまった!
お試しした過程は、Qiitaの記事に書いたりもしてみました。
●UIFlow と M5Stack CoreInk の組み合わせを早速試してみる - Qiita
https://qiita.com/youtoy/items/5a15411a861df282f960
#CoreInk で #UIFlow 。
— you (@youtoy) November 20, 2020
電子ペーパーに簡単に画像を表示させられた!
(Twitterで使ってる画像)
#M5Stack pic.twitter.com/oTqrTtVOzH