M5ATOM ハンズオン開催されました
テクノロジー、イベント
2021-03-13 土曜日、しまねソフト研究開発センターの主催で mruby/c ハンズオンが開催されまして、当社は講師陣を担当させていただきました。
このハンズオンでは、ESP32 マイコンを利用することとし、デバイスとして M5ATOM が採用されました。
M5ATOM は M5 シリーズの中では最もコンパクトで、ESP32 チップほか最小限のものをケーシングしたような感じです。それでも中型機 M5StickC と遜色ない拡張性を備えています。
この M5ATOM と ENV2 環境センサーを組み合わせ、温度をクラウド保存するところまでを実習しています。
ENV2 には SHT30 という I2C バスで接続される温湿度センサーが内蔵されていますが、ハンズオンで利用したコードでは、SHT30 の制御部分は 100% Ruby コードで実装されています。
I2C のオペレーションは、ESP32 公式ライブラリをラップする形で C 言語で Ruby クラスとして実装されていますので、個別のデバイス制御は、このクラスを利用すれば非常に短い Ruby コードで書けてしまいます。
class SHT30
def initialize(i2c)
@i2c = i2c
end
def get_temp
return @temp
end
def measure
@i2c.write(0x44, [0x2c, 0x06])
sleep 0.6
a = @i2c.read(0x44, 6)
@temp = ((a[0] << 8) + a[1]) * 175 / 65535.0 - 45
end
end
M5ATOM はセンサー制御のコアとしての用法が適しているように思います。色々なセンサーを繋いで、継続的な定点観測をする、ということが、誰にでも手軽に出来るようになりそうです。
このハンズオンが、その第一歩になればと思います。