えれふるすNG集 (試行錯誤で得た知見)

今回の作品 ↓ の製作でいろいろ失敗があったのでまとめ。

1. 回路・マイコン

流量センサは意外とレスポンスが遅い?

たまたまルネサスの流量センサ FS2012 を頂いたので、楽器のブレスセンサに使えないかなと実験してみたが、意外にレスポンスが遅く、楽器用にはちょっと使えない感じだった。ひょっとしたら僕の使い方が悪いのかもしれないが、どっちにしろ流量センサはかなり高価なデバイスなので、より安価な気圧センサを用いることにした。一般的に、ウインドシンセのブレスセンサには気圧センサが使われているらしい。

気圧センサいろいろ

圧力センサには絶対圧センサ・ゲージ圧(相対圧)センサ・差圧センサの3種類がある。絶対圧センサは真空を0とした圧力を測るもので、要するにふつうの気圧センサはこれ。ゲージ圧センサは大気圧(雰囲気の圧力)を0とした相対的な圧力を測るので、大気圧の変動に影響されない。差圧センサは少し特殊なもので、2点の圧力の差を測る。

絶対圧センサは、みんな大好きBME280のようにI2C/SPI接続のものが入手しやすい。しかしブレスセンサに絶対圧センサを用いると大気圧をゼロ点として減算せねばならず、大気圧が変動すればゼロ点がズレる。また、BME280のようにチューブを挿す口が無いものはブレスセンサ用には使いにくい。

やはりブレスセンサにはゲージ圧センサが適しているが、ゲージ圧センサにはI2C/SPI接続のものは見当たらず、アナログ出力をA/D変換することになる。秋月で売っているゲージ圧センサMIS-2500シリーズは内径3mmのチューブに対応しており、ダイソーのシリコンチューブ(釣り具シリーズ)がちょうど使える。


アナログICは3V電源が多い

デジタルICは5V電源か3.3V電源のものが多いが、アナログICには5V電源か3V電源のものが多い。今回使用したゲージ圧センサも5V品3V品があり、当初は5V品を用いていた。しかし、DC/DCコンバータで作ったノイズの多い5VをアナログICの電源にするのは好ましくなく、他にも諸事情があって3V品に改めた。

3V品の電源電圧の上限が3.3Vで、ぎりぎりデジタルの3.3V電源を使えなくもないが、やはり好ましくないので5V電源から3端子レギュレータで3Vを作って供給した。使用した3端子レギュレータはNJM78L03S

M5Stackのアナログ入力はノイズが大きい

M5Stackのアナログ入力はかなりノイズが乗り、ゲージ圧センサのわずかな電圧変化を検知するには厳しかった。ESP32のADCってそこまでノイズまみれだったろうか? それともM5Stack固有の問題だろうか? LCDや内蔵スピーカがノイズ源になっている可能性はある。どっちにしろM5Stackのアナログ入力は今回の用途には使いづらいので、I2C接続の外付けADCを使用することにした。使用したADCはMCP3425


M5StackのI/Oピンは落とし穴が多い

ただでさえ M5Stack は外に出ているI/Oピンが少ないが、それすら兼用ピンが多く注意を要する。M5Stack Basic について気付いたのは以下の通り。まだ他にあるかもしれない。また、M5Stack Core2とは異同があるので注意。

  • 3 (RXD1), 1(TXD1) : USBシリアル(Serial)と兼用。Serialを使わないなら他に転用できるが、少なくとも書き込み時には外す必要あり。使わないほうがよい。
  • 25(DAC1) : スピーカ出力専用。ただし、M5Stack基板のT1にハンダを盛ってショートさせればスピーカを無効にして25を転用することは可能。詳細は下記の記事を参照。
  • 34(ADC0), 35(ADC1), 36(ADC2) : デジタルで使う場合も入力専用。また内部プルアップ(INPUT_PULLUP)も使用不可。プルアップしたい場合は抵抗を外付けする必要あり。
  • 21(SDA), 22(SCL) : GROVEポートと兼用。I2Cポートして使うなら併用可能。
  • 18(SCK), 19(MISO), 23(MOSI) : LCD, SDカードと兼用。SPIポートして使うなら併用可能だが、要注意。
  • 0(BOOT) : BOOTピン。使用不可。
  • 2 : 内部プルダウンされている。書き込み時は起動時にLowでなければならない。つまり起動時にHighになってはならないので、入力ピンには使いにくい。

2. 機構・筐体

電池ボックスのバネの力で基板が反る!

あまり剛性の無い電池ボックスを基板にハンダ付けした場合、電池を挿入したときにバネの力で基板が反ることがある。薄手のガラスコンポジット基板は反りやすいので要注意。

ペットボトルはホットボンドの熱で変形する!

ペットボトルにネジ止めするために六角スペーサをペットボトルの内側に接着しようとホットボンドを使用したところ、ホットボンドの熱でペットボトルが少し変形してしまった。また、ホットボンドはペットに対して食いつきが弱く、簡単にポロっと外れてしまう。けっきょく、エポキシパテでやり直した。

油性マジックは塗装の上に浮き出る!

油性マジック(マッキー)で線を引いた上からスプレー塗装すると、マジックの線が浮き出てくる。おそろしいことに、サフを吹いても浮き出てくる。正確には浮き出るというより、塗装をはじくというべきか。油性マジックの線は塗装前にエタノールで拭き取っておくこと。模型界隈ではわりとよく知られていることらしい。

3. 楽器の仕様

スイッチ1個ではダブルホールやハーフホールに対応できない

当たり前の話だが、スイッチのデジタル入力はHighかLowの2値なので、リコーダーの右手小指・薬指のようなダブルホール(穴が2つある)や、左手親指のハーフホール(半開き)は表現できない。特に右手小指がダブルホールでないと、ド#の指使いが理にかなったものにならない。

もちろん、電子楽器であるから指使いと音程の対応は自由に定義できるが、既存の楽器の指使いと著しくかけ離れてたものだと人間が対応しづらい。EleHulusiの指使いはなるべくリコーダーにならいつつ、8個のデジタル入力で表現できるように改変した。ド#はやはり不自然な指使いになっている。

ウインドシンセ撥弦楽器/打弦楽器/打楽器の音を出すのは無理がある?

ウインドシンセは息を吹いているあいだ音が出る楽器なので、撥弦楽器/打弦楽器/打楽器の音を出すのには向いていない。チェンバロのような撥弦楽器、ピアノのような打弦楽器、ベルのような打楽器はいずれも、アタックした瞬間に音の強さが決まって音が始まり後は自然に減衰する。ウインドシンセで再現する場合、何のタイミングをもってアタックとするのか?

移調楽器とするかそれとも?

半音の指使いはおぼえづらいので、なるべく半音の指使いをもちいずにあらゆる調の曲を演奏できるようにしたい。そのためには移調楽器のような仕様が良いだろうか? デフォルト設定をC管 (全ての指を押さえたときがド) とし、そこからキーの上げ下げができれば全ての調に対応できる。たとえばキーを+5すればF管(全ての指を押さえたときがファ)となりへ長調/ニ短調を演奏しやすくなる。EleHulusiはそのように実装したが、それだとハ長調/イ短調以外の調では楽譜の読み替えが必要になり、それはそれで面倒である。