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

お父ちゃん  2019.8.13 
Home > IoT > 音声による信号通信 Chirp -M5StickC編-
すき 0
うんこ 0

面白いものを見つけてしまいました。

 

Chirpという音声による信号通信ソリューションを提供するサービスがArm Cortex-M4系のArduinoマイコンにも対応するというニュースでした。

従来からAndroidやiOSなどのSDKを提供していたようです。

いろいろ調べてみるとESP32のサンプルコードも公開されていたので、ここではM5StickCを使用してChirpの音声による信号通信を試してみました!

WiFiやBLEに加えて音声による無線通信をさりげなく使えるようになれば、かなりのジェントルといえるでしょうから。

 

 

サンプルコード

以下にArm Cortex-M4系のArduinoマイコンとESP32用のChirpライブラリが公開されております。
 https://github.com/chirp/chirp-arduino

Android IDEのライブラリマネージャからもインストール可能です。

 

ESP32につきましては音声(信号)送信と受信のサンプルコードが公開されています。

ここでは受信用のコードをM5StickC用にカスタマイズします。

 

受信のサンプルコードはESP32にI2SマイクSPH0645を接続して音声信号を受信してChirpによるアルゴリズムで信号処理してシリアルモニタに信号(文字列)を表示するという簡単なものです。

送信にはChirpの音声信号送受信スマホアプリが公開されておりますのでスマホを使用します。

Chirp開発者登録

Chirpのコード使用する際には開発者キーが必要になるため登録が必要です。以下から登録ください。無料です。

https://developers.chirp.io/applications

登録してログインするとMy Sonic Application画面が開きます。

Configurationでは “16khz-mono-embedded”を選択しSAVEします。アプリケーションとしては超音波なども選択できるようです。

 
SAVEされるとAPP_KEY、APP_SECRET、APP_CONFIGが発行されます。コード作成の際に使用しますのでコピーしておきます。

M5StickC用にコードをカスタマイズ

受信用のコードをM5StickC用にカスタマイズします。

主な変更点は以下の通りです。

  • マイクをSPH0645からM5StickC内蔵のSPM1423に変更
    ピンアサイン、I2Sの設定を修正
  • 音声によって受信した信号(文字列)をディスプレイに表示

Arduinoコード

 

驚くべきことにChirpの通信は日本語にも対応しているので以下を参考にライブラリを導入し、日本語フォントも表示できるようにしています。

https://github.com/tanakamasayuki/efont
 

https://lang-ship.com/blog/?p=646

 

動作

音がR2-D2みたいでめちゃくちゃ可愛いです!

信号は2~7kHzに分布されて通信しているようです。下は”hello”の信号周波数分布(スペクトログラム)。

 

今後、マイコンでも超音波の対応もするというニュースでしたので是非 超音波も試してみたいです。

音楽に超音波混ぜてM5StickCのディスプレイや接続したLEDを遠隔かつ同期操作とかできたらメチャメチャ楽しいよね。

続報を待ちます!

追記

ディスプレイとLED制御(19/8/15)

カラーコードを音声で送ってディスプレイとLEDテープの色を制御してみました♪

カラーコード(0x000000~0xffffff)を送信してLEDテープとディスプレイの色を変えてます。

ディスプレイはRGB565に変換して色指定しています。

Chirp買収

Chirpは2020年2月に買収されてしまい、サービス終了となりました 😥 。

コメントはこちらから

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

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