
[個人開発]IoTとARで楽器を作るまで
はじめに
マトリョミンという楽器を真似たオモチャをIoTで作ったときの開発の日記です。
マトリョミンとは、マトリョーシカ型のテルミンのこと。テルミンとは電子楽器で、手と楽器(テルミン)との距離を調節するだけで音階を変えられる、ちょっと不思議な楽器です
マトリョーシカ+テルミン=マトリョミン
IoTでテルミン(風)に音を奏でて、ARで見た目をマトリョーシカ(風)にします。『IoTとARを組み合わせる』という自身初挑戦の記録です。
完成した楽器
完成したのはこれ。マトリョーシカと、その隣から近づく板との距離によって音階が変わります。
作り方はQiitaに投稿しました。
ここから開発日記です。
ステップ(1)ドレミファソラシドを奏でる
IoTでスピーカーを制御する方法を確認します。obniz というIoTデバイスを使いました。
テルミン内蔵するマトリョーシカ、その名もマトリョミン。マトリョミン風の楽器をIoTで作ってみる。
— suo-takefumi (@zsipparu) December 5, 2020
まずは、obnizでドレミファソラシドを奏でるスクリプト完成#Matryomin pic.twitter.com/ycdO2fTZjp
ステップ(2)超音波距離センサーを使ってみる
超音波で距離を計測するセンサーで、距離を測る方法を確認しました。
テルミン内蔵するマトリョーシカ、その名もマトリョミン。マトリョミン風の楽器をIoTで作ってみる。
— suo-takefumi (@zsipparu) December 5, 2020
ステップ(2) obnizで距離を計測するスクリプト完成#Matryomin pic.twitter.com/AuStjJrAt7
トラブル発生
スピーカーと距離センサーを組み合わせる方法を模索していたら、謎のエラーが発生。電源容量が不足?う~ん、わからん。
テルミンを内蔵するマトリョーシカ、その名もマトリョミン。マトリョミン風の楽器をIoTで作ってみる。
— suo-takefumi (@zsipparu) December 5, 2020
ステップ(2) obnizで距離を計測するスクリプト完成→見直し。"heavy output. output voltage is too low when driving high"が表示された、電源容量の不足?うーん、どうする
距離センサーが調子悪いので新品のセンサーを調達しました。
昨日こわしたセンサーを購入。ほかにもいろいろ買ってみた。 pic.twitter.com/5KlAA6Ezvj
— suo-takefumi (@zsipparu) December 6, 2020
新品のセンサーに取り替えたら謎のエラーが解消!エラーの原因は、センサー故障だった。
新しく買ったセンサーなら問題なく動作した。"heavy output. output voltage is too low when driving high"は電源容量の不足じゃなくて、センサー故障だった。
— suo-takefumi (@zsipparu) December 6, 2020
ステップ(3)テルミン風の完成
スピーカーとセンサーを連携させて、距離に応じて音階が変わる仕組みが完成!これでテルミン風の楽器ができた。次は見た目をマトリョーシカにしていく。
テルミンを内蔵するマトリョーシカ、その名もマトリョミン。マトリョミン風の楽器をIoTで作ってみる。
— suo-takefumi (@zsipparu) December 6, 2020
ステップ(3) 距離によって音階が変わるスクリプト完成#Matryomin #protoout #obniz pic.twitter.com/iuf8OhPD7e
ステップ(4)
見た目をマトリョーシカにしたときに部品が隠れるように、スピーカー、センサーとIoTを縦長にまとめました。部品をまとめるときにLEGOが活躍しました(LEGO便利)
テルミンを内蔵するマトリョーシカ、その名もマトリョミン。マトリョミン風の楽器をIoTで作ってみる。
— suo-takefumi (@zsipparu) December 6, 2020
ステップ(4) obnizやセンサーがマトリョーシカに収まるようにレゴでまとめるの完成#Matryomin #protoout #LEGO pic.twitter.com/iMhHkLUSMr
ステップ(5-1)
ARで、3Dオブジェクトのテクスチャを切り替える仕組みを作りました。この時点では、IoTと連携はしていません。
ステップ(5-2)
さきほど作ったテクスチャを切り替えるARと、スピーカーと距離センサーを制御するIoTを連携しました。"距離センサーで計測した距離によって、ARのテクスチャが切り替わる"という仕組みを作るのに苦戦しました。
テルミンを内蔵するマトリョーシカ、その名もマトリョミン。マトリョミン風の楽器をIoTで作ってみる。
— suo-takefumi (@zsipparu) December 20, 2020
ステップ(5) obniz+AR.js連携 | センサーで計測した距離に応じて3Dオブジェクトのテクスチャ変更が(ようやく)完成。(+距離に応じて音も鳴る)#Matryomin #protoout #ARjs #obniz pic.twitter.com/8ed4fq5Mw8
ステップ(6)
IoTとARを連携できたので、ARで表示するマトリョーシカを用意します。距離に応じて画像が切り替わるので、マトリョーシカもいくつかパターンを用意しました。
テルミンを内蔵するマトリョーシカ、その名もマトリョミン。マトリョミン風の楽器をIoTで作ってみる。
— suo-takefumi (@zsipparu) December 20, 2020
ステップ(6) マトリョーシカのイラスト完成#Matryomin #protoout pic.twitter.com/uRynpctFMp
※このイラストのデータはこちらのnoteに置きました
ステップ(7)完成っ!
下の2つの仕組み作り、その2つを連携してマトリョミン(風)の完成です。
● IoTで距離センサーとスピーカーを制御
● ARで見た目をマトリョーシカ
テルミンを内蔵するマトリョーシカ、その名もマトリョミン。マトリョミン風の楽器をIoTで作ってみる。
— suo-takefumi (@zsipparu) December 20, 2020
ステップ(7) ARで見た目をマトリョーシカにするの完成
よし!マトリョミン風の楽器できた!#Matryomin #protoout #AFrame #ARjs #obniz pic.twitter.com/QPn6TUzLzU
obniz公式さんから嬉しい反応頂きました、ありがとうございます。
先日もご紹介した、テルミン×マトリョーシカの「マトリョミン」。
— obniz japan (@obniz_jp) December 21, 2020
Qiitaで詳しい内容をごらんになれます。
suo-takefumi様、ユニークなアイデアをシェアしてくださって、感謝です!
「マトリョミン」の進化形にも期待しています♬#obniz #IoT #matryoshka #theramin #electro https://t.co/ioCvVoGgUt
ステップ(5-2)の"距離センサーで計測した距離によって、ARのテクスチャが切り替わる"の仕組みがうまく作れず苦戦しましたが、無事完成してよかった。
いいなと思ったら応援しよう!
