ダンシングロボット ド・レ・ミ・ファントム君

ダンシングロボット
ド・レ・ミ・ファントム君
6班
1.はじめに
私がこのテーマを選んだ背景には,タリバン政権
に禁止されていた反イスラム教的な音楽がタリバン
政権崩壊後,規制がなくなった報道番組を拝見し,宗
教的,政治的な理由で音楽やダンスなどの芸術が規
制されることに反感を持ったからである.そのため,
本研究ではどんな人にでも平等に自由に享受される
べき芸術を体現するロボットにより多くの人々に癒
しの空間を提案したいと考えた.当初は春学期に理
工学実験で学んだ高速フーリエ変換(FFT)を用いて
周波数を解析することで,音楽に合わせて踊れるロ
ボットを製作することを目標としていたが,調査を
進めるにつれて実現が難しいことが判明したため,
今回は音階に合わせてダンスのできるロボットを製
作することを目標とした.
2.原理
センサとしてマイクを使用し,拾った音の波形を
高速フーリエ変換(FFT)1)により解析する.そして,
周波数を特定することで,あらかじめプログラミン
グで音階ごとに周波数域を設定しておいたものから,
音階を判別し,音階に応じてLEDを点灯させる,モー
タを回すなどの出力をさせる.
示す 2).顔は型紙で制作し目の位置に穴をあけ,そこ
に LED をつけ,眉の部分の裏に油性ペンで黒くした
紙をつけた振動モータを配置した.振動モータは日
本電産コパル株式会社の[LA3R5-480DB1]を使用し,
モータドライバとしては株式会社東芝セミコンダク
ター社の[TA7291P]を使用した.また,耳の位置には,
マイクとして株式会社秋月通商の[AE-MICAMP]高感
度マイクアンプキットを使用し,目には緑色の LED
を使用した.実際に LED を異なる周波数で点灯させ
たときの図を次の図 2,3 に示す.図 2 は周波数 400 Hz
の電子音を入力したとき,左目のみ点灯させたとき
の図であり,図 3 は周波数 440 Hz の電子音を入力し
たとき,右目のみ点灯させたときの図である.この電
子音はスマートフォンのアプリで単一周波数を出力
した.
マイク
振動モータ
LED
Arduino
3.設計
当初は,ぬいぐるみのような立体的なロボットの
製作を考えていたが,立体の場合顔や手などの離れ
た場所にパーツを配置し指令を分岐する必要があり,
製作するには複数のブレッドボードを連結し,ロボ
ットが倒れないための骨組みを考慮して配線を行う
必要があった.そのため,本研究では平面的なものの
製作を行い,製作するのは顔のみとした.構成図を次
の図1に示す.また,音階ド,レ,ミ,ファ,ソ,ラ,シそ
れぞれに応じた異なる 7 つの動作をさせることを考
えていたが,配線の複雑化や周波数特定の精度の問
題があり困難であったため,感知する音階は配線が
複雑にならないようにド,レ,ミ,ファ,ソ,ラの 6 つ
の音階を判別することにした.その6つの音階につ
いて,平均律による全音階の周波数に関する表を参
照して得た平均律による全音階の周波数と,実際に
設定した音階の周波数域についての表を次の表 1 に
岩崎優基
PC
図 1. 構成図
表 1. オクターブ4における音階の周波数
音
階
国際高度における
平均律の周波数(Hz)
実際に設定した
周波数範囲(Hz)
ド
261.6
255~265
レ
293.7
290~300
ミ
329.6
330~340
フ
ァ
349.2
365~375
ソ
392.0
400~410
ラ
440.0
440~450
図 2.左目のみ点灯
図 3.右目のみ点灯
4.実験
人の声,ピアノ,ギターの3種類それぞれにおいて、
国際高度では,オクターブ4のA(ラ)の音と決められ
ているf=440 Hzの音をそれぞれで出力し,どの音を
マイクが感度よく検知したか比較した.
5.結果・考察
本実験では Arduino 上で高速フーリエ変換(FFT)
を行ったが,37 Hz ごとで音を周波数に高速フーリエ
変換するようにした.1 度毎の音階の変化は約 20 Hz
から 50 Hz であるため,37 Hz 毎の周波数の判定では
1 度毎の音階の変化に対応するのは極めて難しく,
今回の装置で完璧に音階を判別させるのは難しかっ
た.今回行った実験では, 人の声,ピアノ,ギターの
音の順で正しく音階を判定する確率が高かった.最
も正しく判定する確率が高かった人の声でさえド~
ミの音,ファ~ラの音を判別できる程度で全く異な
る周波数を示すことも多かった.正しく判定する確
率の高さが人の声,ピアノ,ギターの順になった主な
理由は,それぞれの音の周波数成分と時間的な変化
が異なることにより考えられる 3).ギターは高調波
の振幅が非常に大きく高調波の影響を多く受け,時
間的な変化も一番大きく,人の声は今回行った実験
中で最も高調波の振幅が小さかったことが,最も正
しく判定できた理由と考えられる. 高調波とは,あ
る音の周波数を f[Hz]とすると、その音はその周波
数だけではなく,その音の周波数の 2 倍 3 倍である
2f[Hz],3f[Hz]の周波数の高調波も含んでいること
である.その他の理由として考えられるのはギター
で出した音にはピッキングの際に弦とピックにより
ノイズが生じることである.しかし,音階の周波数に
絶対基準はないので,3 種類の音のうち,どれが感知
しやすいかという実験にも問題があった.また音の
入力を行っていないときにも様々な周波数を示して
しまい,出力が行われてしまった.これは周囲のノイ
ズによる影響である.この高調波,周囲のノイズの影
響を受けないようにするには, 一定周波数域外に存
在するノイズを除去できるような装置が必要であっ
た.もし,そのような装置があれば,様々な音でより
精度を高く音を周波数ごとに分けられると考えられ
る.一方,電子音は高調波などの様々な周波数を含ん
でいないため,他の音に比べかなり正確に周波数を
読み取ることができ,それ以外の音がド~ミの音と
ファ~ラの音を判別できるのみなのに対して,ド・
レ・ミ・ファ・ソ・ラそれぞれ別々に判別し,それぞ
れの音に応じた動きをさせることができた.
6.結論
本研究では,音を Arduino 上で高速フーリエ変換
を実行し,周波数を一つしか持たない電子音以外の
音では,必ずしも正しい周波数を示すことはできな
かったが,入力された周波数をばらつきがあるが特
定し,周波数に応じた出力をさせることまでできた.
このことからこれを応用させブレットボードを連結
し,広範囲で様々な出力ができれば,当初予定してい
た音階に応じたロボットが製作できるだろう.
参考文献
1)Arduino で FFT
http://jiwashin.blogspot.jp/2014/01/arduinofft
.html (2014/12/20 アクセス),
2)音階と周波数
http://panna.dyndns.org/etc/onritu.html
(2014/12/15 アクセス),
3)平野拓一,音の周波数解析と楽器の音色について
http://www-antenna.ee.titech.ac.jp/~hira/hobby
/edu/sonic_wave/sound_analysis/doc_html/sound_
analysis.htm (2014/12/22 アクセス).