みかづきブログ・カスタム

基本的にはちょちょいのほいです。

M5StickCの加速度センサにアクセスする 💻

M5StickC

https://obniz.io/ja/products/m5stickc/obniz.io

obnizとは

株式会社 CambrianRobotics(カンブリアンロボティクス)がつくっている、obnizという名のデバイスです。
そしてobnizOSという名のOSのことを指すこともあります。
M5StickC[obniz無期限ライセンス付属]の中のobnizはobnizOSのことを指してます。


M5StickCとは

M5StickC社がつくっている、M5Stickという名のマイコンのCタイプです。
組織名とサービス名が一致しているのがいまっぽいですね。

youtu.be

M5StickCは、超小型にもかかわらず、

・バッテリー
・ディスプレイ
・加速度センサ
・WiFi

などが搭載されている、もりもりなマイコンとなっています。
スイッチサイエンスの商品ページに詳しい情報が載っています。
関連する商品一覧をみると、M5Stick、種類がわんさかあります。正直どう違うのかがイマイチわからないモデルもあったりなかったり。

今回はobnizOSがインストールされているモデルが売っているという理由で、M5StickCを選びました。


M5StickC(obnizOS)をnpmパッケージで動かす

blog.obniz.io

こちらの記事を見て、obniz を使えばいいのか、 m5stickcjs を使えばいいのか迷ったのですが、

いろいろ調べた結果、obniz を使えば良いようです。

github.com

ソースを読んでみると、m5stickcjsobniz の中に内蔵されてました。


JavaScript

使うパッケージさえ分かってしまえばこっちのものです。

const Obniz = require('obniz');
const m5 = new Obniz.M5StickC('XXXXXXXX'); // obnizIDを入れる

m5.onconnect = async () => {
  await m5.setupIMUWait();

  setInterval(async () => {
    const acc = await m5.accelerationWait();

    console.log(`{ x: ${acc.x}, y: ${acc.y}, z: ${acc.z} }`);
  }, 100);
};

という感じで、簡単に加速度センサの値にアクセスすることができます。
この例だと、0.1秒に1回加速度センサの値を取得します。


DEMO

小型なのに、加速度センサ、バッテリー、WiFiを積んでいるので、無線で動くという強みを活かして、加速度に応じて音が出るという装置の作成につかってます。
スピーカーはNodeサーバを立てているMacのものを使っているので、スタンドアロンでは無いのですが、その分音質が良いので満足してます。