Multi players piano
前回はキースイッチ基板の解説を行ったので今回は他の部分について触れたいと思います。
前回:ピアノを共に弾こう!みんなで楽しむ新感覚ピアノ(キースイッチ基板)🎹 - robotoGAsensei’s diary
- 電気(キースイッチ、 マルチプレクサ 、ESP32周辺) ← 今回
- メカ(バネ・ヒンジ構造)
- ソフト(PWM、ファミコン音源)
基板構成
全体を俯瞰するとこのようになっていて、基板構成は大きく3つに分かれます。
- キースイッチ基板
- マルチプレクサ基板
- マイコン基板
マルチプレクサ基板
![](https://cdn-ak.f.st-hatena.com/images/fotolife/r/robotoGAsensei/20240526/20240526170122.png)
![](https://cdn-ak.f.st-hatena.com/images/fotolife/r/robotoGAsensei/20240526/20240526165017.jpg)
ESP32のポート数に限りがあるので88個の鍵盤入力をESP32で直接受け取る事ができません。 そこで、CD74HC4067の出力であるSIGをESP32のデジタル入力ポートに接続する構成としました。 これによりESP32の1ポートを事実上の16ポート(C0~C15)に増やす事ができます。 増やすと言っても、S0~S3を使って接続チャンネルを切り替えながら巡回する事になるので、16chを同時に取得する事はできません。 今回は、ド#、レ、レ#、ミ、ファ、ファ#、ソ、ソ#、ラ、ラ#、シ、ド、+α、の合計14チャンネルを周期的に巡回する事にしました。 C14、C15は使わないのでC13まで来たらC0に戻りC0→C1→C1→・・・とします。
設計通り動いているでしょうか?
4つの信号(S0~S3)を切り替えながら接続先を変更する様子をオシロで見てみましょう。 上から順にS0, S1, S2, S3が表示されています。ABのカーソル区間を見てみると期待通り動いている事が分かります。
巡回周期はどうでしょうか?
ABのカーソル区間は1.8msなので、キーボード全体を1.8ms周期でサンプリングしています。 人の目は8msの変化を認識できるそうですが、それよりも十分に早いのでOKとしましょう。
人の目は1000分の8秒の変化を認識 ─eスポーツを通じたスキル開発と健康増進に向けて─|東京都市大学
最後に軽く補足です。前回記事でチップ抵抗の載せ替えを断念した事を告白しましたが、チップ抵抗をキースイッチ基板に載せる代わりにこちらのマルチプレクサ基板にリード抵抗を載せています。
マルチプレクサ基板については以上です。