No.67

arduinoテルミン   arduinoで遊ぶ

  超音波テルミン

2020年12月掲載



LThereminhttps://jp.rbth.com/arts/82658-theremin-hatsumeika-jinsei

 

 テルミンの発明100周年
 電子楽器の走りであり、、映画や楽曲に使われ、現在も製品が売られ演奏家も存在する楽器、テルミンは1920年にロシアの物理学者レフ・セルゲーエヴィチ・テルミンが発明したそうです。2つのアンテナがあり、輪っか状のアンテナに左手を近づけたり遠ざけたりして音量を、まっすぐに立つアンテナに対しては右手の遠近によって音程を変化させることで演奏されます。
 原理は高周波振動のうなりを利用した回路です。アンテナに手との静電容量が変化すると高周波発振回路の発振周波数が変化するので、周波数が変化しないもう一つの発振回路とミックスすると、低周波のうなりが生じ、それが音の信号になります。音量側のアンテナも同じ理由でうなりが生じますが、そのうなりをローバスフィルターに通すことで、電圧・電流の変化に変換して、増幅アンプのゲインをコントロールさせます。このような方式です。
 
発明当時は真空管使用の回路で、後にはトランジスタが使わて行きます。回路図もWe b上に色々と出ていますが、上記のうなりを使うしくみは何ら変わらないようです。
 今回はArduinoを使ってテルミンもどきを作ってみました。


thermin 超音波テルミン
 Arduino では標準で任意の振動数の矩形波信号を出力する関数があるので、それを使って音を出すことができます。
 超音波式の測距センサーが安価で入手できるので、アンテナの代りに、そのセンサーを2組使えば、手までの距離の変化によって、振動数と音量を変えられると思いました。
 写真の目玉のようになっているのが測距センサー(秋月電子HC-SR04)です。超音波スピーカーが2個セットになっていて、片方が送信器、もう一方が受信器です。パルス波を送り、その音波が他の物体で反射して受信器に帰ってくるまでの時間から距離を計算するわけです。そのためのサンプルスケッチもWeb上に多数でています。 Arduinoボードは「さわるな!Box」と同じ Nanoのコピー版を使いました。
 しかし一枚のボードですべてやろうとすると、ノイズが出て困りました。そこで、音程用と音量用のそれぞれに1枚づつNanoボードを使うことにしました。

volume回路  音量を変化させる方法
 arduinoは、ピンによってanalogWriteというスケッチでアナログ値を出力できます。しかし、これはアナログ電圧が出ているのではなく、PWM(パルス幅変調)の形で信号が出ています。
 これを使って音量をコントロールするには、積分回路でパルスをならしてアナログ電圧に変換し、音程用nanoの信号を制御させます。イヤホンを鳴らせればよいので、左図のような単純な回路にしました。
 ただし、unoやnanoのPWM振動数は977Hzか490Hzなので、音として聞こえてしまいます。音程の音に少しでも混ざるとひどい音になるので、充分に平滑にしなくてはなりません。ところが、平滑のためにR×Cの時定数を大きくすると、今度は素早い音量変化に対応できず、反応がもたもたします。それを回避するため、PWM振動数を可聴周波数以上へ変更しました。
超音波テルミンの演奏
まがりなりにも完成?

 いざ、手で演奏しようとすると、音程も音量もピクつきます。距離の測定をモニターしてみると、測距センサーが測定に失敗することが、原因のようです。 左の写真のように小さな紙箱などを使用すると、スムーズに演奏できます。私の手がやわらいせいかも知れません。


 そこで距離測定の数回の平均値をとるようにスケッチを直してみると、上下動で行う音量コントロールの方は、手で行うことができるようになりました。また、その直しによって、手をある高さで引っこめると音量をホールドできる機能も加わりました。しかし、音程の方は測定範囲が長いためか、手による演奏ではまだ安定しません。なので、元祖テルミンとは、ほど遠い演奏風景です。改良の余地ありです。

star  超音波テルミンの改善は一旦置いて、マイコンを使わず光で制御するテルミンもやってみました。それも次回に掲載します。

 おもしろ実験メニュ

分類順メニュへ