まゆたまガジェット開発逆引き辞典

電子工作やプログラミングのHowtoを逆引き形式で掲載しています。作りたいモノを決めて学んでいくスタイル。プログラマではないので、コードの汚さはお許しを。参照していないものに関しては、コピペ改変まったく問いません

M5StackをArduinoのように使う(MESHの動きタグ)

MESHの動きタグのデータをM5Stackに送り、M5Stackの色を変えるテストです。
動きタグを振ると、M5Stackの画面の色が変わります。

f:id:prince9:20180925210728p:plain
↑すみません、静止画です(汗

MESHのタグのデータをUnityなどに送ろうとしていたのですが、SDKが直のデータを出してくれずプロセスが大変になるので、GPIO経由で送ることにしました。
こっちのほうが楽ですね。お金かかるけど・・・時間をお金で買ったと思えば・・・

■準備
ソニーMESHの「動きタグ」
ソニーMESHの「GPIOタグ」
・M5Stack
・ワイヤー

これを下記のように接続します。
まずはGPIOのデジタル出力で試してみました。
f:id:prince9:20180925205928p:plain


■コード
まずMESHは以下になります。
動きタグを振ると、GPIOのデジタル出力が切り替わり、結果M5Stackの画面が切り替わります。
動きタグは設定をちゃんとしないと認識が微妙なときがあるため、データを検知したか知らせるために音を鳴らしています。

MESHのコード作成にあたり、下記を参考にさせて頂きました。
www.buildinsider.net

・MESHコード
f:id:prince9:20180925210141p:plain

Arduino(M5Stack)コード

#include <M5Stack.h>

#define MESH_pin 36  // GPIOをGPIO36につなぐ

void setup(){
    M5.begin();

Serial.begin(9600);
    pinMode(MESH_pin, INPUT);
}

void loop() {
  // 画面クリア
    M5.Lcd.clear();
    M5.Lcd.setCursor(0, 0);

   int sdata = digitalRead(MESH_pin);
    
    Serial.println(sdata); // GPIOの値を読み、シリアルに出力
    
if (sdata >= 1)
{
  M5.Lcd.fillScreen(GREEN);
}

else
{
  M5.Lcd.fillScreen(RED);
}
    delay(500);
      M5.update();
}