ESP32 & RaspberryPi & MachiKania typeM & Arduino用自動演奏トイピアノプログラム。ノートNo.77~101まで、ノートON,ノートOFFのみ対応。
このプログラムは、UARTとI2Cでソレノイド25個を制御しトイピアノを自動演奏します。
RaspberryPi 3B+: Raspbian stretch, Python3.7
ESP32-DevKitC: MicroPython
MachiKania typeM: KM-1301
Arduino:ArduinoIDE
Python3.7:pyserial, smbus, argparse, Python-RtMidi
MicroPython:machine
Arduino:Adafruit_MCP23017, MIDI
ArduinoLeonardo:Adafruit_MCP23017, MIDIUSB,
ESP32:Arduino-BLE-MIDI
部品名 | 型番など | 数量 |
---|---|---|
トイピアノ | KAWAI ミニピアノ P-25 (ローズレッド) | 1 |
①RaspberryPi 3B+ | ||
②ESP32-DevKitC | ||
③MachiKania typeM | ||
④Arduinoシリーズ1つ | ||
⑤M5Stack | ①~⑤いずれか1 | |
DIN-5ソケット(メス) | KDJ103-5など | 1 |
2.1mm標準DCジャック | 2DC0005D100など | 1 |
1/4Wカーボン抵抗 | 220Ω | 1 |
270Ω | 1 | |
470Ω | 50 | |
スイッチングダイオード | 1N1418など | 1 |
ショットキーダイオード | 1S4 | 25 |
フォトカプラ | TLP785 | 1 |
トランジスタ | 2SC2655 | 25 |
I/Oエキスパンダ | MCP23017 | 2 |
ソレノイド | H10-0630-PUSH-12など12V1.2W程度のもの | 25 |
ACアダプター | AD-D120P200など12V2A程度のもの | 1 |
RaspberryPiがautoypiano-pi.py、ESP32(MIcroPython)がautoypiano-micro.py、MachiKania typeMがTOYPIANO.BAS、ArduinoLeonardo以外がautoypiano.ino、ArduinoLeonardo USB-MIDI対応がautoypiano_usb.ino、M5StackがM5autoypiano.ino、ESP32(Arduino系) BLE-MIDI対応(※試験的)がESP32_BLE_autoypiano.inoです。
RaspberryPiはUARTを有効にしてMIDI用に設定を変更し、I2Cを有効にしてから実行してください。
Arduino系は最大同時発音数が設定されています(デフォルトで4)
電源の出力が足りないと複数のソレノイドを同時にONできません。ソレノイドによって必要な電源の出力は変わります。また、トランジスタやソレノイドに負担がかかるのであまり長時間ソレノイドをONのままにしないでください。
USB-MIDI、BLE-MIDI対応版は通常のMIDI-INも使用可能です。
autoypiano.ino、autoypiano_usb.inoがMIDI1.0準拠です。それ以外のプログラムはソフト、シーケンサによっては正常に動作しない可能性があります。全てaplaymidiコマンドでは動作を確認しています。
- http://www.samplerbox.org/article/midiinwithrpi
- https://github.com/nezumi-tech/Hamoron-Firmware
- https://github.com/adafruit/Adafruit-MCP23017-Arduino-Library
- https://github.com/arduino-libraries/MIDIUSB
- https://github.com/lathoub/Arduino-BLE-MIDI
[2018/12/7] - 初回リリース
[2018/12/29] - 部品表作りました
[2018/12/29] - MachiKaniaに対応
[2019/08/08] - Arduino,ArduinoLeonardo,M5Stackに対応
[2019/11/15] - 発音数制限を追加(Arduino系のみ)
[2020/03/24] - BLE-MIDIに対応(ESP32のみ、試験的)
[2020/04/01] - 仮想MIDIポート版を追加(RaspberryPi用)
[2023/04/30] - ノートオフ条件で3バイト目は見ないよう変更。ノートオンベロシティ0でもノートオフするよう修正(Arduino系のみ)。