M5Stackで、Hueっぽいものを作った

公開している動画

Arduino対応

M5StackのLCD描画を考えると、「M5Stack.h」をincludeするArduinoベースの方が楽そうです。

GitHubリポジトリでPlatformIO対応しているので、環境的にはPlatform.iniの1箇所を下記のように、

framework = espidf

を、

framework = arduino

と書き換えて、「M5Stack.h」をincludeしたプログラムを書けばOKです。

明るさと色のコントロール

Homekitへのアクセサリ登録が成功すると、iPhoneやMacの「ホーム」アプリから制御できるようになります。

M5Stack上の制御プログラムにより4つのサービス(ON/OFF、輝度、色相、彩度)を提供しており、「ホーム」アプリの操作で、これらの値が制御されることになります。

LCDの表示色はRGB指定となっているので、輝度(V)/色相(H)/彩度(S)からRGBへの変換が必要となります。計算式は、ウィキペディアのHSV色空間から転記しました。

  float r = v;
  float g = v;
  float b = v;
  if (s > 0.0f)
  {
    h *= 6.0f;
    int i = (int)h;
    float f = h - (float)i;
    switch (i)
    {
    default:
    case 0:
      g *= 1 - s * (1 - f);
      b *= 1 - s;
      break;
    case 1:
      r *= 1 - s * f;
      b *= 1 - s;
      break;
    case 2:
      r *= 1 - s;
      b *= 1 - s * (1 - f);
      break;
    case 3:
      r *= 1 - s;
      g *= 1 - s * f;
      break;
    case 4:
      r *= 1 - s * (1 - f);
      g *= 1 - s;
      break;
    case 5:
      g *= 1 - s;
      b *= 1 - s * f;
      break;
    }
  }

最後に

ちなみに、Philips Hue自体は、Homekitに対応しているだけでなく、もっといろいろなことができるようです。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です