Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

M5Stack CoreInk のサンプルを動かすまでの手順のメモ

この記事は、日本ではスイッチサイエンスさんから販売されている M5Stack CoreInk を、とりあえず試した過程をメモとして書いたものです。

●M5Stack CoreInk 開発キット(1.5インチ Einkディスプレイ) - スイッチサイエンス
 https://www.switch-science.com/catalog/6735/

参照先の情報を探す

まずは下記の公式の 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」で検索をして、出てきたものをインストール。

そうすると、ボードの選択の中で、「M5Stack-CoreInk」が選択可能に。

上記のボードマネージャーのURL追加の件、どうも以下の記事を見ると、M5Stack Core2 の開発でも、以前と異なる(今回と同じ)URL を追加する形のようです。
そういえば、M5Stack Core2 は、タッチスクリーンやボタン・MQTT を利用する開発をやったけど、全部 UIFlow でやったんだった・・・。

●Arduino IDEの設定 (M5Stackシリーズ) - Qiita
 https://qiita.com/penguinprogrammer/items/774d4b719464e41cdcf3

ライブラリ関連

ライブラリを検索する画面で「M5Stack-CoreInk」で検索し、出てきたものをインストールします。

そして、メニューから「スケッチ例」をたどると、「M5-CoreInk」という項目ができており、いくつかのサンプルを選択可能になっています。

スケッチの書き込みと動作確認

今回は、サンプルの中で一番上にある「Button」を書き込んで試してみました。

サンプルとして出てくるソースコードは以下のとおりです。

#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();
}

そして、これを書き込んで、動かしてみた様子が以下です。
「側面のボタンを押すと、真っ新な画面に文字が表示される」という挙動が確認できました。

とりあえず無事にサンプルが動いたので、今後は他のサンプルを試したり、独自の処理を加えてみたりしようと思います。

注意点メモ

【追記】 気になる情報

Twitter で「CoreInk」というキーワードを検索してみて、気になったツイートをピックアップ。

【追記】 気になる情報2: UIFlow が準備されてる!

これは楽しみ!

【追記】 UIFlow がリリースされ、早速試した!

ブロック2つを使うだけで画像表示ができてしまった!
お試しした過程は、Qiitaの記事に書いたりもしてみました。

●UIFlow と M5Stack CoreInk の組み合わせを早速試してみる - Qiita
 https://qiita.com/youtoy/items/5a15411a861df282f960

youtoy
プライベートでの活動で、ビジュアルプログラミング・IoT・ロボットトイを扱う技術コミュニティを単独・共同で主催したり、登壇をしたりしています。Qiitaの記事で書いていることは、このプライベートでの活動に関することです。また、普段は通信会社の研究所で働いていて、ガジェットが大好きです。
http://yo-to.hatenablog.com/
kddi
KDDIは、通信を中心に周辺ビジネスを拡大する「通信とライフデザインの融合」をより一層推進し、国内はもとよりグローバルにおいても、5G/IoT時代における新たな価値創造を実現し、お客さまの期待を超える新たな体験価値の提供を追求してまいります。
http://www.kddi.com
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away