公開している動画
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に対応しているだけでなく、もっといろいろなことができるようです。