modalsoul’s blog

これは“失敗”と呼べるかもしれないが、ぼくは“学習体験”と呼びたい

M5StickCPlusとJoystick HAT

M5StickCPlus用Joystick HATを使った際のメモ

モノ

www.switch-science.com

ドキュメント

docs.m5stack.com

サンプルコード

github.com

スケッチサンプル:M5Stack -> Unit -> JOYSTICK

コード

  • アドレスは0x38
  • HATなので、G0/G26を使用
  • Communication protocolは、0x02を使用
    • 3byteを読み取り、それぞれの値は
      • 0: x-axis data after transform ( -127 ~ 127)
      • 1: y-axis data after transform ( -127 ~ 127)
      • 2: 0 or 1 (press down 0, release 1)

動作確認

初期状態にズレがあるようだ(これは個体差?)

M5StickCPlusとリレーユニット

M5Stack用ミニリレーユニットを使った際のメモ

モノ

サンプルコード

github.com

スケッチサンプル:M5Stack -> Unit -> RELAY

コード

Grove接続なので、G32を使用

動作確認

NO端子に接続しているので、HIGHで点灯

M5StickC Plusで加湿器を自動化する

ENV.II Hatで湿度を計測し、IR Unitで加湿器を動作させ、室内の湿度を一定に保つ。

参考

modalsoul.hatenablog.com

modalsoul.hatenablog.com

modalsoul.hatenablog.com

仕様

  • 湿度は40~60%に保つ1
  • 加湿器の電源操作はオン・オフ同一コマンドでトグルスイッチになっている
  • 5分間隔で計測し、
    • 湿度が下限を下回った場合、かつ、前回計測時を下回っている場合、加湿器をスイッチ・オン
    • 湿度が上限を上回った場合、かつ、前回計測時を上回っている場合、加湿器をスイッチ・オフ
    • 湿度が適正範囲外、かつ、湿度変化がないケースは考慮しない

コード

M5Stack用赤外線送受信ユニットでリモコンの送信

赤外線リモコンのコマンドをM5StickC Plusで送信するために、M5Stack用赤外線送受信ユニットを使った際のメモ

受信はこちら modalsoul.hatenablog.com

ライブラリ

github.com

サンプル

IRremote -> IRsendDemo を参照

コード

#include <M5StickCPlus.h>
#include <IRremote.h>

// int ir_send_pin = 32; // IR Unit
int ir_send_pin = 9; // M5StickC Plus

IRsend irsend(ir_send_pin);

unsigned long POWER = 0x00ff00ff;

void setup()
{
}

void loop() {
    for (int i = 0; i < 3; i++) {
        irsend.sendNEC(POWER, 32);
        delay(40);
    }
    delay(5000); //5 second delay between each signal burst
}

Grove接続のIR Unitを使う場合はG32。M5StickC Plus本体の場合はG9。

※ 送信可能な距離はIR Unitで1m、本体で30cmくらいが限界。

プロトコルにあったメソッドを使用する。

今回はNECなのでsendNECで、第1引数にHEX値、第2引数にbit数を指定

M5Stack用赤外線送受信ユニットでリモコンの受信

赤外線リモコンの送信パターンを調べるために、M5Stack用赤外線送受信ユニットを使った際のメモ

モノ

www.switch-science.com

ライブラリ

github.com

サンプル

IRremote -> IRrecvDump を参照

コード

Grove接続なので赤外線受信はG33を使用。

起動後、赤外線受信部分にリモコンの赤外線を照射。読み取った赤外線を送信するには、プロトコルとHEX値、bit数がわかればOK。

f:id:modal_soul:20210103000020j:plain

この例だと、プロトコルNEC、HEX値は0x1a35da2、bit数は32bit

M5StickC ENV II Hatで温度、湿度、気圧、磁界を計測

M5StickC Plusの上部にある8ピンに接続できる環境センサモジュールで計測した際のメモ

モノ

Hat

www.switch-science.com

今回はこちらのHatタイプを使用

Grove

Grove接続するタイプ。組み込まれているセンサ類は↑のHatと同じ。

ライブラリ

Adafruit_BMP280

github.com

BMP280を使うためのライブラリ。気圧を計測する場合必要。

温度・湿度のみ計測したいのでなくてもよかったが、サンプルコードを動かすためにインストールした

サンプルコード

github.com

M5StickCでENV II Hatを動かすサンプルコード

コード

サンプルコードをM5StickC Plus用に修正したもの

M5StickC.h -> M5StickCPlus.hに変えただけ

M5StickC Plus + M5Stack用指紋センサユニットで指紋認証

M5StickC PlusとFINGER UNIT(FPC1020A)の覚書

f:id:modal_soul:20201228001133j:plain

モノ

M5StickC Plus

FINGER UNIT

www.switch-science.com

Groveケーブルで接続するタイプ。今回はこちらを使用。

FINGER HAT

www.switch-science.com

Hatモジュールタイプ。FPC1020SC

環境構築

IDEインストール

Arduino IDEを使用

https://www.arduino.cc/en/softwarewww.arduino.cc

ライブラリインストール

M5StickC Plus

github.com

M5Stack

github.com

ボードマネージャーインストール

ESP32ボードマネージャーインストール

https://dl.espressif.com/dl/package_esp32_index.json

コード

M5Stack -> Unit -> FINGER_UNIT_FPC1020Aのサンプルを参考

使用するPINを変更すればFINGER HATでも同じく動作を確認できた。

トラブルシュート

指紋を登録してもuserNumが1固定になり、Matchingにも失敗する事象が発生した。

setup で登録済みのすべてのユーザー情報を消去することで、登録・Matchingに成功した。