Home Made Garbage

M5StickC で超音波通信を堪能

お父ちゃん お父ちゃん  2019.11.3 
ホーム
電子工作
Raspberry Pi
IOT
WEB

以前、Chirpというプラットフォームを使用して可聴帯域での音声通信を試してみました。

音声による信号通信 Chirp -M5StickC編-

今回は超音波での通信を試してみます。

スマホやスピーカなど音が出せれば通信ができますのでBLEやWiFiのように事前の接続設定や特別な環境準備は必要ないので非常に手軽です。
また超音波を使用すれば聴こえないのも魅力です。

 

構成

ここではM5StickCにLEDテープを接続して、超音波で色信号を送って光らせてみます。

部品

Arduinoコード

Arduino IDEでコーディングしました。Arduino IDEでのM5StickC環境の詳細は以下を参照ください。

A delightfully simple theme system for docsify.js. Features multiple themes with rich customization options, an improved desktop and mobile experience, and legacy browser support (IE10+).

M5StickCの内蔵マイクを使用しますので以下のマイクのサンプルコードを参考にコーディングしました。
 https://github.com/m5stack/M5StickC/blob/master/examples/Basics/Micophone/Micophone.ino

音声信号の周波数解析のために以下のFFTライブラリを使用しました。
 https://github.com/kosme/arduinoFFT

Neopixel用のライブラリは以下を使用しました。
 https://github.com/adafruit/Adafruit_NeoPixel

マイクで受信した音声をFFTして周波数解析します。

以下の周波数信号を受信することでLEDの各色を点灯させます。
 15kHz:赤
 16kHz:緑
 17kHz:青

M5StickCのディスプレイもLEDと同様に色を変更しました。RGB888をRGB565に変換して色指定しています。

参考

 

動作

スマホから音声を再生させて通信動作を確認しています。

Androidアプリの周波数ジェネレータを使用して正弦波を再生しています。

15kHzの再生で赤、16kHz:緑、17kHz:青とフルカラーLEDが点灯しています。
3つ再生でLEDは白く発光します。

私は14kHz以上の音は聴こえないので超音波通信と銘打っておりますが、若い人には聴こえてしまうかもしれません。。。あしからず。

マイクのサンプリング周波数を44.1kHzとしていますので22kHzまで信号として使用できるはずです。

 

音楽再生への応用

音楽に超音波信号を仕込めば遠隔でのライティングも可能です。

DAWで15kHz、16kHz、17kHzの正弦波を貼って再生してみました。

 

このようにシーケンサに事前に仕込んでもいいですし、MIDIパッドでリアルタイムに通信してもいいですし色々応用可能です。

M5StickCならコンパクトですし音声なので複数台の同期も可能でセッティング時間もかからないので、手軽にライブでのライディング演出が実現できそうですね。

ライブしたいなぁ。

Related Posts

コメントはこちらから

メールアドレスが公開されることはありません。コメントのみでもOKです。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください