ゆるく楽しむプログラミング

指パッチンでリモコン操作

M5StickC Plusの内蔵ユニットを使ってみる第2弾
MICとIRを使用して、指パッチンで赤外線リモコンを操作してみました。

SPM1423 デジタルマイクロフォン

SPM1423は音声をPCMデジタル信号に変換してI2S(Inter-IC Sound)で送信するICです。
DACと組み合わせれば簡単に音声再生ができるらしいですが、詳細は調べていません。
M5StickC PlusではM5クラス内にI2Sインターフェイスを扱いクラスが内包されており
I2Sクラスを使用すれば音声データを取り出す事ができます。
基本的な操作方法は「M5StickCでdB(デシベル)表示の騒音計を作る」を参考にしました、

Finger Snapの音が高音&音圧が低いようで、サンプル周波数を高くしないと反応しないのと
音の長さが短いのでサンプリング数を少なくしないとFinger Snapの音が拾えませんですした。
音量を計測する訳でなく、単に大きい音が拾えれば問題ないのでdB変換とかも不要です。
なので、単純に音量を拾うだけのシンプルな作りで済みます。

技術的にアレコレ考えると、もうちょっと捻りが必要なのだと思いますが、取りあえず動けばよいので
深く考えなくても目的は達成できます。
生データを扱う場合は、オフセットから±方向に値が振れるので、オフセットからの差分の絶対値を取ると良いようです。

指パッチンコマンド

指パッチン3回の間隔で、コマンドを判別します。
完全一致は(1秒ジャストでストップウオッチを止めるのが難しのと同じ理由で)ほぼ不可能なので幅を持たせます。
1回目と2回目の間隔を基準に2回目と3回目の間隔がが規定値内に収まるように許容範囲を設定します。
1回目と2回目の間隔の±30%とかそんな感じで。



赤外線リモコン

赤外線LEDの操作にはM5Atromで使用した赤外線リモコンのスケッチを流用します。
操作対象とするのも同じくダイソーのリモコン・イルミネーションライトです。

M5StackC Plusの赤外線LEDは9番ピンに接続しています。

スケッチ

YuruPuro/ClappingCommander

解説動画