振ったら何かしらの値を送信するIoT機器を作りたくなり、obnizで振動取得系のセンサーをいろいろ試しました。
振動センサーでどんな値が取れるかは確認します。
圧電セラミック振動センサー
圧電セラミックの円盤が、振動を電気に変えます。
圧電セラミックを振ると、ブラウザに映し出されたハートが大きくなるプログラムを書きました。振動の強さを可視化します。
圧電セラミックの振動センサーは、振動の大きさを取得するのに向いてそうです。
ボールスイッチ
振動センサーではないのですが・・・ボールスイッチです。
これを振動取得に使うこともできるはずです。
金の筒の中をボールが動いて、ON-OFFが切り替わります。
表示されている数字は電圧です。
LOW(0.17Vくらい)とHIGH(4.7Vくらい)で切り替わります。
やはりスイッチなので、振動取得には向いていないかも・・・。
特定方向の振動回数をおおざっぱに取得するときは、これでよいかもしれません。
ボールがカチカチ動いて、振っている感じが気持ちいいです。
SW-420振動センサー
振動センサ素子SW-420が使われているそうです。
それが何かは分からないですが、期待できそうです。
obnizに装着。
当たり前ですがボールスイッチに比べ、振動取得に向いています。
LOWとHIGHで切り替わるので、振動の大きさは取得できませんが、振動回数・頻度の取得は可能です。
micro:bitで振動取得してBLE通信
もはや脱線しますが、子供向け学習用マイコン「micro:bit」を使い、振動データをobnizにBLEで送ってみます。
micro:bitはボタン電池でも動くので、obnizより小さいプロダクトを作るときや、長時間稼働するものを作るのときには向いています。
なんだかややっこしい構成となりましたが、micro:bit内臓の加速度センサーで、振動を送ってみましょう。
micro:bitからobnizに振動データ(数字)をBLEで送信して、そこからWi-Fiでクラウドを経由してブラウザにデータを送り、ハートを描画しています。
・・・言葉にすると、よくわかりません。
画像解析で振動を取得
さらに脱線します。
もう、振動取得はobnizを使わず、カメラで動いているものを画像解析すればいいんじゃないか?
ということで、OpenCV+Pythonでうちわの振動を解析して可視化するものを作りました。
うちわの色を抽出した後、前フレームとの差分の面積を取って、バーの高さに置き換えています。
目的と条件に合った振動取得を
振動取得をいろいろ試しましたが、SW-420振動センサーあたりが普通に使えそうです。
仕事で使う場合、電池の問題や、電子部品を買う決裁の問題に直面することもあるので、micro:bitや画像解析での振動取得も強引な技として、参考までに掲載します。