高感度光センサ MAX30105 で心拍数と音楽を同期

お父ちゃん  2017.1.16 
Home > 電子工作 > 高感度光センサ MAX30105 で心拍数と音楽を同期
すき 0
うんこ 0

おもしろいセンサを手に入れたので心拍数を測って曲のBPMを変えてみました♪

ArduinoをUSB-MIDIコントローラ化して心拍数と曲のBPMをリンクさせる リアルタイムヒューマン同期システムです!w

構成

部品

  • マイコンArduino UNO
     ファームウェア書き換えてUSB-MIDIデバイス化してます。
  • MAX30105搭載 粒子センサモジュール

     赤外線で指先の血流みて心拍数導出してるっぽい。
     前に長男くんが気管支炎で入院したときも同じようなセンサを
     足の指につけて心拍数と血流酸素濃度測ってたなぁ。。。

    Arduino用ライブラリは以下
     https://github.com/sparkfun/SparkFun_MAX3010x_Sensor_Library

Arduino USB-MIDIデバイス化

ArduinoをUSB-MIDIデバイス化してDAWでLED目ん玉コントロール

上記の作品と同様に以下のサイトのとおりにArduinoのファームウェアを書き換えてMIDIデバイス化しました。

これにセンサを接続し測定した心拍数をMIDI信号に変換して送信するコントローラが実現します!

Arduino IDEコード

MAX30105のライブラリExampleのExample5_HeartRate.inoをベースに作成

DAWソフトReasonの設定

DAWソフトにはReasonを使用しました。

コントローラ設定(手動)

  • [Reason] -> [環境設定] -> [コントローラ]タブ -> [追加]で以下設定

 メーカー:<Other>
 モデル:MIDI Control Surface
 MIDI入力:MocoLUFA

   

DAWテンポとコントローラをリンク

  • テンポ表示部を右クリック -> [リモートオーバーライドマップを編集]で以下設定

 コントローラ:<Other> MIDI Control Surface
 コントロール:CC 00

以上で心拍数とDAWのテンポがリンクできます。

動作

 

リアルタイムヒューマン同期システム #arduino #midi

Home Made Garbageさん(@homemadegarbage)が投稿した動画 –

このセンサは瞬きもセンシングできるらしいので色々試してみます!!

参考

「高感度光センサ MAX30105 で心拍数と音楽を同期」への2件のフィードバック

  1. とても参考になる記事を有難うございます。
    心拍センサー(この記事で紹介されているものとは違う)を購入して、
    REASONもダウンロードして実装を進めているのですが、
    最後の最後のREASONでのリモートオーバータイムラップの段階で信号を検出して貰えません。。

    //心拍数の平均値をControlChangeとしてMIDI送信
    int bpm = map(beatAvg, 1, 999, 0, 127);
    MIDI.sendControlChange(0, bpm, 1); // inControlNumber, inControlValue, inChannel

    この部分以外で信号を検出するために必要な条件はありますでしょうか。(MIDIデバイスとして検出自体はしてくれます)

    1. コメントありがとうございます!

      //心拍数の平均値をControlChangeとしてMIDI送信
      int bpm = map(beatAvg, 1, 999, 0, 127);
      MIDI.sendControlChange(0, bpm, 1); // inControlNumber, inControlValue, inChannel
      MIDI信号を出力するためのコードはここの部分のみです。

      以下、確認必要かと思います。
      ・ご使用のセンサはMAX30105でしょうか?
      ・センシングした心拍数のデータ出力は確認できてますでしょうか?
       たとえばライブラリのプログラム例で動作確認できていますでしょうか?
      ・MIDIの出力先は正しいでしょうか?
       このプログラムではコントロール値は0でチャンネル1に出力しています。

コメントはこちらから

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

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